diff --git a/.gitignore b/.gitignore index 5e80e0ae..dc96fe2b 100644 --- a/.gitignore +++ b/.gitignore @@ -36,3 +36,4 @@ addon.local.gradle.kts addon.late.local.gradle addon.late.local.gradle.kts layout.json +libs/ diff --git a/dependencies.gradle b/dependencies.gradle index dadaf6e2..dc8f482c 100644 --- a/dependencies.gradle +++ b/dependencies.gradle @@ -34,16 +34,35 @@ * For more details, see https://docs.gradle.org/8.0.1/userguide/java_library_plugin.html#sec:java_library_configurations_graph */ dependencies { - implementation("com.github.GTNewHorizons:GTNHLib:0.7.7:dev") + compileOnly('org.jetbrains:annotations:26.0.1') + + implementation("com.github.GTNewHorizons:GTNHLib:0.8.15:dev") // TODO: remove MUI1 dep when the implicit dependency // TODO: in IItemHandlerModifiable is removed - api("com.github.GTNewHorizons:ModularUI:1.2.20:dev") - api("com.github.GTNewHorizons:ModularUI2:2.2.16-1.7.10:dev") - api("com.github.GTNewHorizons:CraftTweaker:3.4.2:dev") - api('curse.maven:cofh-lib-220333:2388748') - compileOnly("com.github.GTNewHorizons:Baubles-Expanded:2.1.9-GTNH:dev") - compileOnly('thaumcraft:Thaumcraft:1.7.10-4.2.3.5:dev') - compileOnly('com.github.GTNewHorizons:Angelica:1.0.0-beta62:dev') + api("com.github.GTNewHorizons:ModularUI:1.2.20:dev") { transitive = false } + api("com.github.GTNewHorizons:ModularUI2:2.2.16-1.7.10:dev") { transitive = false } + api("com.github.GTNewHorizons:CraftTweaker:3.4.2:dev") { transitive = false } + api('curse.maven:cofh-lib-220333:2388748') { transitive = false } + + compileOnly("com.github.GTNewHorizons:Baubles-Expanded:2.1.9-GTNH:dev") { transitive = false } + runtimeOnlyNonPublishable("com.github.GTNewHorizons:EnderCore:0.5.0:dev") { transitive = false } + runtimeOnlyNonPublishable("com.github.GTNewHorizons:Baubles-Expanded:2.2.2-GTNH:dev") { transitive = false } + compileOnly('thaumcraft:Thaumcraft:1.7.10-4.2.3.5:dev') { transitive = false } + compileOnly('com.github.GTNewHorizons:Angelica:1.0.0-beta62:dev') { transitive = false } + + api("com.github.GTNewHorizons:NotEnoughItems:2.8.31-GTNH:dev" ) { transitive = true } + runtimeOnlyNonPublishable("com.github.GTNewHorizons:Angelica:1.0.0-beta71-pre:dev" ) { transitive = false } + runtimeOnlyNonPublishable("com.github.GTNewHorizons:Hodgepodge:2.7.17:dev" ) { transitive = false } + + // For debugging chunkloading + runtimeOnlyNonPublishable('curse.maven:chicken-chunks-229316:2233250') + // Testing performance with ender quarry inserts + runtimeOnlyNonPublishable('com.github.GTNewHorizons:Avaritiaddons:1.9.3-GTNH:dev') { transitive = true } + runtimeOnlyNonPublishable('com.github.GTNewHorizons:Avaritia:1.81-pre:dev') { transitive = false } + runtimeOnlyNonPublishable('com.github.GTNewHorizons:Applied-Energistics-2-Unofficial:rv3-beta-789-GTNH:dev') { transitive = true } + runtimeOnlyNonPublishable rfg.deobf(files("libs/spark-1.10.pre-forge-1.7.10.jar")) - runtimeOnlyNonPublishable("com.github.GTNewHorizons:NotEnoughItems:2.8.31-GTNH:dev" ) + runtimeOnlyNonPublishable("com.github.GTNewHorizons:WAILAPlugins:0.7.2:dev") { transitive = false } + api("com.github.GTNewHorizons:waila:1.9.15:dev") { transitive = false } + runtimeOnlyNonPublishable("com.github.GTNewHorizons:ServerUtilities:2.2.5:dev") { transitive = false } } diff --git a/src/main/java/com/fouristhenumber/utilitiesinexcess/ClientProxy.java b/src/main/java/com/fouristhenumber/utilitiesinexcess/ClientProxy.java index 0f1aedb7..e90357ba 100644 --- a/src/main/java/com/fouristhenumber/utilitiesinexcess/ClientProxy.java +++ b/src/main/java/com/fouristhenumber/utilitiesinexcess/ClientProxy.java @@ -4,12 +4,15 @@ import com.fouristhenumber.utilitiesinexcess.common.renderers.InvertedIngotRenderer; import com.fouristhenumber.utilitiesinexcess.common.tileentities.TileEntityPortalUnderWorld; +import com.fouristhenumber.utilitiesinexcess.compat.Mods; +import com.fouristhenumber.utilitiesinexcess.compat.waila.TTRenderUIETimeLeftBar; import com.fouristhenumber.utilitiesinexcess.render.ISBRHUnderworldPortal; import com.fouristhenumber.utilitiesinexcess.render.TESRUnderworldPortal; import cpw.mods.fml.client.registry.ClientRegistry; import cpw.mods.fml.client.registry.RenderingRegistry; import cpw.mods.fml.common.event.FMLInitializationEvent; +import cpw.mods.fml.common.event.FMLPostInitializationEvent; public class ClientProxy extends CommonProxy { @@ -24,4 +27,12 @@ public void init(FMLInitializationEvent event) { RenderingRegistry.registerBlockHandler(ISBRHUnderworldPortal.INSTANCE); } } + + @Override + public void postInit(FMLPostInitializationEvent event) { + super.postInit(event); + if (Mods.Waila.isLoaded()) { + TTRenderUIETimeLeftBar.register(); + } + } } diff --git a/src/main/java/com/fouristhenumber/utilitiesinexcess/CommonProxy.java b/src/main/java/com/fouristhenumber/utilitiesinexcess/CommonProxy.java index 12dbfe22..5c25e69c 100644 --- a/src/main/java/com/fouristhenumber/utilitiesinexcess/CommonProxy.java +++ b/src/main/java/com/fouristhenumber/utilitiesinexcess/CommonProxy.java @@ -8,6 +8,7 @@ import com.fouristhenumber.utilitiesinexcess.utils.SoundVolumeChecks; import cpw.mods.fml.common.event.FMLInitializationEvent; +import cpw.mods.fml.common.event.FMLInterModComms; import cpw.mods.fml.common.event.FMLPostInitializationEvent; import cpw.mods.fml.common.event.FMLPreInitializationEvent; import cpw.mods.fml.common.event.FMLServerStartingEvent; @@ -34,6 +35,13 @@ public void preInit(FMLPreInitializationEvent event) { public void init(FMLInitializationEvent event) { soundVolumeChecks = new SoundVolumeChecks(); + ModTileEntities.init(); + if (Mods.Waila.isLoaded()) { + FMLInterModComms.sendMessage( + "Waila", + "register", + "com.fouristhenumber.utilitiesinexcess.compat.waila.WailaHandler.callbackRegister"); + } } public void postInit(FMLPostInitializationEvent event) {} diff --git a/src/main/java/com/fouristhenumber/utilitiesinexcess/ModBlocks.java b/src/main/java/com/fouristhenumber/utilitiesinexcess/ModBlocks.java index ad5a3c95..1a5e171f 100644 --- a/src/main/java/com/fouristhenumber/utilitiesinexcess/ModBlocks.java +++ b/src/main/java/com/fouristhenumber/utilitiesinexcess/ModBlocks.java @@ -32,6 +32,9 @@ import com.fouristhenumber.utilitiesinexcess.common.blocks.BlockTrashCanFluid; import com.fouristhenumber.utilitiesinexcess.common.blocks.BlockTrashCanItem; import com.fouristhenumber.utilitiesinexcess.common.blocks.BlockUpdateDetector; +import com.fouristhenumber.utilitiesinexcess.common.blocks.ender_quarry.BlockEnderMarker; +import com.fouristhenumber.utilitiesinexcess.common.blocks.ender_quarry.BlockEnderQuarry; +import com.fouristhenumber.utilitiesinexcess.common.blocks.ender_quarry.BlockEnderQuarryUpgrade; import com.fouristhenumber.utilitiesinexcess.common.blocks.generators.BlockEnderGenerator; import com.fouristhenumber.utilitiesinexcess.common.blocks.generators.BlockFoodGenerator; import com.fouristhenumber.utilitiesinexcess.common.blocks.generators.BlockFurnaceGenerator; @@ -47,6 +50,7 @@ import com.fouristhenumber.utilitiesinexcess.config.blocks.BlockConfig; import com.fouristhenumber.utilitiesinexcess.config.blocks.CursedEarthConfig; import com.fouristhenumber.utilitiesinexcess.config.blocks.EnderLotusConfig; +import com.fouristhenumber.utilitiesinexcess.config.blocks.EnderQuarryConfig; import com.fouristhenumber.utilitiesinexcess.config.blocks.GeneratorConfig; import com.fouristhenumber.utilitiesinexcess.config.dimensions.EndOfTimeConfig; import com.fouristhenumber.utilitiesinexcess.config.dimensions.UnderWorldConfig; @@ -104,6 +108,9 @@ public enum ModBlocks { SPIKE_DIAMOND(BlockConfig.spikes.enableDiamondSpike, new BlockSpike(BlockSpike.SpikeType.DIAMOND, "diamondSpike"), BlockSpike.ItemSpike.class, "diamondSpike"), UNDERWORLD_PORTAL(BlockConfig.enableUnderWorldPortal && UnderWorldConfig.enableUnderWorld, new BlockPortalUnderWorld(), "underworld_portal"), END_OF_TIME_PORTAL(BlockConfig.enableEndOfTimePortal && EndOfTimeConfig.enableEndOfTime, new BlockPortalEndOfTime(), BlockPortalEndOfTime.ItemBlockPortalEndOfTime.class, "temporal_gate"), + ENDER_QUARRY(EnderQuarryConfig.enableEnderQuarry, new BlockEnderQuarry(), "ender_quarry"), + ENDER_MARKER(EnderQuarryConfig.enableEnderQuarry, new BlockEnderMarker(), "ender_marker"), + ENDER_QUARRY_UPGRADE(EnderQuarryConfig.enableEnderQuarry, new BlockEnderQuarryUpgrade(), BlockEnderQuarryUpgrade.ItemEnderQuarryUpgrade.class, "ender_quarry_upgrade"), ; // leave trailing semicolon // spotless:on diff --git a/src/main/java/com/fouristhenumber/utilitiesinexcess/ModTileEntities.java b/src/main/java/com/fouristhenumber/utilitiesinexcess/ModTileEntities.java new file mode 100644 index 00000000..5bfc28b1 --- /dev/null +++ b/src/main/java/com/fouristhenumber/utilitiesinexcess/ModTileEntities.java @@ -0,0 +1,98 @@ +package com.fouristhenumber.utilitiesinexcess; + +import net.minecraft.tileentity.TileEntity; + +import com.fouristhenumber.utilitiesinexcess.common.tileentities.TileEntityBlockUpdateDetector; +import com.fouristhenumber.utilitiesinexcess.common.tileentities.TileEntityConveyor; +import com.fouristhenumber.utilitiesinexcess.common.tileentities.TileEntityDrum; +import com.fouristhenumber.utilitiesinexcess.common.tileentities.TileEntityEnderMarker; +import com.fouristhenumber.utilitiesinexcess.common.tileentities.TileEntityEnderQuarry; +import com.fouristhenumber.utilitiesinexcess.common.tileentities.TileEntityMarginallyMaximisedChest; +import com.fouristhenumber.utilitiesinexcess.common.tileentities.TileEntityPortalUnderWorld; +import com.fouristhenumber.utilitiesinexcess.common.tileentities.TileEntityPureLove; +import com.fouristhenumber.utilitiesinexcess.common.tileentities.TileEntityRadicallyReducedChest; +import com.fouristhenumber.utilitiesinexcess.common.tileentities.TileEntityRainMuffler; +import com.fouristhenumber.utilitiesinexcess.common.tileentities.TileEntityRedstoneClock; +import com.fouristhenumber.utilitiesinexcess.common.tileentities.TileEntitySignificantlyShrunkChest; +import com.fouristhenumber.utilitiesinexcess.common.tileentities.TileEntitySoundMuffler; +import com.fouristhenumber.utilitiesinexcess.common.tileentities.TileEntityTrashCanEnergy; +import com.fouristhenumber.utilitiesinexcess.common.tileentities.TileEntityTrashCanFluid; +import com.fouristhenumber.utilitiesinexcess.common.tileentities.TileEntityTrashCanItem; +import com.fouristhenumber.utilitiesinexcess.common.tileentities.generators.TileEntityEnderGenerator; +import com.fouristhenumber.utilitiesinexcess.common.tileentities.generators.TileEntityFoodGenerator; +import com.fouristhenumber.utilitiesinexcess.common.tileentities.generators.TileEntityFurnaceGenerator; +import com.fouristhenumber.utilitiesinexcess.common.tileentities.generators.TileEntityHighTemperatureFurnaceGenerator; +import com.fouristhenumber.utilitiesinexcess.common.tileentities.generators.TileEntityLavaGenerator; +import com.fouristhenumber.utilitiesinexcess.common.tileentities.generators.TileEntityLowTemperatureFurnaceGenerator; +import com.fouristhenumber.utilitiesinexcess.common.tileentities.generators.TileEntityNetherStarGenerator; +import com.fouristhenumber.utilitiesinexcess.common.tileentities.generators.TileEntityPinkGenerator; +import com.fouristhenumber.utilitiesinexcess.common.tileentities.generators.TileEntityPotionGenerator; +import com.fouristhenumber.utilitiesinexcess.common.tileentities.generators.TileEntityRedstoneGenerator; +import com.fouristhenumber.utilitiesinexcess.common.tileentities.generators.TileEntitySolarGenerator; +import com.fouristhenumber.utilitiesinexcess.common.tileentities.generators.TileEntityTNTGenerator; + +import cpw.mods.fml.common.registry.GameRegistry; + +public enum ModTileEntities { + // spotless:off + + // make sure to leave a trailing comma + REDSTONE_CLOCK(TileEntityRedstoneClock .class , "RedstoneClock"), + TRASH_CAN_ITEM(TileEntityTrashCanItem.class , "TrashCanItem"), + TRASH_CAN_FLUID(TileEntityTrashCanFluid.class , "TrashCanFluid"), + TRASH_CAN_ENERGY(TileEntityTrashCanEnergy.class , "TrashCanEnergy"), + DRUM(TileEntityDrum.class , "Drum"), + PURE_LOVE(TileEntityPureLove.class , "PureLove"), + CHEST_MAX(TileEntityMarginallyMaximisedChest.class , "MarginallyMaximisedChest"), + CHEST_SHRUNK(TileEntitySignificantlyShrunkChest.class , "SignificantlyShrunkChest"), + CHEST_SMALL(TileEntityRadicallyReducedChest.class , "RadicallyReducedChest"), + MUFFLER_SOUND(TileEntitySoundMuffler.class , "SoundMuffler"), + MUFFLER_RAIN(TileEntityRainMuffler.class , "RainMuffler"), + BLOCK_UPDATE_DETECTOR(TileEntityBlockUpdateDetector.class , "BlockUpdateDetector"), + CONVEYOR(TileEntityConveyor.class , "Conveyor"), + PORTAL_UNDERWORLD(TileEntityPortalUnderWorld.class , "PortalUnderWorld"), + GENERATOR_LOW_TEMP_FURNACE(TileEntityLowTemperatureFurnaceGenerator.class , "LowTemperatureFurnaceGenerator"), + GENERATOR_FURNACE(TileEntityFurnaceGenerator.class , "FurnaceGenerator"), + GENERATOR_HIGH_TEMP_FURNACE(TileEntityHighTemperatureFurnaceGenerator.class, "HighTemperatureFurnaceGenerator"), + GENERATOR_LAVA(TileEntityLavaGenerator.class , "LavaGenerator"), + GENERATOR_ENDER(TileEntityEnderGenerator.class , "EnderGenerator"), + GENERATOR_REDSTONE(TileEntityRedstoneGenerator.class , "RedstoneGenerator"), + GENERATOR_FOOD(TileEntityFoodGenerator.class , "FoodGenerator"), + GENERATOR_POTION(TileEntityPotionGenerator.class , "PotionGenerator"), + GENERATOR_SOLAR(TileEntitySolarGenerator.class , "SolarGenerator"), + GENERATOR_TNT(TileEntityTNTGenerator.class , "TNTGenerator"), + GENERATOR_PINK(TileEntityPinkGenerator.class , "PinkGenerator"), + GENERATOR_NETHER_STAR(TileEntityNetherStarGenerator.class , "NetherStarGenerator"), + ENDER_QUARRY(TileEntityEnderQuarry.class , "EnderQuarry"), + ENDER_MARKER(TileEntityEnderMarker.class , "EnderMarker"), + ; + // spotless:on + + public static final ModTileEntities[] VALUES = values(); + + public static void init() { + for (ModTileEntities te : VALUES) { + if (te.isEnabled()) { + GameRegistry.registerTileEntity(te.clazz, te.name); + } + } + } + + private final boolean isEnabled; + private final Class clazz; + private final String name; + + ModTileEntities(Class clazz, String name) { + this(true, clazz, name); + } + + ModTileEntities(Boolean enabled, Class clazz, String name) { + this.isEnabled = enabled; + this.clazz = clazz; + this.name = "TileEntity" + name + "UIE"; + } + + public boolean isEnabled() { + return isEnabled; + } +} diff --git a/src/main/java/com/fouristhenumber/utilitiesinexcess/UtilitiesInExcess.java b/src/main/java/com/fouristhenumber/utilitiesinexcess/UtilitiesInExcess.java index c6c8987a..ba864f27 100644 --- a/src/main/java/com/fouristhenumber/utilitiesinexcess/UtilitiesInExcess.java +++ b/src/main/java/com/fouristhenumber/utilitiesinexcess/UtilitiesInExcess.java @@ -1,7 +1,9 @@ package com.fouristhenumber.utilitiesinexcess; +import net.minecraft.client.Minecraft; import net.minecraft.util.WeightedRandomChestContent; import net.minecraftforge.common.ChestGenHooks; +import net.minecraftforge.common.ForgeChunkManager; import net.minecraftforge.common.MinecraftForge; import org.apache.logging.log4j.LogManager; @@ -11,39 +13,14 @@ import com.fouristhenumber.utilitiesinexcess.common.renderers.BlackoutCurtainsRenderer; import com.fouristhenumber.utilitiesinexcess.common.renderers.LapisAetheriusRenderer; import com.fouristhenumber.utilitiesinexcess.common.renderers.SpikeRenderer; -import com.fouristhenumber.utilitiesinexcess.common.tileentities.TileEntityBlockUpdateDetector; -import com.fouristhenumber.utilitiesinexcess.common.tileentities.TileEntityConveyor; -import com.fouristhenumber.utilitiesinexcess.common.tileentities.TileEntityDrum; -import com.fouristhenumber.utilitiesinexcess.common.tileentities.TileEntityMarginallyMaximisedChest; -import com.fouristhenumber.utilitiesinexcess.common.tileentities.TileEntityPortalUnderWorld; -import com.fouristhenumber.utilitiesinexcess.common.tileentities.TileEntityPureLove; -import com.fouristhenumber.utilitiesinexcess.common.tileentities.TileEntityRadicallyReducedChest; -import com.fouristhenumber.utilitiesinexcess.common.tileentities.TileEntityRainMuffler; -import com.fouristhenumber.utilitiesinexcess.common.tileentities.TileEntityRedstoneClock; -import com.fouristhenumber.utilitiesinexcess.common.tileentities.TileEntitySignificantlyShrunkChest; -import com.fouristhenumber.utilitiesinexcess.common.tileentities.TileEntitySoundMuffler; import com.fouristhenumber.utilitiesinexcess.common.tileentities.TileEntitySpike; -import com.fouristhenumber.utilitiesinexcess.common.tileentities.TileEntityTrashCanEnergy; -import com.fouristhenumber.utilitiesinexcess.common.tileentities.TileEntityTrashCanFluid; -import com.fouristhenumber.utilitiesinexcess.common.tileentities.TileEntityTrashCanItem; -import com.fouristhenumber.utilitiesinexcess.common.tileentities.generators.TileEntityEnderGenerator; -import com.fouristhenumber.utilitiesinexcess.common.tileentities.generators.TileEntityFoodGenerator; -import com.fouristhenumber.utilitiesinexcess.common.tileentities.generators.TileEntityFurnaceGenerator; -import com.fouristhenumber.utilitiesinexcess.common.tileentities.generators.TileEntityHighTemperatureFurnaceGenerator; -import com.fouristhenumber.utilitiesinexcess.common.tileentities.generators.TileEntityLavaGenerator; -import com.fouristhenumber.utilitiesinexcess.common.tileentities.generators.TileEntityLowTemperatureFurnaceGenerator; -import com.fouristhenumber.utilitiesinexcess.common.tileentities.generators.TileEntityNetherStarGenerator; -import com.fouristhenumber.utilitiesinexcess.common.tileentities.generators.TileEntityPinkGenerator; -import com.fouristhenumber.utilitiesinexcess.common.tileentities.generators.TileEntityPotionGenerator; -import com.fouristhenumber.utilitiesinexcess.common.tileentities.generators.TileEntityRedstoneGenerator; -import com.fouristhenumber.utilitiesinexcess.common.tileentities.generators.TileEntitySolarGenerator; -import com.fouristhenumber.utilitiesinexcess.common.tileentities.generators.TileEntityTNTGenerator; import com.fouristhenumber.utilitiesinexcess.common.worldgen.WorldGenEnderLotus; import com.fouristhenumber.utilitiesinexcess.compat.Mods; import com.fouristhenumber.utilitiesinexcess.compat.crafttweaker.QEDCraftTweakerSupport; import com.fouristhenumber.utilitiesinexcess.utils.FMLEventHandler; import com.fouristhenumber.utilitiesinexcess.utils.ForgeEventHandler; import com.fouristhenumber.utilitiesinexcess.utils.PinkFuelHelper; +import com.fouristhenumber.utilitiesinexcess.utils.TEChunkLoadingCallback; import cpw.mods.fml.client.registry.RenderingRegistry; import cpw.mods.fml.common.FMLCommonHandler; @@ -61,12 +38,15 @@ version = Tags.VERSION, name = "UtilitiesInExcess", acceptedMinecraftVersions = "[1.7.10]", - dependencies = "required-after:gtnhlib@[0.6.31,)") + dependencies = "required-after:gtnhlib@[0.6.31,);after:Waila;") public class UtilitiesInExcess { public static final String MODID = "utilitiesinexcess"; public static final Logger LOG = LogManager.getLogger(MODID); + @Mod.Instance(MODID) + public static UtilitiesInExcess uieInstance; + public static int lapisAetheriusRenderID; public static int blackoutCurtainsRenderID; public static int spikeRenderID; @@ -76,6 +56,10 @@ public class UtilitiesInExcess { serverSide = "com.fouristhenumber.utilitiesinexcess.CommonProxy") public static CommonProxy proxy; + public static void chat(String text) { + Minecraft.getMinecraft().thePlayer.sendChatMessage(text); + } + @Mod.EventHandler public void preInit(FMLPreInitializationEvent event) { GameRegistry.registerTileEntity(TileEntitySpike.class, "utilitiesinexcess:TileEntitySpike"); @@ -93,38 +77,6 @@ public void init(FMLInitializationEvent event) { .bus() .register(new FMLEventHandler()); - GameRegistry.registerTileEntity(TileEntityRedstoneClock.class, "TileEntityRedstoneClock"); - GameRegistry.registerTileEntity(TileEntityTrashCanItem.class, "TileEntityTrashCanItem"); - GameRegistry.registerTileEntity(TileEntityTrashCanFluid.class, "TileEntityTrashCanFluid"); - GameRegistry.registerTileEntity(TileEntityTrashCanEnergy.class, "TileEntityTrashCanEnergyUIE"); - GameRegistry.registerTileEntity(TileEntityDrum.class, "TileEntityDrum"); - GameRegistry.registerTileEntity(TileEntityPureLove.class, "TileEntityPureLove"); - GameRegistry.registerTileEntity(TileEntityMarginallyMaximisedChest.class, "TileEntityMarginallyMaximisedChest"); - GameRegistry.registerTileEntity(TileEntitySignificantlyShrunkChest.class, "TileEntitySignificantlyShrunkChest"); - GameRegistry.registerTileEntity(TileEntityRadicallyReducedChest.class, "TileEntityRadicallyReducedChest"); - GameRegistry.registerTileEntity(TileEntitySoundMuffler.class, "TileEntitySoundMufflerUIE"); - GameRegistry.registerTileEntity(TileEntityRainMuffler.class, "TileEntityRainMufflerUIE"); - GameRegistry.registerTileEntity(TileEntityBlockUpdateDetector.class, "TileEntityBlockUpdateDetector"); - GameRegistry.registerTileEntity(TileEntityConveyor.class, "TileEntityConveyor"); - GameRegistry.registerTileEntity(TileEntityPortalUnderWorld.class, "TileEntityPortalUnderWorld"); - - GameRegistry.registerTileEntity( - TileEntityLowTemperatureFurnaceGenerator.class, - "TileEntityLowTemperatureFurnaceGeneratorUIE"); - GameRegistry.registerTileEntity(TileEntityFurnaceGenerator.class, "TileEntityFurnaceGeneratorUIE"); - GameRegistry.registerTileEntity( - TileEntityHighTemperatureFurnaceGenerator.class, - "TileEntityHighTemperatureFurnaceGeneratorUIE"); - GameRegistry.registerTileEntity(TileEntityLavaGenerator.class, "TileEntityLavaGeneratorUIE"); - GameRegistry.registerTileEntity(TileEntityEnderGenerator.class, "TileEntityEnderGeneratorUIE"); - GameRegistry.registerTileEntity(TileEntityRedstoneGenerator.class, "TileEntityRedstoneGeneratorUIE"); - GameRegistry.registerTileEntity(TileEntityFoodGenerator.class, "TileEntityFoodGeneratorUIE"); - GameRegistry.registerTileEntity(TileEntityPotionGenerator.class, "TileEntityPotionGeneratorUIE"); - GameRegistry.registerTileEntity(TileEntitySolarGenerator.class, "TileEntitySolarGeneratorUIE"); - GameRegistry.registerTileEntity(TileEntityTNTGenerator.class, "TileEntityTNTGeneratorUIE"); - GameRegistry.registerTileEntity(TileEntityPinkGenerator.class, "TileEntityPinkGeneratorUIE"); - GameRegistry.registerTileEntity(TileEntityNetherStarGenerator.class, "TileEntityNetherStarGeneratorUIE"); - lapisAetheriusRenderID = RenderingRegistry.getNextAvailableRenderId(); RenderingRegistry.registerBlockHandler(new LapisAetheriusRenderer()); blackoutCurtainsRenderID = RenderingRegistry.getNextAvailableRenderId(); @@ -164,6 +116,8 @@ public void init(FMLInitializationEvent event) { if (Mods.CraftTweaker.isLoaded()) { MineTweakerAPI.registerClass(QEDCraftTweakerSupport.class); } + + ForgeChunkManager.setForcedChunkLoadingCallback(uieInstance, new TEChunkLoadingCallback()); } @Mod.EventHandler diff --git a/src/main/java/com/fouristhenumber/utilitiesinexcess/common/blocks/ender_quarry/BlockEnderMarker.java b/src/main/java/com/fouristhenumber/utilitiesinexcess/common/blocks/ender_quarry/BlockEnderMarker.java new file mode 100644 index 00000000..5635e648 --- /dev/null +++ b/src/main/java/com/fouristhenumber/utilitiesinexcess/common/blocks/ender_quarry/BlockEnderMarker.java @@ -0,0 +1,131 @@ +package com.fouristhenumber.utilitiesinexcess.common.blocks.ender_quarry; + +import static com.gtnewhorizon.gtnhlib.client.model.ModelISBRH.JSON_ISBRH_ID; + +import java.util.List; +import java.util.Random; + +import net.minecraft.block.Block; +import net.minecraft.block.BlockContainer; +import net.minecraft.block.material.Material; +import net.minecraft.entity.Entity; +import net.minecraft.entity.EntityLivingBase; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.ItemStack; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.AxisAlignedBB; +import net.minecraft.util.ChatComponentText; +import net.minecraft.world.Explosion; +import net.minecraft.world.World; +import net.minecraftforge.common.util.ForgeDirection; + +import com.fouristhenumber.utilitiesinexcess.common.tileentities.TileEntityEnderMarker; +import com.fouristhenumber.utilitiesinexcess.utils.DirectionUtil; + +public class BlockEnderMarker extends BlockContainer { + + public BlockEnderMarker() { + super(Material.iron); + setBlockName("ender_marker"); + setBlockTextureName("utilitiesinexcess:ender_marker"); + setBlockBounds(7F / 16F, 0F / 16F, 7F / 16F, 9F / 16F, 13.5F / 16F, 9F / 16F); + setLightOpacity(0); + } + + @Override + public void onBlockPlacedBy(World worldIn, int x, int y, int z, EntityLivingBase placer, ItemStack itemIn) { + if (worldIn.isRemote) return; + TileEntity te = worldIn.getTileEntity(x, y, z); + if (te instanceof TileEntityEnderMarker marker) { + marker.checkForAlignedMarkers(); + } + } + + @Override + public void addCollisionBoxesToList(World worldIn, int x, int y, int z, AxisAlignedBB mask, + List list, Entity collider) { + this.setBlockBounds(7F / 16F, 0F / 16F, 7F / 16F, 9F / 16F, 13.5F / 16F, 9F / 16F); + super.addCollisionBoxesToList(worldIn, x, y, z, mask, list, collider); + } + + @Override + public void onBlockDestroyedByPlayer(World worldIn, int x, int y, int z, int meta) { + if (worldIn.isRemote) return; + TileEntity te = worldIn.getTileEntity(x, y, z); + if (te instanceof TileEntityEnderMarker marker) { + marker.teardownConnections(); + } + } + + @Override + public void onBlockDestroyedByExplosion(World worldIn, int x, int y, int z, Explosion explosionIn) { + this.onBlockDestroyedByPlayer(worldIn, x, y, z, 0); + } + + @Override + public void onNeighborBlockChange(World worldIn, int x, int y, int z, Block neighbor) { + super.onNeighborBlockChange(worldIn, x, y, z, neighbor); + TileEntity te = worldIn.getTileEntity(x, y, z); + if (!worldIn.isRemote && te instanceof TileEntityEnderMarker marker) { + marker.checkForAlignedMarkers(); + } + } + + @Override + public boolean onBlockActivated(World worldIn, int x, int y, int z, EntityPlayer player, int side, float subX, + float subY, float subZ) { + if (worldIn.isRemote) return true; + TileEntity te = worldIn.getTileEntity(x, y, z); + if (te instanceof TileEntityEnderMarker marker) { + if (player.isSneaking()) { + int newCuboidSize = marker.increaseCuboidSize(); + player + .addChatComponentMessage(new ChatComponentText("Increased cuboid size to " + newCuboidSize + ".")); + } else { + marker.rotateMode(); + player.addChatComponentMessage(new ChatComponentText(marker.getMode())); + } + return true; + } + return false; + } + + @Override + public void randomDisplayTick(World worldIn, int x, int y, int z, Random random) { + int meta = worldIn.getBlockMetadata(x, y, z); + for (ForgeDirection dir : DirectionUtil.HORIZONTAL_DIRECTIONS) { + if ((meta & (1 << (dir.ordinal() - 2))) != 0) { + for (int i = 0; i < 7; i++) { + worldIn.spawnParticle( + "reddust", + x + 0.5D + ((double) dir.offsetX / 4) + dir.offsetX * random.nextDouble(), + y + 0.7D, + z + 0.5D + ((double) dir.offsetZ / 4) + dir.offsetZ * random.nextDouble(), + 0.5D + ((double) dir.offsetX / 2) * i, + 0.0D, + 0.5D + ((double) dir.offsetZ / 2) * i); + } + } + } + } + + @Override + public TileEntity createNewTileEntity(World worldIn, int meta) { + return new TileEntityEnderMarker(); + } + + @Override + public boolean isOpaqueCube() { + return false; + } + + @Override + public boolean renderAsNormalBlock() { + return false; + } + + @Override + public int getRenderType() { + return JSON_ISBRH_ID; + } +} diff --git a/src/main/java/com/fouristhenumber/utilitiesinexcess/common/blocks/ender_quarry/BlockEnderQuarry.java b/src/main/java/com/fouristhenumber/utilitiesinexcess/common/blocks/ender_quarry/BlockEnderQuarry.java new file mode 100644 index 00000000..eda876c9 --- /dev/null +++ b/src/main/java/com/fouristhenumber/utilitiesinexcess/common/blocks/ender_quarry/BlockEnderQuarry.java @@ -0,0 +1,141 @@ +package com.fouristhenumber.utilitiesinexcess.common.blocks.ender_quarry; + +import static com.gtnewhorizon.gtnhlib.client.model.ModelISBRH.JSON_ISBRH_ID; + +import net.minecraft.block.Block; +import net.minecraft.block.BlockContainer; +import net.minecraft.block.material.Material; +import net.minecraft.entity.EntityLivingBase; +import net.minecraft.entity.item.EntityItem; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.ChatComponentText; +import net.minecraft.world.World; +import net.minecraftforge.common.util.ForgeDirection; + +import com.fouristhenumber.utilitiesinexcess.common.tileentities.TileEntityEnderQuarry; + +public class BlockEnderQuarry extends BlockContainer { + + public BlockEnderQuarry() { + super(Material.iron); + setBlockName("ender_quarry"); + setBlockTextureName("utilitiesinexcess:ender_quarry"); + } + + @Override + public boolean isOpaqueCube() { + return false; + } + + @Override + public int getRenderType() { + return JSON_ISBRH_ID; + } + + @Override + public void onBlockPlacedBy(World worldIn, int x, int y, int z, EntityLivingBase placer, ItemStack itemIn) { + super.onBlockPlacedBy(worldIn, x, y, z, placer, itemIn); + + if (worldIn.getTileEntity(x, y, z) instanceof TileEntityEnderQuarry quarry) { + quarry.ownerUUID = placer.getUniqueID(); + quarry.updateRedstoneState(); + } + } + + @Override + public boolean onBlockActivated(World worldIn, int x, int y, int z, EntityPlayer player, int side, float subX, + float subY, float subZ) { + if (worldIn.isRemote) return true; + TileEntity te = worldIn.getTileEntity(x, y, z); + if (te instanceof TileEntityEnderQuarry quarry) { + if (player.isSneaking() && player.capabilities.isCreativeMode) { + quarry.isCreativeBoosted = !quarry.isCreativeBoosted; + player.addChatComponentMessage( + new ChatComponentText((quarry.isCreativeBoosted ? "" : "Un-") + "Creative-Boosted Quarry.")); + return true; + } + if (quarry.state == TileEntityEnderQuarry.QuarryWorkState.STOPPED) { + quarry.scanForWorkAreaFromMarkers(player); + if (quarry.state == TileEntityEnderQuarry.QuarryWorkState.RUNNING) { + return true; + } + } + player.addChatComponentMessage(new ChatComponentText(quarry.getState())); + } + return true; + } + + @Override + public void breakBlock(World worldIn, int x, int y, int z, Block blockBroken, int meta) { + TileEntity te = worldIn.getTileEntity(x, y, z); + if (te instanceof TileEntityEnderQuarry quarry) { + dropContent(quarry, worldIn); + } + super.breakBlock(worldIn, x, y, z, blockBroken, meta); + } + + private void dropContent(TileEntityEnderQuarry quarry, World world) { + for (ItemStack item : quarry.retrieveAllItems()) { + float dx = world.rand.nextFloat() * 0.8F + 0.1F; + float dy = world.rand.nextFloat() * 0.8F + 0.1F; + float dz = world.rand.nextFloat() * 0.8F + 0.1F; + float f3 = 0.05F; + + while (item.stackSize > 0) { + int stackSize = Math.min(item.stackSize, 64); + item.stackSize -= stackSize; + + EntityItem entityitem = new EntityItem( + world, + (float) quarry.xCoord + dx, + (float) quarry.yCoord + dy, + (float) quarry.zCoord + dz, + new ItemStack(item.getItem(), stackSize, item.getItemDamage())); + + entityitem.motionX = (float) world.rand.nextGaussian() * f3; + entityitem.motionY = (float) world.rand.nextGaussian() * f3 + 0.2F; + entityitem.motionZ = (float) world.rand.nextGaussian() * f3; + + if (item.hasTagCompound()) { + entityitem.getEntityItem() + .setTagCompound( + (NBTTagCompound) item.getTagCompound() + .copy()); + } + world.spawnEntityInWorld(entityitem); + } + } + } + + @Override + public void onNeighborBlockChange(World worldIn, int x, int y, int z, Block neighbor) { + super.onNeighborBlockChange(worldIn, x, y, z, neighbor); + TileEntity te = worldIn.getTileEntity(x, y, z); + if (!worldIn.isRemote && te instanceof TileEntityEnderQuarry quarry) { + quarry.scanSidesForTEs(); + quarry.updateRedstoneState(); + } + } + + @Override + public boolean hasComparatorInputOverride() { + return true; + } + + @Override + public int getComparatorInputOverride(World worldIn, int x, int y, int z, int side) { + if (worldIn.isRemote) return 0; + if (worldIn.getTileEntity(x, y, z) instanceof TileEntityEnderQuarry quarry) { + return quarry.getComparatorOutput(); + } + return 0; + } + + @Override + public TileEntity createNewTileEntity(World worldIn, int meta) { + return new TileEntityEnderQuarry(); + } +} diff --git a/src/main/java/com/fouristhenumber/utilitiesinexcess/common/blocks/ender_quarry/BlockEnderQuarryUpgrade.java b/src/main/java/com/fouristhenumber/utilitiesinexcess/common/blocks/ender_quarry/BlockEnderQuarryUpgrade.java new file mode 100644 index 00000000..ec0cb259 --- /dev/null +++ b/src/main/java/com/fouristhenumber/utilitiesinexcess/common/blocks/ender_quarry/BlockEnderQuarryUpgrade.java @@ -0,0 +1,91 @@ +package com.fouristhenumber.utilitiesinexcess.common.blocks.ender_quarry; + +import static com.gtnewhorizon.gtnhlib.client.model.ModelISBRH.JSON_ISBRH_ID; + +import java.util.List; + +import net.minecraft.block.Block; +import net.minecraft.block.material.Material; +import net.minecraft.client.renderer.texture.IIconRegister; +import net.minecraft.creativetab.CreativeTabs; +import net.minecraft.entity.Entity; +import net.minecraft.item.Item; +import net.minecraft.item.ItemBlock; +import net.minecraft.item.ItemStack; +import net.minecraft.util.AxisAlignedBB; +import net.minecraft.util.IIcon; +import net.minecraft.world.World; + +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; + +public class BlockEnderQuarryUpgrade extends Block { + + @SideOnly(Side.CLIENT) + private IIcon[] icons; + + public BlockEnderQuarryUpgrade() { + super(Material.iron); + setHardness(1f); + setBlockName("utilitiesinexcess:ender_quarry_upgrade"); + setBlockBounds(0.5F / 16F, 1.5F / 16F, 0.5F / 16F, 15.5F / 16F, 15F / 16F, 15.5F / 16F); + setLightOpacity(0); + } + + @Override + public void addCollisionBoxesToList(World worldIn, int x, int y, int z, AxisAlignedBB mask, + List list, Entity collider) { + this.setBlockBounds(0.5F / 16F, 1.5F / 16F, 0.5F / 16F, 15.5F / 16F, 15F / 16F, 15.5F / 16F); + super.addCollisionBoxesToList(worldIn, x, y, z, mask, list, collider); + } + + @SideOnly(Side.CLIENT) + public void getSubBlocks(Item itemIn, CreativeTabs tab, List list) { + for (int i = 0; i < EnderQuarryUpgradeManager.EnderQuarryUpgrade.VALUES.length; ++i) { + list.add(new ItemStack(itemIn, 1, i)); + } + } + + @Override + public boolean isOpaqueCube() { + return false; + } + + @Override + public int getRenderType() { + return JSON_ISBRH_ID; + } + + @Override + public void registerBlockIcons(IIconRegister reg) { + icons = new IIcon[EnderQuarryUpgradeManager.EnderQuarryUpgrade.VALUES.length]; + for (int i = 0; i < EnderQuarryUpgradeManager.EnderQuarryUpgrade.VALUES.length; i++) { + EnderQuarryUpgradeManager.EnderQuarryUpgrade upgrade = EnderQuarryUpgradeManager.EnderQuarryUpgrade.VALUES[i]; + icons[i] = reg.registerIcon(upgrade.getTextureName()); + } + } + + @Override + public int damageDropped(int meta) { + return meta; + } + + public static class ItemEnderQuarryUpgrade extends ItemBlock { + + public ItemEnderQuarryUpgrade(Block block) { + super(block); + setMaxDamage(0); + setHasSubtypes(true); + } + + @Override + public int getMetadata(int damage) { + return damage; + } + + @Override + public String getUnlocalizedName(final ItemStack stack) { + return this.getUnlocalizedName() + "." + stack.getItemDamage(); + } + } +} diff --git a/src/main/java/com/fouristhenumber/utilitiesinexcess/common/blocks/ender_quarry/EnderQuarryUpgradeManager.java b/src/main/java/com/fouristhenumber/utilitiesinexcess/common/blocks/ender_quarry/EnderQuarryUpgradeManager.java new file mode 100644 index 00000000..bfd42a01 --- /dev/null +++ b/src/main/java/com/fouristhenumber/utilitiesinexcess/common/blocks/ender_quarry/EnderQuarryUpgradeManager.java @@ -0,0 +1,193 @@ +package com.fouristhenumber.utilitiesinexcess.common.blocks.ender_quarry; + +import java.util.HashMap; +import java.util.HashSet; + +import org.jetbrains.annotations.Nullable; + +import com.fouristhenumber.utilitiesinexcess.UtilitiesInExcess; +import com.fouristhenumber.utilitiesinexcess.config.blocks.EnderQuarryConfig; + +public class EnderQuarryUpgradeManager { + + private final HashMap activeUpgrades = new HashMap<>(); + public double totalCostMultiplier = 0.0; + + // Add an upgrade - keeps highest tier + public void addUpgrade(EnderQuarryUpgrade upgrade) { + if (upgrade.isBoolean()) { + activeUpgrades.put(upgrade.name(), upgrade); + } else { + String baseName = upgrade.getTierGroup(); + EnderQuarryUpgrade current = activeUpgrades.get(baseName); + + // Only set if no current upgrade or new one is higher tier + if (current == null || upgrade.getTier() > current.getTier()) { + activeUpgrades.put(baseName, upgrade); + } + } + totalCostMultiplier = getTotalCostMultiplier(); + } + + // Check if a specific upgrade is active + public boolean has(EnderQuarryUpgrade upgrade) { + if (upgrade.isBoolean()) { + return activeUpgrades.containsKey(upgrade.name()); + } else { + EnderQuarryUpgrade current = activeUpgrades.get(upgrade.getTierGroup()); + return current != null && current.getTier() >= upgrade.getTier(); + } + } + + // Get the active upgrade for a tiered upgrade type + public EnderQuarryUpgrade getActive(TieredEnderQuarryUpgrade tieredUpgrade) { + return activeUpgrades.get(tieredUpgrade.getBaseName()); + } + + // Get value for a tiered upgrade type (returns defaultValue if not present) + public double getValue(TieredEnderQuarryUpgrade tieredUpgrade, double defaultValue) { + EnderQuarryUpgrade upgrade = activeUpgrades.get(tieredUpgrade.getBaseName()); + return upgrade != null ? upgrade.getValue() : defaultValue; + } + + // Check if any tier of an upgrade type is active + public boolean hasAny(TieredEnderQuarryUpgrade tieredUpgrade) { + return activeUpgrades.containsKey(tieredUpgrade.getBaseName()); + } + + public void remove(EnderQuarryUpgrade upgrade) { + if (upgrade.isBoolean()) { + activeUpgrades.remove(upgrade.name()); + } else { + activeUpgrades.remove(upgrade.getTierGroup()); + } + totalCostMultiplier = getTotalCostMultiplier(); + } + + public void clear() { + activeUpgrades.clear(); + totalCostMultiplier = 0.0; + } + + /** + * Calculate the total cost multiplier from all active upgrades, mainly used internally. + * Use totalCostMultiplier field for fewer recalculations instead. + */ + public double getTotalCostMultiplier() { + double total = 0.0; + HashSet countedTieredUpgrades = new HashSet<>(); + for (EnderQuarryUpgrade upgrade : EnderQuarryUpgrade.VALUES) { + if (this.has(upgrade)) { + if (upgrade.isBoolean()) { + total += upgrade.cost; + } else { + // Tiered upgrade - only count the highest tier once + TieredEnderQuarryUpgrade tierGroup = upgrade.tierGroup; + if (tierGroup == null || countedTieredUpgrades.contains(tierGroup)) { + continue; + } + countedTieredUpgrades.add(tierGroup); + + total += this.getActive(tierGroup).cost; + } + } + } + return total; + } + + public enum EnderQuarryUpgrade { + + // Boolean upgrades (presence only) + WORLD_HOLE(EnderQuarryConfig.enderQuarryWorldHoleEnergyMultiplier, "upgrade_world_hole"), + SILK_TOUCH(EnderQuarryConfig.enderQuarrySilkTouchEnergyMultiplier, "upgrade_silk_touch"), + PUMP_FLUIDS(EnderQuarryConfig.enderQuarryFluidPumpEnergyMultiplier, "upgrade_pump_fluids"), + + // Tiered upgrades with hardcoded values + SPEED_1(TieredEnderQuarryUpgrade.SPEED, 1, EnderQuarryConfig.enderQuarrySpeed1EnergyMultiplier, + EnderQuarryConfig.enderQuarrySpeed1Multiplier, "upgrade_speed_1"), + SPEED_2(TieredEnderQuarryUpgrade.SPEED, 2, EnderQuarryConfig.enderQuarrySpeed2EnergyMultiplier, + EnderQuarryConfig.enderQuarrySpeed2Multiplier, "upgrade_speed_2"), + SPEED_3(TieredEnderQuarryUpgrade.SPEED, 3, EnderQuarryConfig.enderQuarrySpeed3EnergyMultiplier, + EnderQuarryConfig.enderQuarrySpeed3Multiplier, "upgrade_speed_3"), + + FORTUNE_1(TieredEnderQuarryUpgrade.FORTUNE, 1, EnderQuarryConfig.enderQuarryFortune1EnergyMultiplier, 1, + "upgrade_fortune_1"), + FORTUNE_2(TieredEnderQuarryUpgrade.FORTUNE, 2, EnderQuarryConfig.enderQuarryFortune2EnergyMultiplier, 2, + "upgrade_fortune_2"), + FORTUNE_3(TieredEnderQuarryUpgrade.FORTUNE, 3, EnderQuarryConfig.enderQuarryFortune3EnergyMultiplier, 3, + "upgrade_fortune_3"); + + public static final EnderQuarryUpgrade[] VALUES = values(); + + private final boolean isBoolean; + private final double value; + private final double cost; + private final @Nullable TieredEnderQuarryUpgrade tierGroup; + private final int tier; + private final String textureName; + + // Constructor for boolean upgrades + EnderQuarryUpgrade(double cost, String textureName) { + this.isBoolean = true; + value = 0.0; + this.cost = cost; + tierGroup = null; + tier = 0; + this.textureName = String.format("%s:%s", UtilitiesInExcess.MODID, textureName); + } + + // Constructor for value-based upgrades + EnderQuarryUpgrade(@Nullable TieredEnderQuarryUpgrade tierGroup, int tier, double cost, double value, + String textureName) { + this.isBoolean = false; + this.value = value; + this.cost = cost; + this.tierGroup = tierGroup; + this.tier = tier; + this.textureName = String.format("%s:%s", UtilitiesInExcess.MODID, textureName); + } + + public boolean isBoolean() { + return isBoolean; + } + + public double getValue() { + if (isBoolean) { + throw new IllegalStateException(this + " is a boolean upgrade and has no value"); + } + return value; + } + + public double getCost() { + return cost; + } + + public String getTierGroup() { + if (isBoolean || tierGroup == null) { + throw new IllegalStateException(this + " is a boolean upgrade and has no tier group"); + } + return tierGroup.getBaseName(); + } + + public int getTier() { + if (isBoolean) { + throw new IllegalStateException(this + " is a boolean upgrade and has no tier"); + } + return tier; + } + + public String getTextureName() { + return textureName; + } + } + + public enum TieredEnderQuarryUpgrade { + + SPEED, + FORTUNE; + + public String getBaseName() { + return this.name(); + } + } +} diff --git a/src/main/java/com/fouristhenumber/utilitiesinexcess/common/tileentities/TileEntityEnderMarker.java b/src/main/java/com/fouristhenumber/utilitiesinexcess/common/tileentities/TileEntityEnderMarker.java new file mode 100644 index 00000000..c126c352 --- /dev/null +++ b/src/main/java/com/fouristhenumber/utilitiesinexcess/common/tileentities/TileEntityEnderMarker.java @@ -0,0 +1,493 @@ +package com.fouristhenumber.utilitiesinexcess.common.tileentities; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.LinkedHashMap; +import java.util.List; +import java.util.Map; +import java.util.Optional; +import java.util.Set; +import java.util.concurrent.ConcurrentHashMap; +import java.util.stream.Collectors; +import java.util.stream.Stream; + +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.entity.player.EntityPlayerMP; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.network.play.server.S2APacketParticles; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.ChatComponentText; +import net.minecraft.util.StatCollector; +import net.minecraftforge.common.util.ForgeDirection; + +import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; +import org.joml.Vector2i; + +import com.fouristhenumber.utilitiesinexcess.ModBlocks; +import com.fouristhenumber.utilitiesinexcess.common.tileentities.utils.IFacingTE; +import com.fouristhenumber.utilitiesinexcess.utils.DirectionUtil; +import com.fouristhenumber.utilitiesinexcess.utils.Tuple; +import com.gtnewhorizon.gtnhlib.blockpos.BlockPos; + +public class TileEntityEnderMarker extends TileEntity implements IFacingTE { + + public static final ForgeDirection[] HORIZONTAL_DIRECTIONS = new ForgeDirection[] { ForgeDirection.NORTH, + ForgeDirection.SOUTH, ForgeDirection.WEST, ForgeDirection.EAST }; + public static final ConcurrentHashMap> registeredMarkers = new ConcurrentHashMap<>(); + + public final HashMap> alignedMarkers = new HashMap<>(); + private ForgeDirection facing = ForgeDirection.UNKNOWN; + private int activeDirections = 0; + public MarkerOperationMode operationMode = MarkerOperationMode.DEFAULT; + private boolean hasChangedMode = false; + private int cuboidSize = 16; + + @Override + public void validate() { + super.validate(); + if (worldObj.isRemote) return; + // Always update the marker for the current position, for world load and stale cases + getRegistryForDimension().put(new BlockPos(xCoord, yCoord, zCoord), this); + } + + // Helper to get the marker register for the current dimension + private ConcurrentHashMap getRegistryForDimension() { + int dim = worldObj.provider.dimensionId; + return registeredMarkers.computeIfAbsent(dim, k -> new ConcurrentHashMap<>()); + } + + public @Nullable List checkForBoundary(ForgeDirection starterFacing, EntityPlayer player) { + return switch (operationMode) { + case DEFAULT -> boundaryFromThree(starterFacing); + case SINGLE -> boundaryForSizedCuboid(starterFacing); + case ARBITRARY_LOOP -> boundaryForArbitraryLoop(player); + }; + } + + private @Nullable List boundaryFromThree(ForgeDirection starterFacing) { + for (ForgeDirection dir : HORIZONTAL_DIRECTIONS) { + // Don't check the direction back towards the quarry + if (dir == starterFacing.getOpposite()) continue; + + Tuple secondCorner = alignedMarkers.getOrDefault(dir, null); + if (secondCorner != null && secondCorner.getKey() != null) { + Tuple thirdCorner = Optional + .ofNullable(secondCorner.getKey().alignedMarkers.getOrDefault(DirectionUtil.turnRight90(dir), null)) + .orElse(secondCorner.getKey().alignedMarkers.getOrDefault(DirectionUtil.turnLeft90(dir), null)); + if (thirdCorner != null) { + return Stream + .of( + new Vector2i(this.xCoord, this.zCoord), + new Vector2i(thirdCorner.getValue().x, thirdCorner.getValue().z)) + .collect(Collectors.toList()); + } + } + } + return null; + } + + private List boundaryForSizedCuboid(ForgeDirection facing) { + BlockPos otherCorner = DirectionUtil + .offsetByForward(this.xCoord, this.yCoord, this.zCoord, facing, cuboidSize, 0); + otherCorner = DirectionUtil.offsetByRight(otherCorner, facing, cuboidSize, 0); + return Stream.of(new Vector2i(this.xCoord, this.zCoord), new Vector2i(otherCorner.x, otherCorner.z)) + .collect(Collectors.toList()); + } + + public List boundaryForArbitraryLoop(EntityPlayer player) { + ArrayList stack = new ArrayList<>(); + stack.add(new StackEntry(new LinkedHashMap<>(), this)); + StackEntry lastVisited; + Set markerChain = null; + + searchStack: do { + StackEntry entry = stack.remove(stack.size() - 1); + lastVisited = entry; + + if (entry.current.operationMode != MarkerOperationMode.ARBITRARY_LOOP) { + // Set to arbitrary loop mode to avoid automatic linking to more than 2 directions + entry.current.operationMode = MarkerOperationMode.ARBITRARY_LOOP; + } + + // If we have no discovered aligned markers yet, or the only discovered marker + // is the one we came from (a single back-connection), refresh discovery so we + // can populate any missing/stale connections (e.g. after chunk reload). + if (entry.current.alignedMarkers.isEmpty() || entry.current.alignedMarkers.size() == 1 + && (entry.lastVisited == null || (entry.current.alignedMarkers.get(entry.lastVisited.getValue()) != null + && entry.current.alignedMarkers.get(entry.lastVisited.getValue()) + .getKey() == entry.lastVisited.getKey()))) { + entry.current.checkForAlignedMarkers(entry.current.getActiveDirsFromMeta(), false, true); + } + + int realizedDirections = 0; + for (Map.Entry> otherMarker : entry.current.alignedMarkers + .entrySet()) { + if (otherMarker.getValue() + .getKey() != null) { + // Has not already been visited & we have not already queued 2 new directions from this marker + // (avoid markers with >2 connections) + if (!entry.visitedMarkers.containsKey( + otherMarker.getValue() + .getKey()) + && realizedDirections < 2) { + @SuppressWarnings("unchecked") // Same type + LinkedHashMap visitedMarkers = (LinkedHashMap) entry.visitedMarkers + .clone(); + StackEntry stackEntry = new StackEntry( + visitedMarkers, + otherMarker.getValue() + .getKey(), + entry.current, + otherMarker.getKey() + .getOpposite()); + stack.add(stackEntry); + realizedDirections++; + continue; + } + + // Check if we have completed a loop by arriving at the starter from a different direction + if (otherMarker.getValue() + .getKey() == this + && entry.visitedMarkers.get( + otherMarker.getValue() + .getKey()) + != otherMarker.getKey() + && !entry.visitedMarkers.isEmpty()) { + // Append the last marker + entry.visitedMarkers.put(entry.current, otherMarker.getKey()); + markerChain = entry.visitedMarkers.keySet(); + break searchStack; + } + } + } + } while (!stack.isEmpty()); + + if (markerChain != null) { + ArrayList pointChain = new ArrayList<>(markerChain.size()); + markerChain.forEach((e) -> pointChain.add(new Vector2i(e.xCoord, e.zCoord))); + return pointChain; + } + + player.addChatComponentMessage( + new ChatComponentText( + String.format( + StatCollector.translateToLocal("uie.quarry.scanmessage.5"), + lastVisited.current.xCoord, + lastVisited.current.yCoord, + lastVisited.current.zCoord))); + + // Spawn particles to show where the chain broke + for (Object obj : worldObj.playerEntities) { + EntityPlayerMP playerMP = (EntityPlayerMP) obj; + double distance = player.getDistanceSq(xCoord, yCoord, zCoord); + if (distance < 1024) { // 32 block range + S2APacketParticles packet = new S2APacketParticles( + "flame", + (float) (lastVisited.current.xCoord + 0.5), + (float) (lastVisited.current.yCoord + 3.25), + (float) (lastVisited.current.zCoord + 0.5), + 0.0F, + 1F, + 0.0F, + 0.04F, // speed + 400 // count + ); + playerMP.playerNetServerHandler.sendPacket(packet); + } + } + + return null; + } + + private static class StackEntry { + + // A map of previously visited markers further down the stack & the direction they were visited from + LinkedHashMap visitedMarkers; + TileEntityEnderMarker current; + Tuple lastVisited; + + StackEntry(LinkedHashMap visitedMarkers, TileEntityEnderMarker current) { + this.visitedMarkers = visitedMarkers; + this.current = current; + this.lastVisited = null; + } + + StackEntry(LinkedHashMap visitedMarkers, TileEntityEnderMarker current, + TileEntityEnderMarker previous, ForgeDirection previousDir) { + this(visitedMarkers, current); + this.visitedMarkers.put(previous, previousDir); + lastVisited = new Tuple<>(previous, previousDir); + } + } + + public void checkForAlignedMarkers() { + this.checkForAlignedMarkers(HORIZONTAL_DIRECTIONS, false, false); + } + + /** + * Checks for and establishes connections to aligned markers in the specified directions. + *

+ * This method performs two main operations: + *

+ * Attempts to resolve any null aligned markers by loading their chunks and retrieving + * the actual {@link TileEntityEnderMarker} instances from saved positions. + * + * Scans the dimension registry for new markers that can be connected in the given directions, + * respecting ARBITRARY_LOOP operation mode constraints. + * + * @param dirs The {@link ForgeDirection}s to check for aligned markers + * @param onlyValidate If true, only validates existing connections without establishing new ones + * @param forceMetaDirections If true, only accepts connections where the target marker's metadata + * indicates a connection back to this marker - meant to be used to restore stale + * connections + * + * @see #setAlignedMarker(ForgeDirection, TileEntityEnderMarker) + * @see #removeAlignedMarker(ForgeDirection) + */ + public void checkForAlignedMarkers(@NotNull ForgeDirection[] dirs, boolean onlyValidate, + boolean forceMetaDirections) { + ConcurrentHashMap dimRegistry = getRegistryForDimension(); + + // First try to resolve any null aligned markers from saved positions + for (Map.Entry> entry : new ArrayList<>( + alignedMarkers.entrySet())) { + if (entry.getValue() + .getKey() == null) { + BlockPos alignedMarkerPos = entry.getValue() + .getValue(); + worldObj.getChunkProvider() + .loadChunk(alignedMarkerPos.x >> 4, alignedMarkerPos.z >> 4); + TileEntity te = worldObj.getTileEntity(alignedMarkerPos.x, alignedMarkerPos.y, alignedMarkerPos.z); + if (te instanceof TileEntityEnderMarker marker) { + setAlignedMarker(entry.getKey(), marker); + marker.setAlignedMarker( + entry.getKey() + .getOpposite(), + this); + } else { + removeAlignedMarker(entry.getKey()); + } + } + } + + // Now check for any aligned markers in the given directions + for (ForgeDirection dir : dirs) { + if (!alignedMarkers.containsKey(dir)) { + for (Map.Entry entry : dimRegistry.entrySet()) { + if (operationMode == MarkerOperationMode.ARBITRARY_LOOP && alignedMarkers.size() >= 2) { + // In arbitrary loop mode, only allow 2 connections + break; + } + if (entry.getValue() != null && entry.getValue() != this + && !entry.getValue().alignedMarkers.containsKey(dir.getOpposite()) + && entry.getKey().y == this.yCoord + && (entry.getKey().x == this.xCoord || entry.getKey().z == this.zCoord)) { + int dx = entry.getKey().x - this.xCoord; + int dz = entry.getKey().z - this.zCoord; + + // Don't want markers right next to us + if (Math.max(Math.abs(dx), Math.abs(dz)) < 2) continue; + + ForgeDirection markerDirection; + if (dx == 0) { + markerDirection = dz > 0 ? ForgeDirection.SOUTH : ForgeDirection.NORTH; + } else { + markerDirection = dx > 0 ? ForgeDirection.EAST : ForgeDirection.WEST; + } + if (markerDirection == dir) { + if (forceMetaDirections + && (worldObj.getBlockMetadata(entry.getKey().x, entry.getKey().y, entry.getKey().z) + & (1 << (dir.getOpposite() + .ordinal() - 2))) + == 0) { + // The other marker's metadata does not indicate a (stale) connection to us, skip + continue; + } + // If this other marker is in loop mode only link if it has free connections (less than 2) + if (!onlyValidate && (entry.getValue().operationMode != MarkerOperationMode.ARBITRARY_LOOP + || entry.getValue().alignedMarkers.size() < 2)) { + setAlignedMarker(dir, entry.getValue()); + entry.getValue() + .setAlignedMarker(dir.getOpposite(), this); + // If we aren't in loop mode and just linked to a marker in loop mode, switch to loop + // mode (if we have less than 3 connections) + if (entry.getValue().operationMode == MarkerOperationMode.ARBITRARY_LOOP + && this.operationMode != MarkerOperationMode.ARBITRARY_LOOP + && this.alignedMarkers.size() < 3) { + this.operationMode = MarkerOperationMode.ARBITRARY_LOOP; + } + } else if (!entry.getValue().alignedMarkers.containsKey(dir.getOpposite()) + && (worldObj.getBlockMetadata(entry.getKey().x, entry.getKey().y, entry.getKey().z) + & (1 << (dir.getOpposite() + .ordinal() - 2))) + != 0) { + // Does the active store for this marker not contain us & but the metadata does? + // Suggests we reloaded with previous connections, + // and since we would usually link from "this" to "entry" unlink (just from the + // meta) instead + entry.getValue() + .removeAlignedMarker(dir.getOpposite()); + entry.getValue() + .checkForAlignedMarkers(); + } + } + } + } + } + } + + // Finally check if the block metadata matches the active directions + if (worldObj.getBlockMetadata(this.xCoord, this.yCoord, this.zCoord) != this.activeDirections) { + worldObj.setBlockMetadataWithNotify(xCoord, yCoord, zCoord, this.activeDirections, 2); + } + } + + public void setAlignedMarker(ForgeDirection dir, TileEntityEnderMarker marker) { + alignedMarkers.put(dir, new Tuple<>(marker, new BlockPos(marker.xCoord, marker.yCoord, marker.zCoord))); + int prevActiveDirs = this.activeDirections; + this.activeDirections |= 1 << (dir.ordinal() - 2); + if (prevActiveDirs != activeDirections) { + worldObj.setBlockMetadataWithNotify(xCoord, yCoord, zCoord, this.activeDirections, 2); + } + } + + public void removeAlignedMarker(ForgeDirection dir) { + alignedMarkers.remove(dir); + int prevActiveDirs = this.activeDirections; + this.activeDirections &= ~(1 << (dir.ordinal() - 2)); + if (prevActiveDirs != activeDirections) { + worldObj.setBlockMetadataWithNotify(xCoord, yCoord, zCoord, this.activeDirections, 2); + } + } + + public ForgeDirection[] getActiveDirsFromMeta() { + // Make sure the loaded meta matches the blocks meta + if (worldObj.getBlock(this.xCoord, this.yCoord, this.zCoord) + .equals(ModBlocks.ENDER_MARKER.get()) + && worldObj.getBlockMetadata(this.xCoord, this.yCoord, this.zCoord) != this.activeDirections) { + this.activeDirections = worldObj.getBlockMetadata(this.xCoord, this.yCoord, this.zCoord); + } + + List activeDirList = new ArrayList<>(); + for (ForgeDirection dir : HORIZONTAL_DIRECTIONS) { + // Is the bit for this direction set? + if ((activeDirections & (1 << (dir.ordinal() - 2))) != 0) { + activeDirList.add(dir); + } + } + return activeDirList.toArray(new ForgeDirection[0]); + } + + public void teardownConnections() { + checkForAlignedMarkers(getActiveDirsFromMeta(), true, false); + getRegistryForDimension().remove(new BlockPos(this.xCoord, this.yCoord, this.zCoord)); + for (Map.Entry> alignedMarker : alignedMarkers + .entrySet()) { + TileEntityEnderMarker markerTE = alignedMarker.getValue() + .getKey(); + if (markerTE != null) { + markerTE.removeAlignedMarker( + alignedMarker.getKey() + .getOpposite()); + markerTE.checkForAlignedMarkers(); + } else { + BlockPos alignedMarkerPos = alignedMarker.getValue() + .getValue(); + TileEntity te = worldObj.getTileEntity(alignedMarkerPos.x, alignedMarkerPos.y, alignedMarkerPos.z); + if (te instanceof TileEntityEnderMarker marker) { + marker.removeAlignedMarker( + alignedMarker.getKey() + .getOpposite()); + marker.checkForAlignedMarkers(); + } + } + } + alignedMarkers.clear(); + } + + public String getMode() { + return switch (operationMode) { + case DEFAULT -> "Marker is set to establish a rectangular fence from the first 3 in chain."; + case SINGLE -> "Marker is set to establish a cuboid of length " + this.cuboidSize + + ". Sneak + R-Click to adjust size."; + case ARBITRARY_LOOP -> "Marker is set to establish a full loop of markers that make up a rectilinear polygon back this marker of arbitrary size and shape."; + }; + } + + public void rotateMode() { + // Don't change the mode the first time, want them to be able to read the default + if (!hasChangedMode) { + hasChangedMode = true; + return; + } + int ord = operationMode.ordinal() + 1; + if (ord >= MarkerOperationMode.values().length) { + ord = 0; + } + operationMode = MarkerOperationMode.values()[ord]; + } + + public int increaseCuboidSize() { + int nextSize = cuboidSize * 2; + cuboidSize = nextSize > 512 ? 2 : cuboidSize * 2; + return cuboidSize; + } + + // IFacingTE + @Override + public ForgeDirection getFacing() { + return this.facing; + } + + @Override + public void setFacing(ForgeDirection newFacing) { + this.facing = newFacing; + } + + // TileEntity + @Override + public void invalidate() { + super.invalidate(); + if (!worldObj.isRemote) { + teardownConnections(); + } + } + + @Override + public void onChunkUnload() { + super.onChunkUnload(); + if (!worldObj.isRemote) { + teardownConnections(); + } + } + + @Override + public void readFromNBT(NBTTagCompound compound) { + super.readFromNBT(compound); + readFacingFromNBT(compound); + this.activeDirections = compound.getInteger("meta"); + int dim = compound.getInteger("dim"); + // Can't use getRegistryForDimension yet since worldobj is null + registeredMarkers.computeIfAbsent(dim, k -> new ConcurrentHashMap<>()) + .put(new BlockPos(xCoord, yCoord, zCoord), this); + this.operationMode = MarkerOperationMode.values()[compound.getInteger("mode")]; + this.cuboidSize = compound.getInteger("cuboidSize"); + } + + @Override + public void writeToNBT(NBTTagCompound compound) { + super.writeToNBT(compound); + writeFacingToNBT(compound); + compound.setInteger("meta", this.activeDirections); + compound.setInteger("dim", this.worldObj.provider.dimensionId); + compound.setInteger("mode", this.operationMode.ordinal()); + compound.setInteger("cuboidSize", this.cuboidSize); + } + + public enum MarkerOperationMode { + DEFAULT, + SINGLE, + ARBITRARY_LOOP + } +} diff --git a/src/main/java/com/fouristhenumber/utilitiesinexcess/common/tileentities/TileEntityEnderQuarry.java b/src/main/java/com/fouristhenumber/utilitiesinexcess/common/tileentities/TileEntityEnderQuarry.java new file mode 100644 index 00000000..a7d949f4 --- /dev/null +++ b/src/main/java/com/fouristhenumber/utilitiesinexcess/common/tileentities/TileEntityEnderQuarry.java @@ -0,0 +1,1551 @@ +package com.fouristhenumber.utilitiesinexcess.common.tileentities; + +import java.util.ArrayDeque; +import java.util.ArrayList; +import java.util.Collections; +import java.util.HashMap; +import java.util.HashSet; +import java.util.Iterator; +import java.util.LinkedHashMap; +import java.util.LinkedList; +import java.util.List; +import java.util.Map; +import java.util.Set; +import java.util.TreeSet; +import java.util.UUID; +import java.util.stream.Collectors; +import java.util.stream.Stream; + +import net.minecraft.block.Block; +import net.minecraft.block.material.Material; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.entity.player.EntityPlayerMP; +import net.minecraft.init.Blocks; +import net.minecraft.inventory.IInventory; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.nbt.NBTTagList; +import net.minecraft.server.MinecraftServer; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.ChatComponentText; +import net.minecraft.util.StatCollector; +import net.minecraft.world.ChunkCoordIntPair; +import net.minecraft.world.WorldServer; +import net.minecraftforge.common.util.Constants; +import net.minecraftforge.common.util.FakePlayerFactory; +import net.minecraftforge.common.util.ForgeDirection; +import net.minecraftforge.fluids.Fluid; +import net.minecraftforge.fluids.FluidRegistry; +import net.minecraftforge.fluids.FluidStack; +import net.minecraftforge.fluids.FluidTank; +import net.minecraftforge.fluids.FluidTankInfo; +import net.minecraftforge.fluids.IFluidBlock; +import net.minecraftforge.fluids.IFluidHandler; + +import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; +import org.joml.Vector2i; +import org.joml.Vector4i; + +import com.fouristhenumber.utilitiesinexcess.UtilitiesInExcess; +import com.fouristhenumber.utilitiesinexcess.common.blocks.ender_quarry.BlockEnderQuarryUpgrade; +import com.fouristhenumber.utilitiesinexcess.common.blocks.ender_quarry.EnderQuarryUpgradeManager; +import com.fouristhenumber.utilitiesinexcess.common.tileentities.utils.LoadableTE; +import com.fouristhenumber.utilitiesinexcess.config.blocks.EnderQuarryConfig; +import com.fouristhenumber.utilitiesinexcess.utils.DirectionUtil; +import com.fouristhenumber.utilitiesinexcess.utils.Tuple; +import com.fouristhenumber.utilitiesinexcess.utils.UIEUtils; +import com.gtnewhorizon.gtnhlib.capability.item.ItemSink; +import com.gtnewhorizon.gtnhlib.item.ImmutableItemStack; +import com.gtnewhorizon.gtnhlib.item.InsertionItemStack; +import com.gtnewhorizon.gtnhlib.item.InventoryIterator; +import com.gtnewhorizon.gtnhlib.util.ItemUtil; + +import cofh.api.energy.EnergyStorage; +import cofh.api.energy.IEnergyReceiver; +import it.unimi.dsi.fastutil.objects.Object2IntMap; +import it.unimi.dsi.fastutil.objects.Object2IntOpenCustomHashMap; + +public class TileEntityEnderQuarry extends LoadableTE implements IEnergyReceiver, IFluidHandler { + + public static final int BASE_STEPS_PER_TICK = EnderQuarryConfig.enderQuarryBaseSpeed; + public static final int ITEM_BUFFER_CAPACITY = BASE_STEPS_PER_TICK * 5; // Emptied every 4 ticks + some margin for + // more than one item per block + public static Block REPLACE_BLOCK = Blocks.dirt; + public boolean isCreativeBoosted = false; + private int storedItems; + private Area2d workArea; + private List nextWorkAreas = new LinkedList<>(); + public QuarryWorkState state; + private int dx; + private int dy; + private int dz; + private int lowerYBound; + private int upperYBound; + private int chunkX; + private int chunkZ; + private long brokenBlocksTotal; + private long estimatedTotalBlocks; + private int estimatedSecondsLeft = -1; + private boolean sidesValidated = false; + private boolean redstonePowered = false; + public @Nullable UUID ownerUUID = null; + private final ArrayDeque brokenBlocksSlidingWindow = new ArrayDeque<>(); + private final HashMap sidedItemAcceptors = new LinkedHashMap<>(); + private final HashMap sidedFluidAcceptors = new HashMap<>(); + private final EnderQuarryUpgradeManager upgradeManager = new EnderQuarryUpgradeManager(); + + protected final EnergyStorage energyStorage = new EnergyStorage(EnderQuarryConfig.enderQuarryEnergyStorage); + protected final List fluidStorage = Stream + .generate(() -> new FluidTank(EnderQuarryConfig.enderQuarryFluidTankStorage)) + .limit(EnderQuarryConfig.enderQuarryFluidTankAmount) + .collect(Collectors.toList()); + protected final Object2IntMap<@NotNull ItemStack> itemStorage = new Object2IntOpenCustomHashMap<>( + ITEM_BUFFER_CAPACITY, + UIEUtils.ItemStackHashStrategy.instance); + + public TileEntityEnderQuarry() { + REPLACE_BLOCK = EnderQuarryReplaceBlock.valueOf(EnderQuarryConfig.enderQuarryReplaceBlock).block; + resetQuarry(); + storedItems = 0; + } + + public String getState() { + return switch (state) { + case RUNNING -> String.format( + "Quarry is currently mining at %d %d %d, has already mined/scanned %d blocks.%s", + dx, + dy, + dz, + brokenBlocksTotal, + estimatedSecondsLeft > 0 ? String.format( + " Estimated time remaining: %02d:%02d:%02d.", + estimatedSecondsLeft / 3600, + (estimatedSecondsLeft % 3600) / 60, + (estimatedSecondsLeft % 60)) : ""); + case STOPPED_WAITING_FOR_FLUID_SPACE -> "Quarry is full on fluids."; + case STOPPED_WAITING_FOR_ITEM_SPACE -> "Quarry is full on items."; + case STOPPED_WAITING_FOR_ENERGY -> "Quarry is missing energy."; + case THROTTLED_BY_ENERGY -> "Quarry is running, but not at full speed because of missing energy."; + case STOPPED -> "Quarry is stopped."; + case FINISHED -> String.format( + "Quarry has finished after mining %d blocks%s.", + brokenBlocksTotal, + String.format(storedItems > 0 ? ", still holding %d items" : "", storedItems)); + }; + } + + /** + * Resets the quarry to a state that we can start from if provided with a work area. + * Does not clear stored items, fluids, or energy. + */ + private void resetQuarry() { + state = QuarryWorkState.STOPPED; + brokenBlocksTotal = 0; + estimatedTotalBlocks = 0; + estimatedSecondsLeft = -1; + if (areWeLoadingThisChunk(chunkX, chunkZ)) unloadChunkShifted(chunkX, chunkZ); + workArea = null; + nextWorkAreas.clear(); + } + + public void setWorkArea(Area2d area) { + workArea = area; + dx = area.low.x; + dy = upperYBound; + dz = area.low.y; + chunkX = dx >> 4; + chunkZ = dz >> 4; + } + + /** + * Starts the quarry if it is currently stopped and has a valid work area. + * Attempts to harvest the first block, because updateEntity steps before harvesting. + */ + public void startQuarry() { + if (state == QuarryWorkState.STOPPED && workArea != null) { + state = QuarryWorkState.RUNNING; + Tuple harvestResult = tryHarvestCurrentBlock(); + boolean wasAbleToHarvest = harvestResult.first; + boolean blockWasSkipped = harvestResult.second; + if (wasAbleToHarvest) { + if (!blockWasSkipped) { + removeCurrentBlock(); + } + brokenBlocksTotal++; + } + } + } + + /** + * Calculates the comparator output signal strength based on quarry progress. + * Will be 0 when stopped or no work done, 1-14 for progress, and 15 when finished. + */ + public int getComparatorOutput() { + if (state == QuarryWorkState.STOPPED || estimatedTotalBlocks == 0 || brokenBlocksTotal == 0) { + return 0; + } + double progress = (double) brokenBlocksTotal / (double) Math.max(estimatedTotalBlocks, brokenBlocksTotal); + return (int) Math.floor(progress * 14.0 - 0.05) + (state == QuarryWorkState.FINISHED ? 1 : 0); + } + + /** + * Tries to find a lower Y bound than the default of bedrock level (1), by scanning downwards from the quarry, + * looking for the first marker. (Returns block above the marker, since we don't want to mine the marker itself.) + */ + private int findLowerYBound() { + for (int i = this.yCoord - 2; i > 1; i--) { + if (worldObj.getTileEntity(xCoord, i, zCoord) instanceof TileEntityEnderMarker) { + return i + 1; + } + } + return 1; + } + + /** + * Tries to find a higher Y bound than the default of 5 blocks above the quarry (also configurable), by scanning + * upwards from the quarry, + * looking for the first marker. (Returns block below the marker, since we don't want to mine the marker itself.) + */ + private int findUpperYBound() { + for (int i = this.yCoord + 2; i < 255; i++) { + if (worldObj.getTileEntity(xCoord, i, zCoord) instanceof TileEntityEnderMarker) { + return i - 1; + } + } + return Math.min(this.yCoord + EnderQuarryConfig.enderQuarryDefaultTopPadding, 255); + } + + public void scanForWorkAreaFromMarkers(@Nullable EntityPlayer player) { + boolean foundMarkers = false; + for (ForgeDirection dir : DirectionUtil.HORIZONTAL_DIRECTIONS) { + TileEntity te = worldObj.getTileEntity(xCoord + dir.offsetX, yCoord, zCoord + dir.offsetZ); + if (te instanceof TileEntityEnderMarker marker) { + @Nullable + List scanReturn = marker.checkForBoundary(dir, player); + if (scanReturn != null) { + lowerYBound = findLowerYBound(); + upperYBound = findUpperYBound(); + long estBlocks = 0; + nextWorkAreas.clear(); + + // Do we have a simple rectangle as defined by two points + if (scanReturn.size() == 2) { + setWorkArea(new Area2d(scanReturn.get(0), scanReturn.get(1), true)); + startQuarry(); + // Estimate total blocks to be scanned, based upon work area size and vertical bounds. (Add one + // to each dimension to make it inclusive) + estBlocks = (long) (upperYBound - lowerYBound + 1) * (workArea.height + 1) + * (workArea.width + 1); + if (player != null) + player.addChatComponentMessage( + new ChatComponentText( + String.format( + StatCollector.translateToLocal("uie.quarry.scanmessage.1"), + workArea.low.x, + workArea.low.y, + workArea.high.x, + workArea.high.y, + estBlocks))); + + // Or do we have a more complex rectilinear polygon as defined by many points + } else { + // DEBUG: Clear work area of debug blocks + // Vector2i low = new Vector2i(Integer.MAX_VALUE); + // Vector2i high = new Vector2i(Integer.MIN_VALUE); + // for (Vector2i point : scanReturn) { + // if (point.x < low.x) { + // low.x = point.x; + // } + // if (point.y < low.y) { + // low.y = point.y; + // } + // if (point.x > high.x) { + // high.x = point.x; + // } + // if (point.y > high.y) { + // high.y = point.y; + // } + // } + // for (int x = low.x; x <= high.x; x++) { + // for (int z = low.y; z <= high.y; z++) { + // worldObj.setBlock(x, this.yCoord - 1, z, Blocks.grass); + // } + // } + + nextWorkAreas = computeRectanglesFromRectilinearPointPolygon(scanReturn); + for (Area2d nextWorkArea : nextWorkAreas) { + // Estimate blocks in this area to be scanned, based upon work area size and vertical + // bounds. (Add one to each dimension to make it inclusive) + estBlocks += (long) (upperYBound - lowerYBound + 1) * (nextWorkArea.height + 1) + * (nextWorkArea.width + 1); + } + + if (player != null) + player.addChatComponentMessage( + new ChatComponentText( + String.format( + StatCollector.translateToLocal("uie.quarry.scanmessage.2"), + scanReturn.size(), + estBlocks))); + + setWorkArea(nextWorkAreas.remove(nextWorkAreas.size() - 1)); + startQuarry(); + } + + estimatedTotalBlocks = estBlocks; + return; + } else { + if (player != null) + player.addChatComponentMessage( + new ChatComponentText( + String.format( + StatCollector.translateToLocal("uie.quarry.scanmessage.3"), + marker.xCoord, + marker.yCoord, + marker.zCoord))); + foundMarkers = true; + } + } + } + if (!foundMarkers && player != null) player + .addChatComponentMessage(new ChatComponentText(StatCollector.translateToLocal("uie.quarry.scanmessage.4"))); + } + + private List computeRectanglesFromRectilinearPointPolygon(List points) { + RectilinearEdgePoly poly = new RectilinearEdgePoly(points); + List subAreas = new ArrayList<>(); + + List activeSpans = new ArrayList<>(); + HashMap> shrunkSpansByY = new HashMap<>(); + + // Sweep through y coordinates from bottom to top, skip last since we handle active spans after the loop + for (int i = 0; i < poly.yCoords.size() - 1; i++) { + int y = poly.yCoords.get(i); + + // Find spans at this Y level by intersecting vertical edges + List currentSpans = poly.findSpansAtY(y); + + // Try to merge with active spans (greedy vertical extension) + List newActiveSpans = new ArrayList<>(); + Set mergedIndices = new HashSet<>(); + + for (RectilinearEdgePoly.Span active : activeSpans) { + boolean merged = false; + for (int j = 0; j < currentSpans.size(); j++) { + if (!mergedIndices.contains(j) && active.matches(currentSpans.get(j))) { + // Extend the active span vertically + newActiveSpans.add(new RectilinearEdgePoly.Span(active.x1, active.x2, active.y)); + mergedIndices.add(j); + merged = true; + break; + } + } + + if (!merged) { + // Can't extend this span, output as rectangle + // Check if bottom and top align with actual boundary edges + int lowX = Math.min(active.x1, active.x2) + 1; + int highX = Math.max(active.x1, active.x2) - 1; + boolean intersectsWithBottomBoundary = poly.intersectsWithHorizontalBoundary(active.y, lowX, highX) + && (active.y != y); + boolean intersectsWithTopBoundary = poly.intersectsWithHorizontalBoundary(y, lowX, highX) + && (active.y != y); + + // Check for overlaps with previously shrunk spans which would be excluded, + // And create smaller single-line areas for them + // Store bottom and top spans that were shrunk inwards due to boundary intersections + if (intersectsWithBottomBoundary) { + for (RectilinearEdgePoly.Span span : shrunkSpansByY + .getOrDefault(active.y, Collections.emptyList())) { + // Check if the two intersect horizontally + if (span.pointIsInSpan(lowX)) { + subAreas.add(new Area2d(lowX, active.y, span.getMaxX(), active.y)); + } else if (span.pointIsInSpan(highX)) { + subAreas.add(new Area2d(span.getMinX(), active.y, highX, active.y)); + } + } + shrunkSpansByY.computeIfAbsent(active.y, k -> new ArrayList<>()) + .add(new RectilinearEdgePoly.Span(lowX, highX, active.y)); + } + if (intersectsWithTopBoundary) { + for (RectilinearEdgePoly.Span span : shrunkSpansByY.getOrDefault(y, Collections.emptyList())) { + // Check if the two intersect horizontally + if (span.pointIsInSpan(lowX)) { + subAreas.add(new Area2d(lowX, y, span.getMaxX(), y)); + } else if (span.pointIsInSpan(highX)) { + subAreas.add(new Area2d(span.getMinX(), y, highX, y)); + } + } + shrunkSpansByY.computeIfAbsent(y, k -> new ArrayList<>()) + .add(new RectilinearEdgePoly.Span(lowX, highX, y)); + } + + Area2d subArea = new Area2d( + active.x1, + active.y, + active.x2, + y, + new Vector4i(1, intersectsWithBottomBoundary ? 1 : 0, 1, intersectsWithTopBoundary ? 1 : 0)); + + // The base area should have a width and height on init greater than zero, but that might change + // after + // applying shrinkage. + // We keep any area with width >= 0 and height >= 0 to allow for weird cases with single line areas. + if (subArea.height >= 0 && subArea.width >= 0) subAreas.add(subArea); + } + } + + // Add unmerged current spans as new active spans + for (int j = 0; j < currentSpans.size(); j++) { + if (!mergedIndices.contains(j)) { + newActiveSpans.add(new RectilinearEdgePoly.Span(currentSpans.get(j).x1, currentSpans.get(j).x2, y)); + } + } + + activeSpans = newActiveSpans; + } + + // Output remaining active spans that can't be extended anymore + int lastY = poly.yCoords.get(poly.yCoords.size() - 1); + for (RectilinearEdgePoly.Span span : activeSpans) { + int lowX = Math.min(span.x1, span.x2) + 1; + int highX = Math.max(span.x1, span.x2) - 1; + boolean intersectsWithBottomBoundary = poly.intersectsWithHorizontalBoundary(span.y, lowX, highX) + && (span.y != lastY); + + // Same overlap check as before, just for bottom side now + if (intersectsWithBottomBoundary) { + for (RectilinearEdgePoly.Span shrunkSpan : shrunkSpansByY + .getOrDefault(span.y, Collections.emptyList())) { + // Check if the two intersect horizontally + if (shrunkSpan.pointIsInSpan(lowX)) { + subAreas.add(new Area2d(lowX, span.y, shrunkSpan.getMaxX(), span.y)); + } else if (shrunkSpan.pointIsInSpan(highX)) { + subAreas.add(new Area2d(shrunkSpan.getMinX(), span.y, highX, span.y)); + } + } + } + + // Always shrink top side on last rectangle + subAreas.add( + new Area2d( + span.x1, + span.y, + span.x2, + lastY, + new Vector4i(1, intersectsWithBottomBoundary ? 1 : 0, 1, 1))); + } + + // DEBUG: Draw sub areas on floor + // int color = 0; + // for (Area2d subArea : subAreas) { + // for (int x = subArea.low.x; x <= subArea.high.x; x++) { + // for (int z = subArea.low.y; z <= subArea.high.y; z++) { + // if (worldObj.getBlock(x, this.yCoord - 1, z) == Blocks.wool || worldObj.getBlock(x, this.yCoord - 1, z) == + // Blocks.gold_block) { + // worldObj.setBlock(x, this.yCoord - 1, z, Blocks.gold_block); + // //worldObj.setBlock(x, this.yCoord + 3 + color, z, Blocks.stained_glass, color, 2); + // + // //throw new RuntimeException("Overlapping sub-areas detected at " + x + ", " + z); + // } else { + // worldObj.setBlock(x, this.yCoord - 1, z, Blocks.wool, color, 2); + // } + // } + // } + // color++; + // if (color == 16) { + // color = 0; + // } + // } + + return subAreas; + } + + private static class RectilinearEdgePoly { + + List yCoords; + HashMap> verticalEdgesByX; + HashMap> horizontalEdgesByY; + + RectilinearEdgePoly(List points) { + // Build edges from point list + Iterator iter = points.iterator(); + List edges = new ArrayList<>(); + Vector2i current = null; + Vector2i next = null; + while (iter.hasNext()) { + current = next != null ? next : iter.next(); + next = iter.hasNext() ? iter.next() : points.get(0); + edges.add(new Edge(current, next)); + } + // Connect back to start + if (next != null) edges.add(new Edge(next, points.get(0))); + + // Build list of Y coordinates with points sorted by the lovely tree set + Set ySet = new TreeSet<>(); + // Build vertical edge map for x & y lookups + verticalEdgesByX = new HashMap<>(); + horizontalEdgesByY = new HashMap<>(); + + for (Edge edge : edges) { + ySet.add(edge.p1.y); + ySet.add(edge.p2.y); + if (edge.isVertical()) { + verticalEdgesByX.computeIfAbsent(edge.getX(), k -> new ArrayList<>()) + .add(edge); + } else if (edge.isHorizontal()) { + horizontalEdgesByY.computeIfAbsent(edge.getY(), k -> new ArrayList<>()) + .add(edge); + } + } + yCoords = new ArrayList<>(ySet); + } + + /** + * Find all vertical edges that cross the horizontal line at y + */ + List findSpansAtY(int y) { + // Collect x-coordinates where edges cross + Set xIntersections = new TreeSet<>(); + + for (Map.Entry> entry : verticalEdgesByX.entrySet()) { + for (Edge e : entry.getValue()) { + // Check if this vertical edge crosses y (exclusive on top to avoid double counting) + if (e.getMinY() <= y && e.getMaxY() > y) { + xIntersections.add(entry.getKey()); + } + } + } + + // Pair up intersections to form spans (inside regions) + // Assumes even number of intersections (entering/exiting polygon) + List spans = new ArrayList<>(); + List xCoords = new ArrayList<>(xIntersections); + + for (int i = 0; i < xIntersections.size(); i += 2) { + if (i + 1 < xIntersections.size()) { + spans.add(new Span(xCoords.get(i), xCoords.get(i + 1), y)); + } + } + + return spans; + } + + boolean intersectsWithHorizontalBoundary(int y, int x1, int x2) { + List boundaries = horizontalEdgesByY.getOrDefault(y, Collections.emptyList()); + for (Edge edge : boundaries) { + // Check if [x1, x2] overlaps with [boundary.x1, boundary.x2] + if (x1 <= edge.getMaxX() && x2 >= edge.getMinX()) { + return true; // Our span is contained within a boundary edge + } + } + return false; + } + + static class Edge { + + Vector2i p1, p2; + + Edge(Vector2i p1, Vector2i p2) { + this.p1 = p1; + this.p2 = p2; + } + + boolean isHorizontal() { + return p1.y == p2.y; + } + + boolean isVertical() { + return p1.x == p2.x; + } + + int getY() { + return p1.y; // For horizontal edges + } + + int getX() { + return p1.x; // For vertical edges + } + + int getMinX() { + return Math.min(p1.x, p2.x); + } + + int getMaxX() { + return Math.max(p1.x, p2.x); + } + + int getMinY() { + return Math.min(p1.y, p2.y); + } + + int getMaxY() { + return Math.max(p1.y, p2.y); + } + + @Override + public String toString() { + return p1 + " -> " + p2; + } + } + + static class Span { + + int x1, x2, y; + + Span(int x1, int x2, int y) { + this.x1 = x1; + this.x2 = x2; + this.y = y; + } + + boolean matches(Span other) { + return this.x1 == other.x1 && this.x2 == other.x2; + } + + int getMinX() { + return Math.min(x1, x2); + } + + int getMaxX() { + return Math.max(x1, x2); + } + + /** + * Check if an x value is within the span, assuming y is the same + */ + boolean pointIsInSpan(int x) { + return x >= getMinX() && x <= getMaxX(); + } + } + } + + /** + * Are the current dx & dy & dz in work area bounds + */ + private boolean isInBounds() { + return dy >= lowerYBound && dy <= upperYBound && this.workArea.isInBounds(dx, dz); + } + + /** + * Step the quarry working position by one block + * + * @return True if we can keep moving + */ + private boolean stepPos() { + dy--; + if (dy < lowerYBound) { + // stack is done, move back up + dy = upperYBound; + + boolean resetX = false; + if (dx + 1 >> 4 == chunkX && dx + 1 <= workArea.high.x) { + dx++; + } else { + if (dz + 1 >> 4 == chunkZ && dz + 1 <= workArea.high.y) { + dz++; + resetX = true; + } else { + // next pos up z is a new chunk and maybe oob + if (dz + 1 <= workArea.high.y) { + // just the next chunk + dz++; + unloadChunkShifted(chunkX, chunkZ); + chunkZ++; + loadChunkShifted(chunkX, chunkZ); + resetX = true; + } else { + // the next z slice + if (dx + 1 <= workArea.high.x) { + dx++; + unloadChunkShifted(chunkX, chunkZ); + chunkX++; + dz = workArea.low.y; + chunkZ = workArea.low.y >> 4; + loadChunkShifted(chunkX, chunkZ); + } else { + unloadChunkShifted(chunkX, chunkZ); + // Finished with area + return false; + } + } + } + } + + if (resetX) { + // the distance we have to move left now, lower if we would cross the high x bound + int toMove = dx + 1 > workArea.high.x ? workArea.chunkOffX : 15; + if (dx - toMove >= workArea.low.x) { + dx -= toMove; + } else { + dx = workArea.low.x; + } + } + } + return true; + } + + /** + * Tries to store the resulting resources of the block at the current position, + * and store the items / fluid to the internal storage. + * + * @return A boolean tuple of: <Could we work & harvest the block, Did we skip this block> + */ + private Tuple tryHarvestCurrentBlock() { + Block block = worldObj.getBlock(dx, dy, dz); + if (block.getMaterial() == Material.air || worldObj.isAirBlock(dx, dy, dz) + || block == (upgradeManager.has(EnderQuarryUpgradeManager.EnderQuarryUpgrade.WORLD_HOLE) ? Blocks.air + : REPLACE_BLOCK) + || block.getBlockHardness(worldObj, dx, dy, dz) < 0 + || block.getBlockHardness(worldObj, dx, dy, dz) > 100) { + return new Tuple<>(tryConsumeEnergy(0f, false), true); + } ; + + float hardness = block.getBlockHardness(worldObj, dx, dy, dz); + if (tryConsumeEnergy(hardness, true)) { + return new Tuple<>((harvestAndStoreBlock(block) && tryConsumeEnergy(hardness, false)), false); + } + return new Tuple<>(false, false); + } + + private boolean tryConsumeEnergy(float hardness, boolean simulate) { + // Get base cost multiplier from upgrades, add a multiplier based on hardness (that roughly scales 0 - 10 to 1.0 + // - 1.66) + double costMultiplier = upgradeManager.totalCostMultiplier + (1.0 + 0.8 * (hardness / (hardness + 2))); + int cost = (int) (EnderQuarryConfig.enderQuarryBaseRFCost * costMultiplier); + if (energyStorage.extractEnergy(cost, true) >= cost) { + if (!simulate) { + energyStorage.extractEnergy(cost, false); + } + return true; + } + state = QuarryWorkState.STOPPED_WAITING_FOR_ENERGY; + return false; + } + + /** + * Harvests the block at the current position, and tries to store the resulting items / fluids to internal storage + * + * @return If we could store all resulting items / fluids + */ + private boolean harvestAndStoreBlock(Block block) { + try { + int meta = worldObj.getBlockMetadata(dx, dy, dz); + if (upgradeManager.has(EnderQuarryUpgradeManager.EnderQuarryUpgrade.PUMP_FLUIDS)) { + FluidStack fluid = null; + if ((block == Blocks.water || block == Blocks.flowing_water) && meta == 0) { + fluid = new FluidStack(FluidRegistry.WATER, 1000); + } else if ((block == Blocks.lava || block == Blocks.flowing_water) && meta == 0) { + fluid = new FluidStack(FluidRegistry.LAVA, 1000); + } else if (block instanceof IFluidBlock fluidBlock) { + fluid = fluidBlock.drain(worldObj, dx, dy, dz, false); + } + if (fluid != null) { + return tryStoreFluid(fluid); + } + } + + EntityPlayer fakePlayer = FakePlayerFactory.getMinecraft((WorldServer) worldObj); + @Nullable + List drops = null; + // Try to silk touch if we have the upgrade + if (upgradeManager.has(EnderQuarryUpgradeManager.EnderQuarryUpgrade.SILK_TOUCH)) { + if (block.canSilkHarvest(worldObj, fakePlayer, dx, dy, dz, meta)) { + Item item = Item.getItemFromBlock(block); + if (item != null) { + // Set item damage from meta if the BlockItem has subtypes + drops = Collections.singletonList(new ItemStack(item, 1, item.getHasSubtypes() ? meta : 0)); + } + } + } + // If not silk or we failed to resolve to reasonable drops, get normal drops (with fortune if applicable) + if (drops == null) { + drops = block.getDrops( + worldObj, + dx, + dy, + dz, + meta, + (int) upgradeManager.getValue(EnderQuarryUpgradeManager.TieredEnderQuarryUpgrade.FORTUNE, 0)); + } + // We can accept that the maximum stored amount is sometimes overrun by fortune + if (!drops.isEmpty()) { + return tryStoreItems(drops); + } + + // Block probably just has no drops + return true; + } catch (Exception ignored) { + UtilitiesInExcess.LOG + .error("EQ Failed while trying to harvest block {} at {} {} {}.", block.toString(), dx, dy, dz); + return false; + } + } + + /** + * Tries to store the provided fluid in the internal tanks + * + * @return If we could store all the provided fluid + */ + private boolean tryStoreFluid(FluidStack fluid) { + int toStore = fluid.amount; + for (FluidTank tank : fluidStorage) { + if (toStore > 0) { + toStore -= Math.min(tank.fill(fluid, false), toStore); + } + } + if (toStore == 0) { + toStore = fluid.amount; + for (FluidTank tank : fluidStorage) { + if (toStore > 0) { + toStore -= tank.fill(fluid, true); + } else { + break; + } + } + if (toStore == 0) { + return true; + } + } + state = QuarryWorkState.STOPPED_WAITING_FOR_FLUID_SPACE; + return false; + } + + /** + * Tries to store the provided list of items in the internal item storage + * + * @return If we could store all the provided items + */ + private boolean tryStoreItems(List items) { + int toStore = 0; + for (ItemStack item : items) { + toStore += item != null ? item.stackSize : 0; + } + if (storedItems + toStore <= ITEM_BUFFER_CAPACITY) { + for (ItemStack item : items) { + storeItemToStorage(item); + } + return true; + } + state = QuarryWorkState.STOPPED_WAITING_FOR_ITEM_SPACE; + return false; + } + + private void storeItemToStorage(ItemStack item) { + int stackSize = item.stackSize; + // Use an arbitrary size for all items of this type (type, meta, nbt), + // since we store the amount as the value + item.stackSize = 0; + storedItems += stackSize; + itemStorage.mergeInt(item, stackSize, Integer::sum); + } + + private boolean fluidStorageIsEmpty() { + for (FluidTank tank : fluidStorage) { + if (tank.getFluidAmount() > 0) { + return false; + } + } + return true; + } + + /** + * Tries to eject internally stored items & fluids to adjacent containers + * + * @return False if the adjacent TEs changed without us noticing, and we need to rescan + */ + private boolean ejectStoredToAdjacent() { + if (storedItems > 0) { + for (Map.Entry inventory : sidedItemAcceptors.entrySet()) { + if (inventory.getValue() != null) { + ItemSink sink = ItemUtil.getItemSink(inventory.getValue(), inventory.getKey()); + InventoryIterator iter = sink.sinkIterator(); + if (iter == null) { + continue; + } + + while (iter.hasNext() && storedItems > 0) { + ImmutableItemStack slotContent = iter.next(); + if (slotContent != null) { + // There is already an item in this slot, see if we have more of the same type to add + ItemStack slotItem = slotContent.toStack(); + ItemStack key = slotItem.copy(); + key.stackSize = 0; + + int storedAmount = itemStorage.getOrDefault(key, -1); + if (storedAmount > 0) { + // modifiedStack.stackSize = slotItem.stackSize + toBeAdded; Stack size is handled by + // InsertionItemStack + int addedAmount = storedAmount + - iter.insert(new InsertionItemStack(key.copy(), storedAmount), false); + if (addedAmount > 0) { + itemStorage.put(key, storedAmount - addedAmount); + storedItems -= addedAmount; + } + } + } else { + // Empty slot, don't mind us + Object2IntMap.Entry entry = peekItem(); + if (entry != null) { + ItemStack item = entry.getKey() + .copy(); + int storedAmount = entry.getIntValue(); + // item.stackSize = canBeAddedToSlot; Stack size is handled by InsertionItemStack + int addedAmount = storedAmount + - iter.insert(new InsertionItemStack(item, storedAmount), false); + if (addedAmount > 0) { + itemStorage.put(entry.getKey(), storedAmount - addedAmount); + storedItems -= addedAmount; + } + } else { + // Not sure why, but it seems our inventory is empty even though we thought it wasn't + // Lets re-count instead of breaking things + storedItems = itemStorage.values() + .intStream() + .sum(); + } + } + } + + if (storedItems == 0) break; + } else { + return false; + } + } + } + + if (fluidStorageIsEmpty()) return true; + + for (Map.Entry entry : sidedFluidAcceptors.entrySet()) { + if (entry.getValue() != null) { + for (FluidTank tank : fluidStorage) { + if (tank.getFluidAmount() > 0) { + int toStore = entry.getValue() + .fill( + entry.getKey() + .getOpposite(), + tank.drain(tank.getCapacity(), false), + false); + if (toStore > 0) { + entry.getValue() + .fill( + entry.getKey() + .getOpposite(), + tank.drain(toStore, true), + true); + } + } + } + + if (fluidStorageIsEmpty()) break; + } else { + return false; + } + } + return true; + } + + /** + * Get the first item & int entry in the storage that we actually have something of + * + * @return An item if we have any, null otherwise + */ + public @Nullable Object2IntMap.Entry peekItem() { + for (Object2IntMap.Entry entry : itemStorage.object2IntEntrySet()) { + if (entry.getIntValue() > 0) { + return entry; + } + } + return null; + } + + /** + * Retrieve all stored items, i.e. for the quarry is broken, and we need to drop its contents + * + * @return A list of all stored items as ItemStacks with correct stack sizes + */ + public List retrieveAllItems() { + List items = new ArrayList<>(); + for (Object2IntMap.Entry entry : itemStorage.object2IntEntrySet()) { + if (entry.getIntValue() > 0) { + ItemStack item = entry.getKey() + .copy(); + item.stackSize = entry.getIntValue(); + items.add(item); + } + } + itemStorage.clear(); + storedItems = 0; + return items; + } + + /** + * Checks if the redstone powered state has changed and acts accordingly. + * For a rising edge that means restarting the quarry. + * Should be called when the redstone state might have changed, so on neighbor block change. + */ + public void updateRedstoneState() { + boolean powered = worldObj.isBlockIndirectlyGettingPowered(xCoord, yCoord, zCoord); + if (powered != redstonePowered) { + redstonePowered = powered; + // Was not powered before, is powered now + if (redstonePowered) { + resetQuarry(); + scanForWorkAreaFromMarkers(null); + startQuarry(); + } + } + } + + /** + * Scans all 6 sides for TileEntities that for containers that can accept items or fluids and ender quarry upgrades. + */ + public void scanSidesForTEs() { + sidedFluidAcceptors.clear(); + sidedItemAcceptors.clear(); + upgradeManager.clear(); + ArrayList loadedAdjacentChunks = new ArrayList<>(); + + // Make sure the directly adjacent blocks in different chunks are loaded whilst checking + for (ForgeDirection direction : ForgeDirection.VALID_DIRECTIONS) { + int directionChunkX = (direction.offsetX + this.xCoord) >> 4; + int directionChunkZ = (direction.offsetZ + this.zCoord) >> 4; + if ((directionChunkX != this.selfChunkX || directionChunkZ != this.selfChunkZ) + && !areWeLoadingThisChunk(directionChunkX, directionChunkZ)) { + loadChunkShifted(directionChunkX, directionChunkZ); + loadedAdjacentChunks.add(new ChunkCoordIntPair(directionChunkX, directionChunkZ)); + } + } + + for (ForgeDirection direction : ForgeDirection.VALID_DIRECTIONS) { + TileEntity te = this.worldObj.getTileEntity( + direction.offsetX + this.xCoord, + direction.offsetY + this.yCoord, + direction.offsetZ + this.zCoord); + Block block = this.worldObj.getBlock( + direction.offsetX + this.xCoord, + direction.offsetY + this.yCoord, + direction.offsetZ + this.zCoord); + + ChunkCoordIntPair chunk = new ChunkCoordIntPair( + (direction.offsetX + this.xCoord) >> 4, + (direction.offsetZ + this.zCoord) >> 4); + + if (block instanceof BlockEnderQuarryUpgrade) { + int meta = this.worldObj.getBlockMetadata( + direction.offsetX + this.xCoord, + direction.offsetY + this.yCoord, + direction.offsetZ + this.zCoord); + upgradeManager.addUpgrade(EnderQuarryUpgradeManager.EnderQuarryUpgrade.VALUES[meta]); + } + + if (te instanceof IFluidHandler fluidHandler) { + sidedFluidAcceptors.put(direction, fluidHandler); + // If there is actually a TE present that we want, keep this chunk loaded (if it is a different one) + loadedAdjacentChunks.remove(chunk); + } + + if (direction == ForgeDirection.UP) { + if (te instanceof IInventory inventory) { + sidedItemAcceptors.put(direction, inventory); + } + } + } + + // Unload all the temporarily loaded chunks + for (ChunkCoordIntPair loadedChunk : loadedAdjacentChunks) { + unloadChunk(loadedChunk); + } + } + + /** + * Remove / replace the current block. + * Does not check for anything, should be called after tryHarvestCurrentBlock() returns true. + */ + private void removeCurrentBlock() { + worldObj.setBlock( + dx, + dy, + dz, + upgradeManager.has(EnderQuarryUpgradeManager.EnderQuarryUpgrade.WORLD_HOLE) ? Blocks.air : REPLACE_BLOCK); + } + + /** + * Update the time left data with a new data point of blocks broken this tick & recalculate the estimate every + * second + */ + private void updateTimeLeftEstimate(int newDataPoint) { + brokenBlocksSlidingWindow.add(newDataPoint); + // 15-second sliding window + if (brokenBlocksSlidingWindow.size() > 300) brokenBlocksSlidingWindow.removeFirst(); + + if (worldObj.getTotalWorldTime() % 20 == 0 && estimatedTotalBlocks > brokenBlocksTotal) { + double averageBlocksPerTick = getAverageBlocksPerTick(); + if (averageBlocksPerTick > 0) { + long blocksLeft = estimatedTotalBlocks - brokenBlocksTotal; + estimatedSecondsLeft = (int) (blocksLeft / averageBlocksPerTick / 20); + } else { + estimatedSecondsLeft = -1; + } + } + } + + private double getAverageBlocksPerTick() { + int queuePos = 1; + int currentWeight = 1; + int weightedSum = 0; + int weightTotal = 0; + for (int blocksBrokenInTick : brokenBlocksSlidingWindow) { + weightedSum += blocksBrokenInTick * currentWeight; + weightTotal += currentWeight; + // Increase weight every 20 ticks, to reduce the impact of short-lived spikes that only happened once + if (queuePos % 20 == 0) currentWeight++; + queuePos++; + } + return (double) weightedSum / weightTotal; + } + + // TileEntity & LoadableTE + @Override + public void validate() { + super.validate(); + if (state != QuarryWorkState.FINISHED) { + if (workArea != null) { + loadChunkShifted(chunkX, chunkZ); + } + /* + * preferably we would call scanSidesForTEs() here, however + * the contained getTileEntity() seems to always re-load the chunk at this stage + * which then re-validates back to this function, eventually leading to a stackoverflow + * Instead we set the side check state to false, so that the next updateEntity() call does the scan + */ + sidesValidated = false; + } + } + + // TileEntity + @Override + public void updateEntity() { + if (worldObj.isRemote) return; + if (state == QuarryWorkState.FINISHED && storedItems == 0 && fluidStorageIsEmpty() && ownerUUID == null) { + if (selfIsLoaded) unloadSelf(); + return; + } + // Try to notify owner if the quarry has finished + if (state == QuarryWorkState.FINISHED && ownerUUID != null && worldObj.getTotalWorldTime() % 100 == 0) { + // Check if owner is online + MinecraftServer server = MinecraftServer.getServer(); + if (server != null) { + EntityPlayerMP owner = server.getConfigurationManager().playerEntityList.stream() + .filter( + (EntityPlayerMP player) -> player.getUniqueID() + .equals(ownerUUID)) + .findFirst() + .orElse(null); + if (owner != null) { + owner.addChatMessage( + new ChatComponentText( + String.format( + "Your Ender Quarry at (%d %d %d) in DIM %d has finished.", + xCoord, + yCoord, + zCoord, + worldObj.provider.dimensionId))); + ownerUUID = null; + } + } + } + if (!sidesValidated) { + scanSidesForTEs(); + sidesValidated = true; + } + + // This may mean any mix of: Blocks broken & Blocks skipped + int blocksVisitedThisTick = 0; + // Check if we can harvest the current block if we are stopped by something, but have already started working + if (state != QuarryWorkState.RUNNING && state != QuarryWorkState.FINISHED && state != QuarryWorkState.STOPPED) { + Tuple harvestResult = tryHarvestCurrentBlock(); + boolean wasAbleToHarvest = harvestResult.first; + boolean blockWasSkipped = harvestResult.second; + if (wasAbleToHarvest) { + state = QuarryWorkState.RUNNING; + if (!blockWasSkipped) { + removeCurrentBlock(); + } + blocksVisitedThisTick++; + } + } + + if (state == QuarryWorkState.RUNNING) { + int stepsPerTick = (int) (BASE_STEPS_PER_TICK * (isCreativeBoosted ? 8 : 1) + * upgradeManager.getValue(EnderQuarryUpgradeManager.TieredEnderQuarryUpgrade.SPEED, 1.0)); + while (blocksVisitedThisTick < stepsPerTick && stepPos()) { + // TODO: Remove after this has been tested by others + if (!isInBounds() || this.chunkX > 1000 || this.chunkZ > 1000) { + UtilitiesInExcess.LOG.warn( + "Tried to quarry outside of work area at {} {} {} for work area {}", + dx, + dy, + dz, + this.workArea.toString()); + worldObj.setBlock(dx, dy + 8, dz, Blocks.glass); + throw new RuntimeException( + String.format("Tried to quarry outside of work area at %d %d %d", dx, dy, dz)); + } + + Tuple harvestResult = tryHarvestCurrentBlock(); + boolean wasAbleToHarvest = harvestResult.first; + boolean blockWasSkipped = harvestResult.second; + if (wasAbleToHarvest) { + if (!blockWasSkipped) { + removeCurrentBlock(); + } + blocksVisitedThisTick++; + } else { + // Check if something has stopped us (out of space / energy) + if (state != QuarryWorkState.RUNNING) break; + } + } + if (blocksVisitedThisTick < stepsPerTick && state == QuarryWorkState.RUNNING) { + if (nextWorkAreas.isEmpty()) { + state = QuarryWorkState.FINISHED; + } else { + setWorkArea(nextWorkAreas.remove(nextWorkAreas.size() - 1)); + } + } + if (blocksVisitedThisTick > 0) { + markDirty(); + if (state == QuarryWorkState.STOPPED_WAITING_FOR_ENERGY) { + // We were still able to mine some blocks this tick, so we don't consider this fully stopped + // If we fail to harvest again at the start of the next tick, it will be set to STOPPED_... either + // way + state = QuarryWorkState.THROTTLED_BY_ENERGY; + } + } + + updateTimeLeftEstimate(blocksVisitedThisTick); + this.brokenBlocksTotal += blocksVisitedThisTick; + } + + // Move internally stored stuff to adjacent blocks + if (worldObj.getTotalWorldTime() % 4 == 0 && (storedItems > 0 || !fluidStorageIsEmpty())) { + if (!ejectStoredToAdjacent()) scanSidesForTEs(); + } + } + + @Override + public void readFromNBT(NBTTagCompound nbt) { + super.readFromNBT(nbt); + state = QuarryWorkState.values()[nbt.getInteger("state")]; + if (state != QuarryWorkState.FINISHED) { + // Current work area + workArea = Area2d.fromNBTTag(nbt); + dx = nbt.getInteger("dx"); + dy = nbt.getInteger("dy"); + dz = nbt.getInteger("dz"); + chunkX = dx >> 4; + chunkZ = dz >> 4; + // Y bounds + lowerYBound = nbt.getInteger("lowerYBound"); + upperYBound = nbt.getInteger("upperYBound"); + // Fix for cases where upperYBound was not present yet + if (lowerYBound == upperYBound) upperYBound = this.yCoord + EnderQuarryConfig.enderQuarryDefaultTopPadding; + + // Possible next work areas for complex markers + NBTTagList possibleNextAreas = nbt.getTagList("nextAreas", Constants.NBT.TAG_COMPOUND); + if (possibleNextAreas.tagCount() > 0) { + nextWorkAreas.clear(); + for (int i = 0; i < possibleNextAreas.tagCount(); i++) { + NBTTagCompound tag = possibleNextAreas.getCompoundTagAt(i); + nextWorkAreas.add(Area2d.fromNBTTag(tag)); + } + } + } + redstonePowered = nbt.getBoolean("redstonePowered"); + brokenBlocksTotal = nbt.getLong("brokenBlocks"); + estimatedTotalBlocks = nbt.getLong("estBlocks"); + // Not strictly necessary, but required for waila tooltip + estimatedSecondsLeft = nbt.getInteger("estSecondsLeft"); + ownerUUID = nbt.getString("owner") + .isEmpty() ? null : UUID.fromString(nbt.getString("owner")); + + energyStorage.readFromNBT(nbt); + + NBTTagList tanksNBT = nbt.getTagList("tanks", Constants.NBT.TAG_COMPOUND); + for (int i = 0; i < tanksNBT.tagCount(); i++) { + NBTTagCompound tag = tanksNBT.getCompoundTagAt(i); + int slot = tag.getByte("Slot") & 255; + if (slot < fluidStorage.size()) { + fluidStorage.get(slot) + .readFromNBT(tag); + } + } + + NBTTagList itemsNBT = nbt.getTagList("Items", Constants.NBT.TAG_COMPOUND); + storedItems = 0; + for (int i = 0; i < itemsNBT.tagCount(); i++) { + NBTTagCompound tag = itemsNBT.getCompoundTagAt(i); + ItemStack item = ItemStack.loadItemStackFromNBT(tag); + if (item != null) { + item.stackSize = tag.getShort("Count"); + storeItemToStorage(item); + } + } + } + + @Override + public void writeToNBT(NBTTagCompound nbt) { + super.writeToNBT(nbt); + nbt.setInteger("state", state.ordinal()); + if (state != QuarryWorkState.FINISHED && workArea != null) { + // Work area + workArea.writeNBTTag(nbt); + nbt.setInteger("dx", dx); + nbt.setInteger("dy", dy); + nbt.setInteger("dz", dz); + // Y bounds + nbt.setInteger("lowerYBound", lowerYBound); + nbt.setInteger("upperYBound", upperYBound); + // Possible next work areas for complex markers + NBTTagList areasNBT = new NBTTagList(); + for (Area2d nextArea : nextWorkAreas) { + NBTTagCompound tag = new NBTTagCompound(); + nextArea.writeNBTTag(tag); + areasNBT.appendTag(tag); + } + nbt.setTag("nextAreas", areasNBT); + } + nbt.setBoolean("redstonePowered", redstonePowered); + nbt.setLong("brokenBlocks", brokenBlocksTotal); + nbt.setLong("estBlocks", estimatedTotalBlocks); + // Not strictly necessary, but required for waila tooltip + nbt.setInteger("estSecondsLeft", estimatedSecondsLeft); + nbt.setString("owner", ownerUUID != null ? ownerUUID.toString() : ""); + + energyStorage.writeToNBT(nbt); + + NBTTagList tanksNBT = new NBTTagList(); + for (int i = 0; i < fluidStorage.size(); i++) { + NBTTagCompound tag = new NBTTagCompound(); + tag.setByte("Slot", (byte) i); + fluidStorage.get(i) + .writeToNBT(tag); + tanksNBT.appendTag(tag); + } + nbt.setTag("tanks", tanksNBT); + + NBTTagList itemsNBT = new NBTTagList(); + for (Object2IntMap.Entry entry : itemStorage.object2IntEntrySet()) { + if (entry.getIntValue() > 0 && entry.getKey() != null) { + NBTTagCompound tag = new NBTTagCompound(); + ItemStack item = entry.getKey() + .copy(); + item.writeToNBT(tag); + // Default itemstack uses byte for count, but we can have more than 255 of an item + tag.setShort("Count", (short) entry.getIntValue()); + + itemsNBT.appendTag(tag); + } + } + nbt.setTag("Items", itemsNBT); + } + + // LoadableTE + @Override + public boolean keepsItselfLoaded() { + return state != QuarryWorkState.FINISHED; + } + + // IEnergyReceiver + @Override + public int receiveEnergy(ForgeDirection forgeDirection, int i, boolean b) { + return energyStorage.receiveEnergy(i, b); + } + + @Override + public int getEnergyStored(ForgeDirection forgeDirection) { + return energyStorage.getEnergyStored(); + } + + @Override + public int getMaxEnergyStored(ForgeDirection forgeDirection) { + return energyStorage.getMaxEnergyStored(); + } + + @Override + public boolean canConnectEnergy(ForgeDirection forgeDirection) { + return true; + } + + // IFluidHandler + @Override + public int fill(ForgeDirection from, FluidStack resource, boolean doFill) { + return 0; + } + + @Override + public FluidStack drain(ForgeDirection from, FluidStack resource, boolean doDrain) { + for (FluidTank tank : fluidStorage) { + if (resource != null && resource.isFluidEqual(tank.getFluid())) { + return tank.drain(resource.amount, doDrain); + } + } + return null; + } + + @Override + public FluidStack drain(ForgeDirection from, int maxDrain, boolean doDrain) { + for (FluidTank tank : fluidStorage) { + if (tank.getFluidAmount() > 0) { + return tank.drain(maxDrain, doDrain); + } + } + return null; + } + + @Override + public boolean canFill(ForgeDirection from, Fluid fluid) { + return false; + } + + @Override + public boolean canDrain(ForgeDirection from, Fluid fluid) { + return true; + } + + @Override + public FluidTankInfo[] getTankInfo(ForgeDirection from) { + return fluidStorage.stream() + .map(FluidTank::getInfo) + .toArray(FluidTankInfo[]::new); + } + + public enum QuarryWorkState { + + STOPPED("uie.quarry.state.1"), + STOPPED_WAITING_FOR_FLUID_SPACE("uie.quarry.state.2"), + STOPPED_WAITING_FOR_ITEM_SPACE("uie.quarry.state.3"), + STOPPED_WAITING_FOR_ENERGY("uie.quarry.state.4"), + THROTTLED_BY_ENERGY("uie.quarry.state.5"), + FINISHED("uie.quarry.state.6"), + RUNNING("uie.quarry.state.7"); + + public static final QuarryWorkState[] VALUES = values(); + + public final String localKey; + + QuarryWorkState(String localKey) { + this.localKey = localKey; + } + } + + public static class Area2d { + + // The corner that has the lower x&y + public final Vector2i low; + // The corner that has the higher x&y + public final Vector2i high; + // The width of the entire working area + public int width; + // The height of the entire working area + public int height; + // The distance to the closest lower x chunk border from the high x bound + public int chunkOffX; + + public Area2d(Vector2i first, Vector2i second, Vector4i shrinkMatrix) { + int lowX = Math.min(first.x, second.x) + (shrinkMatrix.x); // Side: left + int lowZ = Math.min(first.y, second.y) + (shrinkMatrix.y); // Side: bottom + int highX = Math.max(first.x, second.x) - (shrinkMatrix.z); // Side: right + int highZ = Math.max(first.y, second.y) - (shrinkMatrix.w); // Side: top + // We explicitly do not rerun min & max here since the shrink matrix might have inverted the area, + // But rather leave it to the caller to handle a 0 null width / height + this.low = new Vector2i(lowX, lowZ); + this.high = new Vector2i(highX, highZ); + this.width = highX - lowX; + this.height = highZ - lowZ; + this.chunkOffX = highX - (highX & -16); + } + + public Area2d(int x1, int z1, int x2, int z2) { + this(new Vector2i(x1, z1), new Vector2i(x2, z2)); + } + + public Area2d(int x1, int z1, int x2, int z2, Vector4i shrinkMatrix) { + this(new Vector2i(x1, z1), new Vector2i(x2, z2), shrinkMatrix); + } + + public Area2d(Vector2i first, Vector2i second) { + // Don't shrink anywhere + this(first, second, new Vector4i(0, 0, 0, 0)); + } + + public Area2d(Vector2i first, Vector2i second, boolean shouldShrink) { + // Shrink equally on all sides if requested + this(first, second, shouldShrink ? new Vector4i(1, 1, 1, 1) : new Vector4i(0, 0, 0, 0)); + } + + public boolean isInBounds(int x, int z) { + return x >= this.low.x && x <= this.high.x && z >= this.low.y && z <= this.high.y; + } + + public void applyShrinkMatrix(Vector4i shrinkMatrix) { + // Same here, we do not check a null / inverted area, but rather leave it up to the caller + this.low.x += shrinkMatrix.x; + this.low.y += shrinkMatrix.y; + this.high.x -= shrinkMatrix.z; + this.high.y -= shrinkMatrix.w; + + this.width = this.high.x - this.low.x; + this.height = this.high.y - this.low.y; + this.chunkOffX = this.high.x - (this.high.x & -16); + } + + public void writeNBTTag(NBTTagCompound nbt) { + NBTTagCompound tag = new NBTTagCompound(); + tag.setInteger("lowX", low.x); + tag.setInteger("lowZ", low.y); + tag.setInteger("highX", high.x); + tag.setInteger("highY", high.y); + + nbt.setTag("area", tag); + } + + public static Area2d fromNBTTag(NBTTagCompound nbt) { + NBTTagCompound tag = nbt.getCompoundTag("area"); + int lowX = tag.getInteger("lowX"); + int lowZ = tag.getInteger("lowZ"); + int highX = tag.getInteger("highX"); + int highZ = tag.getInteger("highY"); + return new Area2d(lowX, lowZ, highX, highZ); + } + + @Override + public boolean equals(Object obj) { + if (this == obj) return true; + if (!(obj instanceof Area2d other)) return false; + return low.equals(other.low) && high.equals(other.high); + } + + @Override + public String toString() { + return String.format("[(%d, %d), (%d, %d)]", this.low.x, this.low.y, this.high.x, this.high.y); + } + } + + private enum EnderQuarryReplaceBlock { + + COBBLE(Blocks.cobblestone), + DIRT(Blocks.dirt), + GLASS(Blocks.glass), + SNOW(Blocks.snow), + STONE(Blocks.stone); + + public final Block block; + + EnderQuarryReplaceBlock(Block block) { + this.block = block; + } + } +} diff --git a/src/main/java/com/fouristhenumber/utilitiesinexcess/common/tileentities/utils/IFacingTE.java b/src/main/java/com/fouristhenumber/utilitiesinexcess/common/tileentities/utils/IFacingTE.java new file mode 100644 index 00000000..e36c3289 --- /dev/null +++ b/src/main/java/com/fouristhenumber/utilitiesinexcess/common/tileentities/utils/IFacingTE.java @@ -0,0 +1,21 @@ +package com.fouristhenumber.utilitiesinexcess.common.tileentities.utils; + +import net.minecraft.nbt.NBTTagCompound; +import net.minecraftforge.common.util.ForgeDirection; + +public interface IFacingTE { + + ForgeDirection getFacing(); + + void setFacing(ForgeDirection newFacing); + + default void writeFacingToNBT(NBTTagCompound nbt) { + if (getFacing() != null) { + nbt.setInteger("facing", getFacing().ordinal()); + } + } + + default void readFacingFromNBT(NBTTagCompound nbt) { + setFacing(ForgeDirection.getOrientation(nbt.getInteger("facing"))); + } +} diff --git a/src/main/java/com/fouristhenumber/utilitiesinexcess/common/tileentities/utils/LoadableTE.java b/src/main/java/com/fouristhenumber/utilitiesinexcess/common/tileentities/utils/LoadableTE.java new file mode 100644 index 00000000..75508ef1 --- /dev/null +++ b/src/main/java/com/fouristhenumber/utilitiesinexcess/common/tileentities/utils/LoadableTE.java @@ -0,0 +1,228 @@ +package com.fouristhenumber.utilitiesinexcess.common.tileentities.utils; + +import javax.annotation.Nullable; + +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.world.ChunkCoordIntPair; +import net.minecraftforge.common.ForgeChunkManager; + +import com.fouristhenumber.utilitiesinexcess.UtilitiesInExcess; + +/** + * Base class for TileEntities that need to keep chunks loaded. + * Handles chunk loading tickets and manages forced chunk loading through Forge's ChunkManager. + */ +public class LoadableTE extends TileEntity { + + /** The chunk loading ticket used to force chunks to stay loaded */ + @Nullable + private ForgeChunkManager.Ticket ticket = null; + protected int selfChunkX; + protected int selfChunkZ; + protected boolean selfIsLoaded = false; + + /** + * Initializes this class after the TE is loaded. + * Makes sure the TE itself will stay loaded if requested. + * Overwrite and call super() to load your own chunks after readFromNBT() is called + */ + @Override + public void validate() { + super.validate(); + selfChunkX = xCoord >> 4; + selfChunkZ = zCoord >> 4; + if (worldObj != null && !worldObj.isRemote) { + if (keepsItselfLoaded()) { + loadSelf(); + } + } + } + + /** + * Forces a chunk to stay loaded. + * Skips loading if attempting to load own chunk and keepsItselfLoaded() returns true. + * + * @param chunkCoord The chunk coordinates to load + */ + public void loadChunk(ChunkCoordIntPair chunkCoord) { + if (selfIsLoaded && chunkCoord.chunkXPos == selfChunkX + && chunkCoord.chunkZPos == selfChunkZ + && keepsItselfLoaded()) return; + if (requestTicket()) { + ForgeChunkManager.forceChunk(ticket, chunkCoord); + } else { + UtilitiesInExcess.LOG.error( + "Failed to get ticket to load chunk at {} {} for Mod {}", + chunkCoord.chunkXPos, + chunkCoord.chunkZPos, + UtilitiesInExcess.MODID); + } + } + + /** + * Forces a chunk to stay loaded using chunk coordinates. + * + * @param x Chunk X coordinate + * @param z Chunk Z coordinate + */ + public void loadChunkShifted(int x, int z) { + loadChunk(new ChunkCoordIntPair(x, z)); + } + + /** + * Forces a chunk to stay loaded using block coordinates. + * + * @param x Block X coordinate + * @param z Block Z coordinate + */ + public void loadChunk(int x, int z) { + loadChunk(new ChunkCoordIntPair(x >> 4, z >> 4)); + } + + /** + * Stops forcing a chunk to stay loaded. + * Skips unloading if attempting to unload own chunk and keepsItselfLoaded() returns true. + * + * @param chunkCoord The chunk coordinates to unload + */ + public void unloadChunk(ChunkCoordIntPair chunkCoord) { + if (chunkCoord.chunkXPos == selfChunkX && chunkCoord.chunkZPos == selfChunkZ && keepsItselfLoaded()) return; + if (requestTicket()) { + ForgeChunkManager.unforceChunk(ticket, chunkCoord); + } else { + UtilitiesInExcess.LOG.error( + "Failed to get ticket to unload? chunk at {} {} for Mod {}", + chunkCoord.chunkXPos, + chunkCoord.chunkZPos, + UtilitiesInExcess.MODID); + } + } + + /** + * Stops forcing a chunk to stay loaded using chunk coordinates. + * + * @param x Chunk X coordinate + * @param z Chunk Z coordinate + */ + public void unloadChunkShifted(int x, int z) { + unloadChunk(new ChunkCoordIntPair(x, z)); + } + + /** + * Stops forcing a chunk to stay loaded using block coordinates. + * + * @param x Block X coordinate + * @param z Block Z coordinate + */ + public void unloadChunk(int x, int z) { + unloadChunk(new ChunkCoordIntPair(x >> 4, z >> 4)); + } + + /** + * Forces the chunk containing this TileEntity to stay loaded. + */ + public void loadSelf() { + if (!selfIsLoaded) { + loadChunkShifted(selfChunkX, selfChunkZ); + selfIsLoaded = true; + } + } + + /** + * Stops forcing the chunk containing this TileEntity to stay loaded. + */ + public void unloadSelf() { + if (selfIsLoaded) { + selfIsLoaded = false; + unloadChunkShifted(selfChunkX, selfChunkZ); + } + } + + /** + * Releases the chunk loading ticket and cleans up all forced chunks. + * Called when the TileEntity is invalidated or the chunk is unloaded. + */ + public void invalidateTicket() { + if (ticket != null) { + ForgeChunkManager.releaseTicket(ticket); + ticket = null; + } + } + + /** + * Requests a chunk loading ticket from Forge's ChunkManager if one doesn't exist. + * + * @return true if a ticket is available (either existing or newly acquired), false otherwise + */ + private boolean requestTicket() { + if (ticket != null) return true; + ticket = ForgeChunkManager + .requestTicket(UtilitiesInExcess.uieInstance, worldObj, ForgeChunkManager.Type.NORMAL); + + if (ticket != null) { + // Store TileEntity coordinates in ticket data for reloading + NBTTagCompound tag = ticket.getModData(); + tag.setInteger("teX", xCoord); + tag.setInteger("teY", yCoord); + tag.setInteger("teZ", zCoord); + } + return ticket != null; + } + + /** + * Called when the world reloads to restore the chunk loading ticket. + * If keepsItselfLoaded() returns true, automatically reloads the chunk containing this TileEntity. + * + * @param ticket The restored chunk loading ticket + */ + public void receiveTicketOnLoad(ForgeChunkManager.Ticket ticket) { + this.ticket = ticket; + if (keepsItselfLoaded()) { + loadSelf(); + } + } + + /** + * Override this method to determine if this TileEntity should keep its own chunk loaded. + * + * @return true if this TileEntity should keep its own chunk loaded, false otherwise + */ + public boolean keepsItselfLoaded() { + return false; + } + + /** + * Check if this TE is already forcing a specific chunk to stay loaded. + * It is advised to load a chunk that is required for the TE to function properly, even if it is already laoded by + * another mod, because that mod may for some reason stop force-loading it. + * + * @return True if we are already loading this chunk, otherwise false. + */ + public boolean areWeLoadingThisChunk(int chunkX, int chunkY) { + ChunkCoordIntPair chunk = new ChunkCoordIntPair(chunkX, chunkY); + return this.ticket != null && this.ticket.getChunkList() + .contains(chunk); + } + + /** + * Called when the chunk containing this TileEntity is unloaded. + * Releases the chunk loading ticket to prevent memory leaks. + */ + @Override + public void onChunkUnload() { + super.onChunkUnload(); + invalidateTicket(); + } + + /** + * Called when this TileEntity is removed from the world. + * Releases the chunk loading ticket to prevent memory leaks. + */ + @Override + public void invalidate() { + super.invalidate(); + invalidateTicket(); + } + +} diff --git a/src/main/java/com/fouristhenumber/utilitiesinexcess/compat/Mods.java b/src/main/java/com/fouristhenumber/utilitiesinexcess/compat/Mods.java index d5d73f19..5ed769c6 100644 --- a/src/main/java/com/fouristhenumber/utilitiesinexcess/compat/Mods.java +++ b/src/main/java/com/fouristhenumber/utilitiesinexcess/compat/Mods.java @@ -12,6 +12,7 @@ public enum Mods { Thaumcraft("Thaumcraft"), NEI("NotEnoughItems"), CraftTweaker("MineTweaker3"), + Waila("Waila"), ; // spotless:on diff --git a/src/main/java/com/fouristhenumber/utilitiesinexcess/compat/waila/TTRenderUIETimeLeftBar.java b/src/main/java/com/fouristhenumber/utilitiesinexcess/compat/waila/TTRenderUIETimeLeftBar.java new file mode 100644 index 00000000..54a57d37 --- /dev/null +++ b/src/main/java/com/fouristhenumber/utilitiesinexcess/compat/waila/TTRenderUIETimeLeftBar.java @@ -0,0 +1,68 @@ +package com.fouristhenumber.utilitiesinexcess.compat.waila; + +import java.awt.Dimension; + +import net.minecraft.client.gui.Gui; + +import mcp.mobius.waila.api.IWailaCommonAccessor; +import mcp.mobius.waila.api.IWailaVariableWidthTooltipRenderer; +import mcp.mobius.waila.api.impl.ModuleRegistrar; +import mcp.mobius.waila.overlay.DisplayUtil; +import mcp.mobius.waila.overlay.OverlayConfig; + +// Based on Waila's new progress bar renderer by super +public class TTRenderUIETimeLeftBar implements IWailaVariableWidthTooltipRenderer { + + int maxStringW; + + public static void register() { + ModuleRegistrar.instance() + .registerTooltipRenderer("waila.uie.progress", new TTRenderUIETimeLeftBar()); // Registration code would go + // here if needed + } + + @Override + public Dimension getSize(String[] params, IWailaCommonAccessor accessor) { + return new Dimension(DisplayUtil.getDisplayWidth(params[2]), 12); + } + + @Override + public void draw(String[] params, IWailaCommonAccessor accessor) { + drawThickBeveledBox(0, 0, maxStringW, 12, 1, 0xFF505050, 0xFF505050, -1); + long progresstime = Long.parseLong(params[0]); + long maxProgresstime = Long.parseLong(params[1]); + String text = params[2]; + if (progresstime > maxProgresstime) maxProgresstime = progresstime; + int progress = (int) ((maxStringW - 1) * ((double) progresstime / maxProgresstime)); + for (int xx = 1; xx < progress; xx++) { + int color = (xx & 1) == 0 ? 0xFF176087 : 0xFF1D84B5; + drawVerticalLine(xx, 1, 12 - 1, color); + } + DisplayUtil.drawString(text, 2, 2, OverlayConfig.fontcolor, true); + } + + public static void drawThickBeveledBox(int x1, int y1, int x2, int y2, int thickness, int topleftcolor, + int botrightcolor, int fillcolor) { + if (fillcolor != -1) { + Gui.drawRect(x1 + 1, y1 + 1, x2 - 1, y2 - 1, fillcolor); + } + Gui.drawRect(x1, y1, x2 - 1, y1 + thickness, topleftcolor); + Gui.drawRect(x1, y1, x1 + thickness, y2 - 1, topleftcolor); + Gui.drawRect(x2 - thickness, y1, x2, y2 - 1, botrightcolor); + Gui.drawRect(x1, y2 - thickness, x2, y2, botrightcolor); + } + + public static void drawVerticalLine(int x1, int y1, int y2, int color) { + Gui.drawRect(x1, y1, x1 + 1, y2, color); + } + + @Override + public void setMaxLineWidth(int width) { + maxStringW = width + 2; + } + + @Override + public int getMaxLineWidth() { + return maxStringW; + } +} diff --git a/src/main/java/com/fouristhenumber/utilitiesinexcess/compat/waila/WailaHandler.java b/src/main/java/com/fouristhenumber/utilitiesinexcess/compat/waila/WailaHandler.java new file mode 100644 index 00000000..ae10ef42 --- /dev/null +++ b/src/main/java/com/fouristhenumber/utilitiesinexcess/compat/waila/WailaHandler.java @@ -0,0 +1,86 @@ +package com.fouristhenumber.utilitiesinexcess.compat.waila; + +import java.util.List; + +import net.minecraft.entity.player.EntityPlayerMP; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.world.World; + +import com.fouristhenumber.utilitiesinexcess.CommonProxy; +import com.fouristhenumber.utilitiesinexcess.common.tileentities.TileEntityEnderQuarry; + +import mcp.mobius.waila.api.IWailaConfigHandler; +import mcp.mobius.waila.api.IWailaDataAccessor; +import mcp.mobius.waila.api.IWailaDataProvider; +import mcp.mobius.waila.api.IWailaRegistrar; +import mcp.mobius.waila.api.SpecialChars; +import mcp.mobius.waila.cbcore.LangUtil; + +/** + * Registered in {@link CommonProxy} via IMC. + */ +public class WailaHandler implements IWailaDataProvider { + + public static void callbackRegister(IWailaRegistrar registrar) { + WailaHandler instance = new WailaHandler(); + registrar.registerBodyProvider(instance, TileEntityEnderQuarry.class); + registrar.registerNBTProvider(instance, TileEntityEnderQuarry.class); + } + + @Override + public ItemStack getWailaStack(IWailaDataAccessor accessor, IWailaConfigHandler config) { + return null; + } + + @Override + public List getWailaHead(ItemStack itemStack, List currenttip, IWailaDataAccessor accessor, + IWailaConfigHandler config) { + return currenttip; + } + + @Override + public List getWailaBody(ItemStack itemStack, List currenttip, IWailaDataAccessor accessor, + IWailaConfigHandler config) { + if (accessor.getTileEntity() instanceof TileEntityEnderQuarry) { + NBTTagCompound nbt = accessor.getNBTData(); + int estimatedSecondsLeft = nbt.getInteger("estSecondsLeft"); + if (estimatedSecondsLeft > 0) currenttip.add( + SpecialChars.getRenderString( + "waila.uie.progress", + String.valueOf(nbt.getLong("brokenBlocks")), + String.valueOf(nbt.getLong("estBlocks")), + // Can't pass the time format string via the localization system since it seems to remove the + // leading zero formatting + LangUtil.instance.translate( + "uie.quarry.waila.timeleft", + String.format( + "%02d:%02d:%02d", + estimatedSecondsLeft / 3600, + (estimatedSecondsLeft % 3600) / 60, + (estimatedSecondsLeft % 60))))); + + TileEntityEnderQuarry.QuarryWorkState state = TileEntityEnderQuarry.QuarryWorkState.VALUES[nbt + .getInteger("state")]; + currenttip.add( + LangUtil.instance.translate("uie.quarry.waila.state", LangUtil.instance.translate(state.localKey))); + } + return currenttip; + } + + @Override + public List getWailaTail(ItemStack itemStack, List currenttip, IWailaDataAccessor accessor, + IWailaConfigHandler config) { + return currenttip; + } + + @Override + public NBTTagCompound getNBTData(EntityPlayerMP player, TileEntity te, NBTTagCompound tag, World world, int x, + int y, int z) { + if (te != null) { + te.writeToNBT(tag); + } + return tag; + } +} diff --git a/src/main/java/com/fouristhenumber/utilitiesinexcess/config/blocks/BlockConfig.java b/src/main/java/com/fouristhenumber/utilitiesinexcess/config/blocks/BlockConfig.java index b1070d77..665358e4 100644 --- a/src/main/java/com/fouristhenumber/utilitiesinexcess/config/blocks/BlockConfig.java +++ b/src/main/java/com/fouristhenumber/utilitiesinexcess/config/blocks/BlockConfig.java @@ -13,6 +13,7 @@ public static void registerConfig() throws ConfigException { ConfigurationManager.registerConfig(CursedEarthConfig.class); ConfigurationManager.registerConfig(EnderLotusConfig.class); ConfigurationManager.registerConfig(GeneratorConfig.class); + ConfigurationManager.registerConfig(EnderQuarryConfig.class); } @Config.DefaultBoolean(true) diff --git a/src/main/java/com/fouristhenumber/utilitiesinexcess/config/blocks/EnderQuarryConfig.java b/src/main/java/com/fouristhenumber/utilitiesinexcess/config/blocks/EnderQuarryConfig.java new file mode 100644 index 00000000..bf847b47 --- /dev/null +++ b/src/main/java/com/fouristhenumber/utilitiesinexcess/config/blocks/EnderQuarryConfig.java @@ -0,0 +1,93 @@ +package com.fouristhenumber.utilitiesinexcess.config.blocks; + +import com.fouristhenumber.utilitiesinexcess.UtilitiesInExcess; +import com.gtnewhorizon.gtnhlib.config.Config; + +@Config(modid = UtilitiesInExcess.MODID, category = "blocks.ender_quarry") +@Config.Comment("Ender Quarry Configuration") +@Config.LangKey("utilitiesinexcess.config.block.ender_quarry") +public class EnderQuarryConfig { + // TODO: Balance everything in here + + @Config.DefaultBoolean(true) + public static boolean enableEnderQuarry; + + @Config.Comment("Default amount of blocks the quarry will mine upwards, added to its own y position.") + @Config.DefaultInt(5) + public static int enderQuarryDefaultTopPadding; + + @Config.Comment("Energy (RF) capacity of the machine.") + @Config.DefaultInt(10_000_000) + public static int enderQuarryEnergyStorage; + + @Config.Comment("Amount of fluid tanks, with one for each fluid type.") + @Config.DefaultInt(2) + public static int enderQuarryFluidTankAmount; + + @Config.Comment("Amount of fluid (in mB) that can be stored per tank.") + @Config.DefaultInt(128_000) + @Config.RangeInt(min = 16_000, max = 1_024_000) + public static int enderQuarryFluidTankStorage; + + @Config.Comment("Base factor of RF that is used per operation. Is influenced by upgrades & block hardness.") + @Config.DefaultInt(100) + @Config.RangeInt(min = 100, max = 1_024_000) + public static int enderQuarryBaseRFCost; + + @Config.DefaultStringList({ "COBBLE", "DIRT", "GLASS", "SNOW", "STONE" }) + @Config.DefaultString("COBBLE") + @Config.Comment("Block type to replace mined blocks with if the world hole upgrade isn't present.") + public static String enderQuarryReplaceBlock; + + @Config.DefaultInt(400) + @Config.Comment("The amount of blocks the quarry tries to mine per tick, without speed upgrades.") + public static int enderQuarryBaseSpeed; + + @Config.DefaultDouble(2D) + @Config.Comment("The multiplier applied to the base speed mine speed.") + public static double enderQuarrySpeed1Multiplier; + + @Config.DefaultDouble(8D) + @Config.Comment("The energy multiplier applied when the upgrade is active.") + public static double enderQuarrySpeed1EnergyMultiplier; + + @Config.DefaultDouble(4D) + @Config.Comment("The multiplier applied to the base speed mine speed.") + public static double enderQuarrySpeed2Multiplier; + + @Config.DefaultDouble(16D) + @Config.Comment("The energy multiplier applied when the upgrade is active.") + public static double enderQuarrySpeed2EnergyMultiplier; + + @Config.DefaultDouble(7D) + @Config.Comment("The multiplier applied to the base speed mine speed.") + public static double enderQuarrySpeed3Multiplier; + + @Config.DefaultDouble(32D) + @Config.Comment("The energy multiplier applied when the upgrade is active.") + public static double enderQuarrySpeed3EnergyMultiplier; + + @Config.DefaultDouble(12D) + @Config.Comment("The energy multiplier applied when the upgrade is active.") + public static double enderQuarryFortune1EnergyMultiplier; + + @Config.DefaultDouble(40D) + @Config.Comment("The energy multiplier applied when the upgrade is active.") + public static double enderQuarryFortune2EnergyMultiplier; + + @Config.DefaultDouble(100D) + @Config.Comment("The energy multiplier applied when the upgrade is active.") + public static double enderQuarryFortune3EnergyMultiplier; + + @Config.DefaultDouble(1.2D) + @Config.Comment("The energy multiplier applied when the upgrade is active.") + public static double enderQuarryWorldHoleEnergyMultiplier; + + @Config.DefaultDouble(8D) + @Config.Comment("The energy multiplier applied when the upgrade is active.") + public static double enderQuarrySilkTouchEnergyMultiplier; + + @Config.DefaultDouble(3D) + @Config.Comment("The energy multiplier applied when the upgrade is active.") + public static double enderQuarryFluidPumpEnergyMultiplier; +} diff --git a/src/main/java/com/fouristhenumber/utilitiesinexcess/utils/DirectionUtil.java b/src/main/java/com/fouristhenumber/utilitiesinexcess/utils/DirectionUtil.java new file mode 100644 index 00000000..41ebce93 --- /dev/null +++ b/src/main/java/com/fouristhenumber/utilitiesinexcess/utils/DirectionUtil.java @@ -0,0 +1,253 @@ +// Copied from U25Core +package com.fouristhenumber.utilitiesinexcess.utils; + +import net.minecraftforge.common.util.ForgeDirection; + +import com.gtnewhorizon.gtnhlib.blockpos.BlockPos; + +public class DirectionUtil { + + public static final ForgeDirection[] HORIZONTAL_DIRECTIONS = new ForgeDirection[] { ForgeDirection.NORTH, + ForgeDirection.SOUTH, ForgeDirection.WEST, ForgeDirection.EAST }; + + public static ForgeDirection turnRight90(ForgeDirection dir) { + return switch (dir) { + case EAST -> ForgeDirection.SOUTH; + case NORTH -> ForgeDirection.EAST; + case SOUTH -> ForgeDirection.WEST; + case WEST -> ForgeDirection.NORTH; + default -> dir; + }; + } + + public static ForgeDirection turnLeft90(ForgeDirection dir) { + return switch (dir) { + case EAST -> ForgeDirection.NORTH; + case NORTH -> ForgeDirection.WEST; + case SOUTH -> ForgeDirection.EAST; + case WEST -> ForgeDirection.SOUTH; + default -> dir; + }; + } + + public static ForgeDirection turn180(ForgeDirection dir) { + return switch (dir) { + case EAST -> ForgeDirection.WEST; + case NORTH -> ForgeDirection.SOUTH; + case SOUTH -> ForgeDirection.NORTH; + case WEST -> ForgeDirection.EAST; + default -> dir; + }; + } + + public static ForgeDirection turnRight270(ForgeDirection dir) { + return turnLeft90(dir); + } + + public static ForgeDirection turnLeft270(ForgeDirection dir) { + return turnRight90(dir); + } + + /** + * Offsets coordinates to the right based on the facing direction + * + * @param pos Current position + * @param facing The direction being faced + * @param amount Number of blocks to offset + * @param vertical Number of blocks to offset vertically (positive = up, negative = down) + * @return New BlockPos offset to the right + */ + public static BlockPos offsetByRight(BlockPos pos, ForgeDirection facing, int amount, int vertical) { + ForgeDirection rightDir = turnRight90(facing); + return new BlockPos(pos.x + rightDir.offsetX * amount, pos.y + vertical, pos.z + rightDir.offsetZ * amount); + } + + /** + * Offsets coordinates to the right based on the facing direction + * + * @param x Current X coordinate + * @param y Current Y coordinate + * @param z Current Z coordinate + * @param facing The direction being faced + * @param amount Number of blocks to offset + * @param vertical Number of blocks to offset vertically (positive = up, negative = down) + * @return New BlockPos offset to the right + */ + public static BlockPos offsetByRight(int x, int y, int z, ForgeDirection facing, int amount, int vertical) { + return offsetByRight(new BlockPos(x, y, z), facing, amount, vertical); + } + + /** + * Offsets coordinates to the right based on the facing direction + * + * @param x Current X coordinate + * @param y Current Y coordinate + * @param z Current Z coordinate + * @param facing The direction being faced + * @param amount Number of blocks to offset + * @param vertical Number of blocks to offset vertically (positive = up, negative = down) + * @return New BlockPos offset to the right + */ + public static BlockPos offsetByRight(int x, int y, int z, ForgeDirection facing, int amount, int vertical, + boolean relative) { + BlockPos pos = offsetByRight(new BlockPos(x, y, z), facing, amount, vertical); + if (relative) { + pos.x = x - pos.x; + pos.y = y - pos.y; + pos.z = z - pos.z; + } + return pos; + } + + /** + * Offsets coordinates to the left based on the facing direction + * + * @param pos Current position + * @param facing The direction being faced + * @param amount Number of blocks to offset + * @param vertical Number of blocks to offset vertically (positive = up, negative = down) + * @return New BlockPos offset to the left + */ + public static BlockPos offsetByLeft(BlockPos pos, ForgeDirection facing, int amount, int vertical) { + ForgeDirection leftDir = turnLeft90(facing); + return new BlockPos(pos.x + leftDir.offsetX * amount, pos.y + vertical, pos.z + leftDir.offsetZ * amount); + } + + /** + * Offsets coordinates to the left based on the facing direction + * + * @param x Current X coordinate + * @param y Current Y coordinate + * @param z Current Z coordinate + * @param facing The direction being faced + * @param amount Number of blocks to offset + * @param vertical Number of blocks to offset vertically (positive = up, negative = down) + * @return New BlockPos offset to the left + */ + public static BlockPos offsetByLeft(int x, int y, int z, ForgeDirection facing, int amount, int vertical) { + return offsetByLeft(new BlockPos(x, y, z), facing, amount, vertical); + } + + /** + * Offsets coordinates to the left based on the facing direction + * + * @param x Current X coordinate + * @param y Current Y coordinate + * @param z Current Z coordinate + * @param facing The direction being faced + * @param amount Number of blocks to offset + * @param vertical Number of blocks to offset vertically (positive = up, negative = down) + * @return New BlockPos offset to the left + */ + public static BlockPos offsetByLeft(int x, int y, int z, ForgeDirection facing, int amount, int vertical, + boolean relative) { + BlockPos pos = offsetByLeft(new BlockPos(x, y, z), facing, amount, vertical); + if (relative) { + pos.x = x - pos.x; + pos.y = y - pos.y; + pos.z = z - pos.z; + } + return pos; + } + + /** + * Offsets coordinates backwards based on the facing direction + * + * @param pos Current position + * @param facing The direction being faced + * @param amount Number of blocks to offset + * @param vertical Number of blocks to offset vertically (positive = up, negative = down) + * @return New BlockPos offset backwards + */ + public static BlockPos offsetByBack(BlockPos pos, ForgeDirection facing, int amount, int vertical) { + ForgeDirection backDir = facing.getOpposite(); + return new BlockPos(pos.x + backDir.offsetX * amount, pos.y + vertical, pos.z + backDir.offsetZ * amount); + } + + /** + * Offsets coordinates backwards based on the facing direction + * + * @param x Current X coordinate + * @param y Current Y coordinate + * @param z Current Z coordinate + * @param facing The direction being faced + * @param amount Number of blocks to offset + * @param vertical Number of blocks to offset vertically (positive = up, negative = down) + * @return New BlockPos offset backwards + */ + public static BlockPos offsetByBack(int x, int y, int z, ForgeDirection facing, int amount, int vertical) { + return offsetByBack(new BlockPos(x, y, z), facing, amount, vertical); + } + + /** + * Offsets coordinates backwards based on the facing direction + * + * @param x Current X coordinate + * @param y Current Y coordinate + * @param z Current Z coordinate + * @param facing The direction being faced + * @param amount Number of blocks to offset + * @param vertical Number of blocks to offset vertically (positive = up, negative = down) + * @return New BlockPos offset backwards + */ + public static BlockPos offsetByBack(int x, int y, int z, ForgeDirection facing, int amount, int vertical, + boolean relative) { + BlockPos pos = offsetByBack(new BlockPos(x, y, z), facing, amount, vertical); + if (relative) { + pos.x = x - pos.x; + pos.y = y - pos.y; + pos.z = z - pos.z; + } + return pos; + } + + /** + * Offsets coordinates forward based on the facing direction + * + * @param pos Current position + * @param facing The direction being faced + * @param amount Number of blocks to offset + * @param vertical Number of blocks to offset vertically (positive = up, negative = down) + * @return New BlockPos offset forward + */ + public static BlockPos offsetByForward(BlockPos pos, ForgeDirection facing, int amount, int vertical) { + return new BlockPos(pos.x + facing.offsetX * amount, pos.y + vertical, pos.z + facing.offsetZ * amount); + } + + /** + * Offsets coordinates forward based on the facing direction + * + * @param x Current X coordinate + * @param y Current Y coordinate + * @param z Current Z coordinate + * @param facing The direction being faced + * @param amount Number of blocks to offset + * @param vertical Number of blocks to offset vertically (positive = up, negative = down) + * @return New BlockPos offset forward + */ + public static BlockPos offsetByForward(int x, int y, int z, ForgeDirection facing, int amount, int vertical) { + return offsetByForward(x, y, z, facing, amount, vertical, false); + } + + /** + * Offsets coordinates forward based on the facing direction + * + * @param x Current X coordinate + * @param y Current Y coordinate + * @param z Current Z coordinate + * @param facing The direction being faced + * @param amount Number of blocks to offset + * @param vertical Number of blocks to offset vertically (positive = up, negative = down) + * @return New BlockPos offset forward + */ + public static BlockPos offsetByForward(int x, int y, int z, ForgeDirection facing, int amount, int vertical, + boolean relative) { + BlockPos pos = offsetByForward(new BlockPos(x, y, z), facing, amount, vertical); + if (relative) { + pos.x = x - pos.x; + pos.y = y - pos.y; + pos.z = z - pos.z; + } + return pos; + } +} diff --git a/src/main/java/com/fouristhenumber/utilitiesinexcess/utils/ForgeEventHandler.java b/src/main/java/com/fouristhenumber/utilitiesinexcess/utils/ForgeEventHandler.java index c1d13dd3..e82b2ba5 100644 --- a/src/main/java/com/fouristhenumber/utilitiesinexcess/utils/ForgeEventHandler.java +++ b/src/main/java/com/fouristhenumber/utilitiesinexcess/utils/ForgeEventHandler.java @@ -6,6 +6,7 @@ import static com.fouristhenumber.utilitiesinexcess.common.items.ItemInvertedIngot.INVERTED_INGOT; import java.util.List; +import java.util.concurrent.ConcurrentHashMap; import java.util.stream.Collectors; import net.minecraft.enchantment.EnchantmentHelper; @@ -22,6 +23,7 @@ import net.minecraftforge.event.entity.living.LivingAttackEvent; import net.minecraftforge.event.entity.living.LivingDeathEvent; import net.minecraftforge.event.world.BlockEvent; +import net.minecraftforge.event.world.WorldEvent; import com.fouristhenumber.utilitiesinexcess.common.blocks.BlockSpike; import com.fouristhenumber.utilitiesinexcess.common.items.ItemInvertedIngot; @@ -31,10 +33,12 @@ import com.fouristhenumber.utilitiesinexcess.common.items.tools.ItemGluttonsAxe; import com.fouristhenumber.utilitiesinexcess.common.items.tools.ItemPrecisionShears; import com.fouristhenumber.utilitiesinexcess.common.renderers.XRayRenderer; +import com.fouristhenumber.utilitiesinexcess.common.tileentities.TileEntityEnderMarker; import com.fouristhenumber.utilitiesinexcess.config.items.unstabletools.AntiParticulateShovelConfig; import com.fouristhenumber.utilitiesinexcess.config.items.unstabletools.DestructionPickaxeConfig; import com.fouristhenumber.utilitiesinexcess.config.items.unstabletools.GluttonsAxeConfig; import com.fouristhenumber.utilitiesinexcess.mixins.early.minecraft.accessors.AccessorEntityLivingBase; +import com.gtnewhorizon.gtnhlib.blockpos.BlockPos; import com.gtnewhorizon.gtnhlib.client.event.LivingEquipmentChangeEvent; import cpw.mods.fml.common.eventhandler.SubscribeEvent; @@ -150,4 +154,18 @@ public void onBlockBroken(BlockEvent.HarvestDropsEvent event) { event.drops.clear(); } } + + @SubscribeEvent + public void onWorldUnload(WorldEvent.Unload event) { + if (event.world.isRemote) return; + + // Clear the entire dimension registry + ConcurrentHashMap dimRegistry = TileEntityEnderMarker.registeredMarkers + .get(event.world.provider.dimensionId); + + if (dimRegistry != null) { + dimRegistry.clear(); + TileEntityEnderMarker.registeredMarkers.remove(event.world.provider.dimensionId); + } + } } diff --git a/src/main/java/com/fouristhenumber/utilitiesinexcess/utils/TEChunkLoadingCallback.java b/src/main/java/com/fouristhenumber/utilitiesinexcess/utils/TEChunkLoadingCallback.java new file mode 100644 index 00000000..0d99ce83 --- /dev/null +++ b/src/main/java/com/fouristhenumber/utilitiesinexcess/utils/TEChunkLoadingCallback.java @@ -0,0 +1,26 @@ +package com.fouristhenumber.utilitiesinexcess.utils; + +import java.util.List; + +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.world.World; +import net.minecraftforge.common.ForgeChunkManager; + +import com.fouristhenumber.utilitiesinexcess.common.tileentities.utils.LoadableTE; + +public class TEChunkLoadingCallback implements ForgeChunkManager.LoadingCallback { + + @Override + public void ticketsLoaded(List tickets, World world) { + for (ForgeChunkManager.Ticket ticket : tickets) { + NBTTagCompound tag = ticket.getModData(); + int x = tag.getInteger("teX"); + int y = tag.getInteger("teY"); + int z = tag.getInteger("teZ"); + + if (world.getTileEntity(x, y, z) instanceof LoadableTE te) { + te.receiveTicketOnLoad(ticket); + } + } + } +} diff --git a/src/main/java/com/fouristhenumber/utilitiesinexcess/utils/Tuple.java b/src/main/java/com/fouristhenumber/utilitiesinexcess/utils/Tuple.java new file mode 100644 index 00000000..c3fa65b9 --- /dev/null +++ b/src/main/java/com/fouristhenumber/utilitiesinexcess/utils/Tuple.java @@ -0,0 +1,20 @@ +package com.fouristhenumber.utilitiesinexcess.utils; + +public class Tuple { + + public final X first; + public final Y second; + + public Tuple(X first, Y second) { + this.first = first; + this.second = second; + } + + public X getKey() { + return this.first; + } + + public Y getValue() { + return this.second; + } +} diff --git a/src/main/java/com/fouristhenumber/utilitiesinexcess/utils/UIEUtils.java b/src/main/java/com/fouristhenumber/utilitiesinexcess/utils/UIEUtils.java index aeea2464..5e65117a 100644 --- a/src/main/java/com/fouristhenumber/utilitiesinexcess/utils/UIEUtils.java +++ b/src/main/java/com/fouristhenumber/utilitiesinexcess/utils/UIEUtils.java @@ -1,8 +1,13 @@ package com.fouristhenumber.utilitiesinexcess.utils; import java.text.DecimalFormat; +import java.util.Objects; import java.util.Random; +import net.minecraft.item.ItemStack; + +import it.unimi.dsi.fastutil.Hash; + public class UIEUtils { public static final Random uieRandom = new Random(); @@ -24,4 +29,23 @@ public static String formatNumber(double number) { public static String formatNumber(float number) { return COMMA_FORMAT.format(number); } + + public static class ItemStackHashStrategy implements Hash.Strategy { + + public static final ItemStackHashStrategy instance = new ItemStackHashStrategy(); + + @Override + public int hashCode(ItemStack itemStack) { + if (itemStack == null || itemStack.getItem() == null) return 0; + return Objects.hash(itemStack.getItem(), itemStack.getItemDamage(), itemStack.getTagCompound()); + } + + @Override + public boolean equals(ItemStack a, ItemStack b) { + if (a == null && b == null) return true; + if (a == null || b == null) return false; + return a.getItem() == b.getItem() && a.getItemDamage() == b.getItemDamage() + && Objects.equals(a.getTagCompound(), b.getTagCompound()); + } + } } diff --git a/src/main/resources/assets/utilitiesinexcess/blockstates/ender_marker.json b/src/main/resources/assets/utilitiesinexcess/blockstates/ender_marker.json new file mode 100644 index 00000000..9c32b905 --- /dev/null +++ b/src/main/resources/assets/utilitiesinexcess/blockstates/ender_marker.json @@ -0,0 +1,5 @@ +{ + "variants": { + "": { "model": "utilitiesinexcess:blocks/ender_marker" } + } +} diff --git a/src/main/resources/assets/utilitiesinexcess/blockstates/ender_quarry.json b/src/main/resources/assets/utilitiesinexcess/blockstates/ender_quarry.json new file mode 100644 index 00000000..c3920a40 --- /dev/null +++ b/src/main/resources/assets/utilitiesinexcess/blockstates/ender_quarry.json @@ -0,0 +1,5 @@ +{ + "variants": { + "": { "model": "utilitiesinexcess:blocks/ender_quarry"} + } +} diff --git a/src/main/resources/assets/utilitiesinexcess/blockstates/ender_quarry_upgrade.json b/src/main/resources/assets/utilitiesinexcess/blockstates/ender_quarry_upgrade.json new file mode 100644 index 00000000..c18c8f19 --- /dev/null +++ b/src/main/resources/assets/utilitiesinexcess/blockstates/ender_quarry_upgrade.json @@ -0,0 +1,13 @@ +{ + "variants": { + "meta=0": { "model": "utilitiesinexcess:blocks/upgrade_world_hole" }, + "meta=1": { "model": "utilitiesinexcess:blocks/upgrade_silk_touch" }, + "meta=2": { "model": "utilitiesinexcess:blocks/upgrade_pump_fluids" }, + "meta=3": { "model": "utilitiesinexcess:blocks/upgrade_speed_1" }, + "meta=4": { "model": "utilitiesinexcess:blocks/upgrade_speed_2" }, + "meta=5": { "model": "utilitiesinexcess:blocks/upgrade_speed_3" }, + "meta=6": { "model": "utilitiesinexcess:blocks/upgrade_fortune_1" }, + "meta=7": { "model": "utilitiesinexcess:blocks/upgrade_fortune_2" }, + "meta=8": { "model": "utilitiesinexcess:blocks/upgrade_fortune_3" } + } +} diff --git a/src/main/resources/assets/utilitiesinexcess/lang/en_US.lang b/src/main/resources/assets/utilitiesinexcess/lang/en_US.lang index b8a22740..f3338622 100644 --- a/src/main/resources/assets/utilitiesinexcess/lang/en_US.lang +++ b/src/main/resources/assets/utilitiesinexcess/lang/en_US.lang @@ -281,3 +281,19 @@ nei.infopage.uie.temporal_gate.2=No monsters will spawn to harass you, and there nei.infopage.uie.temporal_gate.3=Right-click the portal in any other dimension to enter. Right-click the portal in the End of Time to return to where you came from, or shift-right-click it to return to the Overworld's spawn point. nei.infopage.uie.temporal_gate.4=You will appear at the most recent portal placed in the End of Time. If it no longer exists, you will appear at the bedrock below where you originally entered. If even that is gone, the platform will reappear, replacing anything in its way. nei.infopage.uie.temporal_gate.5=§4§oWas that red star in the sky always there? + +uie.quarry.state.1=Stopped +uie.quarry.state.2=Waiting for Fluid Space +uie.quarry.state.3=Waiting for Item Space +uie.quarry.state.4=Waiting for Energy +uie.quarry.state.5=Throttled by Energy +uie.quarry.state.6=Finished +uie.quarry.state.7=Running +uie.quarry.waila.state=Status: %s +uie.quarry.waila.timeleft=Est. Time Left: %s +uie.quarry.scanmessage.1=Found ender marker fence boundary, setting up work area from (%d %d) to (%d %d). Should require %d steps. +uie.quarry.scanmessage.2=Found ender marker fence boundary from %d markers, setting up complex work area. Should require %d steps. +uie.quarry.scanmessage.3=Ender marker at (%d %d %d) failed to set up a fence boundary. +uie.quarry.scanmessage.4=Found no ender markers around quarry. +uie.quarry.scanmessage.5=Failed to complete marker chain, with last marker at (%d %d %d). + diff --git a/src/main/resources/assets/utilitiesinexcess/models/blocks/ender_marker.json b/src/main/resources/assets/utilitiesinexcess/models/blocks/ender_marker.json new file mode 100644 index 00000000..bb56cc3b --- /dev/null +++ b/src/main/resources/assets/utilitiesinexcess/models/blocks/ender_marker.json @@ -0,0 +1,197 @@ +{ + "format_version": "1.9.0", + "credit": "Made with Blockbench", + "texture_size": [32, 32], + "textures": { + "0": "utilitiesinexcess:ender_marker", + "particle": "utilitiesinexcess:ender_marker" + }, + "elements": [ + { + "from": [7, 0, 7.25], + "to": [9, 9.5, 7.25], + "rotation": {"angle": 0, "axis": "y", "origin": [7.75, 0, 8]}, + "faces": { + "north": {"uv": [0, 0, 1, 4.5], "texture": "#0"}, + "east": {"uv": [0, 0, 0, 4.5], "texture": "#0"}, + "south": {"uv": [1, 0, 2, 4.5], "texture": "#0"}, + "west": {"uv": [0, 0, 0, 4.5], "texture": "#0"}, + "up": {"uv": [1, 0, 0, 0], "texture": "#0"}, + "down": {"uv": [1, 0, 0, 0], "texture": "#0"} + } + }, + { + "from": [7.25, 0, 8.75], + "to": [8.75, 9.5, 9], + "rotation": {"angle": 0, "axis": "y", "origin": [7.75, 0, 8]}, + "faces": { + "north": {"uv": [2, 0, 3, 4.5], "texture": "#0"}, + "east": {"uv": [7.5, 1.5, 8, 6], "texture": "#0"}, + "south": {"uv": [3, 0, 4, 4.5], "texture": "#0"}, + "west": {"uv": [6, 7.5, 6.5, 12], "texture": "#0"}, + "up": {"uv": [9.5, 11, 8.5, 10.5], "texture": "#0"}, + "down": {"uv": [11.5, 8.5, 10.5, 9], "texture": "#0"} + } + }, + { + "from": [7, 0, 8.75], + "to": [9, 9.5, 8.75], + "rotation": {"angle": 0, "axis": "y", "origin": [7.75, 0, 8]}, + "faces": { + "north": {"uv": [4, 0, 5, 4.5], "texture": "#0"}, + "east": {"uv": [0, 0, 0, 4.5], "texture": "#0"}, + "south": {"uv": [0, 4.5, 1, 9], "texture": "#0"}, + "west": {"uv": [0, 0, 0, 4.5], "texture": "#0"}, + "up": {"uv": [1, 0, 0, 0], "texture": "#0"}, + "down": {"uv": [1, 0, 0, 0], "texture": "#0"} + } + }, + { + "from": [7, 0, 7.25], + "to": [9, 9.5, 8.75], + "rotation": {"angle": 0, "axis": "y", "origin": [7.75, 0, 8]}, + "faces": { + "north": {"uv": [1, 4.5, 2, 9], "texture": "#0"}, + "east": {"uv": [2, 4.5, 3, 9], "texture": "#0"}, + "south": {"uv": [3, 4.5, 4, 9], "texture": "#0"}, + "west": {"uv": [4, 4.5, 5, 9], "texture": "#0"}, + "up": {"uv": [10.5, 4, 9.5, 3], "texture": "#0"}, + "down": {"uv": [10.5, 4, 9.5, 5], "texture": "#0"} + } + }, + { + "from": [7.25, 0, 7], + "to": [8.75, 9.5, 7.25], + "rotation": {"angle": 0, "axis": "y", "origin": [7.75, 0, 8]}, + "faces": { + "north": {"uv": [5, 0, 6, 4.5], "texture": "#0"}, + "east": {"uv": [7.5, 6, 8, 10.5], "texture": "#0"}, + "south": {"uv": [5, 4.5, 6, 9], "texture": "#0"}, + "west": {"uv": [6.5, 7.5, 7, 12], "texture": "#0"}, + "up": {"uv": [11.5, 9.5, 10.5, 9], "texture": "#0"}, + "down": {"uv": [11.5, 9.5, 10.5, 10], "texture": "#0"} + } + }, + { + "from": [6.625, 9.5, 6.625], + "to": [9.375, 9.75, 9.375], + "rotation": {"angle": 0, "axis": "y", "origin": [8.375, 11.875, 7.875]}, + "faces": { + "north": {"uv": [9.5, 5, 11, 5.5], "texture": "#0"}, + "east": {"uv": [9.5, 5.5, 11, 6], "texture": "#0"}, + "south": {"uv": [9.5, 6, 11, 6.5], "texture": "#0"}, + "west": {"uv": [9.5, 6.5, 11, 7], "texture": "#0"}, + "up": {"uv": [9.5, 3, 8, 1.5], "texture": "#0"}, + "down": {"uv": [9.5, 3, 8, 4.5], "texture": "#0"} + } + }, + { + "from": [5.875, 10, 6.625], + "to": [6.375, 12.75, 9.375], + "rotation": {"angle": 0, "axis": "y", "origin": [7.625, 11.875, 7.875]}, + "faces": { + "north": {"uv": [7, 7.5, 7.5, 9], "texture": "#0"}, + "east": {"uv": [8, 4.5, 9.5, 6], "texture": "#0"}, + "south": {"uv": [7, 9, 7.5, 10.5], "texture": "#0"}, + "west": {"uv": [8, 6, 9.5, 7.5], "texture": "#0"}, + "up": {"uv": [10, 8.5, 9.5, 7], "texture": "#0"}, + "down": {"uv": [10, 8.5, 9.5, 10], "texture": "#0"} + } + }, + { + "from": [9.625, 10, 6.625], + "to": [10.125, 12.75, 9.375], + "rotation": {"angle": 0, "axis": "y", "origin": [10.125, 11.875, 7.875]}, + "faces": { + "north": {"uv": [10, 7, 10.5, 8.5], "texture": "#0"}, + "east": {"uv": [8, 7.5, 9.5, 9], "texture": "#0"}, + "south": {"uv": [10, 8.5, 10.5, 10], "texture": "#0"}, + "west": {"uv": [0, 9, 1.5, 10.5], "texture": "#0"}, + "up": {"uv": [10, 11.5, 9.5, 10], "texture": "#0"}, + "down": {"uv": [10.5, 10, 10, 11.5], "texture": "#0"} + } + }, + { + "from": [6.625, 10, 5.875], + "to": [9.375, 12.75, 6.375], + "rotation": {"angle": 0, "axis": "y", "origin": [8.375, 11.875, 7.375]}, + "faces": { + "north": {"uv": [9, 0, 10.5, 1.5], "texture": "#0"}, + "east": {"uv": [0, 10.5, 0.5, 12], "texture": "#0"}, + "south": {"uv": [1.5, 9, 3, 10.5], "texture": "#0"}, + "west": {"uv": [10.5, 0, 11, 1.5], "texture": "#0"}, + "up": {"uv": [2, 11, 0.5, 10.5], "texture": "#0"}, + "down": {"uv": [3.5, 10.5, 2, 11], "texture": "#0"} + } + }, + { + "from": [6.625, 10, 9.625], + "to": [9.375, 12.75, 10.125], + "rotation": {"angle": 0, "axis": "y", "origin": [8.375, 11.875, 10.625]}, + "faces": { + "north": {"uv": [3, 9, 4.5, 10.5], "texture": "#0"}, + "east": {"uv": [10.5, 3, 11, 4.5], "texture": "#0"}, + "south": {"uv": [4.5, 9, 6, 10.5], "texture": "#0"}, + "west": {"uv": [3.5, 10.5, 4, 12], "texture": "#0"}, + "up": {"uv": [5.5, 11, 4, 10.5], "texture": "#0"}, + "down": {"uv": [12, 4.5, 10.5, 5], "texture": "#0"} + } + }, + { + "from": [6.625, 13, 6.625], + "to": [9.375, 13.25, 9.375], + "rotation": {"angle": 0, "axis": "x", "origin": [8.375, 11.875, 7.875]}, + "faces": { + "north": {"uv": [7, 10.5, 8.5, 11], "texture": "#0"}, + "east": {"uv": [10.5, 7, 12, 7.5], "texture": "#0"}, + "south": {"uv": [10.5, 7.5, 12, 8], "texture": "#0"}, + "west": {"uv": [10.5, 8, 12, 8.5], "texture": "#0"}, + "up": {"uv": [9.5, 10.5, 8, 9], "texture": "#0"}, + "down": {"uv": [11, 1.5, 9.5, 3], "texture": "#0"} + } + }, + { + "from": [6.375, 9.75, 6.375], + "to": [9.625, 13, 9.625], + "rotation": {"angle": 0, "axis": "y", "origin": [7.875, 11.875, 7.875]}, + "faces": { + "north": {"uv": [6, 0, 7.5, 1.5], "texture": "#0"}, + "east": {"uv": [6, 1.5, 7.5, 3], "texture": "#0"}, + "south": {"uv": [6, 3, 7.5, 4.5], "texture": "#0"}, + "west": {"uv": [6, 4.5, 7.5, 6], "texture": "#0"}, + "up": {"uv": [7.5, 7.5, 6, 6], "texture": "#0"}, + "down": {"uv": [9, 0, 7.5, 1.5], "texture": "#0"} + } + } + ], + "display": { + "thirdperson_righthand": { + "translation": [0, 3.75, 0] + }, + "firstperson_righthand": { + "translation": [0, 3, 0] + } + }, + "groups": [ + { + "name": "group", + "origin": [7.75, 0, 8], + "color": 0, + "children": [0, 1, 2, 3, 4] + }, + { + "name": "group", + "origin": [8.125, 11.125, 7.875], + "color": 0, + "children": [ + { + "name": "group", + "origin": [8.375, 11.125, 7.875], + "color": 0, + "children": [5, 6, 7, 8, 9, 10] + }, + 11 + ] + } + ] +} diff --git a/src/main/resources/assets/utilitiesinexcess/models/blocks/ender_quarry.json b/src/main/resources/assets/utilitiesinexcess/models/blocks/ender_quarry.json new file mode 100644 index 00000000..3dd99364 --- /dev/null +++ b/src/main/resources/assets/utilitiesinexcess/models/blocks/ender_quarry.json @@ -0,0 +1,908 @@ +{ + "format_version": "1.9.0", + "credit": "Made with Blockbench", + "texture_size": [64, 64], + "textures": { + "0": "utilitiesinexcess:ender_quarry", + "particle": "utilitiesinexcess:ender_quarry" + }, + "elements": [ + { + "from": [2, 1, 2], + "to": [3, 14, 3], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 0, 8]}, + "faces": { + "north": {"uv": [2, 7, 2.25, 10.25], "texture": "#0"}, + "east": {"uv": [2.25, 7, 2.5, 10.25], "texture": "#0"}, + "south": {"uv": [2.5, 7, 2.75, 10.25], "texture": "#0"}, + "west": {"uv": [2.75, 7, 3, 10.25], "texture": "#0"}, + "up": {"uv": [11.5, 3.25, 11.25, 3], "texture": "#0"}, + "down": {"uv": [12.75, 11.75, 12.5, 12], "texture": "#0"} + } + }, + { + "from": [1, 0, 2], + "to": [3, 1, 14], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 0, 7]}, + "faces": { + "north": {"uv": [12, 6.25, 12.5, 6.5], "texture": "#0"}, + "east": {"uv": [7, 3, 10, 3.25], "texture": "#0"}, + "south": {"uv": [12, 6.5, 12.5, 6.75], "texture": "#0"}, + "west": {"uv": [7, 3.25, 10, 3.5], "texture": "#0"}, + "up": {"uv": [3, 6, 2.5, 3], "texture": "#0"}, + "down": {"uv": [3.5, 3, 3, 6], "texture": "#0"} + } + }, + { + "from": [2, 1, 3], + "to": [3, 3, 13], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 0, 7]}, + "faces": { + "north": {"uv": [6.25, 12, 6.5, 12.5], "texture": "#0"}, + "east": {"uv": [0, 5, 2.5, 5.5], "texture": "#0"}, + "south": {"uv": [12, 6.75, 12.25, 7.25], "texture": "#0"}, + "west": {"uv": [0, 5.5, 2.5, 6], "texture": "#0"}, + "up": {"uv": [8.75, 11.5, 8.5, 9], "texture": "#0"}, + "down": {"uv": [9, 9, 8.75, 11.5], "texture": "#0"} + } + }, + { + "from": [1, 3, 2], + "to": [3, 4, 14], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 0, 7]}, + "faces": { + "north": {"uv": [11, 3.75, 11.5, 4], "texture": "#0"}, + "east": {"uv": [7, 2.5, 10, 2.75], "texture": "#0"}, + "south": {"uv": [12, 6, 12.5, 6.25], "texture": "#0"}, + "west": {"uv": [7, 2.75, 10, 3], "texture": "#0"}, + "up": {"uv": [3, 3, 2.5, 0], "texture": "#0"}, + "down": {"uv": [3.5, 0, 3, 3], "texture": "#0"} + } + }, + { + "from": [1, 14, 3], + "to": [3, 16, 13], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 0, 7]}, + "faces": { + "north": {"uv": [9.5, 2, 10, 2.5], "texture": "#0"}, + "east": {"uv": [6.5, 4, 9, 4.5], "texture": "#0"}, + "south": {"uv": [10.5, 3.5, 11, 4], "texture": "#0"}, + "west": {"uv": [4.5, 6.5, 7, 7], "texture": "#0"}, + "up": {"uv": [0.5, 9.5, 0, 7], "texture": "#0"}, + "down": {"uv": [1, 7, 0.5, 9.5], "texture": "#0"} + } + }, + { + "from": [1, 1, 14], + "to": [2, 3, 15], + "rotation": {"angle": 0, "axis": "y", "origin": [7, 0, 7]}, + "faces": { + "north": {"uv": [12, 7.25, 12.25, 7.75], "texture": "#0"}, + "east": {"uv": [10, 12, 10.25, 12.5], "texture": "#0"}, + "south": {"uv": [10.25, 12, 10.5, 12.5], "texture": "#0"}, + "west": {"uv": [10.5, 12, 10.75, 12.5], "texture": "#0"}, + "up": {"uv": [13, 3.25, 12.75, 3], "texture": "#0"}, + "down": {"uv": [13, 3.25, 12.75, 3.5], "texture": "#0"} + } + }, + { + "from": [2, 3, 13], + "to": [3, 14, 14], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 0, 6]}, + "faces": { + "north": {"uv": [6.5, 9, 6.75, 11.75], "texture": "#0"}, + "east": {"uv": [6.75, 9, 7, 11.75], "texture": "#0"}, + "south": {"uv": [7, 9, 7.25, 11.75], "texture": "#0"}, + "west": {"uv": [7.25, 9, 7.5, 11.75], "texture": "#0"}, + "up": {"uv": [13, 3.75, 12.75, 3.5], "texture": "#0"}, + "down": {"uv": [4, 12.75, 3.75, 13], "texture": "#0"} + } + }, + { + "from": [2, 0, 1], + "to": [14, 1, 3], + "rotation": {"angle": 0, "axis": "y", "origin": [7, 0, 8]}, + "faces": { + "north": {"uv": [7, 3.5, 10, 3.75], "texture": "#0"}, + "east": {"uv": [12, 7.75, 12.5, 8], "texture": "#0"}, + "south": {"uv": [7, 3.75, 10, 4], "texture": "#0"}, + "west": {"uv": [12, 11.75, 12.5, 12], "texture": "#0"}, + "up": {"uv": [6.5, 0.5, 3.5, 0], "texture": "#0"}, + "down": {"uv": [6.5, 0.5, 3.5, 1], "texture": "#0"} + } + }, + { + "from": [3, 1, 2], + "to": [13, 3, 3], + "rotation": {"angle": 0, "axis": "y", "origin": [7, 0, 8]}, + "faces": { + "north": {"uv": [6.5, 4.5, 9, 5], "texture": "#0"}, + "east": {"uv": [10.75, 12, 11, 12.5], "texture": "#0"}, + "south": {"uv": [6.5, 5, 9, 5.5], "texture": "#0"}, + "west": {"uv": [12, 12, 12.25, 12.5], "texture": "#0"}, + "up": {"uv": [11.5, 5.25, 9, 5], "texture": "#0"}, + "down": {"uv": [11.5, 5.25, 9, 5.5], "texture": "#0"} + } + }, + { + "from": [2, 3, 1], + "to": [14, 4, 3], + "rotation": {"angle": 0, "axis": "y", "origin": [7, 0, 8]}, + "faces": { + "north": {"uv": [5.5, 7, 8.5, 7.25], "texture": "#0"}, + "east": {"uv": [1.5, 12.25, 2, 12.5], "texture": "#0"}, + "south": {"uv": [7, 6.5, 10, 6.75], "texture": "#0"}, + "west": {"uv": [2, 12.25, 2.5, 12.5], "texture": "#0"}, + "up": {"uv": [6.5, 1.5, 3.5, 1], "texture": "#0"}, + "down": {"uv": [6.5, 1.5, 3.5, 2], "texture": "#0"} + } + }, + { + "from": [2, 0, 2], + "to": [3, 1, 14], + "rotation": {"angle": 0, "axis": "y", "origin": [7, 0, 7]}, + "faces": { + "north": {"uv": [12.75, 3.75, 13, 4], "texture": "#0"}, + "east": {"uv": [7, 6.75, 10, 7], "texture": "#0"}, + "south": {"uv": [4, 12.75, 4.25, 13], "texture": "#0"}, + "west": {"uv": [5.5, 7.25, 8.5, 7.5], "texture": "#0"}, + "up": {"uv": [5.75, 10.5, 5.5, 7.5], "texture": "#0"}, + "down": {"uv": [6, 7.5, 5.75, 10.5], "texture": "#0"} + } + }, + { + "from": [3, 0, 2], + "to": [13, 1, 3], + "rotation": {"angle": 0, "axis": "y", "origin": [7, 0, 7]}, + "faces": { + "north": {"uv": [9, 5.5, 11.5, 5.75], "texture": "#0"}, + "east": {"uv": [12.75, 4, 13, 4.25], "texture": "#0"}, + "south": {"uv": [9, 5.75, 11.5, 6], "texture": "#0"}, + "west": {"uv": [4.25, 12.75, 4.5, 13], "texture": "#0"}, + "up": {"uv": [11.5, 6.25, 9, 6], "texture": "#0"}, + "down": {"uv": [11.5, 6.25, 9, 6.5], "texture": "#0"} + } + }, + { + "from": [3, 0, 3], + "to": [13, 1, 13], + "rotation": {"angle": 0, "axis": "y", "origin": [7, 0, 7]}, + "faces": { + "north": {"uv": [9, 7.5, 11.5, 7.75], "texture": "#0"}, + "east": {"uv": [9, 7.75, 11.5, 8], "texture": "#0"}, + "south": {"uv": [9, 9, 11.5, 9.25], "texture": "#0"}, + "west": {"uv": [9, 9.25, 11.5, 9.5], "texture": "#0"}, + "up": {"uv": [2.5, 2.5, 0, 0], "texture": "#0"}, + "down": {"uv": [2.5, 2.5, 0, 5], "texture": "#0"} + } + }, + { + "from": [3, 0, 13], + "to": [13, 1, 14], + "rotation": {"angle": 0, "axis": "y", "origin": [7, 0, 7]}, + "faces": { + "north": {"uv": [9.5, 0, 12, 0.25], "texture": "#0"}, + "east": {"uv": [12.75, 4.25, 13, 4.5], "texture": "#0"}, + "south": {"uv": [9.5, 0.25, 12, 0.5], "texture": "#0"}, + "west": {"uv": [4.5, 12.75, 4.75, 13], "texture": "#0"}, + "up": {"uv": [12, 0.75, 9.5, 0.5], "texture": "#0"}, + "down": {"uv": [12, 0.75, 9.5, 1], "texture": "#0"} + } + }, + { + "from": [13, 0, 2], + "to": [14, 1, 14], + "rotation": {"angle": 0, "axis": "y", "origin": [7, 0, 7]}, + "faces": { + "north": {"uv": [12.75, 4.5, 13, 4.75], "texture": "#0"}, + "east": {"uv": [6, 7.5, 9, 7.75], "texture": "#0"}, + "south": {"uv": [4.75, 12.75, 5, 13], "texture": "#0"}, + "west": {"uv": [6, 7.75, 9, 8], "texture": "#0"}, + "up": {"uv": [6.25, 11, 6, 8], "texture": "#0"}, + "down": {"uv": [6.5, 8, 6.25, 11], "texture": "#0"} + } + }, + { + "from": [2, 0, 13], + "to": [14, 1, 15], + "rotation": {"angle": 0, "axis": "y", "origin": [7, 0, 6]}, + "faces": { + "north": {"uv": [6.5, 8, 9.5, 8.25], "texture": "#0"}, + "east": {"uv": [12.25, 2, 12.75, 2.25], "texture": "#0"}, + "south": {"uv": [6.5, 8.25, 9.5, 8.5], "texture": "#0"}, + "west": {"uv": [12.25, 2.25, 12.75, 2.5], "texture": "#0"}, + "up": {"uv": [6.5, 2.5, 3.5, 2], "texture": "#0"}, + "down": {"uv": [6.5, 2.5, 3.5, 3], "texture": "#0"} + } + }, + { + "from": [2, 1, 13], + "to": [14, 3, 14], + "rotation": {"angle": 0, "axis": "y", "origin": [7, 0, 6]}, + "faces": { + "north": {"uv": [3.5, 3, 6.5, 3.5], "texture": "#0"}, + "east": {"uv": [2.5, 12.25, 2.75, 12.75], "texture": "#0"}, + "south": {"uv": [3.5, 3.5, 6.5, 4], "texture": "#0"}, + "west": {"uv": [12.25, 2.5, 12.5, 3], "texture": "#0"}, + "up": {"uv": [9.5, 8.75, 6.5, 8.5], "texture": "#0"}, + "down": {"uv": [11.5, 7, 8.5, 7.25], "texture": "#0"} + } + }, + { + "from": [2, 3, 13], + "to": [14, 4, 15], + "rotation": {"angle": 0, "axis": "y", "origin": [7, 0, 6]}, + "faces": { + "north": {"uv": [8.5, 7.25, 11.5, 7.5], "texture": "#0"}, + "east": {"uv": [2.75, 12.25, 3.25, 12.5], "texture": "#0"}, + "south": {"uv": [6.5, 8.75, 9.5, 9], "texture": "#0"}, + "west": {"uv": [3.25, 12.25, 3.75, 12.5], "texture": "#0"}, + "up": {"uv": [6.5, 4.5, 3.5, 4], "texture": "#0"}, + "down": {"uv": [6.5, 4.5, 3.5, 5], "texture": "#0"} + } + }, + { + "from": [2, 14, 1], + "to": [14, 16, 3], + "rotation": {"angle": 0, "axis": "y", "origin": [7, 0, 8]}, + "faces": { + "north": {"uv": [3.5, 5, 6.5, 5.5], "texture": "#0"}, + "east": {"uv": [11, 3.25, 11.5, 3.75], "texture": "#0"}, + "south": {"uv": [3.5, 5.5, 6.5, 6], "texture": "#0"}, + "west": {"uv": [4.5, 11, 5, 11.5], "texture": "#0"}, + "up": {"uv": [3, 6.5, 0, 6], "texture": "#0"}, + "down": {"uv": [6, 6, 3, 6.5], "texture": "#0"} + } + }, + { + "from": [2, 14, 13], + "to": [14, 16, 15], + "rotation": {"angle": 0, "axis": "y", "origin": [7, 0, 6]}, + "faces": { + "north": {"uv": [6, 6, 9, 6.5], "texture": "#0"}, + "east": {"uv": [5, 11, 5.5, 11.5], "texture": "#0"}, + "south": {"uv": [0, 6.5, 3, 7], "texture": "#0"}, + "west": {"uv": [6, 11, 6.5, 11.5], "texture": "#0"}, + "up": {"uv": [9.5, 0.5, 6.5, 0], "texture": "#0"}, + "down": {"uv": [9.5, 0.5, 6.5, 1], "texture": "#0"} + } + }, + { + "from": [14, 1, 1], + "to": [15, 3, 2], + "rotation": {"angle": 0, "axis": "y", "origin": [7, 0, 7]}, + "faces": { + "north": {"uv": [3.75, 12.25, 4, 12.75], "texture": "#0"}, + "east": {"uv": [4, 12.25, 4.25, 12.75], "texture": "#0"}, + "south": {"uv": [4.25, 12.25, 4.5, 12.75], "texture": "#0"}, + "west": {"uv": [4.5, 12.25, 4.75, 12.75], "texture": "#0"}, + "up": {"uv": [13, 5, 12.75, 4.75], "texture": "#0"}, + "down": {"uv": [5.25, 12.75, 5, 13], "texture": "#0"} + } + }, + { + "from": [13, 1, 2], + "to": [14, 14, 3], + "rotation": {"angle": 0, "axis": "y", "origin": [6, 0, 8]}, + "faces": { + "north": {"uv": [4.5, 7, 4.75, 10.25], "texture": "#0"}, + "east": {"uv": [4.75, 7, 5, 10.25], "texture": "#0"}, + "south": {"uv": [5, 7, 5.25, 10.25], "texture": "#0"}, + "west": {"uv": [5.25, 7, 5.5, 10.25], "texture": "#0"}, + "up": {"uv": [5.5, 13, 5.25, 12.75], "texture": "#0"}, + "down": {"uv": [5.75, 12.75, 5.5, 13], "texture": "#0"} + } + }, + { + "from": [13, 0, 2], + "to": [15, 1, 14], + "rotation": {"angle": 0, "axis": "y", "origin": [6, 0, 7]}, + "faces": { + "north": {"uv": [12.25, 4.5, 12.75, 4.75], "texture": "#0"}, + "east": {"uv": [9, 4, 12, 4.25], "texture": "#0"}, + "south": {"uv": [12.25, 4.75, 12.75, 5], "texture": "#0"}, + "west": {"uv": [9, 4.25, 12, 4.5], "texture": "#0"}, + "up": {"uv": [7, 4, 6.5, 1], "texture": "#0"}, + "down": {"uv": [3.5, 6.5, 3, 9.5], "texture": "#0"} + } + }, + { + "from": [13, 1, 3], + "to": [14, 3, 13], + "rotation": {"angle": 0, "axis": "y", "origin": [6, 0, 7]}, + "faces": { + "north": {"uv": [12.25, 5, 12.5, 5.5], "texture": "#0"}, + "east": {"uv": [6.5, 5.5, 9, 6], "texture": "#0"}, + "south": {"uv": [12.25, 5.5, 12.5, 6], "texture": "#0"}, + "west": {"uv": [7, 1, 9.5, 1.5], "texture": "#0"}, + "up": {"uv": [0.25, 12, 0, 9.5], "texture": "#0"}, + "down": {"uv": [0.5, 9.5, 0.25, 12], "texture": "#0"} + } + }, + { + "from": [13, 3, 2], + "to": [15, 4, 14], + "rotation": {"angle": 0, "axis": "y", "origin": [6, 0, 7]}, + "faces": { + "north": {"uv": [6.5, 12.25, 7, 12.5], "texture": "#0"}, + "east": {"uv": [9, 4.5, 12, 4.75], "texture": "#0"}, + "south": {"uv": [12.25, 6.75, 12.75, 7], "texture": "#0"}, + "west": {"uv": [9, 4.75, 12, 5], "texture": "#0"}, + "up": {"uv": [4, 9.5, 3.5, 6.5], "texture": "#0"}, + "down": {"uv": [4.5, 6.5, 4, 9.5], "texture": "#0"} + } + }, + { + "from": [1, 1, 1], + "to": [2, 3, 2], + "rotation": {"angle": 0, "axis": "y", "origin": [2, 3, 1]}, + "faces": { + "north": {"uv": [7, 12.25, 7.25, 12.75], "texture": "#0"}, + "east": {"uv": [12.25, 7, 12.5, 7.5], "texture": "#0"}, + "south": {"uv": [7.25, 12.25, 7.5, 12.75], "texture": "#0"}, + "west": {"uv": [7.5, 12.25, 7.75, 12.75], "texture": "#0"}, + "up": {"uv": [13, 5.75, 12.75, 5.5], "texture": "#0"}, + "down": {"uv": [6, 12.75, 5.75, 13], "texture": "#0"} + } + }, + { + "from": [13, 14, 3], + "to": [15, 16, 13], + "rotation": {"angle": 0, "axis": "y", "origin": [6, 0, 7]}, + "faces": { + "north": {"uv": [11, 8.5, 11.5, 9], "texture": "#0"}, + "east": {"uv": [7, 1.5, 9.5, 2], "texture": "#0"}, + "south": {"uv": [11, 9.5, 11.5, 10], "texture": "#0"}, + "west": {"uv": [7, 2, 9.5, 2.5], "texture": "#0"}, + "up": {"uv": [1.5, 9.5, 1, 7], "texture": "#0"}, + "down": {"uv": [2, 7, 1.5, 9.5], "texture": "#0"} + } + }, + { + "from": [14, 1, 14], + "to": [15, 3, 15], + "rotation": {"angle": 0, "axis": "y", "origin": [7, 0, 7]}, + "faces": { + "north": {"uv": [7.75, 12.25, 8, 12.75], "texture": "#0"}, + "east": {"uv": [8, 12.25, 8.25, 12.75], "texture": "#0"}, + "south": {"uv": [12.25, 8, 12.5, 8.5], "texture": "#0"}, + "west": {"uv": [8.25, 12.25, 8.5, 12.75], "texture": "#0"}, + "up": {"uv": [13, 6, 12.75, 5.75], "texture": "#0"}, + "down": {"uv": [6.25, 12.75, 6, 13], "texture": "#0"} + } + }, + { + "from": [13, 3, 13], + "to": [14, 14, 14], + "rotation": {"angle": 0, "axis": "y", "origin": [6, 0, 6]}, + "faces": { + "north": {"uv": [7.5, 9, 7.75, 11.75], "texture": "#0"}, + "east": {"uv": [7.75, 9, 8, 11.75], "texture": "#0"}, + "south": {"uv": [8, 9, 8.25, 11.75], "texture": "#0"}, + "west": {"uv": [8.25, 9, 8.5, 11.75], "texture": "#0"}, + "up": {"uv": [13, 6.25, 12.75, 6], "texture": "#0"}, + "down": {"uv": [6.5, 12.75, 6.25, 13], "texture": "#0"} + } + }, + { + "from": [6, 7, 7], + "to": [9, 8, 8], + "rotation": {"angle": 0, "axis": "y", "origin": [7, 7, 7]}, + "faces": { + "north": {"uv": [12, 3, 12.75, 3.25], "texture": "#0"}, + "east": {"uv": [12.75, 6.25, 13, 6.5], "texture": "#0"}, + "south": {"uv": [3.25, 12, 4, 12.25], "texture": "#0"}, + "west": {"uv": [6.5, 12.75, 6.75, 13], "texture": "#0"}, + "up": {"uv": [12.75, 3.5, 12, 3.25], "texture": "#0"}, + "down": {"uv": [12.75, 3.5, 12, 3.75], "texture": "#0"} + } + }, + { + "from": [6, 6, 6], + "to": [8, 7, 7], + "rotation": {"angle": 0, "axis": "y", "origin": [6, 6, 6]}, + "faces": { + "north": {"uv": [12.25, 7.5, 12.75, 7.75], "texture": "#0"}, + "east": {"uv": [12.75, 7, 13, 7.25], "texture": "#0"}, + "south": {"uv": [12.25, 8.5, 12.75, 8.75], "texture": "#0"}, + "west": {"uv": [7.25, 12.75, 7.5, 13], "texture": "#0"}, + "up": {"uv": [12.75, 9, 12.25, 8.75], "texture": "#0"}, + "down": {"uv": [9.5, 12.25, 9, 12.5], "texture": "#0"} + } + }, + { + "from": [5, 5, 5], + "to": [7, 6, 6], + "rotation": {"angle": 0, "axis": "y", "origin": [6, 5, 5]}, + "faces": { + "north": {"uv": [9.5, 12.25, 10, 12.5], "texture": "#0"}, + "east": {"uv": [12.75, 7.25, 13, 7.5], "texture": "#0"}, + "south": {"uv": [12.25, 9.75, 12.75, 10], "texture": "#0"}, + "west": {"uv": [7.5, 12.75, 7.75, 13], "texture": "#0"}, + "up": {"uv": [12.75, 10.25, 12.25, 10], "texture": "#0"}, + "down": {"uv": [12.75, 10.25, 12.25, 10.5], "texture": "#0"} + } + }, + { + "from": [4, 4, 4], + "to": [5, 5, 5], + "rotation": {"angle": 0, "axis": "y", "origin": [5, 4, 4]}, + "faces": { + "north": {"uv": [12.75, 7.5, 13, 7.75], "texture": "#0"}, + "east": {"uv": [7.75, 12.75, 8, 13], "texture": "#0"}, + "south": {"uv": [8, 12.75, 8.25, 13], "texture": "#0"}, + "west": {"uv": [8.25, 12.75, 8.5, 13], "texture": "#0"}, + "up": {"uv": [13, 8.75, 12.75, 8.5], "texture": "#0"}, + "down": {"uv": [13, 8.75, 12.75, 9], "texture": "#0"} + } + }, + { + "from": [7, 8, 8], + "to": [10, 9, 9], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 8]}, + "faces": { + "north": {"uv": [12, 3.75, 12.75, 4], "texture": "#0"}, + "east": {"uv": [9, 12.75, 9.25, 13], "texture": "#0"}, + "south": {"uv": [4, 12, 4.75, 12.25], "texture": "#0"}, + "west": {"uv": [12.75, 9, 13, 9.25], "texture": "#0"}, + "up": {"uv": [12.75, 4.25, 12, 4], "texture": "#0"}, + "down": {"uv": [12.75, 4.25, 12, 4.5], "texture": "#0"} + } + }, + { + "from": [9, 9, 8], + "to": [10, 10, 9], + "rotation": {"angle": 0, "axis": "y", "origin": [9, 9, 8]}, + "faces": { + "north": {"uv": [9.25, 12.75, 9.5, 13], "texture": "#0"}, + "east": {"uv": [12.75, 9.25, 13, 9.5], "texture": "#0"}, + "south": {"uv": [9.75, 12.75, 10, 13], "texture": "#0"}, + "west": {"uv": [12.75, 9.75, 13, 10], "texture": "#0"}, + "up": {"uv": [10.25, 13, 10, 12.75], "texture": "#0"}, + "down": {"uv": [13, 10, 12.75, 10.25], "texture": "#0"} + } + }, + { + "from": [7, 8, 7], + "to": [8, 9, 8], + "rotation": {"angle": 0, "axis": "y", "origin": [7, 8, 7]}, + "faces": { + "north": {"uv": [10.25, 12.75, 10.5, 13], "texture": "#0"}, + "east": {"uv": [12.75, 10.25, 13, 10.5], "texture": "#0"}, + "south": {"uv": [10.5, 12.75, 10.75, 13], "texture": "#0"}, + "west": {"uv": [12.75, 10.5, 13, 10.75], "texture": "#0"}, + "up": {"uv": [11, 13, 10.75, 12.75], "texture": "#0"}, + "down": {"uv": [13, 10.75, 12.75, 11], "texture": "#0"} + } + }, + { + "from": [7, 7, 8], + "to": [8, 8, 9], + "rotation": {"angle": 0, "axis": "y", "origin": [7, 7, 8]}, + "faces": { + "north": {"uv": [11, 12.75, 11.25, 13], "texture": "#0"}, + "east": {"uv": [12.75, 11, 13, 11.25], "texture": "#0"}, + "south": {"uv": [12.75, 11.25, 13, 11.5], "texture": "#0"}, + "west": {"uv": [12.75, 11.5, 13, 11.75], "texture": "#0"}, + "up": {"uv": [13, 12, 12.75, 11.75], "texture": "#0"}, + "down": {"uv": [13, 12, 12.75, 12.25], "texture": "#0"} + } + }, + { + "from": [8, 9, 9], + "to": [10, 10, 10], + "rotation": {"angle": 0, "axis": "y", "origin": [9, 8, 8]}, + "faces": { + "north": {"uv": [12.25, 10.5, 12.75, 10.75], "texture": "#0"}, + "east": {"uv": [12.75, 12.25, 13, 12.5], "texture": "#0"}, + "south": {"uv": [12.25, 10.75, 12.75, 11], "texture": "#0"}, + "west": {"uv": [12.75, 12.5, 13, 12.75], "texture": "#0"}, + "up": {"uv": [12.75, 11.25, 12.25, 11], "texture": "#0"}, + "down": {"uv": [12.75, 11.25, 12.25, 11.5], "texture": "#0"} + } + }, + { + "from": [9, 10, 10], + "to": [11, 11, 11], + "rotation": {"angle": 0, "axis": "y", "origin": [9, 9, 10]}, + "faces": { + "north": {"uv": [11.5, 12.25, 12, 12.5], "texture": "#0"}, + "east": {"uv": [12.75, 12.75, 13, 13], "texture": "#0"}, + "south": {"uv": [12.25, 11.5, 12.75, 11.75], "texture": "#0"}, + "west": {"uv": [13, 0, 13.25, 0.25], "texture": "#0"}, + "up": {"uv": [12.75, 12.25, 12.25, 12], "texture": "#0"}, + "down": {"uv": [12.75, 12.25, 12.25, 12.5], "texture": "#0"} + } + }, + { + "from": [10, 11, 11], + "to": [12, 12, 12], + "rotation": {"angle": 0, "axis": "y", "origin": [9, 10, 10]}, + "faces": { + "north": {"uv": [0, 12.5, 0.5, 12.75], "texture": "#0"}, + "east": {"uv": [13, 0.25, 13.25, 0.5], "texture": "#0"}, + "south": {"uv": [12.5, 0, 13, 0.25], "texture": "#0"}, + "west": {"uv": [13, 0.5, 13.25, 0.75], "texture": "#0"}, + "up": {"uv": [13, 0.5, 12.5, 0.25], "texture": "#0"}, + "down": {"uv": [1, 12.5, 0.5, 12.75], "texture": "#0"} + } + }, + { + "from": [12, 12, 12], + "to": [13, 13, 13], + "rotation": {"angle": 0, "axis": "y", "origin": [10, 11, 11]}, + "faces": { + "north": {"uv": [13, 0.75, 13.25, 1], "texture": "#0"}, + "east": {"uv": [1, 13, 1.25, 13.25], "texture": "#0"}, + "south": {"uv": [13, 1, 13.25, 1.25], "texture": "#0"}, + "west": {"uv": [13, 1.25, 13.25, 1.5], "texture": "#0"}, + "up": {"uv": [13.25, 1.75, 13, 1.5], "texture": "#0"}, + "down": {"uv": [13.25, 1.75, 13, 2], "texture": "#0"} + } + }, + { + "from": [4, 2, 11], + "to": [5, 3, 12], + "rotation": {"angle": 0, "axis": "y", "origin": [-0.75, 6, 6.5]}, + "faces": { + "north": {"uv": [13, 2, 13.25, 2.25], "texture": "#0"}, + "east": {"uv": [2.25, 13, 2.5, 13.25], "texture": "#0"}, + "south": {"uv": [13, 2.25, 13.25, 2.5], "texture": "#0"}, + "west": {"uv": [13, 2.5, 13.25, 2.75], "texture": "#0"}, + "up": {"uv": [3, 13.25, 2.75, 13], "texture": "#0"}, + "down": {"uv": [13.25, 2.75, 13, 3], "texture": "#0"} + } + }, + { + "from": [4, 2, 11], + "to": [5, 3, 13], + "rotation": {"angle": 0, "axis": "y", "origin": [-0.75, 6, 6.5]}, + "faces": { + "north": {"uv": [3, 13, 3.25, 13.25], "texture": "#0"}, + "east": {"uv": [12.5, 0.5, 13, 0.75], "texture": "#0"}, + "south": {"uv": [13, 3, 13.25, 3.25], "texture": "#0"}, + "west": {"uv": [12.5, 0.75, 13, 1], "texture": "#0"}, + "up": {"uv": [1.25, 13, 1, 12.5], "texture": "#0"}, + "down": {"uv": [12.75, 1, 12.5, 1.5], "texture": "#0"} + } + }, + { + "from": [4, 2, 3], + "to": [5, 3, 11], + "rotation": {"angle": 0, "axis": "y", "origin": [-0.75, 6, 6.5]}, + "faces": { + "north": {"uv": [3.25, 13, 3.5, 13.25], "texture": "#0"}, + "east": {"uv": [9.5, 8, 11.5, 8.25], "texture": "#0"}, + "south": {"uv": [13, 3.25, 13.25, 3.5], "texture": "#0"}, + "west": {"uv": [9.5, 8.25, 11.5, 8.5], "texture": "#0"}, + "up": {"uv": [2.25, 12.25, 2, 10.25], "texture": "#0"}, + "down": {"uv": [2.5, 10.25, 2.25, 12.25], "texture": "#0"} + } + }, + { + "from": [3, 2, 11], + "to": [13, 3, 12], + "rotation": {"angle": 0, "axis": "y", "origin": [-0.75, 6, 6.5]}, + "faces": { + "north": {"uv": [9.5, 1, 12, 1.25], "texture": "#0"}, + "east": {"uv": [3.5, 13, 3.75, 13.25], "texture": "#0"}, + "south": {"uv": [9.5, 1.25, 12, 1.5], "texture": "#0"}, + "west": {"uv": [13, 3.5, 13.25, 3.75], "texture": "#0"}, + "up": {"uv": [12, 1.75, 9.5, 1.5], "texture": "#0"}, + "down": {"uv": [12, 1.75, 9.5, 2], "texture": "#0"} + } + }, + { + "from": [4, 4, 11], + "to": [5, 14, 12], + "rotation": {"angle": 0, "axis": "y", "origin": [4.5, 7.5, 11.5]}, + "faces": { + "north": {"uv": [0.5, 9.5, 0.75, 12], "texture": "#0"}, + "east": {"uv": [0.75, 9.5, 1, 12], "texture": "#0"}, + "south": {"uv": [1, 9.5, 1.25, 12], "texture": "#0"}, + "west": {"uv": [1.25, 9.5, 1.5, 12], "texture": "#0"}, + "up": {"uv": [4, 13.25, 3.75, 13], "texture": "#0"}, + "down": {"uv": [13.25, 3.75, 13, 4], "texture": "#0"} + } + }, + { + "from": [4, 3, 11], + "to": [5, 4, 12], + "rotation": {"angle": 0, "axis": "y", "origin": [-0.75, 6, 6.5]}, + "faces": { + "north": {"uv": [4, 13, 4.25, 13.25], "texture": "#0"}, + "east": {"uv": [13, 4, 13.25, 4.25], "texture": "#0"}, + "south": {"uv": [4.25, 13, 4.5, 13.25], "texture": "#0"}, + "west": {"uv": [13, 4.25, 13.25, 4.5], "texture": "#0"}, + "up": {"uv": [4.75, 13.25, 4.5, 13], "texture": "#0"}, + "down": {"uv": [13.25, 4.5, 13, 4.75], "texture": "#0"} + } + }, + { + "from": [0, 1, 7], + "to": [2, 3, 9], + "rotation": {"angle": 0, "axis": "y", "origin": [0, 0, 7]}, + "faces": { + "north": {"uv": [11, 10, 11.5, 10.5], "texture": "#0"}, + "east": {"uv": [11, 10.5, 11.5, 11], "texture": "#0"}, + "south": {"uv": [11, 11, 11.5, 11.5], "texture": "#0"}, + "west": {"uv": [11.25, 2, 11.75, 2.5], "texture": "#0"}, + "up": {"uv": [11.75, 3, 11.25, 2.5], "texture": "#0"}, + "down": {"uv": [12, 3, 11.5, 3.5], "texture": "#0"} + } + }, + { + "from": [7, 6, 14], + "to": [9, 9, 15], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 4.75, 15]}, + "faces": { + "north": {"uv": [10, 3.25, 10.5, 4], "texture": "#0"}, + "east": {"uv": [12, 4.5, 12.25, 5.25], "texture": "#0"}, + "south": {"uv": [2.5, 10.25, 3, 11], "texture": "#0"}, + "west": {"uv": [4.75, 12, 5, 12.75], "texture": "#0"}, + "up": {"uv": [1.75, 12.75, 1.25, 12.5], "texture": "#0"}, + "down": {"uv": [13, 1.5, 12.5, 1.75], "texture": "#0"} + } + }, + { + "from": [7, 3, 15], + "to": [9, 8, 16], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 4.75, 15]}, + "faces": { + "north": {"uv": [1.5, 9.5, 2, 10.75], "texture": "#0"}, + "east": {"uv": [4.25, 10.75, 4.5, 12], "texture": "#0"}, + "south": {"uv": [3, 9.5, 3.5, 10.75], "texture": "#0"}, + "west": {"uv": [10.75, 9.5, 11, 10.75], "texture": "#0"}, + "up": {"uv": [2.25, 12.75, 1.75, 12.5], "texture": "#0"}, + "down": {"uv": [13, 1.75, 12.5, 2], "texture": "#0"} + } + }, + { + "from": [7, 1, 14], + "to": [9, 3, 16], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 4.75, 15]}, + "faces": { + "north": {"uv": [3.25, 11.5, 3.75, 12], "texture": "#0"}, + "east": {"uv": [11.5, 3.5, 12, 4], "texture": "#0"}, + "south": {"uv": [3.75, 11.5, 4.25, 12], "texture": "#0"}, + "west": {"uv": [4.5, 11.5, 5, 12], "texture": "#0"}, + "up": {"uv": [5.5, 12, 5, 11.5], "texture": "#0"}, + "down": {"uv": [12, 5, 11.5, 5.5], "texture": "#0"} + } + }, + { + "from": [14, 6, 7], + "to": [15, 9, 9], + "rotation": {"angle": 0, "axis": "y", "origin": [15, 4.75, 8]}, + "faces": { + "north": {"uv": [5, 12, 5.25, 12.75], "texture": "#0"}, + "east": {"uv": [4.5, 10.25, 5, 11], "texture": "#0"}, + "south": {"uv": [5.25, 12, 5.5, 12.75], "texture": "#0"}, + "west": {"uv": [5, 10.25, 5.5, 11], "texture": "#0"}, + "up": {"uv": [2.5, 13, 2.25, 12.5], "texture": "#0"}, + "down": {"uv": [12.75, 2.5, 12.5, 3], "texture": "#0"} + } + }, + { + "from": [15, 3, 7], + "to": [16, 8, 9], + "rotation": {"angle": 0, "axis": "y", "origin": [15, 4.75, 8]}, + "faces": { + "north": {"uv": [10, 10.75, 10.25, 12], "texture": "#0"}, + "east": {"uv": [3.5, 9.5, 4, 10.75], "texture": "#0"}, + "south": {"uv": [10.25, 10.75, 10.5, 12], "texture": "#0"}, + "west": {"uv": [4, 9.5, 4.5, 10.75], "texture": "#0"}, + "up": {"uv": [3, 13, 2.75, 12.5], "texture": "#0"}, + "down": {"uv": [3.25, 12.5, 3, 13], "texture": "#0"} + } + }, + { + "from": [14, 1, 7], + "to": [16, 3, 9], + "rotation": {"angle": 0, "axis": "y", "origin": [15, 4.75, 8]}, + "faces": { + "north": {"uv": [11.5, 5.5, 12, 6], "texture": "#0"}, + "east": {"uv": [6, 11.5, 6.5, 12], "texture": "#0"}, + "south": {"uv": [11.5, 6, 12, 6.5], "texture": "#0"}, + "west": {"uv": [11.5, 6.5, 12, 7], "texture": "#0"}, + "up": {"uv": [12, 7.5, 11.5, 7], "texture": "#0"}, + "down": {"uv": [12, 7.5, 11.5, 8], "texture": "#0"} + } + }, + { + "from": [0, 3, 7], + "to": [1, 8, 9], + "rotation": {"angle": 0, "axis": "y", "origin": [0, -1, 7]}, + "faces": { + "north": {"uv": [10.75, 10.75, 11, 12], "texture": "#0"}, + "east": {"uv": [9, 9.5, 9.5, 10.75], "texture": "#0"}, + "south": {"uv": [11, 2, 11.25, 3.25], "texture": "#0"}, + "west": {"uv": [9.5, 9.5, 10, 10.75], "texture": "#0"}, + "up": {"uv": [3.5, 13, 3.25, 12.5], "texture": "#0"}, + "down": {"uv": [3.75, 12.5, 3.5, 13], "texture": "#0"} + } + }, + { + "from": [7, 6, 1], + "to": [9, 9, 2], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 7.25, 1]}, + "faces": { + "north": {"uv": [3.25, 10.75, 3.75, 11.5], "texture": "#0"}, + "east": {"uv": [12, 5.25, 12.25, 6], "texture": "#0"}, + "south": {"uv": [3.75, 10.75, 4.25, 11.5], "texture": "#0"}, + "west": {"uv": [5.5, 12, 5.75, 12.75], "texture": "#0"}, + "up": {"uv": [13, 5.25, 12.5, 5], "texture": "#0"}, + "down": {"uv": [13, 5.25, 12.5, 5.5], "texture": "#0"} + } + }, + { + "from": [7, 7, 3], + "to": [9, 9, 4], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 7.25, 3]}, + "faces": { + "north": {"uv": [11.75, 2, 12.25, 2.5], "texture": "#0"}, + "east": {"uv": [12.5, 5.5, 12.75, 6], "texture": "#0"}, + "south": {"uv": [11.75, 2.5, 12.25, 3], "texture": "#0"}, + "west": {"uv": [12.5, 6, 12.75, 6.5], "texture": "#0"}, + "up": {"uv": [6.75, 12.75, 6.25, 12.5], "texture": "#0"}, + "down": {"uv": [13, 6.5, 12.5, 6.75], "texture": "#0"} + } + }, + { + "from": [7, 7, 5], + "to": [9, 9, 6], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 7.25, 5]}, + "faces": { + "north": {"uv": [6.5, 11.75, 7, 12.25], "texture": "#0"}, + "east": {"uv": [6.75, 12.5, 7, 13], "texture": "#0"}, + "south": {"uv": [7, 11.75, 7.5, 12.25], "texture": "#0"}, + "west": {"uv": [12.5, 7, 12.75, 7.5], "texture": "#0"}, + "up": {"uv": [13, 8, 12.5, 7.75], "texture": "#0"}, + "down": {"uv": [13, 8, 12.5, 8.25], "texture": "#0"} + } + }, + { + "from": [7, 7, 12], + "to": [9, 9, 13], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 7.25, 12]}, + "faces": { + "north": {"uv": [7.5, 11.75, 8, 12.25], "texture": "#0"}, + "east": {"uv": [8.5, 12.5, 8.75, 13], "texture": "#0"}, + "south": {"uv": [8, 11.75, 8.5, 12.25], "texture": "#0"}, + "west": {"uv": [8.75, 12.5, 9, 13], "texture": "#0"}, + "up": {"uv": [13, 8.5, 12.5, 8.25], "texture": "#0"}, + "down": {"uv": [9.5, 12.5, 9, 12.75], "texture": "#0"} + } + }, + { + "from": [7, 7, 10], + "to": [9, 9, 11], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 7.25, 10]}, + "faces": { + "north": {"uv": [11.75, 8, 12.25, 8.5], "texture": "#0"}, + "east": {"uv": [12.5, 9, 12.75, 9.5], "texture": "#0"}, + "south": {"uv": [11.75, 8.5, 12.25, 9], "texture": "#0"}, + "west": {"uv": [9.5, 12.5, 9.75, 13], "texture": "#0"}, + "up": {"uv": [13, 9.75, 12.5, 9.5], "texture": "#0"}, + "down": {"uv": [10.25, 12.5, 9.75, 12.75], "texture": "#0"} + } + }, + { + "from": [7, 1, 0], + "to": [9, 3, 2], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 7.25, 1]}, + "faces": { + "north": {"uv": [9, 11.75, 9.5, 12.25], "texture": "#0"}, + "east": {"uv": [9.5, 11.75, 10, 12.25], "texture": "#0"}, + "south": {"uv": [11.75, 9.75, 12.25, 10.25], "texture": "#0"}, + "west": {"uv": [11.75, 10.25, 12.25, 10.75], "texture": "#0"}, + "up": {"uv": [12.25, 11.25, 11.75, 10.75], "texture": "#0"}, + "down": {"uv": [12.25, 11.25, 11.75, 11.75], "texture": "#0"} + } + }, + { + "from": [7, 3, 0], + "to": [9, 8, 1], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 7.25, 1]}, + "faces": { + "north": {"uv": [10, 2, 10.5, 3.25], "texture": "#0"}, + "east": {"uv": [2.5, 11, 2.75, 12.25], "texture": "#0"}, + "south": {"uv": [10, 9.5, 10.5, 10.75], "texture": "#0"}, + "west": {"uv": [2.75, 11, 3, 12.25], "texture": "#0"}, + "up": {"uv": [10.75, 12.75, 10.25, 12.5], "texture": "#0"}, + "down": {"uv": [11.25, 12.5, 10.75, 12.75], "texture": "#0"} + } + }, + { + "from": [1, 6, 7], + "to": [2, 9, 9], + "rotation": {"angle": 0, "axis": "y", "origin": [0, 0, 7]}, + "faces": { + "north": {"uv": [5.75, 12, 6, 12.75], "texture": "#0"}, + "east": {"uv": [9, 10.75, 9.5, 11.5], "texture": "#0"}, + "south": {"uv": [6, 12, 6.25, 12.75], "texture": "#0"}, + "west": {"uv": [9.5, 10.75, 10, 11.5], "texture": "#0"}, + "up": {"uv": [11.5, 13, 11.25, 12.5], "texture": "#0"}, + "down": {"uv": [11.75, 12.5, 11.5, 13], "texture": "#0"} + } + }, + { + "from": [3, 7, 7], + "to": [4, 9, 9], + "rotation": {"angle": 0, "axis": "y", "origin": [2, 0, 7]}, + "faces": { + "north": {"uv": [11.75, 12.5, 12, 13], "texture": "#0"}, + "east": {"uv": [11.5, 11.75, 12, 12.25], "texture": "#0"}, + "south": {"uv": [12, 12.5, 12.25, 13], "texture": "#0"}, + "west": {"uv": [0, 12, 0.5, 12.5], "texture": "#0"}, + "up": {"uv": [12.5, 13, 12.25, 12.5], "texture": "#0"}, + "down": {"uv": [12.75, 12.5, 12.5, 13], "texture": "#0"} + } + }, + { + "from": [5, 7, 7], + "to": [6, 9, 9], + "rotation": {"angle": 0, "axis": "y", "origin": [4, 0, 7]}, + "faces": { + "north": {"uv": [0, 12.75, 0.25, 13.25], "texture": "#0"}, + "east": {"uv": [12, 0, 12.5, 0.5], "texture": "#0"}, + "south": {"uv": [0.25, 12.75, 0.5, 13.25], "texture": "#0"}, + "west": {"uv": [0.5, 12, 1, 12.5], "texture": "#0"}, + "up": {"uv": [0.75, 13.25, 0.5, 12.75], "texture": "#0"}, + "down": {"uv": [1, 12.75, 0.75, 13.25], "texture": "#0"} + } + }, + { + "from": [12, 7, 7], + "to": [13, 9, 9], + "rotation": {"angle": 0, "axis": "y", "origin": [11, 0, 7]}, + "faces": { + "north": {"uv": [12.75, 1, 13, 1.5], "texture": "#0"}, + "east": {"uv": [12, 0.5, 12.5, 1], "texture": "#0"}, + "south": {"uv": [1.25, 12.75, 1.5, 13.25], "texture": "#0"}, + "west": {"uv": [1, 12, 1.5, 12.5], "texture": "#0"}, + "up": {"uv": [1.75, 13.25, 1.5, 12.75], "texture": "#0"}, + "down": {"uv": [2, 12.75, 1.75, 13.25], "texture": "#0"} + } + }, + { + "from": [10, 7, 7], + "to": [11, 9, 9], + "rotation": {"angle": 0, "axis": "y", "origin": [9, 0, 7]}, + "faces": { + "north": {"uv": [2, 12.75, 2.25, 13.25], "texture": "#0"}, + "east": {"uv": [12, 1, 12.5, 1.5], "texture": "#0"}, + "south": {"uv": [12.75, 2, 13, 2.5], "texture": "#0"}, + "west": {"uv": [12, 1.5, 12.5, 2], "texture": "#0"}, + "up": {"uv": [2.75, 13.25, 2.5, 12.75], "texture": "#0"}, + "down": {"uv": [13, 2.5, 12.75, 3], "texture": "#0"} + } + } + ], + "groups": [ + { + "name": "group", + "origin": [7, 0, 7], + "color": 0, + "children": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28] + }, + { + "name": "group", + "origin": [6, 6, 6], + "color": 0, + "children": [29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40] + }, + { + "name": "group", + "origin": [3, 1, 3], + "color": 0, + "children": [41, 42, 43, 44, 45, 46] + }, + { + "name": "group", + "origin": [8, 8, 8], + "color": 0, + "children": [47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/assets/utilitiesinexcess/models/blocks/upgrade_fortune_1.json b/src/main/resources/assets/utilitiesinexcess/models/blocks/upgrade_fortune_1.json new file mode 100644 index 00000000..b26a146b --- /dev/null +++ b/src/main/resources/assets/utilitiesinexcess/models/blocks/upgrade_fortune_1.json @@ -0,0 +1,1412 @@ +{ + "format_version": "1.9.0", + "credit": "Made with Blockbench", + "texture_size": [64, 64], + "textures": { + "0": "utilitiesinexcess:upgrade_fortune_1", + "particle": "utilitiesinexcess:upgrade_fortune_1" + }, + "elements": [ + { + "from": [2, 7, 3], + "to": [4, 9, 4], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 8]}, + "faces": { + "north": {"uv": [7.5, 4, 8, 4.5], "texture": "#0"}, + "east": {"uv": [11, 0, 11.25, 0.5], "texture": "#0"}, + "south": {"uv": [7.5, 4.5, 8, 5], "texture": "#0"}, + "west": {"uv": [11.25, 0, 11.5, 0.5], "texture": "#0"}, + "up": {"uv": [11.25, 6, 10.75, 5.75], "texture": "#0"}, + "down": {"uv": [11.5, 9, 11, 9.25], "texture": "#0"} + } + }, + { + "from": [3, 7, 2], + "to": [4, 9, 3], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 8]}, + "faces": { + "north": {"uv": [3, 11.5, 3.25, 12], "texture": "#0"}, + "east": {"uv": [3.25, 11.5, 3.5, 12], "texture": "#0"}, + "south": {"uv": [3.5, 11.5, 3.75, 12], "texture": "#0"}, + "west": {"uv": [3.75, 11.5, 4, 12], "texture": "#0"}, + "up": {"uv": [11.5, 9, 11.25, 8.75], "texture": "#0"}, + "down": {"uv": [11.75, 0.75, 11.5, 1], "texture": "#0"} + } + }, + { + "from": [3, 11, 3], + "to": [4, 13, 4], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 8]}, + "faces": { + "north": {"uv": [11.5, 7.25, 11.75, 7.75], "texture": "#0"}, + "east": {"uv": [11.5, 7.75, 11.75, 8.25], "texture": "#0"}, + "south": {"uv": [11.5, 8.25, 11.75, 8.75], "texture": "#0"}, + "west": {"uv": [11.5, 8.75, 11.75, 9.25], "texture": "#0"}, + "up": {"uv": [3.5, 12.75, 3.25, 12.5], "texture": "#0"}, + "down": {"uv": [5.25, 12.5, 5, 12.75], "texture": "#0"} + } + }, + { + "from": [3, 3, 3], + "to": [4, 5, 4], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 8]}, + "faces": { + "north": {"uv": [11.5, 10, 11.75, 10.5], "texture": "#0"}, + "east": {"uv": [11.5, 10.5, 11.75, 11], "texture": "#0"}, + "south": {"uv": [11, 11.5, 11.25, 12], "texture": "#0"}, + "west": {"uv": [11.5, 11, 11.75, 11.5], "texture": "#0"}, + "up": {"uv": [5.5, 12.75, 5.25, 12.5], "texture": "#0"}, + "down": {"uv": [12.75, 5.25, 12.5, 5.5], "texture": "#0"} + } + }, + { + "from": [3, 7, 12], + "to": [4, 9, 14], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 8]}, + "faces": { + "north": {"uv": [11.25, 11.5, 11.5, 12], "texture": "#0"}, + "east": {"uv": [10.25, 4.5, 10.75, 5], "texture": "#0"}, + "south": {"uv": [11.5, 11.5, 11.75, 12], "texture": "#0"}, + "west": {"uv": [10.25, 5, 10.75, 5.5], "texture": "#0"}, + "up": {"uv": [12, 0.5, 11.75, 0], "texture": "#0"}, + "down": {"uv": [12, 0.5, 11.75, 1], "texture": "#0"} + } + }, + { + "from": [2, 7, 12], + "to": [3, 9, 13], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 8]}, + "faces": { + "north": {"uv": [11.75, 1, 12, 1.5], "texture": "#0"}, + "east": {"uv": [11.75, 1.5, 12, 2], "texture": "#0"}, + "south": {"uv": [11.75, 2, 12, 2.5], "texture": "#0"}, + "west": {"uv": [11.75, 2.5, 12, 3], "texture": "#0"}, + "up": {"uv": [5.75, 12.75, 5.5, 12.5], "texture": "#0"}, + "down": {"uv": [12.75, 5.5, 12.5, 5.75], "texture": "#0"} + } + }, + { + "from": [3, 11, 12], + "to": [4, 13, 13], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 8]}, + "faces": { + "north": {"uv": [11.75, 3, 12, 3.5], "texture": "#0"}, + "east": {"uv": [11.75, 3.5, 12, 4], "texture": "#0"}, + "south": {"uv": [11.75, 4.5, 12, 5], "texture": "#0"}, + "west": {"uv": [11.75, 5, 12, 5.5], "texture": "#0"}, + "up": {"uv": [12.75, 6, 12.5, 5.75], "texture": "#0"}, + "down": {"uv": [12.75, 6, 12.5, 6.25], "texture": "#0"} + } + }, + { + "from": [3, 3, 12], + "to": [4, 5, 13], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 8]}, + "faces": { + "north": {"uv": [11.75, 5.5, 12, 6], "texture": "#0"}, + "east": {"uv": [6.25, 11.75, 6.5, 12.25], "texture": "#0"}, + "south": {"uv": [6.5, 11.75, 6.75, 12.25], "texture": "#0"}, + "west": {"uv": [6.75, 11.75, 7, 12.25], "texture": "#0"}, + "up": {"uv": [6.5, 12.75, 6.25, 12.5], "texture": "#0"}, + "down": {"uv": [12.75, 6.25, 12.5, 6.5], "texture": "#0"} + } + }, + { + "from": [12, 7, 12], + "to": [14, 9, 13], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 8]}, + "faces": { + "north": {"uv": [10.25, 5.5, 10.75, 6], "texture": "#0"}, + "east": {"uv": [7, 11.75, 7.25, 12.25], "texture": "#0"}, + "south": {"uv": [6.25, 10.25, 6.75, 10.75], "texture": "#0"}, + "west": {"uv": [11.75, 7.25, 12, 7.75], "texture": "#0"}, + "up": {"uv": [11.75, 3.25, 11.25, 3], "texture": "#0"}, + "down": {"uv": [11.75, 5.75, 11.25, 6], "texture": "#0"} + } + }, + { + "from": [12, 7, 13], + "to": [13, 9, 14], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 8]}, + "faces": { + "north": {"uv": [11.75, 7.75, 12, 8.25], "texture": "#0"}, + "east": {"uv": [11.75, 8.25, 12, 8.75], "texture": "#0"}, + "south": {"uv": [8.5, 11.75, 8.75, 12.25], "texture": "#0"}, + "west": {"uv": [8.75, 11.75, 9, 12.25], "texture": "#0"}, + "up": {"uv": [6.75, 12.75, 6.5, 12.5], "texture": "#0"}, + "down": {"uv": [12.75, 6.5, 12.5, 6.75], "texture": "#0"} + } + }, + { + "from": [12, 11, 12], + "to": [13, 13, 13], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 8]}, + "faces": { + "north": {"uv": [11.75, 8.75, 12, 9.25], "texture": "#0"}, + "east": {"uv": [9, 11.75, 9.25, 12.25], "texture": "#0"}, + "south": {"uv": [9.25, 11.75, 9.5, 12.25], "texture": "#0"}, + "west": {"uv": [9.5, 11.75, 9.75, 12.25], "texture": "#0"}, + "up": {"uv": [7, 12.75, 6.75, 12.5], "texture": "#0"}, + "down": {"uv": [12.75, 6.75, 12.5, 7], "texture": "#0"} + } + }, + { + "from": [12, 3, 12], + "to": [13, 5, 13], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 8]}, + "faces": { + "north": {"uv": [9.75, 11.75, 10, 12.25], "texture": "#0"}, + "east": {"uv": [10, 11.75, 10.25, 12.25], "texture": "#0"}, + "south": {"uv": [11.75, 10, 12, 10.5], "texture": "#0"}, + "west": {"uv": [10.25, 11.75, 10.5, 12.25], "texture": "#0"}, + "up": {"uv": [7.25, 12.75, 7, 12.5], "texture": "#0"}, + "down": {"uv": [12.75, 7, 12.5, 7.25], "texture": "#0"} + } + }, + { + "from": [12, 7, 2], + "to": [13, 9, 4], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 8]}, + "faces": { + "north": {"uv": [10.5, 11.75, 10.75, 12.25], "texture": "#0"}, + "east": {"uv": [6.75, 10.25, 7.25, 10.75], "texture": "#0"}, + "south": {"uv": [11.75, 10.5, 12, 11], "texture": "#0"}, + "west": {"uv": [10.25, 7.25, 10.75, 7.75], "texture": "#0"}, + "up": {"uv": [11, 12.25, 10.75, 11.75], "texture": "#0"}, + "down": {"uv": [12, 11, 11.75, 11.5], "texture": "#0"} + } + }, + { + "from": [13, 7, 3], + "to": [14, 9, 4], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 8]}, + "faces": { + "north": {"uv": [11.75, 11.5, 12, 12], "texture": "#0"}, + "east": {"uv": [12, 0, 12.25, 0.5], "texture": "#0"}, + "south": {"uv": [12, 0.5, 12.25, 1], "texture": "#0"}, + "west": {"uv": [12, 1, 12.25, 1.5], "texture": "#0"}, + "up": {"uv": [7.5, 12.75, 7.25, 12.5], "texture": "#0"}, + "down": {"uv": [12.75, 7.25, 12.5, 7.5], "texture": "#0"} + } + }, + { + "from": [12, 11, 3], + "to": [13, 13, 4], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 8]}, + "faces": { + "north": {"uv": [12, 1.5, 12.25, 2], "texture": "#0"}, + "east": {"uv": [2, 12, 2.25, 12.5], "texture": "#0"}, + "south": {"uv": [12, 2, 12.25, 2.5], "texture": "#0"}, + "west": {"uv": [2.25, 12, 2.5, 12.5], "texture": "#0"}, + "up": {"uv": [7.75, 12.75, 7.5, 12.5], "texture": "#0"}, + "down": {"uv": [12.75, 7.5, 12.5, 7.75], "texture": "#0"} + } + }, + { + "from": [12, 3, 3], + "to": [13, 5, 4], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 8]}, + "faces": { + "north": {"uv": [2.5, 12, 2.75, 12.5], "texture": "#0"}, + "east": {"uv": [12, 2.5, 12.25, 3], "texture": "#0"}, + "south": {"uv": [2.75, 12, 3, 12.5], "texture": "#0"}, + "west": {"uv": [3, 12, 3.25, 12.5], "texture": "#0"}, + "up": {"uv": [8, 12.75, 7.75, 12.5], "texture": "#0"}, + "down": {"uv": [12.75, 7.75, 12.5, 8], "texture": "#0"} + } + }, + { + "from": [7, 12, 2], + "to": [9, 14, 3], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 8]}, + "faces": { + "north": {"uv": [10.25, 7.75, 10.75, 8.25], "texture": "#0"}, + "east": {"uv": [12, 3, 12.25, 3.5], "texture": "#0"}, + "south": {"uv": [10.25, 8.25, 10.75, 8.75], "texture": "#0"}, + "west": {"uv": [3.25, 12, 3.5, 12.5], "texture": "#0"}, + "up": {"uv": [4, 12.25, 3.5, 12], "texture": "#0"}, + "down": {"uv": [12.5, 3.5, 12, 3.75], "texture": "#0"} + } + }, + { + "from": [7, 13, 3], + "to": [9, 14, 4], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 8]}, + "faces": { + "north": {"uv": [12, 3.75, 12.5, 4], "texture": "#0"}, + "east": {"uv": [8, 12.5, 8.25, 12.75], "texture": "#0"}, + "south": {"uv": [4, 12, 4.5, 12.25], "texture": "#0"}, + "west": {"uv": [12.5, 8, 12.75, 8.25], "texture": "#0"}, + "up": {"uv": [5, 12.25, 4.5, 12], "texture": "#0"}, + "down": {"uv": [12.5, 4.5, 12, 4.75], "texture": "#0"} + } + }, + { + "from": [13, 12, 7], + "to": [14, 14, 9], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 8]}, + "faces": { + "north": {"uv": [12, 4.75, 12.25, 5.25], "texture": "#0"}, + "east": {"uv": [8.5, 10.25, 9, 10.75], "texture": "#0"}, + "south": {"uv": [5, 12, 5.25, 12.5], "texture": "#0"}, + "west": {"uv": [10.25, 8.75, 10.75, 9.25], "texture": "#0"}, + "up": {"uv": [12.25, 5.75, 12, 5.25], "texture": "#0"}, + "down": {"uv": [12.25, 5.75, 12, 6.25], "texture": "#0"} + } + }, + { + "from": [12, 13, 7], + "to": [13, 14, 9], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 8]}, + "faces": { + "north": {"uv": [8.25, 12.5, 8.5, 12.75], "texture": "#0"}, + "east": {"uv": [12, 6.25, 12.5, 6.5], "texture": "#0"}, + "south": {"uv": [12.5, 8.25, 12.75, 8.5], "texture": "#0"}, + "west": {"uv": [12, 6.5, 12.5, 6.75], "texture": "#0"}, + "up": {"uv": [12.25, 7.25, 12, 6.75], "texture": "#0"}, + "down": {"uv": [7.5, 12, 7.25, 12.5], "texture": "#0"} + } + }, + { + "from": [7, 12, 13], + "to": [9, 14, 14], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 8]}, + "faces": { + "north": {"uv": [9, 10.25, 9.5, 10.75], "texture": "#0"}, + "east": {"uv": [12, 7.25, 12.25, 7.75], "texture": "#0"}, + "south": {"uv": [9.5, 10.25, 10, 10.75], "texture": "#0"}, + "west": {"uv": [7.5, 12, 7.75, 12.5], "texture": "#0"}, + "up": {"uv": [8.25, 12.25, 7.75, 12], "texture": "#0"}, + "down": {"uv": [12.5, 7.75, 12, 8], "texture": "#0"} + } + }, + { + "from": [7, 13, 12], + "to": [9, 14, 13], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 8]}, + "faces": { + "north": {"uv": [12, 8, 12.5, 8.25], "texture": "#0"}, + "east": {"uv": [8.5, 12.5, 8.75, 12.75], "texture": "#0"}, + "south": {"uv": [12, 8.25, 12.5, 8.5], "texture": "#0"}, + "west": {"uv": [12.5, 8.5, 12.75, 8.75], "texture": "#0"}, + "up": {"uv": [12.5, 8.75, 12, 8.5], "texture": "#0"}, + "down": {"uv": [12.5, 8.75, 12, 9], "texture": "#0"} + } + }, + { + "from": [2, 12, 7], + "to": [3, 14, 9], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 8]}, + "faces": { + "north": {"uv": [8.25, 12, 8.5, 12.5], "texture": "#0"}, + "east": {"uv": [10, 10.25, 10.5, 10.75], "texture": "#0"}, + "south": {"uv": [12, 9, 12.25, 9.5], "texture": "#0"}, + "west": {"uv": [10.5, 0, 11, 0.5], "texture": "#0"}, + "up": {"uv": [12.25, 10, 12, 9.5], "texture": "#0"}, + "down": {"uv": [12.25, 10, 12, 10.5], "texture": "#0"} + } + }, + { + "from": [3, 13, 7], + "to": [4, 14, 9], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 8]}, + "faces": { + "north": {"uv": [8.75, 12.5, 9, 12.75], "texture": "#0"}, + "east": {"uv": [12, 10.5, 12.5, 10.75], "texture": "#0"}, + "south": {"uv": [12.5, 8.75, 12.75, 9], "texture": "#0"}, + "west": {"uv": [12, 10.75, 12.5, 11], "texture": "#0"}, + "up": {"uv": [11.25, 12.5, 11, 12], "texture": "#0"}, + "down": {"uv": [12.25, 11, 12, 11.5], "texture": "#0"} + } + }, + { + "from": [3, 2, 6], + "to": [4, 3, 10], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 8]}, + "faces": { + "north": {"uv": [12.5, 9, 12.75, 9.25], "texture": "#0"}, + "east": {"uv": [10.5, 0.5, 11.5, 0.75], "texture": "#0"}, + "south": {"uv": [12.5, 9.25, 12.75, 9.5], "texture": "#0"}, + "west": {"uv": [10.5, 0.75, 11.5, 1], "texture": "#0"}, + "up": {"uv": [10.75, 2, 10.5, 1], "texture": "#0"}, + "down": {"uv": [10.75, 2, 10.5, 3], "texture": "#0"} + } + }, + { + "from": [2, 2, 6], + "to": [3, 4, 10], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 8]}, + "faces": { + "north": {"uv": [11.25, 12, 11.5, 12.5], "texture": "#0"}, + "east": {"uv": [6.5, 4, 7.5, 4.5], "texture": "#0"}, + "south": {"uv": [11.5, 12, 11.75, 12.5], "texture": "#0"}, + "west": {"uv": [6.5, 4.5, 7.5, 5], "texture": "#0"}, + "up": {"uv": [3.25, 11.5, 3, 10.5], "texture": "#0"}, + "down": {"uv": [10.75, 3, 10.5, 4], "texture": "#0"} + } + }, + { + "from": [6, 2, 12], + "to": [10, 3, 13], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 8]}, + "faces": { + "north": {"uv": [10.5, 10, 11.5, 10.25], "texture": "#0"}, + "east": {"uv": [12.5, 9.5, 12.75, 9.75], "texture": "#0"}, + "south": {"uv": [10.5, 10.25, 11.5, 10.5], "texture": "#0"}, + "west": {"uv": [12.5, 9.75, 12.75, 10], "texture": "#0"}, + "up": {"uv": [11.5, 10.75, 10.5, 10.5], "texture": "#0"}, + "down": {"uv": [11.75, 1, 10.75, 1.25], "texture": "#0"} + } + }, + { + "from": [6, 2, 13], + "to": [10, 4, 14], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 8]}, + "faces": { + "north": {"uv": [3, 9.5, 4, 10], "texture": "#0"}, + "east": {"uv": [12, 11.5, 12.25, 12], "texture": "#0"}, + "south": {"uv": [4, 9.5, 5, 10], "texture": "#0"}, + "west": {"uv": [11.75, 12, 12, 12.5], "texture": "#0"}, + "up": {"uv": [11.75, 1.5, 10.75, 1.25], "texture": "#0"}, + "down": {"uv": [11.75, 1.5, 10.75, 1.75], "texture": "#0"} + } + }, + { + "from": [12, 2, 6], + "to": [13, 3, 10], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 8]}, + "faces": { + "north": {"uv": [10, 12.5, 10.25, 12.75], "texture": "#0"}, + "east": {"uv": [10.75, 1.75, 11.75, 2], "texture": "#0"}, + "south": {"uv": [10.25, 12.5, 10.5, 12.75], "texture": "#0"}, + "west": {"uv": [10.75, 2, 11.75, 2.25], "texture": "#0"}, + "up": {"uv": [3.5, 11.5, 3.25, 10.5], "texture": "#0"}, + "down": {"uv": [3.75, 10.5, 3.5, 11.5], "texture": "#0"} + } + }, + { + "from": [13, 2, 6], + "to": [14, 4, 10], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 8]}, + "faces": { + "north": {"uv": [12, 12, 12.25, 12.5], "texture": "#0"}, + "east": {"uv": [5, 9.5, 6, 10], "texture": "#0"}, + "south": {"uv": [0, 12.25, 0.25, 12.75], "texture": "#0"}, + "west": {"uv": [6, 9.5, 7, 10], "texture": "#0"}, + "up": {"uv": [4, 11.5, 3.75, 10.5], "texture": "#0"}, + "down": {"uv": [11, 2.25, 10.75, 3.25], "texture": "#0"} + } + }, + { + "from": [6, 2, 3], + "to": [10, 3, 4], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 8]}, + "faces": { + "north": {"uv": [10.75, 3.25, 11.75, 3.5], "texture": "#0"}, + "east": {"uv": [12.5, 10.5, 12.75, 10.75], "texture": "#0"}, + "south": {"uv": [10.75, 3.5, 11.75, 3.75], "texture": "#0"}, + "west": {"uv": [12.5, 10.75, 12.75, 11], "texture": "#0"}, + "up": {"uv": [11.75, 4, 10.75, 3.75], "texture": "#0"}, + "down": {"uv": [11.75, 4.5, 10.75, 4.75], "texture": "#0"} + } + }, + { + "from": [6, 2, 2], + "to": [10, 4, 3], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 8]}, + "faces": { + "north": {"uv": [7, 9.5, 8, 10], "texture": "#0"}, + "east": {"uv": [12.25, 0, 12.5, 0.5], "texture": "#0"}, + "south": {"uv": [3, 10, 4, 10.5], "texture": "#0"}, + "west": {"uv": [0.25, 12.25, 0.5, 12.75], "texture": "#0"}, + "up": {"uv": [11.75, 5, 10.75, 4.75], "texture": "#0"}, + "down": {"uv": [11.75, 5, 10.75, 5.25], "texture": "#0"} + } + }, + { + "from": [12, 3, 4], + "to": [13, 13, 12], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 8]}, + "faces": { + "north": {"uv": [2, 9.5, 2.25, 12], "texture": "#0"}, + "east": {"uv": [2.5, 0, 4.5, 2.5], "texture": "#0"}, + "south": {"uv": [2.25, 9.5, 2.5, 12], "texture": "#0"}, + "west": {"uv": [2.5, 2.5, 4.5, 5], "texture": "#0"}, + "up": {"uv": [4.25, 12, 4, 10], "texture": "#0"}, + "down": {"uv": [10.25, 4, 10, 6], "texture": "#0"} + } + }, + { + "from": [3, 3, 4], + "to": [4, 13, 12], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 8]}, + "faces": { + "north": {"uv": [2.5, 9.5, 2.75, 12], "texture": "#0"}, + "east": {"uv": [4.5, 0, 6.5, 2.5], "texture": "#0"}, + "south": {"uv": [2.75, 9.5, 3, 12], "texture": "#0"}, + "west": {"uv": [4.5, 2.5, 6.5, 5], "texture": "#0"}, + "up": {"uv": [4.5, 12, 4.25, 10], "texture": "#0"}, + "down": {"uv": [4.75, 10, 4.5, 12], "texture": "#0"} + } + }, + { + "name": "base", + "from": [4, 3, 3], + "to": [12, 13, 13], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 8]}, + "faces": { + "north": {"uv": [0, 5, 2, 7.5], "texture": "#0"}, + "east": {"uv": [0, 0, 2.5, 2.5], "texture": "#0"}, + "south": {"uv": [2, 5, 4, 7.5], "texture": "#0"}, + "west": {"uv": [0, 2.5, 2.5, 5], "texture": "#0"}, + "up": {"uv": [6, 7.5, 4, 5], "texture": "#0"}, + "down": {"uv": [8, 5, 6, 7.5], "texture": "#0"} + } + }, + { + "from": [4, 4, 13], + "to": [12, 12, 14], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 8]}, + "faces": { + "north": {"uv": [6.5, 0, 8.5, 2], "texture": "#0"}, + "east": {"uv": [4.75, 10, 5, 12], "texture": "#0"}, + "south": {"uv": [6.5, 2, 8.5, 4], "texture": "#0"}, + "west": {"uv": [5, 10, 5.25, 12], "texture": "#0"}, + "up": {"uv": [7.25, 10.25, 5.25, 10], "texture": "#0"}, + "down": {"uv": [12, 6, 10, 6.25], "texture": "#0"} + } + }, + { + "from": [4, 13, 4], + "to": [12, 14, 12], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 8]}, + "faces": { + "north": {"uv": [10, 6.25, 12, 6.5], "texture": "#0"}, + "east": {"uv": [10, 6.5, 12, 6.75], "texture": "#0"}, + "south": {"uv": [10, 6.75, 12, 7], "texture": "#0"}, + "west": {"uv": [10, 7, 12, 7.25], "texture": "#0"}, + "up": {"uv": [2, 9.5, 0, 7.5], "texture": "#0"}, + "down": {"uv": [4, 7.5, 2, 9.5], "texture": "#0"} + } + }, + { + "from": [13, 4, 4], + "to": [14, 12, 12], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 8]}, + "faces": { + "north": {"uv": [7.25, 10, 7.5, 12], "texture": "#0"}, + "east": {"uv": [4, 7.5, 6, 9.5], "texture": "#0"}, + "south": {"uv": [10, 7.25, 10.25, 9.25], "texture": "#0"}, + "west": {"uv": [6, 7.5, 8, 9.5], "texture": "#0"}, + "up": {"uv": [7.75, 12, 7.5, 10], "texture": "#0"}, + "down": {"uv": [8, 10, 7.75, 12], "texture": "#0"} + } + }, + { + "from": [4, 4, 2], + "to": [12, 12, 3], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 8]}, + "faces": { + "north": {"uv": [8, 4, 10, 6], "texture": "#0"}, + "east": {"uv": [8, 10, 8.25, 12], "texture": "#0"}, + "south": {"uv": [8, 6, 10, 8], "texture": "#0"}, + "west": {"uv": [8.25, 10, 8.5, 12], "texture": "#0"}, + "up": {"uv": [10.5, 10.25, 8.5, 10], "texture": "#0"}, + "down": {"uv": [12, 9.25, 10, 9.5], "texture": "#0"} + } + }, + { + "from": [4, 2, 4], + "to": [12, 3, 12], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 8]}, + "faces": { + "north": {"uv": [10, 9.5, 12, 9.75], "texture": "#0"}, + "east": {"uv": [10, 9.75, 12, 10], "texture": "#0"}, + "south": {"uv": [10.25, 4, 12.25, 4.25], "texture": "#0"}, + "west": {"uv": [10.25, 4.25, 12.25, 4.5], "texture": "#0"}, + "up": {"uv": [10, 10, 8, 8], "texture": "#0"}, + "down": {"uv": [10.5, 0, 8.5, 2], "texture": "#0"} + } + }, + { + "from": [2, 4, 4], + "to": [3, 12, 12], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 8]}, + "faces": { + "north": {"uv": [5.25, 10.25, 5.5, 12.25], "texture": "#0"}, + "east": {"uv": [8.5, 2, 10.5, 4], "texture": "#0"}, + "south": {"uv": [5.5, 10.25, 5.75, 12.25], "texture": "#0"}, + "west": {"uv": [0, 9.5, 2, 11.5], "texture": "#0"}, + "up": {"uv": [6, 12.25, 5.75, 10.25], "texture": "#0"}, + "down": {"uv": [6.25, 10.25, 6, 12.25], "texture": "#0"} + } + }, + { + "from": [9.4, 9.4, 14], + "to": [9.9, 9.9, 14.5], + "rotation": {"angle": 0, "axis": "y", "origin": [10.15, 9.65, 14.25]}, + "faces": { + "north": {"uv": [11, 12.5, 11.25, 12.75], "texture": "#0"}, + "east": {"uv": [11.25, 12.5, 11.5, 12.75], "texture": "#0"}, + "south": {"uv": [12.5, 11.25, 12.75, 11.5], "texture": "#0"}, + "west": {"uv": [11.5, 12.5, 11.75, 12.75], "texture": "#0"}, + "up": {"uv": [12.75, 11.75, 12.5, 11.5], "texture": "#0"}, + "down": {"uv": [12, 12.5, 11.75, 12.75], "texture": "#0"} + } + }, + { + "from": [9.9, 8.4, 14], + "to": [10.4, 10.9, 14.5], + "rotation": {"angle": 0, "axis": "y", "origin": [10.15, 9.65, 14.25]}, + "faces": { + "north": {"uv": [11, 8.25, 11.25, 9], "texture": "#0"}, + "east": {"uv": [11, 10.75, 11.25, 11.5], "texture": "#0"}, + "south": {"uv": [11.25, 2.25, 11.5, 3], "texture": "#0"}, + "west": {"uv": [11.25, 7.25, 11.5, 8], "texture": "#0"}, + "up": {"uv": [12.75, 12, 12.5, 11.75], "texture": "#0"}, + "down": {"uv": [12.25, 12.5, 12, 12.75], "texture": "#0"} + } + }, + { + "from": [10.4, 9.4, 14], + "to": [10.9, 9.9, 14.5], + "rotation": {"angle": 0, "axis": "y", "origin": [10.15, 9.65, 14.25]}, + "faces": { + "north": {"uv": [12.5, 12, 12.75, 12.25], "texture": "#0"}, + "east": {"uv": [12.25, 12.5, 12.5, 12.75], "texture": "#0"}, + "south": {"uv": [12.5, 12.5, 12.75, 12.75], "texture": "#0"}, + "west": {"uv": [0, 12.75, 0.25, 13], "texture": "#0"}, + "up": {"uv": [0.5, 13, 0.25, 12.75], "texture": "#0"}, + "down": {"uv": [13, 0.25, 12.75, 0.5], "texture": "#0"} + } + }, + { + "from": [5.85, 5.7, 14], + "to": [6.35, 7.2, 14.5], + "rotation": {"angle": 0, "axis": "y", "origin": [6.1, 4.95, 14.25]}, + "faces": { + "north": {"uv": [0.5, 12.25, 0.75, 12.75], "texture": "#0"}, + "east": {"uv": [12.25, 0.5, 12.5, 1], "texture": "#0"}, + "south": {"uv": [0.75, 12.25, 1, 12.75], "texture": "#0"}, + "west": {"uv": [1, 12.25, 1.25, 12.75], "texture": "#0"}, + "up": {"uv": [0.75, 13, 0.5, 12.75], "texture": "#0"}, + "down": {"uv": [13, 0.5, 12.75, 0.75], "texture": "#0"} + } + }, + { + "from": [7.75, 5.85, 14], + "to": [8.25, 10.35, 14.5], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8.1, 14.25]}, + "faces": { + "north": {"uv": [6.25, 10.75, 6.5, 11.75], "texture": "#0"}, + "east": {"uv": [6.5, 10.75, 6.75, 11.75], "texture": "#0"}, + "south": {"uv": [6.75, 10.75, 7, 11.75], "texture": "#0"}, + "west": {"uv": [7, 10.75, 7.25, 11.75], "texture": "#0"}, + "up": {"uv": [1, 13, 0.75, 12.75], "texture": "#0"}, + "down": {"uv": [1.25, 12.75, 1, 13], "texture": "#0"} + } + }, + { + "from": [7.25, 8.35, 14], + "to": [7.75, 8.85, 14.5], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8.1, 14.25]}, + "faces": { + "north": {"uv": [12.75, 1, 13, 1.25], "texture": "#0"}, + "east": {"uv": [12.75, 1.25, 13, 1.5], "texture": "#0"}, + "south": {"uv": [12.75, 1.5, 13, 1.75], "texture": "#0"}, + "west": {"uv": [1.75, 12.75, 2, 13], "texture": "#0"}, + "up": {"uv": [13, 2, 12.75, 1.75], "texture": "#0"}, + "down": {"uv": [2.25, 12.75, 2, 13], "texture": "#0"} + } + }, + { + "from": [7.25, 7.35, 14], + "to": [7.75, 7.85, 14.5], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8.1, 14.25]}, + "faces": { + "north": {"uv": [12.75, 2, 13, 2.25], "texture": "#0"}, + "east": {"uv": [2.25, 12.75, 2.5, 13], "texture": "#0"}, + "south": {"uv": [12.75, 2.25, 13, 2.5], "texture": "#0"}, + "west": {"uv": [12.75, 2.5, 13, 2.75], "texture": "#0"}, + "up": {"uv": [3, 13, 2.75, 12.75], "texture": "#0"}, + "down": {"uv": [3.25, 12.75, 3, 13], "texture": "#0"} + } + }, + { + "from": [6.25, 7.85, 14], + "to": [7.75, 8.35, 14.5], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8.1, 14.25]}, + "faces": { + "north": {"uv": [12.25, 1, 12.75, 1.25], "texture": "#0"}, + "east": {"uv": [3.25, 12.75, 3.5, 13], "texture": "#0"}, + "south": {"uv": [1.25, 12.25, 1.75, 12.5], "texture": "#0"}, + "west": {"uv": [12.75, 3.25, 13, 3.5], "texture": "#0"}, + "up": {"uv": [12.75, 1.5, 12.25, 1.25], "texture": "#0"}, + "down": {"uv": [12.75, 1.5, 12.25, 1.75], "texture": "#0"} + } + }, + { + "from": [8.25, 7.85, 14], + "to": [9.75, 8.35, 14.5], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8.1, 14.25]}, + "faces": { + "north": {"uv": [12.25, 1.75, 12.75, 2], "texture": "#0"}, + "east": {"uv": [3.5, 12.75, 3.75, 13], "texture": "#0"}, + "south": {"uv": [12.25, 2, 12.75, 2.25], "texture": "#0"}, + "west": {"uv": [3.75, 12.75, 4, 13], "texture": "#0"}, + "up": {"uv": [12.75, 2.5, 12.25, 2.25], "texture": "#0"}, + "down": {"uv": [12.75, 2.5, 12.25, 2.75], "texture": "#0"} + } + }, + { + "from": [8.25, 8.35, 14], + "to": [8.75, 8.85, 14.5], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8.1, 14.25]}, + "faces": { + "north": {"uv": [4, 12.75, 4.25, 13], "texture": "#0"}, + "east": {"uv": [12.75, 4, 13, 4.25], "texture": "#0"}, + "south": {"uv": [4.25, 12.75, 4.5, 13], "texture": "#0"}, + "west": {"uv": [12.75, 4.25, 13, 4.5], "texture": "#0"}, + "up": {"uv": [4.75, 13, 4.5, 12.75], "texture": "#0"}, + "down": {"uv": [5, 12.75, 4.75, 13], "texture": "#0"} + } + }, + { + "from": [8.25, 7.35, 14], + "to": [8.75, 7.85, 14.5], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8.1, 14.25]}, + "faces": { + "north": {"uv": [12.75, 4.75, 13, 5], "texture": "#0"}, + "east": {"uv": [5, 12.75, 5.25, 13], "texture": "#0"}, + "south": {"uv": [12.75, 5, 13, 5.25], "texture": "#0"}, + "west": {"uv": [5.25, 12.75, 5.5, 13], "texture": "#0"}, + "up": {"uv": [13, 5.5, 12.75, 5.25], "texture": "#0"}, + "down": {"uv": [5.75, 12.75, 5.5, 13], "texture": "#0"} + } + }, + { + "from": [9.5, 9.4, 1.5], + "to": [10, 9.9, 2], + "rotation": {"angle": 0, "axis": "y", "origin": [10.25, 9.65, 1.75]}, + "faces": { + "north": {"uv": [12.75, 5.5, 13, 5.75], "texture": "#0"}, + "east": {"uv": [5.75, 12.75, 6, 13], "texture": "#0"}, + "south": {"uv": [12.75, 5.75, 13, 6], "texture": "#0"}, + "west": {"uv": [6, 12.75, 6.25, 13], "texture": "#0"}, + "up": {"uv": [13, 6.25, 12.75, 6], "texture": "#0"}, + "down": {"uv": [6.5, 12.75, 6.25, 13], "texture": "#0"} + } + }, + { + "from": [10, 8.4, 1.5], + "to": [10.5, 10.9, 2], + "rotation": {"angle": 0, "axis": "y", "origin": [10.25, 9.65, 1.75]}, + "faces": { + "north": {"uv": [11.25, 8, 11.5, 8.75], "texture": "#0"}, + "east": {"uv": [11.25, 10.75, 11.5, 11.5], "texture": "#0"}, + "south": {"uv": [0, 11.5, 0.25, 12.25], "texture": "#0"}, + "west": {"uv": [11.5, 0, 11.75, 0.75], "texture": "#0"}, + "up": {"uv": [13, 6.5, 12.75, 6.25], "texture": "#0"}, + "down": {"uv": [6.75, 12.75, 6.5, 13], "texture": "#0"} + } + }, + { + "from": [10.5, 9.4, 1.5], + "to": [11, 9.9, 2], + "rotation": {"angle": 0, "axis": "y", "origin": [10.25, 9.65, 1.75]}, + "faces": { + "north": {"uv": [12.75, 6.5, 13, 6.75], "texture": "#0"}, + "east": {"uv": [6.75, 12.75, 7, 13], "texture": "#0"}, + "south": {"uv": [12.75, 6.75, 13, 7], "texture": "#0"}, + "west": {"uv": [7, 12.75, 7.25, 13], "texture": "#0"}, + "up": {"uv": [13, 7.25, 12.75, 7], "texture": "#0"}, + "down": {"uv": [7.5, 12.75, 7.25, 13], "texture": "#0"} + } + }, + { + "from": [5.85, 5.7, 1.5], + "to": [6.35, 7.2, 2], + "rotation": {"angle": 0, "axis": "y", "origin": [6.1, 4.95, 1.75]}, + "faces": { + "north": {"uv": [1.75, 12.25, 2, 12.75], "texture": "#0"}, + "east": {"uv": [12.25, 2.75, 12.5, 3.25], "texture": "#0"}, + "south": {"uv": [3.5, 12.25, 3.75, 12.75], "texture": "#0"}, + "west": {"uv": [3.75, 12.25, 4, 12.75], "texture": "#0"}, + "up": {"uv": [13, 7.5, 12.75, 7.25], "texture": "#0"}, + "down": {"uv": [7.75, 12.75, 7.5, 13], "texture": "#0"} + } + }, + { + "from": [7.75, 5.85, 1.5], + "to": [8.25, 10.35, 2], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8.1, 1.75]}, + "faces": { + "north": {"uv": [10.75, 7.25, 11, 8.25], "texture": "#0"}, + "east": {"uv": [10.75, 8.25, 11, 9.25], "texture": "#0"}, + "south": {"uv": [8.5, 10.75, 8.75, 11.75], "texture": "#0"}, + "west": {"uv": [8.75, 10.75, 9, 11.75], "texture": "#0"}, + "up": {"uv": [13, 7.75, 12.75, 7.5], "texture": "#0"}, + "down": {"uv": [8, 12.75, 7.75, 13], "texture": "#0"} + } + }, + { + "from": [7.25, 8.35, 1.5], + "to": [7.75, 8.85, 2], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8.1, 1.75]}, + "faces": { + "north": {"uv": [12.75, 7.75, 13, 8], "texture": "#0"}, + "east": {"uv": [8, 12.75, 8.25, 13], "texture": "#0"}, + "south": {"uv": [12.75, 8, 13, 8.25], "texture": "#0"}, + "west": {"uv": [8.25, 12.75, 8.5, 13], "texture": "#0"}, + "up": {"uv": [13, 8.5, 12.75, 8.25], "texture": "#0"}, + "down": {"uv": [8.75, 12.75, 8.5, 13], "texture": "#0"} + } + }, + { + "from": [7.25, 7.35, 1.5], + "to": [7.75, 7.85, 2], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8.1, 1.75]}, + "faces": { + "north": {"uv": [12.75, 8.5, 13, 8.75], "texture": "#0"}, + "east": {"uv": [8.75, 12.75, 9, 13], "texture": "#0"}, + "south": {"uv": [12.75, 8.75, 13, 9], "texture": "#0"}, + "west": {"uv": [9, 12.75, 9.25, 13], "texture": "#0"}, + "up": {"uv": [13, 9.25, 12.75, 9], "texture": "#0"}, + "down": {"uv": [9.5, 12.75, 9.25, 13], "texture": "#0"} + } + }, + { + "from": [6.25, 7.85, 1.5], + "to": [7.75, 8.35, 2], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8.1, 1.75]}, + "faces": { + "north": {"uv": [12.25, 3.25, 12.75, 3.5], "texture": "#0"}, + "east": {"uv": [12.75, 9.25, 13, 9.5], "texture": "#0"}, + "south": {"uv": [4, 12.25, 4.5, 12.5], "texture": "#0"}, + "west": {"uv": [9.5, 12.75, 9.75, 13], "texture": "#0"}, + "up": {"uv": [12.75, 4.25, 12.25, 4], "texture": "#0"}, + "down": {"uv": [12.75, 4.25, 12.25, 4.5], "texture": "#0"} + } + }, + { + "from": [8.25, 7.85, 1.5], + "to": [9.75, 8.35, 2], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8.1, 1.75]}, + "faces": { + "north": {"uv": [4.5, 12.25, 5, 12.5], "texture": "#0"}, + "east": {"uv": [12.75, 9.5, 13, 9.75], "texture": "#0"}, + "south": {"uv": [12.25, 4.75, 12.75, 5], "texture": "#0"}, + "west": {"uv": [9.75, 12.75, 10, 13], "texture": "#0"}, + "up": {"uv": [12.75, 5.25, 12.25, 5], "texture": "#0"}, + "down": {"uv": [5.75, 12.25, 5.25, 12.5], "texture": "#0"} + } + }, + { + "from": [8.25, 8.35, 1.5], + "to": [8.75, 8.85, 2], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8.1, 1.75]}, + "faces": { + "north": {"uv": [12.75, 9.75, 13, 10], "texture": "#0"}, + "east": {"uv": [10, 12.75, 10.25, 13], "texture": "#0"}, + "south": {"uv": [12.75, 10, 13, 10.25], "texture": "#0"}, + "west": {"uv": [10.25, 12.75, 10.5, 13], "texture": "#0"}, + "up": {"uv": [13, 10.5, 12.75, 10.25], "texture": "#0"}, + "down": {"uv": [10.75, 12.75, 10.5, 13], "texture": "#0"} + } + }, + { + "from": [8.25, 7.35, 1.5], + "to": [8.75, 7.85, 2], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8.1, 1.75]}, + "faces": { + "north": {"uv": [12.75, 10.5, 13, 10.75], "texture": "#0"}, + "east": {"uv": [10.75, 12.75, 11, 13], "texture": "#0"}, + "south": {"uv": [12.75, 10.75, 13, 11], "texture": "#0"}, + "west": {"uv": [11, 12.75, 11.25, 13], "texture": "#0"}, + "up": {"uv": [13, 11.25, 12.75, 11], "texture": "#0"}, + "down": {"uv": [11.5, 12.75, 11.25, 13], "texture": "#0"} + } + }, + { + "from": [14, 9.4, 6.15], + "to": [14.5, 9.9, 6.65], + "rotation": {"angle": 0, "axis": "y", "origin": [18.35, 9.65, 5.9]}, + "faces": { + "north": {"uv": [12.75, 11.25, 13, 11.5], "texture": "#0"}, + "east": {"uv": [11.5, 12.75, 11.75, 13], "texture": "#0"}, + "south": {"uv": [12.75, 11.5, 13, 11.75], "texture": "#0"}, + "west": {"uv": [11.75, 12.75, 12, 13], "texture": "#0"}, + "up": {"uv": [13, 12, 12.75, 11.75], "texture": "#0"}, + "down": {"uv": [12.25, 12.75, 12, 13], "texture": "#0"} + } + }, + { + "from": [14, 8.4, 5.65], + "to": [14.5, 10.9, 6.15], + "rotation": {"angle": 0, "axis": "y", "origin": [18.35, 9.65, 5.9]}, + "faces": { + "north": {"uv": [0.25, 11.5, 0.5, 12.25], "texture": "#0"}, + "east": {"uv": [0.5, 11.5, 0.75, 12.25], "texture": "#0"}, + "south": {"uv": [0.75, 11.5, 1, 12.25], "texture": "#0"}, + "west": {"uv": [1, 11.5, 1.25, 12.25], "texture": "#0"}, + "up": {"uv": [13, 12.25, 12.75, 12], "texture": "#0"}, + "down": {"uv": [12.5, 12.75, 12.25, 13], "texture": "#0"} + } + }, + { + "from": [14, 9.4, 5.15], + "to": [14.5, 9.9, 5.65], + "rotation": {"angle": 0, "axis": "y", "origin": [18.35, 9.65, 5.9]}, + "faces": { + "north": {"uv": [12.75, 12.25, 13, 12.5], "texture": "#0"}, + "east": {"uv": [12.5, 12.75, 12.75, 13], "texture": "#0"}, + "south": {"uv": [12.75, 12.5, 13, 12.75], "texture": "#0"}, + "west": {"uv": [12.75, 12.75, 13, 13], "texture": "#0"}, + "up": {"uv": [0.25, 13.25, 0, 13], "texture": "#0"}, + "down": {"uv": [13.25, 0, 13, 0.25], "texture": "#0"} + } + }, + { + "from": [14, 5.7, 9.7], + "to": [14.5, 7.2, 10.2], + "rotation": {"angle": 0, "axis": "y", "origin": [14.2, 4.95, 9.95]}, + "faces": { + "north": {"uv": [12.25, 5.25, 12.5, 5.75], "texture": "#0"}, + "east": {"uv": [5.75, 12.25, 6, 12.75], "texture": "#0"}, + "south": {"uv": [12.25, 5.75, 12.5, 6.25], "texture": "#0"}, + "west": {"uv": [6, 12.25, 6.25, 12.75], "texture": "#0"}, + "up": {"uv": [0.5, 13.25, 0.25, 13], "texture": "#0"}, + "down": {"uv": [13.25, 0.25, 13, 0.5], "texture": "#0"} + } + }, + { + "from": [14, 5.85, 7.8], + "to": [14.5, 10.35, 8.3], + "rotation": {"angle": 0, "axis": "y", "origin": [16.1, 8.1, 8.05]}, + "faces": { + "north": {"uv": [9, 10.75, 9.25, 11.75], "texture": "#0"}, + "east": {"uv": [9.25, 10.75, 9.5, 11.75], "texture": "#0"}, + "south": {"uv": [9.5, 10.75, 9.75, 11.75], "texture": "#0"}, + "west": {"uv": [9.75, 10.75, 10, 11.75], "texture": "#0"}, + "up": {"uv": [0.75, 13.25, 0.5, 13], "texture": "#0"}, + "down": {"uv": [13.25, 0.5, 13, 0.75], "texture": "#0"} + } + }, + { + "from": [14, 8.35, 8.3], + "to": [14.5, 8.85, 8.8], + "rotation": {"angle": 0, "axis": "y", "origin": [16.1, 8.1, 8.05]}, + "faces": { + "north": {"uv": [0.75, 13, 1, 13.25], "texture": "#0"}, + "east": {"uv": [13, 0.75, 13.25, 1], "texture": "#0"}, + "south": {"uv": [1, 13, 1.25, 13.25], "texture": "#0"}, + "west": {"uv": [13, 1, 13.25, 1.25], "texture": "#0"}, + "up": {"uv": [1.5, 13.25, 1.25, 13], "texture": "#0"}, + "down": {"uv": [13.25, 1.25, 13, 1.5], "texture": "#0"} + } + }, + { + "from": [14, 7.35, 8.3], + "to": [14.5, 7.85, 8.8], + "rotation": {"angle": 0, "axis": "y", "origin": [16.1, 8.1, 8.05]}, + "faces": { + "north": {"uv": [1.5, 13, 1.75, 13.25], "texture": "#0"}, + "east": {"uv": [13, 1.5, 13.25, 1.75], "texture": "#0"}, + "south": {"uv": [1.75, 13, 2, 13.25], "texture": "#0"}, + "west": {"uv": [13, 1.75, 13.25, 2], "texture": "#0"}, + "up": {"uv": [2.25, 13.25, 2, 13], "texture": "#0"}, + "down": {"uv": [13.25, 2, 13, 2.25], "texture": "#0"} + } + }, + { + "from": [14, 7.85, 8.3], + "to": [14.5, 8.35, 9.8], + "rotation": {"angle": 0, "axis": "y", "origin": [16.1, 8.1, 8.05]}, + "faces": { + "north": {"uv": [2.25, 13, 2.5, 13.25], "texture": "#0"}, + "east": {"uv": [6.25, 12.25, 6.75, 12.5], "texture": "#0"}, + "south": {"uv": [13, 2.25, 13.25, 2.5], "texture": "#0"}, + "west": {"uv": [6.75, 12.25, 7.25, 12.5], "texture": "#0"}, + "up": {"uv": [12.5, 7.25, 12.25, 6.75], "texture": "#0"}, + "down": {"uv": [12.5, 7.25, 12.25, 7.75], "texture": "#0"} + } + }, + { + "from": [14, 7.85, 6.3], + "to": [14.5, 8.35, 7.8], + "rotation": {"angle": 0, "axis": "y", "origin": [16.1, 8.1, 8.05]}, + "faces": { + "north": {"uv": [2.5, 13, 2.75, 13.25], "texture": "#0"}, + "east": {"uv": [7.75, 12.25, 8.25, 12.5], "texture": "#0"}, + "south": {"uv": [13, 2.5, 13.25, 2.75], "texture": "#0"}, + "west": {"uv": [8.5, 12.25, 9, 12.5], "texture": "#0"}, + "up": {"uv": [9.25, 12.75, 9, 12.25], "texture": "#0"}, + "down": {"uv": [12.5, 9, 12.25, 9.5], "texture": "#0"} + } + }, + { + "from": [14, 8.35, 7.3], + "to": [14.5, 8.85, 7.8], + "rotation": {"angle": 0, "axis": "y", "origin": [16.1, 8.1, 8.05]}, + "faces": { + "north": {"uv": [2.75, 13, 3, 13.25], "texture": "#0"}, + "east": {"uv": [13, 2.75, 13.25, 3], "texture": "#0"}, + "south": {"uv": [3, 13, 3.25, 13.25], "texture": "#0"}, + "west": {"uv": [13, 3, 13.25, 3.25], "texture": "#0"}, + "up": {"uv": [3.5, 13.25, 3.25, 13], "texture": "#0"}, + "down": {"uv": [13.25, 3.25, 13, 3.5], "texture": "#0"} + } + }, + { + "from": [14, 7.35, 7.3], + "to": [14.5, 7.85, 7.8], + "rotation": {"angle": 0, "axis": "y", "origin": [16.1, 8.1, 8.05]}, + "faces": { + "north": {"uv": [3.5, 13, 3.75, 13.25], "texture": "#0"}, + "east": {"uv": [13, 3.5, 13.25, 3.75], "texture": "#0"}, + "south": {"uv": [3.75, 13, 4, 13.25], "texture": "#0"}, + "west": {"uv": [13, 3.75, 13.25, 4], "texture": "#0"}, + "up": {"uv": [4.25, 13.25, 4, 13], "texture": "#0"}, + "down": {"uv": [13.25, 4, 13, 4.25], "texture": "#0"} + } + }, + { + "from": [1.5, 9.4, 6.15], + "to": [2, 9.9, 6.65], + "rotation": {"angle": 0, "axis": "y", "origin": [5.85, 9.65, 5.9]}, + "faces": { + "north": {"uv": [4.25, 13, 4.5, 13.25], "texture": "#0"}, + "east": {"uv": [13, 4.25, 13.25, 4.5], "texture": "#0"}, + "south": {"uv": [4.5, 13, 4.75, 13.25], "texture": "#0"}, + "west": {"uv": [13, 4.5, 13.25, 4.75], "texture": "#0"}, + "up": {"uv": [5, 13.25, 4.75, 13], "texture": "#0"}, + "down": {"uv": [13.25, 4.75, 13, 5], "texture": "#0"} + } + }, + { + "from": [1.5, 8.4, 5.65], + "to": [2, 10.9, 6.15], + "rotation": {"angle": 0, "axis": "y", "origin": [5.85, 9.65, 5.9]}, + "faces": { + "north": {"uv": [1.25, 11.5, 1.5, 12.25], "texture": "#0"}, + "east": {"uv": [1.5, 11.5, 1.75, 12.25], "texture": "#0"}, + "south": {"uv": [1.75, 11.5, 2, 12.25], "texture": "#0"}, + "west": {"uv": [11.5, 2.25, 11.75, 3], "texture": "#0"}, + "up": {"uv": [5.25, 13.25, 5, 13], "texture": "#0"}, + "down": {"uv": [13.25, 5, 13, 5.25], "texture": "#0"} + } + }, + { + "from": [1.5, 9.4, 5.15], + "to": [2, 9.9, 5.65], + "rotation": {"angle": 0, "axis": "y", "origin": [5.85, 9.65, 5.9]}, + "faces": { + "north": {"uv": [5.25, 13, 5.5, 13.25], "texture": "#0"}, + "east": {"uv": [13, 5.25, 13.25, 5.5], "texture": "#0"}, + "south": {"uv": [5.5, 13, 5.75, 13.25], "texture": "#0"}, + "west": {"uv": [13, 5.5, 13.25, 5.75], "texture": "#0"}, + "up": {"uv": [6, 13.25, 5.75, 13], "texture": "#0"}, + "down": {"uv": [13.25, 5.75, 13, 6], "texture": "#0"} + } + }, + { + "from": [1.5, 5.7, 9.7], + "to": [2, 7.2, 10.2], + "rotation": {"angle": 0, "axis": "y", "origin": [1.7, 4.95, 9.95]}, + "faces": { + "north": {"uv": [9.25, 12.25, 9.5, 12.75], "texture": "#0"}, + "east": {"uv": [9.5, 12.25, 9.75, 12.75], "texture": "#0"}, + "south": {"uv": [12.25, 9.5, 12.5, 10], "texture": "#0"}, + "west": {"uv": [9.75, 12.25, 10, 12.75], "texture": "#0"}, + "up": {"uv": [6.25, 13.25, 6, 13], "texture": "#0"}, + "down": {"uv": [13.25, 6, 13, 6.25], "texture": "#0"} + } + }, + { + "from": [1.5, 5.85, 7.8], + "to": [2, 10.35, 8.3], + "rotation": {"angle": 0, "axis": "y", "origin": [3.6, 8.1, 8.05]}, + "faces": { + "north": {"uv": [10, 10.75, 10.25, 11.75], "texture": "#0"}, + "east": {"uv": [10.25, 10.75, 10.5, 11.75], "texture": "#0"}, + "south": {"uv": [10.5, 10.75, 10.75, 11.75], "texture": "#0"}, + "west": {"uv": [10.75, 10.75, 11, 11.75], "texture": "#0"}, + "up": {"uv": [6.5, 13.25, 6.25, 13], "texture": "#0"}, + "down": {"uv": [13.25, 6.25, 13, 6.5], "texture": "#0"} + } + }, + { + "from": [1.5, 8.35, 8.3], + "to": [2, 8.85, 8.8], + "rotation": {"angle": 0, "axis": "y", "origin": [3.6, 8.1, 8.05]}, + "faces": { + "north": {"uv": [6.5, 13, 6.75, 13.25], "texture": "#0"}, + "east": {"uv": [13, 6.5, 13.25, 6.75], "texture": "#0"}, + "south": {"uv": [6.75, 13, 7, 13.25], "texture": "#0"}, + "west": {"uv": [13, 6.75, 13.25, 7], "texture": "#0"}, + "up": {"uv": [7.25, 13.25, 7, 13], "texture": "#0"}, + "down": {"uv": [13.25, 7, 13, 7.25], "texture": "#0"} + } + }, + { + "from": [1.5, 7.35, 8.3], + "to": [2, 7.85, 8.8], + "rotation": {"angle": 0, "axis": "y", "origin": [3.6, 8.1, 8.05]}, + "faces": { + "north": {"uv": [7.25, 13, 7.5, 13.25], "texture": "#0"}, + "east": {"uv": [13, 7.25, 13.25, 7.5], "texture": "#0"}, + "south": {"uv": [7.5, 13, 7.75, 13.25], "texture": "#0"}, + "west": {"uv": [13, 7.5, 13.25, 7.75], "texture": "#0"}, + "up": {"uv": [8, 13.25, 7.75, 13], "texture": "#0"}, + "down": {"uv": [13.25, 7.75, 13, 8], "texture": "#0"} + } + }, + { + "from": [1.5, 7.85, 8.3], + "to": [2, 8.35, 9.8], + "rotation": {"angle": 0, "axis": "y", "origin": [3.6, 8.1, 8.05]}, + "faces": { + "north": {"uv": [8, 13, 8.25, 13.25], "texture": "#0"}, + "east": {"uv": [10, 12.25, 10.5, 12.5], "texture": "#0"}, + "south": {"uv": [13, 8, 13.25, 8.25], "texture": "#0"}, + "west": {"uv": [12.25, 10, 12.75, 10.25], "texture": "#0"}, + "up": {"uv": [10.75, 12.75, 10.5, 12.25], "texture": "#0"}, + "down": {"uv": [11, 12.25, 10.75, 12.75], "texture": "#0"} + } + }, + { + "from": [1.5, 7.85, 6.3], + "to": [2, 8.35, 7.8], + "rotation": {"angle": 0, "axis": "y", "origin": [3.6, 8.1, 8.05]}, + "faces": { + "north": {"uv": [8.25, 13, 8.5, 13.25], "texture": "#0"}, + "east": {"uv": [12.25, 10.25, 12.75, 10.5], "texture": "#0"}, + "south": {"uv": [13, 8.25, 13.25, 8.5], "texture": "#0"}, + "west": {"uv": [12.25, 11, 12.75, 11.25], "texture": "#0"}, + "up": {"uv": [12.5, 11.75, 12.25, 11.25], "texture": "#0"}, + "down": {"uv": [12.5, 11.75, 12.25, 12.25], "texture": "#0"} + } + }, + { + "from": [1.5, 8.35, 7.3], + "to": [2, 8.85, 7.8], + "rotation": {"angle": 0, "axis": "y", "origin": [3.6, 8.1, 8.05]}, + "faces": { + "north": {"uv": [8.5, 13, 8.75, 13.25], "texture": "#0"}, + "east": {"uv": [13, 8.5, 13.25, 8.75], "texture": "#0"}, + "south": {"uv": [8.75, 13, 9, 13.25], "texture": "#0"}, + "west": {"uv": [13, 8.75, 13.25, 9], "texture": "#0"}, + "up": {"uv": [9.25, 13.25, 9, 13], "texture": "#0"}, + "down": {"uv": [13.25, 9, 13, 9.25], "texture": "#0"} + } + }, + { + "from": [1.5, 7.35, 7.3], + "to": [2, 7.85, 7.8], + "rotation": {"angle": 0, "axis": "y", "origin": [3.6, 8.1, 8.05]}, + "faces": { + "north": {"uv": [9.25, 13, 9.5, 13.25], "texture": "#0"}, + "east": {"uv": [13, 9.25, 13.25, 9.5], "texture": "#0"}, + "south": {"uv": [9.5, 13, 9.75, 13.25], "texture": "#0"}, + "west": {"uv": [13, 9.5, 13.25, 9.75], "texture": "#0"}, + "up": {"uv": [10, 13.25, 9.75, 13], "texture": "#0"}, + "down": {"uv": [13.25, 9.75, 13, 10], "texture": "#0"} + } + }, + { + "from": [6.125, 14.05, 6.225], + "to": [6.625, 14.55, 6.725], + "rotation": {"angle": 0, "axis": "y", "origin": [7.65, 14.3, 8.075]}, + "faces": { + "north": {"uv": [10, 13, 10.25, 13.25], "texture": "#0"}, + "east": {"uv": [13, 10, 13.25, 10.25], "texture": "#0"}, + "south": {"uv": [10.25, 13, 10.5, 13.25], "texture": "#0"}, + "west": {"uv": [13, 10.25, 13.25, 10.5], "texture": "#0"}, + "up": {"uv": [10.75, 13.25, 10.5, 13], "texture": "#0"}, + "down": {"uv": [13.25, 10.5, 13, 10.75], "texture": "#0"} + } + }, + { + "from": [5.625, 14.05, 5.225], + "to": [6.125, 14.55, 7.725], + "rotation": {"angle": 0, "axis": "y", "origin": [7.65, 14.3, 8.075]}, + "faces": { + "north": {"uv": [10.75, 13, 11, 13.25], "texture": "#0"}, + "east": {"uv": [12.25, 12.25, 12.75, 12.5], "texture": "#0"}, + "south": {"uv": [13, 10.75, 13.25, 11], "texture": "#0"}, + "west": {"uv": [12.5, 0, 13, 0.25], "texture": "#0"}, + "up": {"uv": [12.75, 0.75, 12.5, 0.25], "texture": "#0"}, + "down": {"uv": [1.5, 12.5, 1.25, 13], "texture": "#0"} + } + }, + { + "from": [5.125, 14.05, 6.225], + "to": [5.625, 14.55, 6.725], + "rotation": {"angle": 0, "axis": "y", "origin": [7.65, 14.3, 8.075]}, + "faces": { + "north": {"uv": [11, 13, 11.25, 13.25], "texture": "#0"}, + "east": {"uv": [13, 11, 13.25, 11.25], "texture": "#0"}, + "south": {"uv": [11.25, 13, 11.5, 13.25], "texture": "#0"}, + "west": {"uv": [13, 11.25, 13.25, 11.5], "texture": "#0"}, + "up": {"uv": [11.75, 13.25, 11.5, 13], "texture": "#0"}, + "down": {"uv": [13.25, 11.5, 13, 11.75], "texture": "#0"} + } + }, + { + "from": [9.675, 14.05, 8.925], + "to": [10.175, 14.55, 10.425], + "rotation": {"angle": 0, "axis": "y", "origin": [7.65, 14.3, 8.075]}, + "faces": { + "north": {"uv": [11.75, 13, 12, 13.25], "texture": "#0"}, + "east": {"uv": [12.5, 0.75, 13, 1], "texture": "#0"}, + "south": {"uv": [13, 11.75, 13.25, 12], "texture": "#0"}, + "west": {"uv": [2, 12.5, 2.5, 12.75], "texture": "#0"}, + "up": {"uv": [1.75, 13, 1.5, 12.5], "texture": "#0"}, + "down": {"uv": [2.75, 12.5, 2.5, 13], "texture": "#0"} + } + }, + { + "from": [7.775, 14.05, 5.775], + "to": [8.275, 14.55, 10.275], + "rotation": {"angle": 0, "axis": "y", "origin": [7.65, 14.3, 8.075]}, + "faces": { + "north": {"uv": [12, 13, 12.25, 13.25], "texture": "#0"}, + "east": {"uv": [10.75, 5.25, 11.75, 5.5], "texture": "#0"}, + "south": {"uv": [13, 12, 13.25, 12.25], "texture": "#0"}, + "west": {"uv": [10.75, 5.5, 11.75, 5.75], "texture": "#0"}, + "up": {"uv": [11.25, 3.25, 11, 2.25], "texture": "#0"}, + "down": {"uv": [11.25, 7.25, 11, 8.25], "texture": "#0"} + } + }, + { + "from": [8.275, 14.05, 7.275], + "to": [8.775, 14.55, 7.775], + "rotation": {"angle": 0, "axis": "y", "origin": [7.65, 14.3, 8.075]}, + "faces": { + "north": {"uv": [12.25, 13, 12.5, 13.25], "texture": "#0"}, + "east": {"uv": [13, 12.25, 13.25, 12.5], "texture": "#0"}, + "south": {"uv": [12.5, 13, 12.75, 13.25], "texture": "#0"}, + "west": {"uv": [13, 12.5, 13.25, 12.75], "texture": "#0"}, + "up": {"uv": [13, 13.25, 12.75, 13], "texture": "#0"}, + "down": {"uv": [13.25, 12.75, 13, 13], "texture": "#0"} + } + }, + { + "from": [8.275, 14.05, 8.275], + "to": [8.775, 14.55, 8.775], + "rotation": {"angle": 0, "axis": "y", "origin": [7.65, 14.3, 8.075]}, + "faces": { + "north": {"uv": [13, 13, 13.25, 13.25], "texture": "#0"}, + "east": {"uv": [0, 13.25, 0.25, 13.5], "texture": "#0"}, + "south": {"uv": [13.25, 0, 13.5, 0.25], "texture": "#0"}, + "west": {"uv": [0.25, 13.25, 0.5, 13.5], "texture": "#0"}, + "up": {"uv": [13.5, 0.5, 13.25, 0.25], "texture": "#0"}, + "down": {"uv": [0.75, 13.25, 0.5, 13.5], "texture": "#0"} + } + }, + { + "from": [8.275, 14.05, 7.775], + "to": [9.775, 14.55, 8.275], + "rotation": {"angle": 0, "axis": "y", "origin": [7.65, 14.3, 8.075]}, + "faces": { + "north": {"uv": [2.75, 12.5, 3.25, 12.75], "texture": "#0"}, + "east": {"uv": [13.25, 0.5, 13.5, 0.75], "texture": "#0"}, + "south": {"uv": [12.5, 2.75, 13, 3], "texture": "#0"}, + "west": {"uv": [0.75, 13.25, 1, 13.5], "texture": "#0"}, + "up": {"uv": [13, 3.25, 12.5, 3], "texture": "#0"}, + "down": {"uv": [13, 3.5, 12.5, 3.75], "texture": "#0"} + } + }, + { + "from": [6.275, 14.05, 7.775], + "to": [7.775, 14.55, 8.275], + "rotation": {"angle": 0, "axis": "y", "origin": [7.65, 14.3, 8.075]}, + "faces": { + "north": {"uv": [12.5, 3.75, 13, 4], "texture": "#0"}, + "east": {"uv": [13.25, 0.75, 13.5, 1], "texture": "#0"}, + "south": {"uv": [4, 12.5, 4.5, 12.75], "texture": "#0"}, + "west": {"uv": [1, 13.25, 1.25, 13.5], "texture": "#0"}, + "up": {"uv": [5, 12.75, 4.5, 12.5], "texture": "#0"}, + "down": {"uv": [13, 4.5, 12.5, 4.75], "texture": "#0"} + } + }, + { + "from": [7.275, 14.05, 7.275], + "to": [7.775, 14.55, 7.775], + "rotation": {"angle": 0, "axis": "y", "origin": [7.65, 14.3, 8.075]}, + "faces": { + "north": {"uv": [13.25, 1, 13.5, 1.25], "texture": "#0"}, + "east": {"uv": [1.25, 13.25, 1.5, 13.5], "texture": "#0"}, + "south": {"uv": [13.25, 1.25, 13.5, 1.5], "texture": "#0"}, + "west": {"uv": [1.5, 13.25, 1.75, 13.5], "texture": "#0"}, + "up": {"uv": [13.5, 1.75, 13.25, 1.5], "texture": "#0"}, + "down": {"uv": [2, 13.25, 1.75, 13.5], "texture": "#0"} + } + }, + { + "from": [7.275, 14.05, 8.275], + "to": [7.775, 14.55, 8.775], + "rotation": {"angle": 0, "axis": "y", "origin": [7.65, 14.3, 8.075]}, + "faces": { + "north": {"uv": [13.25, 1.75, 13.5, 2], "texture": "#0"}, + "east": {"uv": [2, 13.25, 2.25, 13.5], "texture": "#0"}, + "south": {"uv": [13.25, 2, 13.5, 2.25], "texture": "#0"}, + "west": {"uv": [2.25, 13.25, 2.5, 13.5], "texture": "#0"}, + "up": {"uv": [13.5, 2.5, 13.25, 2.25], "texture": "#0"}, + "down": {"uv": [2.75, 13.25, 2.5, 13.5], "texture": "#0"} + } + } + ], + "groups": [ + { + "name": "ornaments", + "origin": [3, 8, 3], + "color": 0, + "children": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31] + }, + { + "name": "center", + "origin": [8, 8, 8], + "color": 0, + "children": [32, 33, 34] + }, + { + "name": "plates", + "origin": [8, 8, 8], + "color": 0, + "children": [35, 36, 37, 38, 39, 40] + }, + { + "name": "symbol", + "origin": [6, 8, 1], + "color": 0, + "children": [ + { + "name": "side1", + "origin": [7.5, 8.5, 14], + "color": 0, + "children": [ + { + "name": "group", + "origin": [7.5, 8.5, 14], + "color": 0, + "children": [41, 42, 43] + }, + { + "name": "group", + "origin": [6, 8, 1], + "color": 0, + "children": [44] + }, + { + "name": "group", + "origin": [6, 3.5, 14], + "color": 0, + "children": [45, 46, 47, 48, 49, 50, 51] + } + ] + }, + { + "name": "side2", + "origin": [7.5, 8.5, 14], + "color": 0, + "children": [ + { + "name": "group", + "origin": [7.5, 8.5, 14], + "color": 0, + "children": [52, 53, 54] + }, + { + "name": "group", + "origin": [6, 8, 1], + "color": 0, + "children": [55] + }, + { + "name": "group", + "origin": [6, 3.5, 14], + "color": 0, + "children": [56, 57, 58, 59, 60, 61, 62] + } + ] + }, + { + "name": "side3", + "origin": [7.5, 8.5, 14], + "color": 0, + "children": [ + { + "name": "group", + "origin": [7.5, 8.5, 14], + "color": 0, + "children": [63, 64, 65] + }, + { + "name": "group", + "origin": [6, 8, 1], + "color": 0, + "children": [66] + }, + { + "name": "group", + "origin": [6, 3.5, 14], + "color": 0, + "children": [67, 68, 69, 70, 71, 72, 73] + } + ] + }, + { + "name": "side4", + "origin": [7.5, 8.5, 14], + "color": 0, + "children": [ + { + "name": "group", + "origin": [7.5, 8.5, 14], + "color": 0, + "children": [74, 75, 76] + }, + { + "name": "group", + "origin": [6, 8, 1], + "color": 0, + "children": [77] + }, + { + "name": "group", + "origin": [6, 3.5, 14], + "color": 0, + "children": [78, 79, 80, 81, 82, 83, 84] + } + ] + }, + { + "name": "top", + "origin": [7.5, 8.5, 14], + "color": 0, + "children": [ + { + "name": "group", + "origin": [7.5, 8.5, 14], + "color": 0, + "children": [85, 86, 87] + }, + { + "name": "group", + "origin": [6, 8, 1], + "color": 0, + "children": [88] + }, + { + "name": "group", + "origin": [6, 3.5, 14], + "color": 0, + "children": [89, 90, 91, 92, 93, 94, 95] + } + ] + } + ] + } + ] +} diff --git a/src/main/resources/assets/utilitiesinexcess/models/blocks/upgrade_fortune_2.json b/src/main/resources/assets/utilitiesinexcess/models/blocks/upgrade_fortune_2.json new file mode 100644 index 00000000..1b4cc66f --- /dev/null +++ b/src/main/resources/assets/utilitiesinexcess/models/blocks/upgrade_fortune_2.json @@ -0,0 +1,1802 @@ +{ + "format_version": "1.9.0", + "credit": "Made with Blockbench", + "texture_size": [64, 64], + "textures": { + "0": "utilitiesinexcess:upgrade_fortune_2", + "particle": "utilitiesinexcess:upgrade_fortune_2" + }, + "elements": [ + { + "from": [2, 7, 3], + "to": [4, 9, 4], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 8]}, + "faces": { + "north": {"uv": [10.5, 4.5, 11, 5], "texture": "#0"}, + "east": {"uv": [11.75, 4.5, 12, 5], "texture": "#0"}, + "south": {"uv": [10.5, 5, 11, 5.5], "texture": "#0"}, + "west": {"uv": [11.75, 5, 12, 5.5], "texture": "#0"}, + "up": {"uv": [12.25, 7.5, 11.75, 7.25], "texture": "#0"}, + "down": {"uv": [12.25, 7.5, 11.75, 7.75], "texture": "#0"} + } + }, + { + "from": [3, 7, 2], + "to": [4, 9, 3], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 8]}, + "faces": { + "north": {"uv": [11.75, 7.75, 12, 8.25], "texture": "#0"}, + "east": {"uv": [11.75, 8.25, 12, 8.75], "texture": "#0"}, + "south": {"uv": [11.75, 8.75, 12, 9.25], "texture": "#0"}, + "west": {"uv": [11.75, 11, 12, 11.5], "texture": "#0"}, + "up": {"uv": [10.75, 4, 10.5, 3.75], "texture": "#0"}, + "down": {"uv": [9.25, 12.75, 9, 13], "texture": "#0"} + } + }, + { + "from": [3, 11, 3], + "to": [4, 13, 4], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 8]}, + "faces": { + "north": {"uv": [11.5, 11.75, 11.75, 12.25], "texture": "#0"}, + "east": {"uv": [11.75, 11.5, 12, 12], "texture": "#0"}, + "south": {"uv": [12, 1.75, 12.25, 2.25], "texture": "#0"}, + "west": {"uv": [2, 12, 2.25, 12.5], "texture": "#0"}, + "up": {"uv": [13, 9.25, 12.75, 9], "texture": "#0"}, + "down": {"uv": [9.5, 12.75, 9.25, 13], "texture": "#0"} + } + }, + { + "from": [3, 3, 3], + "to": [4, 5, 4], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 8]}, + "faces": { + "north": {"uv": [2.25, 12, 2.5, 12.5], "texture": "#0"}, + "east": {"uv": [12, 2.25, 12.25, 2.75], "texture": "#0"}, + "south": {"uv": [2.5, 12, 2.75, 12.5], "texture": "#0"}, + "west": {"uv": [2.75, 12, 3, 12.5], "texture": "#0"}, + "up": {"uv": [13, 9.5, 12.75, 9.25], "texture": "#0"}, + "down": {"uv": [13, 9.75, 12.75, 10], "texture": "#0"} + } + }, + { + "from": [3, 7, 12], + "to": [4, 9, 14], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 8]}, + "faces": { + "north": {"uv": [11.5, 8.75, 11.75, 9.25], "texture": "#0"}, + "east": {"uv": [7.5, 4, 8, 4.5], "texture": "#0"}, + "south": {"uv": [3.25, 11.75, 3.5, 12.25], "texture": "#0"}, + "west": {"uv": [7.5, 4.5, 8, 5], "texture": "#0"}, + "up": {"uv": [12, 3.75, 11.75, 3.25], "texture": "#0"}, + "down": {"uv": [3.75, 11.75, 3.5, 12.25], "texture": "#0"} + } + }, + { + "from": [2, 7, 12], + "to": [3, 9, 13], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 8]}, + "faces": { + "north": {"uv": [12, 2.75, 12.25, 3.25], "texture": "#0"}, + "east": {"uv": [12, 3.25, 12.25, 3.75], "texture": "#0"}, + "south": {"uv": [4, 12, 4.25, 12.5], "texture": "#0"}, + "west": {"uv": [4.25, 12, 4.5, 12.5], "texture": "#0"}, + "up": {"uv": [10.25, 13, 10, 12.75], "texture": "#0"}, + "down": {"uv": [10.5, 12.75, 10.25, 13], "texture": "#0"} + } + }, + { + "from": [3, 11, 12], + "to": [4, 13, 13], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 8]}, + "faces": { + "north": {"uv": [4.5, 12, 4.75, 12.5], "texture": "#0"}, + "east": {"uv": [12, 4.5, 12.25, 5], "texture": "#0"}, + "south": {"uv": [4.75, 12, 5, 12.5], "texture": "#0"}, + "west": {"uv": [5, 12, 5.25, 12.5], "texture": "#0"}, + "up": {"uv": [10.75, 13, 10.5, 12.75], "texture": "#0"}, + "down": {"uv": [13, 10.5, 12.75, 10.75], "texture": "#0"} + } + }, + { + "from": [3, 3, 12], + "to": [4, 5, 13], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 8]}, + "faces": { + "north": {"uv": [12, 5, 12.25, 5.5], "texture": "#0"}, + "east": {"uv": [12, 6, 12.25, 6.5], "texture": "#0"}, + "south": {"uv": [12, 6.5, 12.25, 7], "texture": "#0"}, + "west": {"uv": [7.25, 12, 7.5, 12.5], "texture": "#0"}, + "up": {"uv": [13, 11, 12.75, 10.75], "texture": "#0"}, + "down": {"uv": [11.25, 12.75, 11, 13], "texture": "#0"} + } + }, + { + "from": [12, 7, 12], + "to": [14, 9, 13], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 8]}, + "faces": { + "north": {"uv": [10.5, 7.25, 11, 7.75], "texture": "#0"}, + "east": {"uv": [7.5, 12, 7.75, 12.5], "texture": "#0"}, + "south": {"uv": [10.5, 7.75, 11, 8.25], "texture": "#0"}, + "west": {"uv": [7.75, 12, 8, 12.5], "texture": "#0"}, + "up": {"uv": [12.5, 7.25, 12, 7], "texture": "#0"}, + "down": {"uv": [12.5, 7.75, 12, 8], "texture": "#0"} + } + }, + { + "from": [12, 7, 13], + "to": [13, 9, 14], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 8]}, + "faces": { + "north": {"uv": [8, 12, 8.25, 12.5], "texture": "#0"}, + "east": {"uv": [12, 8, 12.25, 8.5], "texture": "#0"}, + "south": {"uv": [8.25, 12, 8.5, 12.5], "texture": "#0"}, + "west": {"uv": [12, 8.5, 12.25, 9], "texture": "#0"}, + "up": {"uv": [13, 11.25, 12.75, 11], "texture": "#0"}, + "down": {"uv": [11.5, 12.75, 11.25, 13], "texture": "#0"} + } + }, + { + "from": [12, 11, 12], + "to": [13, 13, 13], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 8]}, + "faces": { + "north": {"uv": [12, 9, 12.25, 9.5], "texture": "#0"}, + "east": {"uv": [12, 9.5, 12.25, 10], "texture": "#0"}, + "south": {"uv": [12, 11, 12.25, 11.5], "texture": "#0"}, + "west": {"uv": [12, 11.5, 12.25, 12], "texture": "#0"}, + "up": {"uv": [13, 11.5, 12.75, 11.25], "texture": "#0"}, + "down": {"uv": [13, 11.5, 12.75, 11.75], "texture": "#0"} + } + }, + { + "from": [12, 3, 12], + "to": [13, 5, 13], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 8]}, + "faces": { + "north": {"uv": [11.75, 12, 12, 12.5], "texture": "#0"}, + "east": {"uv": [12, 12, 12.25, 12.5], "texture": "#0"}, + "south": {"uv": [12.25, 0, 12.5, 0.5], "texture": "#0"}, + "west": {"uv": [12.25, 0.5, 12.5, 1], "texture": "#0"}, + "up": {"uv": [12, 13, 11.75, 12.75], "texture": "#0"}, + "down": {"uv": [13, 11.75, 12.75, 12], "texture": "#0"} + } + }, + { + "from": [12, 7, 2], + "to": [13, 9, 4], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 8]}, + "faces": { + "north": {"uv": [12.25, 1, 12.5, 1.5], "texture": "#0"}, + "east": {"uv": [10.5, 10, 11, 10.5], "texture": "#0"}, + "south": {"uv": [12.25, 1.5, 12.5, 2], "texture": "#0"}, + "west": {"uv": [10.5, 10.5, 11, 11], "texture": "#0"}, + "up": {"uv": [12.5, 2.5, 12.25, 2], "texture": "#0"}, + "down": {"uv": [12.5, 2.5, 12.25, 3], "texture": "#0"} + } + }, + { + "from": [13, 7, 3], + "to": [14, 9, 4], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 8]}, + "faces": { + "north": {"uv": [12.25, 3, 12.5, 3.5], "texture": "#0"}, + "east": {"uv": [3.25, 12.25, 3.5, 12.75], "texture": "#0"}, + "south": {"uv": [3.5, 12.25, 3.75, 12.75], "texture": "#0"}, + "west": {"uv": [12.25, 3.5, 12.5, 4], "texture": "#0"}, + "up": {"uv": [12.25, 13, 12, 12.75], "texture": "#0"}, + "down": {"uv": [13, 12.25, 12.75, 12.5], "texture": "#0"} + } + }, + { + "from": [12, 11, 3], + "to": [13, 13, 4], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 8]}, + "faces": { + "north": {"uv": [12.25, 4, 12.5, 4.5], "texture": "#0"}, + "east": {"uv": [12.25, 4.5, 12.5, 5], "texture": "#0"}, + "south": {"uv": [12.25, 5, 12.5, 5.5], "texture": "#0"}, + "west": {"uv": [5.25, 12.25, 5.5, 12.75], "texture": "#0"}, + "up": {"uv": [12.75, 13, 12.5, 12.75], "texture": "#0"}, + "down": {"uv": [13, 12.5, 12.75, 12.75], "texture": "#0"} + } + }, + { + "from": [12, 3, 3], + "to": [13, 5, 4], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 8]}, + "faces": { + "north": {"uv": [5.5, 12.25, 5.75, 12.75], "texture": "#0"}, + "east": {"uv": [12.25, 5.5, 12.5, 6], "texture": "#0"}, + "south": {"uv": [5.75, 12.25, 6, 12.75], "texture": "#0"}, + "west": {"uv": [6, 12.25, 6.25, 12.75], "texture": "#0"}, + "up": {"uv": [13, 13, 12.75, 12.75], "texture": "#0"}, + "down": {"uv": [0.25, 13, 0, 13.25], "texture": "#0"} + } + }, + { + "from": [7, 12, 2], + "to": [9, 14, 3], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 8]}, + "faces": { + "north": {"uv": [10.75, 0, 11.25, 0.5], "texture": "#0"}, + "east": {"uv": [12.25, 6, 12.5, 6.5], "texture": "#0"}, + "south": {"uv": [10.75, 0.5, 11.25, 1], "texture": "#0"}, + "west": {"uv": [12.25, 6.5, 12.5, 7], "texture": "#0"}, + "up": {"uv": [12.75, 7.5, 12.25, 7.25], "texture": "#0"}, + "down": {"uv": [12.75, 7.5, 12.25, 7.75], "texture": "#0"} + } + }, + { + "from": [7, 13, 3], + "to": [9, 14, 4], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 8]}, + "faces": { + "north": {"uv": [12.25, 8, 12.75, 8.25], "texture": "#0"}, + "east": {"uv": [0.25, 13, 0.5, 13.25], "texture": "#0"}, + "south": {"uv": [12.25, 8.25, 12.75, 8.5], "texture": "#0"}, + "west": {"uv": [0.5, 13, 0.75, 13.25], "texture": "#0"}, + "up": {"uv": [9, 12.5, 8.5, 12.25], "texture": "#0"}, + "down": {"uv": [12.75, 8.5, 12.25, 8.75], "texture": "#0"} + } + }, + { + "from": [13, 12, 7], + "to": [14, 14, 9], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 8]}, + "faces": { + "north": {"uv": [12.25, 8.75, 12.5, 9.25], "texture": "#0"}, + "east": {"uv": [10.75, 1, 11.25, 1.5], "texture": "#0"}, + "south": {"uv": [9, 12.25, 9.25, 12.75], "texture": "#0"}, + "west": {"uv": [10.75, 1.5, 11.25, 2], "texture": "#0"}, + "up": {"uv": [9.5, 12.75, 9.25, 12.25], "texture": "#0"}, + "down": {"uv": [12.5, 9.25, 12.25, 9.75], "texture": "#0"} + } + }, + { + "from": [12, 13, 7], + "to": [13, 14, 9], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 8]}, + "faces": { + "north": {"uv": [13, 0.5, 13.25, 0.75], "texture": "#0"}, + "east": {"uv": [9.5, 12.25, 10, 12.5], "texture": "#0"}, + "south": {"uv": [0.75, 13, 1, 13.25], "texture": "#0"}, + "west": {"uv": [12.25, 9.75, 12.75, 10], "texture": "#0"}, + "up": {"uv": [10.25, 12.75, 10, 12.25], "texture": "#0"}, + "down": {"uv": [12.5, 10, 12.25, 10.5], "texture": "#0"} + } + }, + { + "from": [7, 12, 13], + "to": [9, 14, 14], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 8]}, + "faces": { + "north": {"uv": [10.75, 2, 11.25, 2.5], "texture": "#0"}, + "east": {"uv": [10.25, 12.25, 10.5, 12.75], "texture": "#0"}, + "south": {"uv": [10.75, 2.5, 11.25, 3], "texture": "#0"}, + "west": {"uv": [10.5, 12.25, 10.75, 12.75], "texture": "#0"}, + "up": {"uv": [12.75, 10.75, 12.25, 10.5], "texture": "#0"}, + "down": {"uv": [11.25, 12.25, 10.75, 12.5], "texture": "#0"} + } + }, + { + "from": [7, 13, 12], + "to": [9, 14, 13], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 8]}, + "faces": { + "north": {"uv": [12.25, 10.75, 12.75, 11], "texture": "#0"}, + "east": {"uv": [13, 0.75, 13.25, 1], "texture": "#0"}, + "south": {"uv": [12.25, 11, 12.75, 11.25], "texture": "#0"}, + "west": {"uv": [1, 13, 1.25, 13.25], "texture": "#0"}, + "up": {"uv": [11.75, 12.5, 11.25, 12.25], "texture": "#0"}, + "down": {"uv": [12.75, 11.25, 12.25, 11.5], "texture": "#0"} + } + }, + { + "from": [2, 12, 7], + "to": [3, 14, 9], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 8]}, + "faces": { + "north": {"uv": [12.25, 11.5, 12.5, 12], "texture": "#0"}, + "east": {"uv": [10.75, 3, 11.25, 3.5], "texture": "#0"}, + "south": {"uv": [12.25, 12, 12.5, 12.5], "texture": "#0"}, + "west": {"uv": [10.75, 3.5, 11.25, 4], "texture": "#0"}, + "up": {"uv": [0.25, 13, 0, 12.5], "texture": "#0"}, + "down": {"uv": [12.75, 0, 12.5, 0.5], "texture": "#0"} + } + }, + { + "from": [3, 13, 7], + "to": [4, 14, 9], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 8]}, + "faces": { + "north": {"uv": [13, 1, 13.25, 1.25], "texture": "#0"}, + "east": {"uv": [0.25, 12.5, 0.75, 12.75], "texture": "#0"}, + "south": {"uv": [1.25, 13, 1.5, 13.25], "texture": "#0"}, + "west": {"uv": [12.5, 0.5, 13, 0.75], "texture": "#0"}, + "up": {"uv": [1, 13, 0.75, 12.5], "texture": "#0"}, + "down": {"uv": [12.75, 0.75, 12.5, 1.25], "texture": "#0"} + } + }, + { + "from": [3, 2, 6], + "to": [4, 3, 10], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 8]}, + "faces": { + "north": {"uv": [13, 1.25, 13.25, 1.5], "texture": "#0"}, + "east": {"uv": [10.5, 5.5, 11.5, 5.75], "texture": "#0"}, + "south": {"uv": [1.5, 13, 1.75, 13.25], "texture": "#0"}, + "west": {"uv": [10.5, 8.25, 11.5, 8.5], "texture": "#0"}, + "up": {"uv": [4, 11.5, 3.75, 10.5], "texture": "#0"}, + "down": {"uv": [11.25, 4.5, 11, 5.5], "texture": "#0"} + } + }, + { + "from": [2, 2, 6], + "to": [3, 4, 10], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 8]}, + "faces": { + "north": {"uv": [1, 12.5, 1.25, 13], "texture": "#0"}, + "east": {"uv": [6.5, 4, 7.5, 4.5], "texture": "#0"}, + "south": {"uv": [1.25, 12.5, 1.5, 13], "texture": "#0"}, + "west": {"uv": [6.5, 4.5, 7.5, 5], "texture": "#0"}, + "up": {"uv": [11.25, 8.25, 11, 7.25], "texture": "#0"}, + "down": {"uv": [11.25, 10, 11, 11], "texture": "#0"} + } + }, + { + "from": [6, 2, 12], + "to": [10, 3, 13], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 8]}, + "faces": { + "north": {"uv": [10.5, 11, 11.5, 11.25], "texture": "#0"}, + "east": {"uv": [13, 1.5, 13.25, 1.75], "texture": "#0"}, + "south": {"uv": [11.25, 0, 12.25, 0.25], "texture": "#0"}, + "west": {"uv": [1.75, 13, 2, 13.25], "texture": "#0"}, + "up": {"uv": [12.25, 0.5, 11.25, 0.25], "texture": "#0"}, + "down": {"uv": [12.25, 0.5, 11.25, 0.75], "texture": "#0"} + } + }, + { + "from": [6, 2, 13], + "to": [10, 4, 14], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 8]}, + "faces": { + "north": {"uv": [3, 9.5, 4, 10], "texture": "#0"}, + "east": {"uv": [12.5, 1.25, 12.75, 1.75], "texture": "#0"}, + "south": {"uv": [4, 9.5, 5, 10], "texture": "#0"}, + "west": {"uv": [1.5, 12.5, 1.75, 13], "texture": "#0"}, + "up": {"uv": [12.25, 1, 11.25, 0.75], "texture": "#0"}, + "down": {"uv": [12.25, 1, 11.25, 1.25], "texture": "#0"} + } + }, + { + "from": [12, 2, 6], + "to": [13, 3, 10], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 8]}, + "faces": { + "north": {"uv": [2, 13, 2.25, 13.25], "texture": "#0"}, + "east": {"uv": [11.25, 1.25, 12.25, 1.5], "texture": "#0"}, + "south": {"uv": [2.25, 13, 2.5, 13.25], "texture": "#0"}, + "west": {"uv": [11.25, 1.5, 12.25, 1.75], "texture": "#0"}, + "up": {"uv": [11.5, 2.75, 11.25, 1.75], "texture": "#0"}, + "down": {"uv": [11.5, 2.75, 11.25, 3.75], "texture": "#0"} + } + }, + { + "from": [13, 2, 6], + "to": [14, 4, 10], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 8]}, + "faces": { + "north": {"uv": [1.75, 12.5, 2, 13], "texture": "#0"}, + "east": {"uv": [5, 9.5, 6, 10], "texture": "#0"}, + "south": {"uv": [12.5, 1.75, 12.75, 2.25], "texture": "#0"}, + "west": {"uv": [6, 9.5, 7, 10], "texture": "#0"}, + "up": {"uv": [11.5, 5.5, 11.25, 4.5], "texture": "#0"}, + "down": {"uv": [11.5, 7.25, 11.25, 8.25], "texture": "#0"} + } + }, + { + "from": [6, 2, 3], + "to": [10, 3, 4], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 8]}, + "faces": { + "north": {"uv": [11.25, 3.75, 12.25, 4], "texture": "#0"}, + "east": {"uv": [13, 2.25, 13.25, 2.5], "texture": "#0"}, + "south": {"uv": [11.25, 10, 12.25, 10.25], "texture": "#0"}, + "west": {"uv": [13, 2.5, 13.25, 2.75], "texture": "#0"}, + "up": {"uv": [12.25, 10.5, 11.25, 10.25], "texture": "#0"}, + "down": {"uv": [11.5, 11.25, 10.5, 11.5], "texture": "#0"} + } + }, + { + "from": [6, 2, 2], + "to": [10, 4, 3], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 8]}, + "faces": { + "north": {"uv": [7, 9.5, 8, 10], "texture": "#0"}, + "east": {"uv": [2, 12.5, 2.25, 13], "texture": "#0"}, + "south": {"uv": [3, 10, 4, 10.5], "texture": "#0"}, + "west": {"uv": [2.25, 12.5, 2.5, 13], "texture": "#0"}, + "up": {"uv": [12.25, 10.75, 11.25, 10.5], "texture": "#0"}, + "down": {"uv": [12.25, 10.75, 11.25, 11], "texture": "#0"} + } + }, + { + "from": [12, 3, 4], + "to": [13, 13, 12], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 8]}, + "faces": { + "north": {"uv": [2, 9.5, 2.25, 12], "texture": "#0"}, + "east": {"uv": [2.5, 0, 4.5, 2.5], "texture": "#0"}, + "south": {"uv": [2.25, 9.5, 2.5, 12], "texture": "#0"}, + "west": {"uv": [2.5, 2.5, 4.5, 5], "texture": "#0"}, + "up": {"uv": [4.25, 12, 4, 10], "texture": "#0"}, + "down": {"uv": [10.25, 4, 10, 6], "texture": "#0"} + } + }, + { + "from": [3, 3, 4], + "to": [4, 13, 12], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 8]}, + "faces": { + "north": {"uv": [2.5, 9.5, 2.75, 12], "texture": "#0"}, + "east": {"uv": [4.5, 0, 6.5, 2.5], "texture": "#0"}, + "south": {"uv": [2.75, 9.5, 3, 12], "texture": "#0"}, + "west": {"uv": [4.5, 2.5, 6.5, 5], "texture": "#0"}, + "up": {"uv": [4.5, 12, 4.25, 10], "texture": "#0"}, + "down": {"uv": [4.75, 10, 4.5, 12], "texture": "#0"} + } + }, + { + "name": "base", + "from": [4, 3, 3], + "to": [12, 13, 13], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 8]}, + "faces": { + "north": {"uv": [0, 5, 2, 7.5], "texture": "#0"}, + "east": {"uv": [0, 0, 2.5, 2.5], "texture": "#0"}, + "south": {"uv": [2, 5, 4, 7.5], "texture": "#0"}, + "west": {"uv": [0, 2.5, 2.5, 5], "texture": "#0"}, + "up": {"uv": [6, 7.5, 4, 5], "texture": "#0"}, + "down": {"uv": [8, 5, 6, 7.5], "texture": "#0"} + } + }, + { + "from": [4, 4, 13], + "to": [12, 12, 14], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 8]}, + "faces": { + "north": {"uv": [6.5, 0, 8.5, 2], "texture": "#0"}, + "east": {"uv": [4.75, 10, 5, 12], "texture": "#0"}, + "south": {"uv": [6.5, 2, 8.5, 4], "texture": "#0"}, + "west": {"uv": [5, 10, 5.25, 12], "texture": "#0"}, + "up": {"uv": [7.25, 10.25, 5.25, 10], "texture": "#0"}, + "down": {"uv": [12, 6, 10, 6.25], "texture": "#0"} + } + }, + { + "from": [4, 13, 4], + "to": [12, 14, 12], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 8]}, + "faces": { + "north": {"uv": [10, 6.25, 12, 6.5], "texture": "#0"}, + "east": {"uv": [10, 6.5, 12, 6.75], "texture": "#0"}, + "south": {"uv": [10, 6.75, 12, 7], "texture": "#0"}, + "west": {"uv": [10, 7, 12, 7.25], "texture": "#0"}, + "up": {"uv": [2, 9.5, 0, 7.5], "texture": "#0"}, + "down": {"uv": [4, 7.5, 2, 9.5], "texture": "#0"} + } + }, + { + "from": [13, 4, 4], + "to": [14, 12, 12], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 8]}, + "faces": { + "north": {"uv": [7.25, 10, 7.5, 12], "texture": "#0"}, + "east": {"uv": [4, 7.5, 6, 9.5], "texture": "#0"}, + "south": {"uv": [10, 7.25, 10.25, 9.25], "texture": "#0"}, + "west": {"uv": [6, 7.5, 8, 9.5], "texture": "#0"}, + "up": {"uv": [7.75, 12, 7.5, 10], "texture": "#0"}, + "down": {"uv": [8, 10, 7.75, 12], "texture": "#0"} + } + }, + { + "from": [4, 4, 2], + "to": [12, 12, 3], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 8]}, + "faces": { + "north": {"uv": [8, 4, 10, 6], "texture": "#0"}, + "east": {"uv": [8, 10, 8.25, 12], "texture": "#0"}, + "south": {"uv": [8, 6, 10, 8], "texture": "#0"}, + "west": {"uv": [8.25, 10, 8.5, 12], "texture": "#0"}, + "up": {"uv": [10.5, 10.25, 8.5, 10], "texture": "#0"}, + "down": {"uv": [12, 9.25, 10, 9.5], "texture": "#0"} + } + }, + { + "from": [4, 2, 4], + "to": [12, 3, 12], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 8]}, + "faces": { + "north": {"uv": [10, 9.5, 12, 9.75], "texture": "#0"}, + "east": {"uv": [10, 9.75, 12, 10], "texture": "#0"}, + "south": {"uv": [10.25, 4, 12.25, 4.25], "texture": "#0"}, + "west": {"uv": [10.25, 4.25, 12.25, 4.5], "texture": "#0"}, + "up": {"uv": [10, 10, 8, 8], "texture": "#0"}, + "down": {"uv": [10.5, 0, 8.5, 2], "texture": "#0"} + } + }, + { + "from": [2, 4, 4], + "to": [3, 12, 12], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 8]}, + "faces": { + "north": {"uv": [5.25, 10.25, 5.5, 12.25], "texture": "#0"}, + "east": {"uv": [8.5, 2, 10.5, 4], "texture": "#0"}, + "south": {"uv": [5.5, 10.25, 5.75, 12.25], "texture": "#0"}, + "west": {"uv": [0, 9.5, 2, 11.5], "texture": "#0"}, + "up": {"uv": [6, 12.25, 5.75, 10.25], "texture": "#0"}, + "down": {"uv": [6.25, 10.25, 6, 12.25], "texture": "#0"} + } + }, + { + "from": [7.15, 5.75, 14], + "to": [7.65, 6.25, 14.5], + "rotation": {"angle": 0, "axis": "y", "origin": [8.05, 7.85, 14.25]}, + "faces": { + "north": {"uv": [13, 2.75, 13.25, 3], "texture": "#0"}, + "east": {"uv": [3, 13, 3.25, 13.25], "texture": "#0"}, + "south": {"uv": [13, 3, 13.25, 3.25], "texture": "#0"}, + "west": {"uv": [3.25, 13, 3.5, 13.25], "texture": "#0"}, + "up": {"uv": [13.25, 3.5, 13, 3.25], "texture": "#0"}, + "down": {"uv": [3.75, 13, 3.5, 13.25], "texture": "#0"} + } + }, + { + "from": [7.65, 4.75, 14], + "to": [8.15, 7.25, 14.5], + "rotation": {"angle": 0, "axis": "y", "origin": [8.05, 7.85, 14.25]}, + "faces": { + "north": {"uv": [11.5, 7.25, 11.75, 8], "texture": "#0"}, + "east": {"uv": [11.5, 8, 11.75, 8.75], "texture": "#0"}, + "south": {"uv": [8.5, 11.5, 8.75, 12.25], "texture": "#0"}, + "west": {"uv": [8.75, 11.5, 9, 12.25], "texture": "#0"}, + "up": {"uv": [13.25, 3.75, 13, 3.5], "texture": "#0"}, + "down": {"uv": [4, 13, 3.75, 13.25], "texture": "#0"} + } + }, + { + "from": [8.15, 5.75, 14], + "to": [8.65, 6.25, 14.5], + "rotation": {"angle": 0, "axis": "y", "origin": [8.05, 7.85, 14.25]}, + "faces": { + "north": {"uv": [13, 3.75, 13.25, 4], "texture": "#0"}, + "east": {"uv": [4, 13, 4.25, 13.25], "texture": "#0"}, + "south": {"uv": [13, 4, 13.25, 4.25], "texture": "#0"}, + "west": {"uv": [4.25, 13, 4.5, 13.25], "texture": "#0"}, + "up": {"uv": [13.25, 4.5, 13, 4.25], "texture": "#0"}, + "down": {"uv": [4.75, 13, 4.5, 13.25], "texture": "#0"} + } + }, + { + "from": [6.45, 8.95, 14], + "to": [7.95, 9.45, 14.5], + "rotation": {"angle": 0, "axis": "y", "origin": [8.05, 7.85, 14.25]}, + "faces": { + "north": {"uv": [13, 4.5, 13.25, 4.75], "texture": "#0"}, + "east": {"uv": [4.75, 13, 5, 13.25], "texture": "#0"}, + "south": {"uv": [13, 4.75, 13.25, 5], "texture": "#0"}, + "west": {"uv": [5, 13, 5.25, 13.25], "texture": "#0"}, + "up": {"uv": [13.25, 5.25, 13, 5], "texture": "#0"}, + "down": {"uv": [5.5, 13, 5.25, 13.25], "texture": "#0"} + } + }, + { + "from": [5.95, 6.95, 14], + "to": [6.45, 11.45, 14.5], + "rotation": {"angle": 0, "axis": "y", "origin": [8.05, 7.85, 14.25]}, + "faces": { + "north": {"uv": [0, 11.5, 0.25, 12.5], "texture": "#0"}, + "east": {"uv": [0.25, 11.5, 0.5, 12.5], "texture": "#0"}, + "south": {"uv": [0.5, 11.5, 0.75, 12.5], "texture": "#0"}, + "west": {"uv": [0.75, 11.5, 1, 12.5], "texture": "#0"}, + "up": {"uv": [13.25, 5.5, 13, 5.25], "texture": "#0"}, + "down": {"uv": [5.75, 13, 5.5, 13.25], "texture": "#0"} + } + }, + { + "from": [4.45, 8.95, 14], + "to": [5.95, 9.45, 14.5], + "rotation": {"angle": 0, "axis": "y", "origin": [8.05, 7.85, 14.25]}, + "faces": { + "north": {"uv": [12.5, 2.25, 13, 2.5], "texture": "#0"}, + "east": {"uv": [13, 5.5, 13.25, 5.75], "texture": "#0"}, + "south": {"uv": [2.5, 12.5, 3, 12.75], "texture": "#0"}, + "west": {"uv": [5.75, 13, 6, 13.25], "texture": "#0"}, + "up": {"uv": [13, 2.75, 12.5, 2.5], "texture": "#0"}, + "down": {"uv": [13, 2.75, 12.5, 3], "texture": "#0"} + } + }, + { + "from": [5.45, 9.45, 14], + "to": [5.95, 9.95, 14.5], + "rotation": {"angle": 0, "axis": "y", "origin": [8.05, 7.85, 14.25]}, + "faces": { + "north": {"uv": [13, 5.75, 13.25, 6], "texture": "#0"}, + "east": {"uv": [6, 13, 6.25, 13.25], "texture": "#0"}, + "south": {"uv": [13, 6, 13.25, 6.25], "texture": "#0"}, + "west": {"uv": [6.25, 13, 6.5, 13.25], "texture": "#0"}, + "up": {"uv": [13.25, 6.5, 13, 6.25], "texture": "#0"}, + "down": {"uv": [6.75, 13, 6.5, 13.25], "texture": "#0"} + } + }, + { + "from": [6.45, 9.45, 14], + "to": [6.95, 9.95, 14.5], + "rotation": {"angle": 0, "axis": "y", "origin": [8.05, 7.85, 14.25]}, + "faces": { + "north": {"uv": [13, 6.5, 13.25, 6.75], "texture": "#0"}, + "east": {"uv": [6.75, 13, 7, 13.25], "texture": "#0"}, + "south": {"uv": [13, 6.75, 13.25, 7], "texture": "#0"}, + "west": {"uv": [7, 13, 7.25, 13.25], "texture": "#0"}, + "up": {"uv": [13.25, 7.25, 13, 7], "texture": "#0"}, + "down": {"uv": [7.5, 13, 7.25, 13.25], "texture": "#0"} + } + }, + { + "from": [5.45, 8.45, 14], + "to": [5.95, 8.95, 14.5], + "rotation": {"angle": 0, "axis": "y", "origin": [8.05, 7.85, 14.25]}, + "faces": { + "north": {"uv": [7.5, 13, 7.75, 13.25], "texture": "#0"}, + "east": {"uv": [7.75, 13, 8, 13.25], "texture": "#0"}, + "south": {"uv": [13, 7.75, 13.25, 8], "texture": "#0"}, + "west": {"uv": [8, 13, 8.25, 13.25], "texture": "#0"}, + "up": {"uv": [8.5, 13.25, 8.25, 13], "texture": "#0"}, + "down": {"uv": [8.75, 13, 8.5, 13.25], "texture": "#0"} + } + }, + { + "from": [6.45, 8.45, 14], + "to": [6.95, 8.95, 14.5], + "rotation": {"angle": 0, "axis": "y", "origin": [8.05, 7.85, 14.25]}, + "faces": { + "north": {"uv": [8.75, 13, 9, 13.25], "texture": "#0"}, + "east": {"uv": [13, 8.75, 13.25, 9], "texture": "#0"}, + "south": {"uv": [9, 13, 9.25, 13.25], "texture": "#0"}, + "west": {"uv": [13, 9, 13.25, 9.25], "texture": "#0"}, + "up": {"uv": [9.5, 13.25, 9.25, 13], "texture": "#0"}, + "down": {"uv": [13.25, 9.25, 13, 9.5], "texture": "#0"} + } + }, + { + "from": [9.65, 6.15, 14], + "to": [10.15, 10.65, 14.5], + "rotation": {"angle": 0, "axis": "y", "origin": [8.05, 7.85, 14.25]}, + "faces": { + "north": {"uv": [10.25, 4.5, 10.5, 5.75], "texture": "#0"}, + "east": {"uv": [6.25, 10.25, 6.5, 11.5], "texture": "#0"}, + "south": {"uv": [6.5, 10.25, 6.75, 11.5], "texture": "#0"}, + "west": {"uv": [6.75, 10.25, 7, 11.5], "texture": "#0"}, + "up": {"uv": [9.75, 13.25, 9.5, 13], "texture": "#0"}, + "down": {"uv": [13.25, 9.5, 13, 9.75], "texture": "#0"} + } + }, + { + "from": [9.15, 8.65, 14], + "to": [9.65, 9.15, 14.5], + "rotation": {"angle": 0, "axis": "y", "origin": [8.05, 7.85, 14.25]}, + "faces": { + "north": {"uv": [9.75, 13, 10, 13.25], "texture": "#0"}, + "east": {"uv": [13, 9.75, 13.25, 10], "texture": "#0"}, + "south": {"uv": [10, 13, 10.25, 13.25], "texture": "#0"}, + "west": {"uv": [13, 10, 13.25, 10.25], "texture": "#0"}, + "up": {"uv": [10.5, 13.25, 10.25, 13], "texture": "#0"}, + "down": {"uv": [13.25, 10.25, 13, 10.5], "texture": "#0"} + } + }, + { + "from": [9.15, 7.65, 14], + "to": [9.65, 8.15, 14.5], + "rotation": {"angle": 0, "axis": "y", "origin": [8.05, 7.85, 14.25]}, + "faces": { + "north": {"uv": [10.5, 13, 10.75, 13.25], "texture": "#0"}, + "east": {"uv": [13, 10.5, 13.25, 10.75], "texture": "#0"}, + "south": {"uv": [10.75, 13, 11, 13.25], "texture": "#0"}, + "west": {"uv": [13, 10.75, 13.25, 11], "texture": "#0"}, + "up": {"uv": [11.25, 13.25, 11, 13], "texture": "#0"}, + "down": {"uv": [13.25, 11, 13, 11.25], "texture": "#0"} + } + }, + { + "from": [8.15, 8.15, 14], + "to": [9.65, 8.65, 14.5], + "rotation": {"angle": 0, "axis": "y", "origin": [8.05, 7.85, 14.25]}, + "faces": { + "north": {"uv": [12.5, 3, 13, 3.25], "texture": "#0"}, + "east": {"uv": [11.25, 13, 11.5, 13.25], "texture": "#0"}, + "south": {"uv": [12.5, 3.25, 13, 3.5], "texture": "#0"}, + "west": {"uv": [13, 11.25, 13.25, 11.5], "texture": "#0"}, + "up": {"uv": [13, 3.75, 12.5, 3.5], "texture": "#0"}, + "down": {"uv": [4.25, 12.5, 3.75, 12.75], "texture": "#0"} + } + }, + { + "from": [10.15, 8.15, 14], + "to": [11.65, 8.65, 14.5], + "rotation": {"angle": 0, "axis": "y", "origin": [8.05, 7.85, 14.25]}, + "faces": { + "north": {"uv": [12.5, 3.75, 13, 4], "texture": "#0"}, + "east": {"uv": [11.5, 13, 11.75, 13.25], "texture": "#0"}, + "south": {"uv": [12.5, 4, 13, 4.25], "texture": "#0"}, + "west": {"uv": [13, 11.5, 13.25, 11.75], "texture": "#0"}, + "up": {"uv": [4.75, 12.75, 4.25, 12.5], "texture": "#0"}, + "down": {"uv": [13, 4.25, 12.5, 4.5], "texture": "#0"} + } + }, + { + "from": [10.15, 8.65, 14], + "to": [10.65, 9.15, 14.5], + "rotation": {"angle": 0, "axis": "y", "origin": [8.05, 7.85, 14.25]}, + "faces": { + "north": {"uv": [11.75, 13, 12, 13.25], "texture": "#0"}, + "east": {"uv": [13, 11.75, 13.25, 12], "texture": "#0"}, + "south": {"uv": [12, 13, 12.25, 13.25], "texture": "#0"}, + "west": {"uv": [13, 12, 13.25, 12.25], "texture": "#0"}, + "up": {"uv": [12.5, 13.25, 12.25, 13], "texture": "#0"}, + "down": {"uv": [13.25, 12.25, 13, 12.5], "texture": "#0"} + } + }, + { + "from": [10.15, 7.65, 14], + "to": [10.65, 8.15, 14.5], + "rotation": {"angle": 0, "axis": "y", "origin": [8.05, 7.85, 14.25]}, + "faces": { + "north": {"uv": [12.5, 13, 12.75, 13.25], "texture": "#0"}, + "east": {"uv": [13, 12.5, 13.25, 12.75], "texture": "#0"}, + "south": {"uv": [12.75, 13, 13, 13.25], "texture": "#0"}, + "west": {"uv": [13, 12.75, 13.25, 13], "texture": "#0"}, + "up": {"uv": [13.25, 13.25, 13, 13], "texture": "#0"}, + "down": {"uv": [0.25, 13.25, 0, 13.5], "texture": "#0"} + } + }, + { + "from": [7.15, 5.75, 1.5], + "to": [7.65, 6.25, 2], + "rotation": {"angle": 0, "axis": "y", "origin": [8.05, 7.85, 1.75]}, + "faces": { + "north": {"uv": [13.25, 0, 13.5, 0.25], "texture": "#0"}, + "east": {"uv": [0.25, 13.25, 0.5, 13.5], "texture": "#0"}, + "south": {"uv": [13.25, 0.25, 13.5, 0.5], "texture": "#0"}, + "west": {"uv": [0.5, 13.25, 0.75, 13.5], "texture": "#0"}, + "up": {"uv": [13.5, 0.75, 13.25, 0.5], "texture": "#0"}, + "down": {"uv": [1, 13.25, 0.75, 13.5], "texture": "#0"} + } + }, + { + "from": [7.65, 4.75, 1.5], + "to": [8.15, 7.25, 2], + "rotation": {"angle": 0, "axis": "y", "origin": [8.05, 7.85, 1.75]}, + "faces": { + "north": {"uv": [9, 11.5, 9.25, 12.25], "texture": "#0"}, + "east": {"uv": [9.25, 11.5, 9.5, 12.25], "texture": "#0"}, + "south": {"uv": [9.5, 11.5, 9.75, 12.25], "texture": "#0"}, + "west": {"uv": [9.75, 11.5, 10, 12.25], "texture": "#0"}, + "up": {"uv": [13.5, 1, 13.25, 0.75], "texture": "#0"}, + "down": {"uv": [1.25, 13.25, 1, 13.5], "texture": "#0"} + } + }, + { + "from": [8.15, 5.75, 1.5], + "to": [8.65, 6.25, 2], + "rotation": {"angle": 0, "axis": "y", "origin": [8.05, 7.85, 1.75]}, + "faces": { + "north": {"uv": [13.25, 1, 13.5, 1.25], "texture": "#0"}, + "east": {"uv": [1.25, 13.25, 1.5, 13.5], "texture": "#0"}, + "south": {"uv": [13.25, 1.25, 13.5, 1.5], "texture": "#0"}, + "west": {"uv": [1.5, 13.25, 1.75, 13.5], "texture": "#0"}, + "up": {"uv": [13.5, 1.75, 13.25, 1.5], "texture": "#0"}, + "down": {"uv": [2, 13.25, 1.75, 13.5], "texture": "#0"} + } + }, + { + "from": [6.45, 8.95, 1.5], + "to": [7.95, 9.45, 2], + "rotation": {"angle": 0, "axis": "y", "origin": [8.05, 7.85, 1.75]}, + "faces": { + "north": {"uv": [13.25, 1.75, 13.5, 2], "texture": "#0"}, + "east": {"uv": [2, 13.25, 2.25, 13.5], "texture": "#0"}, + "south": {"uv": [13.25, 2, 13.5, 2.25], "texture": "#0"}, + "west": {"uv": [2.25, 13.25, 2.5, 13.5], "texture": "#0"}, + "up": {"uv": [13.5, 2.5, 13.25, 2.25], "texture": "#0"}, + "down": {"uv": [2.75, 13.25, 2.5, 13.5], "texture": "#0"} + } + }, + { + "from": [5.95, 6.95, 1.5], + "to": [6.45, 11.45, 2], + "rotation": {"angle": 0, "axis": "y", "origin": [8.05, 7.85, 1.75]}, + "faces": { + "north": {"uv": [1, 11.5, 1.25, 12.5], "texture": "#0"}, + "east": {"uv": [1.25, 11.5, 1.5, 12.5], "texture": "#0"}, + "south": {"uv": [1.5, 11.5, 1.75, 12.5], "texture": "#0"}, + "west": {"uv": [1.75, 11.5, 2, 12.5], "texture": "#0"}, + "up": {"uv": [13.5, 2.75, 13.25, 2.5], "texture": "#0"}, + "down": {"uv": [3, 13.25, 2.75, 13.5], "texture": "#0"} + } + }, + { + "from": [4.45, 8.95, 1.5], + "to": [5.95, 9.45, 2], + "rotation": {"angle": 0, "axis": "y", "origin": [8.05, 7.85, 1.75]}, + "faces": { + "north": {"uv": [12.5, 4.5, 13, 4.75], "texture": "#0"}, + "east": {"uv": [13.25, 2.75, 13.5, 3], "texture": "#0"}, + "south": {"uv": [4.75, 12.5, 5.25, 12.75], "texture": "#0"}, + "west": {"uv": [3, 13.25, 3.25, 13.5], "texture": "#0"}, + "up": {"uv": [13, 5, 12.5, 4.75], "texture": "#0"}, + "down": {"uv": [13, 5, 12.5, 5.25], "texture": "#0"} + } + }, + { + "from": [5.45, 9.45, 1.5], + "to": [5.95, 9.95, 2], + "rotation": {"angle": 0, "axis": "y", "origin": [8.05, 7.85, 1.75]}, + "faces": { + "north": {"uv": [13.25, 3, 13.5, 3.25], "texture": "#0"}, + "east": {"uv": [3.25, 13.25, 3.5, 13.5], "texture": "#0"}, + "south": {"uv": [13.25, 3.25, 13.5, 3.5], "texture": "#0"}, + "west": {"uv": [3.5, 13.25, 3.75, 13.5], "texture": "#0"}, + "up": {"uv": [13.5, 3.75, 13.25, 3.5], "texture": "#0"}, + "down": {"uv": [4, 13.25, 3.75, 13.5], "texture": "#0"} + } + }, + { + "from": [6.45, 9.45, 1.5], + "to": [6.95, 9.95, 2], + "rotation": {"angle": 0, "axis": "y", "origin": [8.05, 7.85, 1.75]}, + "faces": { + "north": {"uv": [13.25, 3.75, 13.5, 4], "texture": "#0"}, + "east": {"uv": [4, 13.25, 4.25, 13.5], "texture": "#0"}, + "south": {"uv": [13.25, 4, 13.5, 4.25], "texture": "#0"}, + "west": {"uv": [4.25, 13.25, 4.5, 13.5], "texture": "#0"}, + "up": {"uv": [13.5, 4.5, 13.25, 4.25], "texture": "#0"}, + "down": {"uv": [4.75, 13.25, 4.5, 13.5], "texture": "#0"} + } + }, + { + "from": [5.45, 8.45, 1.5], + "to": [5.95, 8.95, 2], + "rotation": {"angle": 0, "axis": "y", "origin": [8.05, 7.85, 1.75]}, + "faces": { + "north": {"uv": [13.25, 4.5, 13.5, 4.75], "texture": "#0"}, + "east": {"uv": [4.75, 13.25, 5, 13.5], "texture": "#0"}, + "south": {"uv": [13.25, 4.75, 13.5, 5], "texture": "#0"}, + "west": {"uv": [5, 13.25, 5.25, 13.5], "texture": "#0"}, + "up": {"uv": [13.5, 5.25, 13.25, 5], "texture": "#0"}, + "down": {"uv": [5.5, 13.25, 5.25, 13.5], "texture": "#0"} + } + }, + { + "from": [6.45, 8.45, 1.5], + "to": [6.95, 8.95, 2], + "rotation": {"angle": 0, "axis": "y", "origin": [8.05, 7.85, 1.75]}, + "faces": { + "north": {"uv": [13.25, 5.25, 13.5, 5.5], "texture": "#0"}, + "east": {"uv": [5.5, 13.25, 5.75, 13.5], "texture": "#0"}, + "south": {"uv": [13.25, 5.5, 13.5, 5.75], "texture": "#0"}, + "west": {"uv": [5.75, 13.25, 6, 13.5], "texture": "#0"}, + "up": {"uv": [13.5, 6, 13.25, 5.75], "texture": "#0"}, + "down": {"uv": [6.25, 13.25, 6, 13.5], "texture": "#0"} + } + }, + { + "from": [9.65, 6.15, 1.5], + "to": [10.15, 10.65, 2], + "rotation": {"angle": 0, "axis": "y", "origin": [8.05, 7.85, 1.75]}, + "faces": { + "north": {"uv": [7, 10.25, 7.25, 11.5], "texture": "#0"}, + "east": {"uv": [10.25, 7.25, 10.5, 8.5], "texture": "#0"}, + "south": {"uv": [8.5, 10.25, 8.75, 11.5], "texture": "#0"}, + "west": {"uv": [8.75, 10.25, 9, 11.5], "texture": "#0"}, + "up": {"uv": [13.5, 6.25, 13.25, 6], "texture": "#0"}, + "down": {"uv": [6.5, 13.25, 6.25, 13.5], "texture": "#0"} + } + }, + { + "from": [9.15, 8.65, 1.5], + "to": [9.65, 9.15, 2], + "rotation": {"angle": 0, "axis": "y", "origin": [8.05, 7.85, 1.75]}, + "faces": { + "north": {"uv": [13.25, 6.25, 13.5, 6.5], "texture": "#0"}, + "east": {"uv": [6.5, 13.25, 6.75, 13.5], "texture": "#0"}, + "south": {"uv": [13.25, 6.5, 13.5, 6.75], "texture": "#0"}, + "west": {"uv": [6.75, 13.25, 7, 13.5], "texture": "#0"}, + "up": {"uv": [13.5, 7, 13.25, 6.75], "texture": "#0"}, + "down": {"uv": [7.25, 13.25, 7, 13.5], "texture": "#0"} + } + }, + { + "from": [9.15, 7.65, 1.5], + "to": [9.65, 8.15, 2], + "rotation": {"angle": 0, "axis": "y", "origin": [8.05, 7.85, 1.75]}, + "faces": { + "north": {"uv": [13.25, 7, 13.5, 7.25], "texture": "#0"}, + "east": {"uv": [7.25, 13.25, 7.5, 13.5], "texture": "#0"}, + "south": {"uv": [13.25, 7.25, 13.5, 7.5], "texture": "#0"}, + "west": {"uv": [7.5, 13.25, 7.75, 13.5], "texture": "#0"}, + "up": {"uv": [13.5, 7.75, 13.25, 7.5], "texture": "#0"}, + "down": {"uv": [8, 13.25, 7.75, 13.5], "texture": "#0"} + } + }, + { + "from": [8.15, 8.15, 1.5], + "to": [9.65, 8.65, 2], + "rotation": {"angle": 0, "axis": "y", "origin": [8.05, 7.85, 1.75]}, + "faces": { + "north": {"uv": [12.5, 5.25, 13, 5.5], "texture": "#0"}, + "east": {"uv": [13.25, 7.75, 13.5, 8], "texture": "#0"}, + "south": {"uv": [12.5, 5.5, 13, 5.75], "texture": "#0"}, + "west": {"uv": [8, 13.25, 8.25, 13.5], "texture": "#0"}, + "up": {"uv": [13, 6, 12.5, 5.75], "texture": "#0"}, + "down": {"uv": [13, 6, 12.5, 6.25], "texture": "#0"} + } + }, + { + "from": [10.15, 8.15, 1.5], + "to": [11.65, 8.65, 2], + "rotation": {"angle": 0, "axis": "y", "origin": [8.05, 7.85, 1.75]}, + "faces": { + "north": {"uv": [6.25, 12.5, 6.75, 12.75], "texture": "#0"}, + "east": {"uv": [13.25, 8, 13.5, 8.25], "texture": "#0"}, + "south": {"uv": [12.5, 6.25, 13, 6.5], "texture": "#0"}, + "west": {"uv": [8.25, 13.25, 8.5, 13.5], "texture": "#0"}, + "up": {"uv": [13, 6.75, 12.5, 6.5], "texture": "#0"}, + "down": {"uv": [7.25, 12.5, 6.75, 12.75], "texture": "#0"} + } + }, + { + "from": [10.15, 8.65, 1.5], + "to": [10.65, 9.15, 2], + "rotation": {"angle": 0, "axis": "y", "origin": [8.05, 7.85, 1.75]}, + "faces": { + "north": {"uv": [13.25, 8.25, 13.5, 8.5], "texture": "#0"}, + "east": {"uv": [8.5, 13.25, 8.75, 13.5], "texture": "#0"}, + "south": {"uv": [13.25, 8.5, 13.5, 8.75], "texture": "#0"}, + "west": {"uv": [8.75, 13.25, 9, 13.5], "texture": "#0"}, + "up": {"uv": [13.5, 9, 13.25, 8.75], "texture": "#0"}, + "down": {"uv": [9.25, 13.25, 9, 13.5], "texture": "#0"} + } + }, + { + "from": [10.15, 7.65, 1.5], + "to": [10.65, 8.15, 2], + "rotation": {"angle": 0, "axis": "y", "origin": [8.05, 7.85, 1.75]}, + "faces": { + "north": {"uv": [13.25, 9, 13.5, 9.25], "texture": "#0"}, + "east": {"uv": [9.25, 13.25, 9.5, 13.5], "texture": "#0"}, + "south": {"uv": [13.25, 9.25, 13.5, 9.5], "texture": "#0"}, + "west": {"uv": [9.5, 13.25, 9.75, 13.5], "texture": "#0"}, + "up": {"uv": [13.5, 9.75, 13.25, 9.5], "texture": "#0"}, + "down": {"uv": [10, 13.25, 9.75, 13.5], "texture": "#0"} + } + }, + { + "from": [1.55, 5.75, 8.4], + "to": [2.05, 6.25, 8.9], + "rotation": {"angle": 0, "axis": "y", "origin": [1.8, 7.85, 8]}, + "faces": { + "north": {"uv": [13.25, 9.75, 13.5, 10], "texture": "#0"}, + "east": {"uv": [10, 13.25, 10.25, 13.5], "texture": "#0"}, + "south": {"uv": [13.25, 10, 13.5, 10.25], "texture": "#0"}, + "west": {"uv": [10.25, 13.25, 10.5, 13.5], "texture": "#0"}, + "up": {"uv": [13.5, 10.5, 13.25, 10.25], "texture": "#0"}, + "down": {"uv": [10.75, 13.25, 10.5, 13.5], "texture": "#0"} + } + }, + { + "from": [1.55, 4.75, 7.9], + "to": [2.05, 7.25, 8.4], + "rotation": {"angle": 0, "axis": "y", "origin": [1.8, 7.85, 8]}, + "faces": { + "north": {"uv": [10, 11.5, 10.25, 12.25], "texture": "#0"}, + "east": {"uv": [10.25, 11.5, 10.5, 12.25], "texture": "#0"}, + "south": {"uv": [10.5, 11.5, 10.75, 12.25], "texture": "#0"}, + "west": {"uv": [10.75, 11.5, 11, 12.25], "texture": "#0"}, + "up": {"uv": [13.5, 10.75, 13.25, 10.5], "texture": "#0"}, + "down": {"uv": [11, 13.25, 10.75, 13.5], "texture": "#0"} + } + }, + { + "from": [1.55, 5.75, 7.4], + "to": [2.05, 6.25, 7.9], + "rotation": {"angle": 0, "axis": "y", "origin": [1.8, 7.85, 8]}, + "faces": { + "north": {"uv": [13.25, 10.75, 13.5, 11], "texture": "#0"}, + "east": {"uv": [11, 13.25, 11.25, 13.5], "texture": "#0"}, + "south": {"uv": [13.25, 11, 13.5, 11.25], "texture": "#0"}, + "west": {"uv": [11.25, 13.25, 11.5, 13.5], "texture": "#0"}, + "up": {"uv": [13.5, 11.5, 13.25, 11.25], "texture": "#0"}, + "down": {"uv": [11.75, 13.25, 11.5, 13.5], "texture": "#0"} + } + }, + { + "from": [1.55, 8.95, 8.1], + "to": [2.05, 9.45, 9.6], + "rotation": {"angle": 0, "axis": "y", "origin": [1.8, 7.85, 8]}, + "faces": { + "north": {"uv": [13.25, 11.5, 13.5, 11.75], "texture": "#0"}, + "east": {"uv": [12.5, 6.75, 13, 7], "texture": "#0"}, + "south": {"uv": [11.75, 13.25, 12, 13.5], "texture": "#0"}, + "west": {"uv": [12.5, 7, 13, 7.25], "texture": "#0"}, + "up": {"uv": [3.25, 13, 3, 12.5], "texture": "#0"}, + "down": {"uv": [7.5, 12.5, 7.25, 13], "texture": "#0"} + } + }, + { + "from": [1.55, 6.95, 9.6], + "to": [2.05, 11.45, 10.1], + "rotation": {"angle": 0, "axis": "y", "origin": [1.8, 7.85, 8]}, + "faces": { + "north": {"uv": [11.5, 1.75, 11.75, 2.75], "texture": "#0"}, + "east": {"uv": [11.5, 2.75, 11.75, 3.75], "texture": "#0"}, + "south": {"uv": [3.75, 11.5, 4, 12.5], "texture": "#0"}, + "west": {"uv": [11.5, 4.5, 11.75, 5.5], "texture": "#0"}, + "up": {"uv": [13.5, 12, 13.25, 11.75], "texture": "#0"}, + "down": {"uv": [12.25, 13.25, 12, 13.5], "texture": "#0"} + } + }, + { + "from": [1.55, 8.95, 10.1], + "to": [2.05, 9.45, 11.6], + "rotation": {"angle": 0, "axis": "y", "origin": [1.8, 7.85, 8]}, + "faces": { + "north": {"uv": [13.25, 12, 13.5, 12.25], "texture": "#0"}, + "east": {"uv": [7.5, 12.5, 8, 12.75], "texture": "#0"}, + "south": {"uv": [12.25, 13.25, 12.5, 13.5], "texture": "#0"}, + "west": {"uv": [12.5, 7.75, 13, 8], "texture": "#0"}, + "up": {"uv": [8.25, 13, 8, 12.5], "texture": "#0"}, + "down": {"uv": [8.5, 12.5, 8.25, 13], "texture": "#0"} + } + }, + { + "from": [1.55, 9.45, 10.1], + "to": [2.05, 9.95, 10.6], + "rotation": {"angle": 0, "axis": "y", "origin": [1.8, 7.85, 8]}, + "faces": { + "north": {"uv": [13.25, 12.25, 13.5, 12.5], "texture": "#0"}, + "east": {"uv": [12.5, 13.25, 12.75, 13.5], "texture": "#0"}, + "south": {"uv": [13.25, 12.5, 13.5, 12.75], "texture": "#0"}, + "west": {"uv": [12.75, 13.25, 13, 13.5], "texture": "#0"}, + "up": {"uv": [13.5, 13, 13.25, 12.75], "texture": "#0"}, + "down": {"uv": [13.25, 13.25, 13, 13.5], "texture": "#0"} + } + }, + { + "from": [1.55, 9.45, 9.1], + "to": [2.05, 9.95, 9.6], + "rotation": {"angle": 0, "axis": "y", "origin": [1.8, 7.85, 8]}, + "faces": { + "north": {"uv": [13.25, 13, 13.5, 13.25], "texture": "#0"}, + "east": {"uv": [13.25, 13.25, 13.5, 13.5], "texture": "#0"}, + "south": {"uv": [0, 13.5, 0.25, 13.75], "texture": "#0"}, + "west": {"uv": [13.5, 0, 13.75, 0.25], "texture": "#0"}, + "up": {"uv": [0.5, 13.75, 0.25, 13.5], "texture": "#0"}, + "down": {"uv": [13.75, 0.25, 13.5, 0.5], "texture": "#0"} + } + }, + { + "from": [1.55, 8.45, 10.1], + "to": [2.05, 8.95, 10.6], + "rotation": {"angle": 0, "axis": "y", "origin": [1.8, 7.85, 8]}, + "faces": { + "north": {"uv": [0.5, 13.5, 0.75, 13.75], "texture": "#0"}, + "east": {"uv": [13.5, 0.5, 13.75, 0.75], "texture": "#0"}, + "south": {"uv": [0.75, 13.5, 1, 13.75], "texture": "#0"}, + "west": {"uv": [13.5, 0.75, 13.75, 1], "texture": "#0"}, + "up": {"uv": [1.25, 13.75, 1, 13.5], "texture": "#0"}, + "down": {"uv": [13.75, 1, 13.5, 1.25], "texture": "#0"} + } + }, + { + "from": [1.55, 8.45, 9.1], + "to": [2.05, 8.95, 9.6], + "rotation": {"angle": 0, "axis": "y", "origin": [1.8, 7.85, 8]}, + "faces": { + "north": {"uv": [1.25, 13.5, 1.5, 13.75], "texture": "#0"}, + "east": {"uv": [13.5, 1.25, 13.75, 1.5], "texture": "#0"}, + "south": {"uv": [1.5, 13.5, 1.75, 13.75], "texture": "#0"}, + "west": {"uv": [13.5, 1.5, 13.75, 1.75], "texture": "#0"}, + "up": {"uv": [2, 13.75, 1.75, 13.5], "texture": "#0"}, + "down": {"uv": [13.75, 1.75, 13.5, 2], "texture": "#0"} + } + }, + { + "from": [1.55, 6.15, 5.9], + "to": [2.05, 10.65, 6.4], + "rotation": {"angle": 0, "axis": "y", "origin": [1.8, 7.85, 8]}, + "faces": { + "north": {"uv": [9, 10.25, 9.25, 11.5], "texture": "#0"}, + "east": {"uv": [9.25, 10.25, 9.5, 11.5], "texture": "#0"}, + "south": {"uv": [9.5, 10.25, 9.75, 11.5], "texture": "#0"}, + "west": {"uv": [9.75, 10.25, 10, 11.5], "texture": "#0"}, + "up": {"uv": [2.25, 13.75, 2, 13.5], "texture": "#0"}, + "down": {"uv": [13.75, 2, 13.5, 2.25], "texture": "#0"} + } + }, + { + "from": [1.55, 8.65, 6.4], + "to": [2.05, 9.15, 6.9], + "rotation": {"angle": 0, "axis": "y", "origin": [1.8, 7.85, 8]}, + "faces": { + "north": {"uv": [2.25, 13.5, 2.5, 13.75], "texture": "#0"}, + "east": {"uv": [13.5, 2.25, 13.75, 2.5], "texture": "#0"}, + "south": {"uv": [2.5, 13.5, 2.75, 13.75], "texture": "#0"}, + "west": {"uv": [13.5, 2.5, 13.75, 2.75], "texture": "#0"}, + "up": {"uv": [3, 13.75, 2.75, 13.5], "texture": "#0"}, + "down": {"uv": [13.75, 2.75, 13.5, 3], "texture": "#0"} + } + }, + { + "from": [1.55, 7.65, 6.4], + "to": [2.05, 8.15, 6.9], + "rotation": {"angle": 0, "axis": "y", "origin": [1.8, 7.85, 8]}, + "faces": { + "north": {"uv": [3, 13.5, 3.25, 13.75], "texture": "#0"}, + "east": {"uv": [13.5, 3, 13.75, 3.25], "texture": "#0"}, + "south": {"uv": [3.25, 13.5, 3.5, 13.75], "texture": "#0"}, + "west": {"uv": [13.5, 3.25, 13.75, 3.5], "texture": "#0"}, + "up": {"uv": [3.75, 13.75, 3.5, 13.5], "texture": "#0"}, + "down": {"uv": [13.75, 3.5, 13.5, 3.75], "texture": "#0"} + } + }, + { + "from": [1.55, 8.15, 6.4], + "to": [2.05, 8.65, 7.9], + "rotation": {"angle": 0, "axis": "y", "origin": [1.8, 7.85, 8]}, + "faces": { + "north": {"uv": [3.75, 13.5, 4, 13.75], "texture": "#0"}, + "east": {"uv": [8.5, 12.5, 9, 12.75], "texture": "#0"}, + "south": {"uv": [13.5, 3.75, 13.75, 4], "texture": "#0"}, + "west": {"uv": [12.5, 8.75, 13, 9], "texture": "#0"}, + "up": {"uv": [12.75, 9.5, 12.5, 9], "texture": "#0"}, + "down": {"uv": [9.75, 12.5, 9.5, 13], "texture": "#0"} + } + }, + { + "from": [1.55, 8.15, 4.4], + "to": [2.05, 8.65, 5.9], + "rotation": {"angle": 0, "axis": "y", "origin": [1.8, 7.85, 8]}, + "faces": { + "north": {"uv": [4, 13.5, 4.25, 13.75], "texture": "#0"}, + "east": {"uv": [12.5, 9.5, 13, 9.75], "texture": "#0"}, + "south": {"uv": [13.5, 4, 13.75, 4.25], "texture": "#0"}, + "west": {"uv": [12.5, 10, 13, 10.25], "texture": "#0"}, + "up": {"uv": [10, 13, 9.75, 12.5], "texture": "#0"}, + "down": {"uv": [11, 12.5, 10.75, 13], "texture": "#0"} + } + }, + { + "from": [1.55, 8.65, 5.4], + "to": [2.05, 9.15, 5.9], + "rotation": {"angle": 0, "axis": "y", "origin": [1.8, 7.85, 8]}, + "faces": { + "north": {"uv": [4.25, 13.5, 4.5, 13.75], "texture": "#0"}, + "east": {"uv": [13.5, 4.25, 13.75, 4.5], "texture": "#0"}, + "south": {"uv": [4.5, 13.5, 4.75, 13.75], "texture": "#0"}, + "west": {"uv": [13.5, 4.5, 13.75, 4.75], "texture": "#0"}, + "up": {"uv": [5, 13.75, 4.75, 13.5], "texture": "#0"}, + "down": {"uv": [13.75, 4.75, 13.5, 5], "texture": "#0"} + } + }, + { + "from": [1.55, 7.65, 5.4], + "to": [2.05, 8.15, 5.9], + "rotation": {"angle": 0, "axis": "y", "origin": [1.8, 7.85, 8]}, + "faces": { + "north": {"uv": [5, 13.5, 5.25, 13.75], "texture": "#0"}, + "east": {"uv": [13.5, 5, 13.75, 5.25], "texture": "#0"}, + "south": {"uv": [5.25, 13.5, 5.5, 13.75], "texture": "#0"}, + "west": {"uv": [13.5, 5.25, 13.75, 5.5], "texture": "#0"}, + "up": {"uv": [5.75, 13.75, 5.5, 13.5], "texture": "#0"}, + "down": {"uv": [13.75, 5.5, 13.5, 5.75], "texture": "#0"} + } + }, + { + "from": [14.05, 5.75, 8.4], + "to": [14.55, 6.25, 8.9], + "rotation": {"angle": 0, "axis": "y", "origin": [14.3, 7.85, 8]}, + "faces": { + "north": {"uv": [5.75, 13.5, 6, 13.75], "texture": "#0"}, + "east": {"uv": [13.5, 5.75, 13.75, 6], "texture": "#0"}, + "south": {"uv": [6, 13.5, 6.25, 13.75], "texture": "#0"}, + "west": {"uv": [13.5, 6, 13.75, 6.25], "texture": "#0"}, + "up": {"uv": [6.5, 13.75, 6.25, 13.5], "texture": "#0"}, + "down": {"uv": [13.75, 6.25, 13.5, 6.5], "texture": "#0"} + } + }, + { + "from": [14.05, 4.75, 7.9], + "to": [14.55, 7.25, 8.4], + "rotation": {"angle": 0, "axis": "y", "origin": [14.3, 7.85, 8]}, + "faces": { + "north": {"uv": [11, 11.5, 11.25, 12.25], "texture": "#0"}, + "east": {"uv": [11.5, 11, 11.75, 11.75], "texture": "#0"}, + "south": {"uv": [11.25, 11.5, 11.5, 12.25], "texture": "#0"}, + "west": {"uv": [11.75, 1.75, 12, 2.5], "texture": "#0"}, + "up": {"uv": [6.75, 13.75, 6.5, 13.5], "texture": "#0"}, + "down": {"uv": [13.75, 6.5, 13.5, 6.75], "texture": "#0"} + } + }, + { + "from": [14.05, 5.75, 7.4], + "to": [14.55, 6.25, 7.9], + "rotation": {"angle": 0, "axis": "y", "origin": [14.3, 7.85, 8]}, + "faces": { + "north": {"uv": [6.75, 13.5, 7, 13.75], "texture": "#0"}, + "east": {"uv": [13.5, 6.75, 13.75, 7], "texture": "#0"}, + "south": {"uv": [7, 13.5, 7.25, 13.75], "texture": "#0"}, + "west": {"uv": [13.5, 7, 13.75, 7.25], "texture": "#0"}, + "up": {"uv": [7.5, 13.75, 7.25, 13.5], "texture": "#0"}, + "down": {"uv": [13.75, 7.25, 13.5, 7.5], "texture": "#0"} + } + }, + { + "from": [14.05, 8.95, 8.1], + "to": [14.55, 9.45, 9.6], + "rotation": {"angle": 0, "axis": "y", "origin": [14.3, 7.85, 8]}, + "faces": { + "north": {"uv": [7.5, 13.5, 7.75, 13.75], "texture": "#0"}, + "east": {"uv": [12.5, 10.25, 13, 10.5], "texture": "#0"}, + "south": {"uv": [13.5, 7.5, 13.75, 7.75], "texture": "#0"}, + "west": {"uv": [11, 12.5, 11.5, 12.75], "texture": "#0"}, + "up": {"uv": [11.75, 13, 11.5, 12.5], "texture": "#0"}, + "down": {"uv": [12.75, 11.5, 12.5, 12], "texture": "#0"} + } + }, + { + "from": [14.05, 6.95, 9.6], + "to": [14.55, 11.45, 10.1], + "rotation": {"angle": 0, "axis": "y", "origin": [14.3, 7.85, 8]}, + "faces": { + "north": {"uv": [6.25, 11.5, 6.5, 12.5], "texture": "#0"}, + "east": {"uv": [6.5, 11.5, 6.75, 12.5], "texture": "#0"}, + "south": {"uv": [6.75, 11.5, 7, 12.5], "texture": "#0"}, + "west": {"uv": [7, 11.5, 7.25, 12.5], "texture": "#0"}, + "up": {"uv": [8, 13.75, 7.75, 13.5], "texture": "#0"}, + "down": {"uv": [13.75, 7.75, 13.5, 8], "texture": "#0"} + } + }, + { + "from": [14.05, 8.95, 10.1], + "to": [14.55, 9.45, 11.6], + "rotation": {"angle": 0, "axis": "y", "origin": [14.3, 7.85, 8]}, + "faces": { + "north": {"uv": [8, 13.5, 8.25, 13.75], "texture": "#0"}, + "east": {"uv": [11.75, 12.5, 12.25, 12.75], "texture": "#0"}, + "south": {"uv": [13.5, 8, 13.75, 8.25], "texture": "#0"}, + "west": {"uv": [12.5, 12, 13, 12.25], "texture": "#0"}, + "up": {"uv": [12.5, 13, 12.25, 12.5], "texture": "#0"}, + "down": {"uv": [12.75, 12.25, 12.5, 12.75], "texture": "#0"} + } + }, + { + "from": [14.05, 9.45, 10.1], + "to": [14.55, 9.95, 10.6], + "rotation": {"angle": 0, "axis": "y", "origin": [14.3, 7.85, 8]}, + "faces": { + "north": {"uv": [8.25, 13.5, 8.5, 13.75], "texture": "#0"}, + "east": {"uv": [13.5, 8.25, 13.75, 8.5], "texture": "#0"}, + "south": {"uv": [8.5, 13.5, 8.75, 13.75], "texture": "#0"}, + "west": {"uv": [13.5, 8.5, 13.75, 8.75], "texture": "#0"}, + "up": {"uv": [9, 13.75, 8.75, 13.5], "texture": "#0"}, + "down": {"uv": [13.75, 8.75, 13.5, 9], "texture": "#0"} + } + }, + { + "from": [14.05, 9.45, 9.1], + "to": [14.55, 9.95, 9.6], + "rotation": {"angle": 0, "axis": "y", "origin": [14.3, 7.85, 8]}, + "faces": { + "north": {"uv": [9, 13.5, 9.25, 13.75], "texture": "#0"}, + "east": {"uv": [13.5, 9, 13.75, 9.25], "texture": "#0"}, + "south": {"uv": [9.25, 13.5, 9.5, 13.75], "texture": "#0"}, + "west": {"uv": [13.5, 9.25, 13.75, 9.5], "texture": "#0"}, + "up": {"uv": [9.75, 13.75, 9.5, 13.5], "texture": "#0"}, + "down": {"uv": [13.75, 9.5, 13.5, 9.75], "texture": "#0"} + } + }, + { + "from": [14.05, 8.45, 10.1], + "to": [14.55, 8.95, 10.6], + "rotation": {"angle": 0, "axis": "y", "origin": [14.3, 7.85, 8]}, + "faces": { + "north": {"uv": [9.75, 13.5, 10, 13.75], "texture": "#0"}, + "east": {"uv": [13.5, 9.75, 13.75, 10], "texture": "#0"}, + "south": {"uv": [10, 13.5, 10.25, 13.75], "texture": "#0"}, + "west": {"uv": [13.5, 10, 13.75, 10.25], "texture": "#0"}, + "up": {"uv": [10.5, 13.75, 10.25, 13.5], "texture": "#0"}, + "down": {"uv": [13.75, 10.25, 13.5, 10.5], "texture": "#0"} + } + }, + { + "from": [14.05, 8.45, 9.1], + "to": [14.55, 8.95, 9.6], + "rotation": {"angle": 0, "axis": "y", "origin": [14.3, 7.85, 8]}, + "faces": { + "north": {"uv": [10.5, 13.5, 10.75, 13.75], "texture": "#0"}, + "east": {"uv": [13.5, 10.5, 13.75, 10.75], "texture": "#0"}, + "south": {"uv": [10.75, 13.5, 11, 13.75], "texture": "#0"}, + "west": {"uv": [13.5, 10.75, 13.75, 11], "texture": "#0"}, + "up": {"uv": [11.25, 13.75, 11, 13.5], "texture": "#0"}, + "down": {"uv": [13.75, 11, 13.5, 11.25], "texture": "#0"} + } + }, + { + "from": [14.05, 6.15, 5.9], + "to": [14.55, 10.65, 6.4], + "rotation": {"angle": 0, "axis": "y", "origin": [14.3, 7.85, 8]}, + "faces": { + "north": {"uv": [10, 10.25, 10.25, 11.5], "texture": "#0"}, + "east": {"uv": [10.25, 10.25, 10.5, 11.5], "texture": "#0"}, + "south": {"uv": [10.5, 0, 10.75, 1.25], "texture": "#0"}, + "west": {"uv": [10.5, 1.25, 10.75, 2.5], "texture": "#0"}, + "up": {"uv": [11.5, 13.75, 11.25, 13.5], "texture": "#0"}, + "down": {"uv": [13.75, 11.25, 13.5, 11.5], "texture": "#0"} + } + }, + { + "from": [14.05, 8.65, 6.4], + "to": [14.55, 9.15, 6.9], + "rotation": {"angle": 0, "axis": "y", "origin": [14.3, 7.85, 8]}, + "faces": { + "north": {"uv": [11.5, 13.5, 11.75, 13.75], "texture": "#0"}, + "east": {"uv": [13.5, 11.5, 13.75, 11.75], "texture": "#0"}, + "south": {"uv": [11.75, 13.5, 12, 13.75], "texture": "#0"}, + "west": {"uv": [13.5, 11.75, 13.75, 12], "texture": "#0"}, + "up": {"uv": [12.25, 13.75, 12, 13.5], "texture": "#0"}, + "down": {"uv": [13.75, 12, 13.5, 12.25], "texture": "#0"} + } + }, + { + "from": [14.05, 7.65, 6.4], + "to": [14.55, 8.15, 6.9], + "rotation": {"angle": 0, "axis": "y", "origin": [14.3, 7.85, 8]}, + "faces": { + "north": {"uv": [12.25, 13.5, 12.5, 13.75], "texture": "#0"}, + "east": {"uv": [13.5, 12.25, 13.75, 12.5], "texture": "#0"}, + "south": {"uv": [12.5, 13.5, 12.75, 13.75], "texture": "#0"}, + "west": {"uv": [13.5, 12.5, 13.75, 12.75], "texture": "#0"}, + "up": {"uv": [13, 13.75, 12.75, 13.5], "texture": "#0"}, + "down": {"uv": [13.75, 12.75, 13.5, 13], "texture": "#0"} + } + }, + { + "from": [14.05, 8.15, 6.4], + "to": [14.55, 8.65, 7.9], + "rotation": {"angle": 0, "axis": "y", "origin": [14.3, 7.85, 8]}, + "faces": { + "north": {"uv": [13, 13.5, 13.25, 13.75], "texture": "#0"}, + "east": {"uv": [12.75, 0, 13.25, 0.25], "texture": "#0"}, + "south": {"uv": [13.5, 13, 13.75, 13.25], "texture": "#0"}, + "west": {"uv": [0.25, 12.75, 0.75, 13], "texture": "#0"}, + "up": {"uv": [13, 1.25, 12.75, 0.75], "texture": "#0"}, + "down": {"uv": [13, 1.25, 12.75, 1.75], "texture": "#0"} + } + }, + { + "from": [14.05, 8.15, 4.4], + "to": [14.55, 8.65, 5.9], + "rotation": {"angle": 0, "axis": "y", "origin": [14.3, 7.85, 8]}, + "faces": { + "north": {"uv": [13.25, 13.5, 13.5, 13.75], "texture": "#0"}, + "east": {"uv": [12.75, 0.25, 13.25, 0.5], "texture": "#0"}, + "south": {"uv": [13.5, 13.25, 13.75, 13.5], "texture": "#0"}, + "west": {"uv": [12.75, 1.75, 13.25, 2], "texture": "#0"}, + "up": {"uv": [2.75, 13.25, 2.5, 12.75], "texture": "#0"}, + "down": {"uv": [3, 12.75, 2.75, 13.25], "texture": "#0"} + } + }, + { + "from": [14.05, 8.65, 5.4], + "to": [14.55, 9.15, 5.9], + "rotation": {"angle": 0, "axis": "y", "origin": [14.3, 7.85, 8]}, + "faces": { + "north": {"uv": [13.5, 13.5, 13.75, 13.75], "texture": "#0"}, + "east": {"uv": [0, 13.75, 0.25, 14], "texture": "#0"}, + "south": {"uv": [13.75, 0, 14, 0.25], "texture": "#0"}, + "west": {"uv": [0.25, 13.75, 0.5, 14], "texture": "#0"}, + "up": {"uv": [14, 0.5, 13.75, 0.25], "texture": "#0"}, + "down": {"uv": [0.75, 13.75, 0.5, 14], "texture": "#0"} + } + }, + { + "from": [14.05, 7.65, 5.4], + "to": [14.55, 8.15, 5.9], + "rotation": {"angle": 0, "axis": "y", "origin": [14.3, 7.85, 8]}, + "faces": { + "north": {"uv": [13.75, 0.5, 14, 0.75], "texture": "#0"}, + "east": {"uv": [0.75, 13.75, 1, 14], "texture": "#0"}, + "south": {"uv": [13.75, 0.75, 14, 1], "texture": "#0"}, + "west": {"uv": [1, 13.75, 1.25, 14], "texture": "#0"}, + "up": {"uv": [14, 1.25, 13.75, 1], "texture": "#0"}, + "down": {"uv": [1.5, 13.75, 1.25, 14], "texture": "#0"} + } + }, + { + "from": [7.15, 14.1, 9.85], + "to": [7.65, 14.6, 10.35], + "rotation": {"angle": 0, "axis": "y", "origin": [8.05, 14.35, 8.25]}, + "faces": { + "north": {"uv": [13.75, 1.25, 14, 1.5], "texture": "#0"}, + "east": {"uv": [1.5, 13.75, 1.75, 14], "texture": "#0"}, + "south": {"uv": [13.75, 1.5, 14, 1.75], "texture": "#0"}, + "west": {"uv": [1.75, 13.75, 2, 14], "texture": "#0"}, + "up": {"uv": [14, 2, 13.75, 1.75], "texture": "#0"}, + "down": {"uv": [2.25, 13.75, 2, 14], "texture": "#0"} + } + }, + { + "from": [7.65, 14.1, 8.85], + "to": [8.15, 14.6, 11.35], + "rotation": {"angle": 0, "axis": "y", "origin": [8.05, 14.35, 8.25]}, + "faces": { + "north": {"uv": [13.75, 2, 14, 2.25], "texture": "#0"}, + "east": {"uv": [11.5, 5.5, 12.25, 5.75], "texture": "#0"}, + "south": {"uv": [2.25, 13.75, 2.5, 14], "texture": "#0"}, + "west": {"uv": [11.5, 5.75, 12.25, 6], "texture": "#0"}, + "up": {"uv": [12, 3.25, 11.75, 2.5], "texture": "#0"}, + "down": {"uv": [3.25, 11.75, 3, 12.5], "texture": "#0"} + } + }, + { + "from": [8.15, 14.1, 9.85], + "to": [8.65, 14.6, 10.35], + "rotation": {"angle": 0, "axis": "y", "origin": [8.05, 14.35, 8.25]}, + "faces": { + "north": {"uv": [13.75, 2.25, 14, 2.5], "texture": "#0"}, + "east": {"uv": [2.5, 13.75, 2.75, 14], "texture": "#0"}, + "south": {"uv": [13.75, 2.5, 14, 2.75], "texture": "#0"}, + "west": {"uv": [2.75, 13.75, 3, 14], "texture": "#0"}, + "up": {"uv": [14, 3, 13.75, 2.75], "texture": "#0"}, + "down": {"uv": [3.25, 13.75, 3, 14], "texture": "#0"} + } + }, + { + "from": [6.45, 14.1, 6.65], + "to": [7.95, 14.6, 7.15], + "rotation": {"angle": 0, "axis": "y", "origin": [8.05, 14.35, 8.25]}, + "faces": { + "north": {"uv": [12.75, 2, 13.25, 2.25], "texture": "#0"}, + "east": {"uv": [13.75, 3, 14, 3.25], "texture": "#0"}, + "south": {"uv": [3.25, 12.75, 3.75, 13], "texture": "#0"}, + "west": {"uv": [3.25, 13.75, 3.5, 14], "texture": "#0"}, + "up": {"uv": [4.25, 13, 3.75, 12.75], "texture": "#0"}, + "down": {"uv": [4.75, 12.75, 4.25, 13], "texture": "#0"} + } + }, + { + "from": [5.95, 14.1, 4.65], + "to": [6.45, 14.6, 9.15], + "rotation": {"angle": 0, "axis": "y", "origin": [8.05, 14.35, 8.25]}, + "faces": { + "north": {"uv": [13.75, 3.25, 14, 3.5], "texture": "#0"}, + "east": {"uv": [10.25, 5.75, 11.5, 6], "texture": "#0"}, + "south": {"uv": [3.5, 13.75, 3.75, 14], "texture": "#0"}, + "west": {"uv": [10.25, 8.5, 11.5, 8.75], "texture": "#0"}, + "up": {"uv": [10.75, 3.75, 10.5, 2.5], "texture": "#0"}, + "down": {"uv": [3.25, 10.5, 3, 11.75], "texture": "#0"} + } + }, + { + "from": [4.45, 14.1, 6.65], + "to": [5.95, 14.6, 7.15], + "rotation": {"angle": 0, "axis": "y", "origin": [8.05, 14.35, 8.25]}, + "faces": { + "north": {"uv": [4.75, 12.75, 5.25, 13], "texture": "#0"}, + "east": {"uv": [13.75, 3.5, 14, 3.75], "texture": "#0"}, + "south": {"uv": [5.25, 12.75, 5.75, 13], "texture": "#0"}, + "west": {"uv": [3.75, 13.75, 4, 14], "texture": "#0"}, + "up": {"uv": [6.25, 13, 5.75, 12.75], "texture": "#0"}, + "down": {"uv": [6.75, 12.75, 6.25, 13], "texture": "#0"} + } + }, + { + "from": [5.45, 14.1, 6.15], + "to": [5.95, 14.6, 6.65], + "rotation": {"angle": 0, "axis": "y", "origin": [8.05, 14.35, 8.25]}, + "faces": { + "north": {"uv": [13.75, 3.75, 14, 4], "texture": "#0"}, + "east": {"uv": [4, 13.75, 4.25, 14], "texture": "#0"}, + "south": {"uv": [13.75, 4, 14, 4.25], "texture": "#0"}, + "west": {"uv": [4.25, 13.75, 4.5, 14], "texture": "#0"}, + "up": {"uv": [14, 4.5, 13.75, 4.25], "texture": "#0"}, + "down": {"uv": [4.75, 13.75, 4.5, 14], "texture": "#0"} + } + }, + { + "from": [6.45, 14.1, 6.15], + "to": [6.95, 14.6, 6.65], + "rotation": {"angle": 0, "axis": "y", "origin": [8.05, 14.35, 8.25]}, + "faces": { + "north": {"uv": [13.75, 4.5, 14, 4.75], "texture": "#0"}, + "east": {"uv": [4.75, 13.75, 5, 14], "texture": "#0"}, + "south": {"uv": [13.75, 4.75, 14, 5], "texture": "#0"}, + "west": {"uv": [5, 13.75, 5.25, 14], "texture": "#0"}, + "up": {"uv": [14, 5.25, 13.75, 5], "texture": "#0"}, + "down": {"uv": [5.5, 13.75, 5.25, 14], "texture": "#0"} + } + }, + { + "from": [5.45, 14.1, 7.15], + "to": [5.95, 14.6, 7.65], + "rotation": {"angle": 0, "axis": "y", "origin": [8.05, 14.35, 8.25]}, + "faces": { + "north": {"uv": [13.75, 5.25, 14, 5.5], "texture": "#0"}, + "east": {"uv": [5.5, 13.75, 5.75, 14], "texture": "#0"}, + "south": {"uv": [13.75, 5.5, 14, 5.75], "texture": "#0"}, + "west": {"uv": [5.75, 13.75, 6, 14], "texture": "#0"}, + "up": {"uv": [14, 6, 13.75, 5.75], "texture": "#0"}, + "down": {"uv": [6.25, 13.75, 6, 14], "texture": "#0"} + } + }, + { + "from": [6.45, 14.1, 7.15], + "to": [6.95, 14.6, 7.65], + "rotation": {"angle": 0, "axis": "y", "origin": [8.05, 14.35, 8.25]}, + "faces": { + "north": {"uv": [13.75, 6, 14, 6.25], "texture": "#0"}, + "east": {"uv": [6.25, 13.75, 6.5, 14], "texture": "#0"}, + "south": {"uv": [13.75, 6.25, 14, 6.5], "texture": "#0"}, + "west": {"uv": [6.5, 13.75, 6.75, 14], "texture": "#0"}, + "up": {"uv": [14, 6.75, 13.75, 6.5], "texture": "#0"}, + "down": {"uv": [7, 13.75, 6.75, 14], "texture": "#0"} + } + }, + { + "from": [9.65, 14.1, 5.45], + "to": [10.15, 14.6, 9.95], + "rotation": {"angle": 0, "axis": "y", "origin": [8.05, 14.35, 8.25]}, + "faces": { + "north": {"uv": [13.75, 6.75, 14, 7], "texture": "#0"}, + "east": {"uv": [10.25, 8.75, 11.5, 9], "texture": "#0"}, + "south": {"uv": [7, 13.75, 7.25, 14], "texture": "#0"}, + "west": {"uv": [10.25, 9, 11.5, 9.25], "texture": "#0"}, + "up": {"uv": [3.5, 11.75, 3.25, 10.5], "texture": "#0"}, + "down": {"uv": [3.75, 10.5, 3.5, 11.75], "texture": "#0"} + } + }, + { + "from": [9.15, 14.1, 6.95], + "to": [9.65, 14.6, 7.45], + "rotation": {"angle": 0, "axis": "y", "origin": [8.05, 14.35, 8.25]}, + "faces": { + "north": {"uv": [13.75, 7, 14, 7.25], "texture": "#0"}, + "east": {"uv": [7.25, 13.75, 7.5, 14], "texture": "#0"}, + "south": {"uv": [13.75, 7.25, 14, 7.5], "texture": "#0"}, + "west": {"uv": [7.5, 13.75, 7.75, 14], "texture": "#0"}, + "up": {"uv": [14, 7.75, 13.75, 7.5], "texture": "#0"}, + "down": {"uv": [8, 13.75, 7.75, 14], "texture": "#0"} + } + }, + { + "from": [9.15, 14.1, 7.95], + "to": [9.65, 14.6, 8.45], + "rotation": {"angle": 0, "axis": "y", "origin": [8.05, 14.35, 8.25]}, + "faces": { + "north": {"uv": [13.75, 7.75, 14, 8], "texture": "#0"}, + "east": {"uv": [8, 13.75, 8.25, 14], "texture": "#0"}, + "south": {"uv": [13.75, 8, 14, 8.25], "texture": "#0"}, + "west": {"uv": [8.25, 13.75, 8.5, 14], "texture": "#0"}, + "up": {"uv": [14, 8.5, 13.75, 8.25], "texture": "#0"}, + "down": {"uv": [8.75, 13.75, 8.5, 14], "texture": "#0"} + } + }, + { + "from": [8.15, 14.1, 7.45], + "to": [9.65, 14.6, 7.95], + "rotation": {"angle": 0, "axis": "y", "origin": [8.05, 14.35, 8.25]}, + "faces": { + "north": {"uv": [6.75, 12.75, 7.25, 13], "texture": "#0"}, + "east": {"uv": [13.75, 8.5, 14, 8.75], "texture": "#0"}, + "south": {"uv": [12.75, 7.25, 13.25, 7.5], "texture": "#0"}, + "west": {"uv": [8.75, 13.75, 9, 14], "texture": "#0"}, + "up": {"uv": [8, 13, 7.5, 12.75], "texture": "#0"}, + "down": {"uv": [13.25, 7.5, 12.75, 7.75], "texture": "#0"} + } + }, + { + "from": [10.15, 14.1, 7.45], + "to": [11.65, 14.6, 7.95], + "rotation": {"angle": 0, "axis": "y", "origin": [8.05, 14.35, 8.25]}, + "faces": { + "north": {"uv": [12.75, 8, 13.25, 8.25], "texture": "#0"}, + "east": {"uv": [13.75, 8.75, 14, 9], "texture": "#0"}, + "south": {"uv": [12.75, 8.25, 13.25, 8.5], "texture": "#0"}, + "west": {"uv": [9, 13.75, 9.25, 14], "texture": "#0"}, + "up": {"uv": [9, 13, 8.5, 12.75], "texture": "#0"}, + "down": {"uv": [13.25, 8.5, 12.75, 8.75], "texture": "#0"} + } + }, + { + "from": [10.15, 14.1, 6.95], + "to": [10.65, 14.6, 7.45], + "rotation": {"angle": 0, "axis": "y", "origin": [8.05, 14.35, 8.25]}, + "faces": { + "north": {"uv": [13.75, 9, 14, 9.25], "texture": "#0"}, + "east": {"uv": [9.25, 13.75, 9.5, 14], "texture": "#0"}, + "south": {"uv": [13.75, 9.25, 14, 9.5], "texture": "#0"}, + "west": {"uv": [9.5, 13.75, 9.75, 14], "texture": "#0"}, + "up": {"uv": [14, 9.75, 13.75, 9.5], "texture": "#0"}, + "down": {"uv": [10, 13.75, 9.75, 14], "texture": "#0"} + } + }, + { + "from": [10.15, 14.1, 7.95], + "to": [10.65, 14.6, 8.45], + "rotation": {"angle": 0, "axis": "y", "origin": [8.05, 14.35, 8.25]}, + "faces": { + "north": {"uv": [13.75, 9.75, 14, 10], "texture": "#0"}, + "east": {"uv": [10, 13.75, 10.25, 14], "texture": "#0"}, + "south": {"uv": [13.75, 10, 14, 10.25], "texture": "#0"}, + "west": {"uv": [10.25, 13.75, 10.5, 14], "texture": "#0"}, + "up": {"uv": [14, 10.5, 13.75, 10.25], "texture": "#0"}, + "down": {"uv": [10.75, 13.75, 10.5, 14], "texture": "#0"} + } + } + ], + "groups": [ + { + "name": "ornaments", + "origin": [3, 8, 3], + "color": 0, + "children": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31] + }, + { + "name": "center", + "origin": [8, 8, 8], + "color": 0, + "children": [32, 33, 34] + }, + { + "name": "plates", + "origin": [8, 8, 8], + "color": 0, + "children": [35, 36, 37, 38, 39, 40] + }, + { + "name": "symbol", + "origin": [6, 8, 1], + "color": 0, + "children": [ + { + "name": "side1", + "origin": [7.5, 8.5, 14], + "color": 0, + "children": [ + { + "name": "group", + "origin": [7.5, 8.5, 14], + "color": 0, + "children": [41, 42, 43] + }, + { + "name": "group", + "origin": [6, 8, 1], + "color": 0, + "children": [44, 45, 46, 47, 48, 49, 50] + }, + { + "name": "group", + "origin": [6, 3.5, 14], + "color": 0, + "children": [51, 52, 53, 54, 55, 56, 57] + } + ] + }, + { + "name": "side2", + "origin": [7.5, 8.5, 14], + "color": 0, + "children": [ + { + "name": "group", + "origin": [7.5, 8.5, 14], + "color": 0, + "children": [58, 59, 60] + }, + { + "name": "group", + "origin": [6, 8, 1], + "color": 0, + "children": [61, 62, 63, 64, 65, 66, 67] + }, + { + "name": "group", + "origin": [6, 3.5, 14], + "color": 0, + "children": [68, 69, 70, 71, 72, 73, 74] + } + ] + }, + { + "name": "side3", + "origin": [7.5, 8.5, 14], + "color": 0, + "children": [ + { + "name": "group", + "origin": [7.5, 8.5, 14], + "color": 0, + "children": [75, 76, 77] + }, + { + "name": "group", + "origin": [6, 8, 1], + "color": 0, + "children": [78, 79, 80, 81, 82, 83, 84] + }, + { + "name": "group", + "origin": [6, 3.5, 14], + "color": 0, + "children": [85, 86, 87, 88, 89, 90, 91] + } + ] + }, + { + "name": "side4", + "origin": [7.5, 8.5, 14], + "color": 0, + "children": [ + { + "name": "group", + "origin": [7.5, 8.5, 14], + "color": 0, + "children": [92, 93, 94] + }, + { + "name": "group", + "origin": [6, 8, 1], + "color": 0, + "children": [95, 96, 97, 98, 99, 100, 101] + }, + { + "name": "group", + "origin": [6, 3.5, 14], + "color": 0, + "children": [102, 103, 104, 105, 106, 107, 108] + } + ] + }, + { + "name": "top", + "origin": [7.5, 8.5, 14], + "color": 0, + "children": [ + { + "name": "group", + "origin": [7.5, 8.5, 14], + "color": 0, + "children": [109, 110, 111] + }, + { + "name": "group", + "origin": [6, 8, 1], + "color": 0, + "children": [112, 113, 114, 115, 116, 117, 118] + }, + { + "name": "group", + "origin": [6, 3.5, 14], + "color": 0, + "children": [119, 120, 121, 122, 123, 124, 125] + } + ] + } + ] + } + ] +} diff --git a/src/main/resources/assets/utilitiesinexcess/models/blocks/upgrade_fortune_3.json b/src/main/resources/assets/utilitiesinexcess/models/blocks/upgrade_fortune_3.json new file mode 100644 index 00000000..3528cc9f --- /dev/null +++ b/src/main/resources/assets/utilitiesinexcess/models/blocks/upgrade_fortune_3.json @@ -0,0 +1,2062 @@ +{ + "format_version": "1.9.0", + "credit": "Made with Blockbench", + "texture_size": [64, 64], + "textures": { + "0": "utilitiesinexcess:upgrade_fortune_3", + "particle": "utilitiesinexcess:upgrade_fortune_3" + }, + "elements": [ + { + "from": [2, 7, 3], + "to": [4, 9, 4], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 8]}, + "faces": { + "north": {"uv": [7.5, 4, 8, 4.5], "texture": "#0"}, + "east": {"uv": [0.5, 12, 0.75, 12.5], "texture": "#0"}, + "south": {"uv": [7.5, 4.5, 8, 5], "texture": "#0"}, + "west": {"uv": [0.75, 12, 1, 12.5], "texture": "#0"}, + "up": {"uv": [11, 4, 10.5, 3.75], "texture": "#0"}, + "down": {"uv": [12.25, 11.25, 11.75, 11.5], "texture": "#0"} + } + }, + { + "from": [3, 7, 2], + "to": [4, 9, 3], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 8]}, + "faces": { + "north": {"uv": [1, 12, 1.25, 12.5], "texture": "#0"}, + "east": {"uv": [12, 1, 12.25, 1.5], "texture": "#0"}, + "south": {"uv": [1.25, 12, 1.5, 12.5], "texture": "#0"}, + "west": {"uv": [12, 1.5, 12.25, 2], "texture": "#0"}, + "up": {"uv": [13.25, 2, 13, 1.75], "texture": "#0"}, + "down": {"uv": [2.25, 13, 2, 13.25], "texture": "#0"} + } + }, + { + "from": [3, 11, 3], + "to": [4, 13, 4], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 8]}, + "faces": { + "north": {"uv": [2, 12, 2.25, 12.5], "texture": "#0"}, + "east": {"uv": [12, 2, 12.25, 2.5], "texture": "#0"}, + "south": {"uv": [2.25, 12, 2.5, 12.5], "texture": "#0"}, + "west": {"uv": [2.5, 12, 2.75, 12.5], "texture": "#0"}, + "up": {"uv": [2.5, 13.25, 2.25, 13], "texture": "#0"}, + "down": {"uv": [2.75, 13, 2.5, 13.25], "texture": "#0"} + } + }, + { + "from": [3, 3, 3], + "to": [4, 5, 4], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 8]}, + "faces": { + "north": {"uv": [12, 2.5, 12.25, 3], "texture": "#0"}, + "east": {"uv": [2.75, 12, 3, 12.5], "texture": "#0"}, + "south": {"uv": [12, 3, 12.25, 3.5], "texture": "#0"}, + "west": {"uv": [12, 3.5, 12.25, 4], "texture": "#0"}, + "up": {"uv": [13.25, 2.75, 13, 2.5], "texture": "#0"}, + "down": {"uv": [3, 13, 2.75, 13.25], "texture": "#0"} + } + }, + { + "from": [3, 7, 12], + "to": [4, 9, 14], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 8]}, + "faces": { + "north": {"uv": [4, 12, 4.25, 12.5], "texture": "#0"}, + "east": {"uv": [11.25, 0, 11.75, 0.5], "texture": "#0"}, + "south": {"uv": [4.25, 12, 4.5, 12.5], "texture": "#0"}, + "west": {"uv": [11.25, 0.5, 11.75, 1], "texture": "#0"}, + "up": {"uv": [4.75, 12.5, 4.5, 12], "texture": "#0"}, + "down": {"uv": [12.25, 4.5, 12, 5], "texture": "#0"} + } + }, + { + "from": [2, 7, 12], + "to": [3, 9, 13], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 8]}, + "faces": { + "north": {"uv": [4.75, 12, 5, 12.5], "texture": "#0"}, + "east": {"uv": [5, 12, 5.25, 12.5], "texture": "#0"}, + "south": {"uv": [12, 5, 12.25, 5.5], "texture": "#0"}, + "west": {"uv": [12, 6, 12.25, 6.5], "texture": "#0"}, + "up": {"uv": [13.25, 3, 13, 2.75], "texture": "#0"}, + "down": {"uv": [3.25, 13, 3, 13.25], "texture": "#0"} + } + }, + { + "from": [3, 11, 12], + "to": [4, 13, 13], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 8]}, + "faces": { + "north": {"uv": [12, 6.5, 12.25, 7], "texture": "#0"}, + "east": {"uv": [12, 7, 12.25, 7.5], "texture": "#0"}, + "south": {"uv": [7.25, 12, 7.5, 12.5], "texture": "#0"}, + "west": {"uv": [7.5, 12, 7.75, 12.5], "texture": "#0"}, + "up": {"uv": [3.5, 13.25, 3.25, 13], "texture": "#0"}, + "down": {"uv": [13.25, 3.5, 13, 3.75], "texture": "#0"} + } + }, + { + "from": [3, 3, 12], + "to": [4, 5, 13], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 8]}, + "faces": { + "north": {"uv": [12, 7.5, 12.25, 8], "texture": "#0"}, + "east": {"uv": [7.75, 12, 8, 12.5], "texture": "#0"}, + "south": {"uv": [8, 12, 8.25, 12.5], "texture": "#0"}, + "west": {"uv": [8.25, 12, 8.5, 12.5], "texture": "#0"}, + "up": {"uv": [13.25, 4, 13, 3.75], "texture": "#0"}, + "down": {"uv": [4.25, 13, 4, 13.25], "texture": "#0"} + } + }, + { + "from": [12, 7, 12], + "to": [14, 9, 13], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 8]}, + "faces": { + "north": {"uv": [11.25, 1, 11.75, 1.5], "texture": "#0"}, + "east": {"uv": [9.25, 12, 9.5, 12.5], "texture": "#0"}, + "south": {"uv": [11.25, 1.5, 11.75, 2], "texture": "#0"}, + "west": {"uv": [12, 9.25, 12.25, 9.75], "texture": "#0"}, + "up": {"uv": [12.5, 8.25, 12, 8], "texture": "#0"}, + "down": {"uv": [10, 12, 9.5, 12.25], "texture": "#0"} + } + }, + { + "from": [12, 7, 13], + "to": [13, 9, 14], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 8]}, + "faces": { + "north": {"uv": [10, 12, 10.25, 12.5], "texture": "#0"}, + "east": {"uv": [12, 10.25, 12.25, 10.75], "texture": "#0"}, + "south": {"uv": [12, 10.75, 12.25, 11.25], "texture": "#0"}, + "west": {"uv": [12, 11.75, 12.25, 12.25], "texture": "#0"}, + "up": {"uv": [4.5, 13.25, 4.25, 13], "texture": "#0"}, + "down": {"uv": [4.75, 13, 4.5, 13.25], "texture": "#0"} + } + }, + { + "from": [12, 11, 12], + "to": [13, 13, 13], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 8]}, + "faces": { + "north": {"uv": [10.5, 11.75, 10.75, 12.25], "texture": "#0"}, + "east": {"uv": [10.75, 11.75, 11, 12.25], "texture": "#0"}, + "south": {"uv": [11.5, 11.75, 11.75, 12.25], "texture": "#0"}, + "west": {"uv": [11.75, 11.75, 12, 12.25], "texture": "#0"}, + "up": {"uv": [11.25, 4, 11, 3.75], "texture": "#0"}, + "down": {"uv": [11.25, 12.75, 11, 13], "texture": "#0"} + } + }, + { + "from": [12, 3, 12], + "to": [13, 5, 13], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 8]}, + "faces": { + "north": {"uv": [12.25, 1, 12.5, 1.5], "texture": "#0"}, + "east": {"uv": [12.25, 1.5, 12.5, 2], "texture": "#0"}, + "south": {"uv": [12.25, 2, 12.5, 2.5], "texture": "#0"}, + "west": {"uv": [12.25, 2.5, 12.5, 3], "texture": "#0"}, + "up": {"uv": [13.25, 4.75, 13, 4.5], "texture": "#0"}, + "down": {"uv": [5, 13, 4.75, 13.25], "texture": "#0"} + } + }, + { + "from": [12, 7, 2], + "to": [13, 9, 4], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 8]}, + "faces": { + "north": {"uv": [12.25, 3, 12.5, 3.5], "texture": "#0"}, + "east": {"uv": [11.25, 2, 11.75, 2.5], "texture": "#0"}, + "south": {"uv": [12.25, 3.5, 12.5, 4], "texture": "#0"}, + "west": {"uv": [11.25, 2.5, 11.75, 3], "texture": "#0"}, + "up": {"uv": [12.5, 4.5, 12.25, 4], "texture": "#0"}, + "down": {"uv": [12.5, 4.5, 12.25, 5], "texture": "#0"} + } + }, + { + "from": [13, 7, 3], + "to": [14, 9, 4], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 8]}, + "faces": { + "north": {"uv": [12.25, 5, 12.5, 5.5], "texture": "#0"}, + "east": {"uv": [5.25, 12.25, 5.5, 12.75], "texture": "#0"}, + "south": {"uv": [5.5, 12.25, 5.75, 12.75], "texture": "#0"}, + "west": {"uv": [5.75, 12.25, 6, 12.75], "texture": "#0"}, + "up": {"uv": [13.25, 5, 13, 4.75], "texture": "#0"}, + "down": {"uv": [5.25, 13, 5, 13.25], "texture": "#0"} + } + }, + { + "from": [12, 11, 3], + "to": [13, 13, 4], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 8]}, + "faces": { + "north": {"uv": [6, 12.25, 6.25, 12.75], "texture": "#0"}, + "east": {"uv": [12.25, 6, 12.5, 6.5], "texture": "#0"}, + "south": {"uv": [12.25, 6.5, 12.5, 7], "texture": "#0"}, + "west": {"uv": [12.25, 7, 12.5, 7.5], "texture": "#0"}, + "up": {"uv": [13.25, 5.25, 13, 5], "texture": "#0"}, + "down": {"uv": [5.5, 13, 5.25, 13.25], "texture": "#0"} + } + }, + { + "from": [12, 3, 3], + "to": [13, 5, 4], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 8]}, + "faces": { + "north": {"uv": [12.25, 7.5, 12.5, 8], "texture": "#0"}, + "east": {"uv": [12.25, 9.25, 12.5, 9.75], "texture": "#0"}, + "south": {"uv": [9.5, 12.25, 9.75, 12.75], "texture": "#0"}, + "west": {"uv": [9.75, 12.25, 10, 12.75], "texture": "#0"}, + "up": {"uv": [13.25, 5.5, 13, 5.25], "texture": "#0"}, + "down": {"uv": [5.75, 13, 5.5, 13.25], "texture": "#0"} + } + }, + { + "from": [7, 12, 2], + "to": [9, 14, 3], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 8]}, + "faces": { + "north": {"uv": [11.25, 3, 11.75, 3.5], "texture": "#0"}, + "east": {"uv": [12.25, 10.25, 12.5, 10.75], "texture": "#0"}, + "south": {"uv": [11.25, 3.5, 11.75, 4], "texture": "#0"}, + "west": {"uv": [10.5, 12.25, 10.75, 12.75], "texture": "#0"}, + "up": {"uv": [12.5, 10, 12, 9.75], "texture": "#0"}, + "down": {"uv": [12.75, 5.5, 12.25, 5.75], "texture": "#0"} + } + }, + { + "from": [7, 13, 3], + "to": [9, 14, 4], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 8]}, + "faces": { + "north": {"uv": [12.25, 8.25, 12.75, 8.5], "texture": "#0"}, + "east": {"uv": [13, 5.75, 13.25, 6], "texture": "#0"}, + "south": {"uv": [10.75, 12.25, 11.25, 12.5], "texture": "#0"}, + "west": {"uv": [13, 6, 13.25, 6.25], "texture": "#0"}, + "up": {"uv": [12.75, 11, 12.25, 10.75], "texture": "#0"}, + "down": {"uv": [12.75, 11, 12.25, 11.25], "texture": "#0"} + } + }, + { + "from": [13, 12, 7], + "to": [14, 14, 9], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 8]}, + "faces": { + "north": {"uv": [11.5, 12.25, 11.75, 12.75], "texture": "#0"}, + "east": {"uv": [11.25, 4.5, 11.75, 5], "texture": "#0"}, + "south": {"uv": [11.75, 12.25, 12, 12.75], "texture": "#0"}, + "west": {"uv": [11.25, 5, 11.75, 5.5], "texture": "#0"}, + "up": {"uv": [12.5, 12.25, 12.25, 11.75], "texture": "#0"}, + "down": {"uv": [12.25, 12.25, 12, 12.75], "texture": "#0"} + } + }, + { + "from": [12, 13, 7], + "to": [13, 14, 9], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 8]}, + "faces": { + "north": {"uv": [6.25, 13, 6.5, 13.25], "texture": "#0"}, + "east": {"uv": [12.25, 11.25, 12.75, 11.5], "texture": "#0"}, + "south": {"uv": [13, 6.25, 13.25, 6.5], "texture": "#0"}, + "west": {"uv": [12.25, 12.25, 12.75, 12.5], "texture": "#0"}, + "up": {"uv": [0.25, 13, 0, 12.5], "texture": "#0"}, + "down": {"uv": [0.5, 12.5, 0.25, 13], "texture": "#0"} + } + }, + { + "from": [7, 12, 13], + "to": [9, 14, 14], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 8]}, + "faces": { + "north": {"uv": [11.25, 7.25, 11.75, 7.75], "texture": "#0"}, + "east": {"uv": [0.5, 12.5, 0.75, 13], "texture": "#0"}, + "south": {"uv": [11.25, 7.75, 11.75, 8.25], "texture": "#0"}, + "west": {"uv": [0.75, 12.5, 1, 13], "texture": "#0"}, + "up": {"uv": [1.5, 12.75, 1, 12.5], "texture": "#0"}, + "down": {"uv": [13, 1, 12.5, 1.25], "texture": "#0"} + } + }, + { + "from": [7, 13, 12], + "to": [9, 14, 13], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 8]}, + "faces": { + "north": {"uv": [12.5, 1.25, 13, 1.5], "texture": "#0"}, + "east": {"uv": [6.5, 13, 6.75, 13.25], "texture": "#0"}, + "south": {"uv": [1.5, 12.5, 2, 12.75], "texture": "#0"}, + "west": {"uv": [13, 6.5, 13.25, 6.75], "texture": "#0"}, + "up": {"uv": [13, 1.75, 12.5, 1.5], "texture": "#0"}, + "down": {"uv": [13, 1.75, 12.5, 2], "texture": "#0"} + } + }, + { + "from": [2, 12, 7], + "to": [3, 14, 9], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 8]}, + "faces": { + "north": {"uv": [2, 12.5, 2.25, 13], "texture": "#0"}, + "east": {"uv": [11.25, 10, 11.75, 10.5], "texture": "#0"}, + "south": {"uv": [12.5, 2, 12.75, 2.5], "texture": "#0"}, + "west": {"uv": [10.5, 11.25, 11, 11.75], "texture": "#0"}, + "up": {"uv": [2.5, 13, 2.25, 12.5], "texture": "#0"}, + "down": {"uv": [2.75, 12.5, 2.5, 13], "texture": "#0"} + } + }, + { + "from": [3, 13, 7], + "to": [4, 14, 9], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 8]}, + "faces": { + "north": {"uv": [6.75, 13, 7, 13.25], "texture": "#0"}, + "east": {"uv": [12.5, 2.5, 13, 2.75], "texture": "#0"}, + "south": {"uv": [13, 6.75, 13.25, 7], "texture": "#0"}, + "west": {"uv": [12.5, 2.75, 13, 3], "texture": "#0"}, + "up": {"uv": [3, 13, 2.75, 12.5], "texture": "#0"}, + "down": {"uv": [12.75, 3, 12.5, 3.5], "texture": "#0"} + } + }, + { + "from": [3, 2, 6], + "to": [4, 3, 10], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 8]}, + "faces": { + "north": {"uv": [7, 13, 7.25, 13.25], "texture": "#0"}, + "east": {"uv": [11.25, 5.5, 12.25, 5.75], "texture": "#0"}, + "south": {"uv": [13, 7, 13.25, 7.25], "texture": "#0"}, + "west": {"uv": [11.25, 8.25, 12.25, 8.5], "texture": "#0"}, + "up": {"uv": [11.5, 11.5, 11.25, 10.5], "texture": "#0"}, + "down": {"uv": [11.25, 11.25, 11, 12.25], "texture": "#0"} + } + }, + { + "from": [2, 2, 6], + "to": [3, 4, 10], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 8]}, + "faces": { + "north": {"uv": [12.5, 3.5, 12.75, 4], "texture": "#0"}, + "east": {"uv": [6.5, 4, 7.5, 4.5], "texture": "#0"}, + "south": {"uv": [4, 12.5, 4.25, 13], "texture": "#0"}, + "west": {"uv": [6.5, 4.5, 7.5, 5], "texture": "#0"}, + "up": {"uv": [0.25, 12.5, 0, 11.5], "texture": "#0"}, + "down": {"uv": [0.5, 11.5, 0.25, 12.5], "texture": "#0"} + } + }, + { + "from": [6, 2, 12], + "to": [10, 3, 13], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 8]}, + "faces": { + "north": {"uv": [0.5, 11.5, 1.5, 11.75], "texture": "#0"}, + "east": {"uv": [13, 7.25, 13.25, 7.5], "texture": "#0"}, + "south": {"uv": [11.5, 5.75, 12.5, 6], "texture": "#0"}, + "west": {"uv": [13, 7.5, 13.25, 7.75], "texture": "#0"}, + "up": {"uv": [7.25, 11.75, 6.25, 11.5], "texture": "#0"}, + "down": {"uv": [9.5, 11.5, 8.5, 11.75], "texture": "#0"} + } + }, + { + "from": [6, 2, 13], + "to": [10, 4, 14], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 8]}, + "faces": { + "north": {"uv": [3, 9.5, 4, 10], "texture": "#0"}, + "east": {"uv": [12.5, 4, 12.75, 4.5], "texture": "#0"}, + "south": {"uv": [4, 9.5, 5, 10], "texture": "#0"}, + "west": {"uv": [4.25, 12.5, 4.5, 13], "texture": "#0"}, + "up": {"uv": [12.5, 8.75, 11.5, 8.5], "texture": "#0"}, + "down": {"uv": [12.5, 8.75, 11.5, 9], "texture": "#0"} + } + }, + { + "from": [12, 2, 6], + "to": [13, 3, 10], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 8]}, + "faces": { + "north": {"uv": [7.75, 13, 8, 13.25], "texture": "#0"}, + "east": {"uv": [11.5, 9, 12.5, 9.25], "texture": "#0"}, + "south": {"uv": [13, 7.75, 13.25, 8], "texture": "#0"}, + "west": {"uv": [9.5, 11.5, 10.5, 11.75], "texture": "#0"}, + "up": {"uv": [1.75, 12.5, 1.5, 11.5], "texture": "#0"}, + "down": {"uv": [2, 11.5, 1.75, 12.5], "texture": "#0"} + } + }, + { + "from": [13, 2, 6], + "to": [14, 4, 10], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 8]}, + "faces": { + "north": {"uv": [4.5, 12.5, 4.75, 13], "texture": "#0"}, + "east": {"uv": [5, 9.5, 6, 10], "texture": "#0"}, + "south": {"uv": [12.5, 4.5, 12.75, 5], "texture": "#0"}, + "west": {"uv": [6, 9.5, 7, 10], "texture": "#0"}, + "up": {"uv": [11.75, 11.5, 11.5, 10.5], "texture": "#0"}, + "down": {"uv": [11.5, 11.5, 11.25, 12.5], "texture": "#0"} + } + }, + { + "from": [6, 2, 3], + "to": [10, 3, 4], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 8]}, + "faces": { + "north": {"uv": [11.5, 11.5, 12.5, 11.75], "texture": "#0"}, + "east": {"uv": [8, 13, 8.25, 13.25], "texture": "#0"}, + "south": {"uv": [11.75, 0, 12.75, 0.25], "texture": "#0"}, + "west": {"uv": [13, 8, 13.25, 8.25], "texture": "#0"}, + "up": {"uv": [12.75, 0.5, 11.75, 0.25], "texture": "#0"}, + "down": {"uv": [1.5, 11.75, 0.5, 12], "texture": "#0"} + } + }, + { + "from": [6, 2, 2], + "to": [10, 4, 3], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 8]}, + "faces": { + "north": {"uv": [7, 9.5, 8, 10], "texture": "#0"}, + "east": {"uv": [4.75, 12.5, 5, 13], "texture": "#0"}, + "south": {"uv": [3, 10, 4, 10.5], "texture": "#0"}, + "west": {"uv": [5, 12.5, 5.25, 13], "texture": "#0"}, + "up": {"uv": [12.75, 0.75, 11.75, 0.5], "texture": "#0"}, + "down": {"uv": [12.75, 0.75, 11.75, 1], "texture": "#0"} + } + }, + { + "from": [12, 3, 4], + "to": [13, 13, 12], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 8]}, + "faces": { + "north": {"uv": [2, 9.5, 2.25, 12], "texture": "#0"}, + "east": {"uv": [2.5, 0, 4.5, 2.5], "texture": "#0"}, + "south": {"uv": [2.25, 9.5, 2.5, 12], "texture": "#0"}, + "west": {"uv": [2.5, 2.5, 4.5, 5], "texture": "#0"}, + "up": {"uv": [4.25, 12, 4, 10], "texture": "#0"}, + "down": {"uv": [10.25, 4, 10, 6], "texture": "#0"} + } + }, + { + "from": [3, 3, 4], + "to": [4, 13, 12], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 8]}, + "faces": { + "north": {"uv": [2.5, 9.5, 2.75, 12], "texture": "#0"}, + "east": {"uv": [4.5, 0, 6.5, 2.5], "texture": "#0"}, + "south": {"uv": [2.75, 9.5, 3, 12], "texture": "#0"}, + "west": {"uv": [4.5, 2.5, 6.5, 5], "texture": "#0"}, + "up": {"uv": [4.5, 12, 4.25, 10], "texture": "#0"}, + "down": {"uv": [4.75, 10, 4.5, 12], "texture": "#0"} + } + }, + { + "name": "base", + "from": [4, 3, 3], + "to": [12, 13, 13], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 8]}, + "faces": { + "north": {"uv": [0, 5, 2, 7.5], "texture": "#0"}, + "east": {"uv": [0, 0, 2.5, 2.5], "texture": "#0"}, + "south": {"uv": [2, 5, 4, 7.5], "texture": "#0"}, + "west": {"uv": [0, 2.5, 2.5, 5], "texture": "#0"}, + "up": {"uv": [6, 7.5, 4, 5], "texture": "#0"}, + "down": {"uv": [8, 5, 6, 7.5], "texture": "#0"} + } + }, + { + "from": [4, 4, 13], + "to": [12, 12, 14], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 8]}, + "faces": { + "north": {"uv": [6.5, 0, 8.5, 2], "texture": "#0"}, + "east": {"uv": [4.75, 10, 5, 12], "texture": "#0"}, + "south": {"uv": [6.5, 2, 8.5, 4], "texture": "#0"}, + "west": {"uv": [5, 10, 5.25, 12], "texture": "#0"}, + "up": {"uv": [7.25, 10.25, 5.25, 10], "texture": "#0"}, + "down": {"uv": [12, 6, 10, 6.25], "texture": "#0"} + } + }, + { + "from": [4, 13, 4], + "to": [12, 14, 12], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 8]}, + "faces": { + "north": {"uv": [10, 6.25, 12, 6.5], "texture": "#0"}, + "east": {"uv": [10, 6.5, 12, 6.75], "texture": "#0"}, + "south": {"uv": [10, 6.75, 12, 7], "texture": "#0"}, + "west": {"uv": [10, 7, 12, 7.25], "texture": "#0"}, + "up": {"uv": [2, 9.5, 0, 7.5], "texture": "#0"}, + "down": {"uv": [4, 7.5, 2, 9.5], "texture": "#0"} + } + }, + { + "from": [13, 4, 4], + "to": [14, 12, 12], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 8]}, + "faces": { + "north": {"uv": [7.25, 10, 7.5, 12], "texture": "#0"}, + "east": {"uv": [4, 7.5, 6, 9.5], "texture": "#0"}, + "south": {"uv": [10, 7.25, 10.25, 9.25], "texture": "#0"}, + "west": {"uv": [6, 7.5, 8, 9.5], "texture": "#0"}, + "up": {"uv": [7.75, 12, 7.5, 10], "texture": "#0"}, + "down": {"uv": [8, 10, 7.75, 12], "texture": "#0"} + } + }, + { + "from": [4, 4, 2], + "to": [12, 12, 3], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 8]}, + "faces": { + "north": {"uv": [8, 4, 10, 6], "texture": "#0"}, + "east": {"uv": [8, 10, 8.25, 12], "texture": "#0"}, + "south": {"uv": [8, 6, 10, 8], "texture": "#0"}, + "west": {"uv": [8.25, 10, 8.5, 12], "texture": "#0"}, + "up": {"uv": [10.5, 10.25, 8.5, 10], "texture": "#0"}, + "down": {"uv": [12, 9.25, 10, 9.5], "texture": "#0"} + } + }, + { + "from": [4, 2, 4], + "to": [12, 3, 12], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 8]}, + "faces": { + "north": {"uv": [10, 9.5, 12, 9.75], "texture": "#0"}, + "east": {"uv": [10, 9.75, 12, 10], "texture": "#0"}, + "south": {"uv": [10.25, 4, 12.25, 4.25], "texture": "#0"}, + "west": {"uv": [10.25, 4.25, 12.25, 4.5], "texture": "#0"}, + "up": {"uv": [10, 10, 8, 8], "texture": "#0"}, + "down": {"uv": [10.5, 0, 8.5, 2], "texture": "#0"} + } + }, + { + "from": [2, 4, 4], + "to": [3, 12, 12], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 8]}, + "faces": { + "north": {"uv": [5.25, 10.25, 5.5, 12.25], "texture": "#0"}, + "east": {"uv": [8.5, 2, 10.5, 4], "texture": "#0"}, + "south": {"uv": [5.5, 10.25, 5.75, 12.25], "texture": "#0"}, + "west": {"uv": [0, 9.5, 2, 11.5], "texture": "#0"}, + "up": {"uv": [6, 12.25, 5.75, 10.25], "texture": "#0"}, + "down": {"uv": [6.25, 10.25, 6, 12.25], "texture": "#0"} + } + }, + { + "from": [6.9, 6, 14], + "to": [7.9, 6.5, 14.5], + "rotation": {"angle": 0, "axis": "y", "origin": [8.15, 6.25, 14.25]}, + "faces": { + "north": {"uv": [8.25, 13, 8.5, 13.25], "texture": "#0"}, + "east": {"uv": [13, 8.5, 13.25, 8.75], "texture": "#0"}, + "south": {"uv": [13, 8.75, 13.25, 9], "texture": "#0"}, + "west": {"uv": [13, 9, 13.25, 9.25], "texture": "#0"}, + "up": {"uv": [9.5, 13.25, 9.25, 13], "texture": "#0"}, + "down": {"uv": [13.25, 9.25, 13, 9.5], "texture": "#0"} + } + }, + { + "from": [7.9, 4.5, 14], + "to": [8.4, 8, 14.5], + "rotation": {"angle": 0, "axis": "y", "origin": [8.15, 6.25, 14.25]}, + "faces": { + "north": {"uv": [11.75, 1, 12, 2], "texture": "#0"}, + "east": {"uv": [11.75, 2, 12, 3], "texture": "#0"}, + "south": {"uv": [3, 11.75, 3.25, 12.75], "texture": "#0"}, + "west": {"uv": [11.75, 3, 12, 4], "texture": "#0"}, + "up": {"uv": [9.75, 13.25, 9.5, 13], "texture": "#0"}, + "down": {"uv": [13.25, 9.5, 13, 9.75], "texture": "#0"} + } + }, + { + "from": [8.4, 6, 14], + "to": [9.4, 6.5, 14.5], + "rotation": {"angle": 0, "axis": "y", "origin": [8.15, 6.25, 14.25]}, + "faces": { + "north": {"uv": [9.75, 13, 10, 13.25], "texture": "#0"}, + "east": {"uv": [13, 9.75, 13.25, 10], "texture": "#0"}, + "south": {"uv": [10, 13, 10.25, 13.25], "texture": "#0"}, + "west": {"uv": [13, 10.25, 13.25, 10.5], "texture": "#0"}, + "up": {"uv": [10.75, 13.25, 10.5, 13], "texture": "#0"}, + "down": {"uv": [13.25, 10.5, 13, 10.75], "texture": "#0"} + } + }, + { + "from": [6.7, 9.2, 14], + "to": [8.7, 9.7, 14.5], + "rotation": {"angle": 0, "axis": "y", "origin": [6.45, 9.45, 14.25]}, + "faces": { + "north": {"uv": [12.5, 5, 13, 5.25], "texture": "#0"}, + "east": {"uv": [10.75, 13, 11, 13.25], "texture": "#0"}, + "south": {"uv": [12.5, 5.25, 13, 5.5], "texture": "#0"}, + "west": {"uv": [11, 13, 11.25, 13.25], "texture": "#0"}, + "up": {"uv": [13, 6, 12.5, 5.75], "texture": "#0"}, + "down": {"uv": [13, 6, 12.5, 6.25], "texture": "#0"} + } + }, + { + "from": [6.2, 6.7, 14], + "to": [6.7, 11.7, 14.5], + "rotation": {"angle": 0, "axis": "y", "origin": [6.45, 9.45, 14.25]}, + "faces": { + "north": {"uv": [10.25, 4.5, 10.5, 5.75], "texture": "#0"}, + "east": {"uv": [6.25, 10.25, 6.5, 11.5], "texture": "#0"}, + "south": {"uv": [6.5, 10.25, 6.75, 11.5], "texture": "#0"}, + "west": {"uv": [6.75, 10.25, 7, 11.5], "texture": "#0"}, + "up": {"uv": [11.5, 13.25, 11.25, 13], "texture": "#0"}, + "down": {"uv": [11.75, 13, 11.5, 13.25], "texture": "#0"} + } + }, + { + "from": [4.2, 9.2, 14], + "to": [6.2, 9.7, 14.5], + "rotation": {"angle": 0, "axis": "y", "origin": [6.45, 9.45, 14.25]}, + "faces": { + "north": {"uv": [12.5, 6.25, 13, 6.5], "texture": "#0"}, + "east": {"uv": [13, 11.5, 13.25, 11.75], "texture": "#0"}, + "south": {"uv": [12.5, 6.5, 13, 6.75], "texture": "#0"}, + "west": {"uv": [11.75, 13, 12, 13.25], "texture": "#0"}, + "up": {"uv": [13, 7, 12.5, 6.75], "texture": "#0"}, + "down": {"uv": [13, 7, 12.5, 7.25], "texture": "#0"} + } + }, + { + "from": [5.7, 9.7, 14], + "to": [6.2, 10.2, 14.5], + "rotation": {"angle": 0, "axis": "y", "origin": [6.45, 9.45, 14.25]}, + "faces": { + "north": {"uv": [13, 11.75, 13.25, 12], "texture": "#0"}, + "east": {"uv": [12, 13, 12.25, 13.25], "texture": "#0"}, + "south": {"uv": [13, 12, 13.25, 12.25], "texture": "#0"}, + "west": {"uv": [12.25, 13, 12.5, 13.25], "texture": "#0"}, + "up": {"uv": [12.75, 13.25, 12.5, 13], "texture": "#0"}, + "down": {"uv": [13, 13, 12.75, 13.25], "texture": "#0"} + } + }, + { + "from": [6.7, 9.7, 14], + "to": [7.2, 10.2, 14.5], + "rotation": {"angle": 0, "axis": "y", "origin": [6.45, 9.45, 14.25]}, + "faces": { + "north": {"uv": [13, 12.75, 13.25, 13], "texture": "#0"}, + "east": {"uv": [13, 13, 13.25, 13.25], "texture": "#0"}, + "south": {"uv": [0, 13.25, 0.25, 13.5], "texture": "#0"}, + "west": {"uv": [13.25, 0, 13.5, 0.25], "texture": "#0"}, + "up": {"uv": [0.5, 13.5, 0.25, 13.25], "texture": "#0"}, + "down": {"uv": [13.5, 0.25, 13.25, 0.5], "texture": "#0"} + } + }, + { + "from": [5.7, 8.7, 14], + "to": [6.2, 9.2, 14.5], + "rotation": {"angle": 0, "axis": "y", "origin": [6.45, 9.45, 14.25]}, + "faces": { + "north": {"uv": [0.5, 13.25, 0.75, 13.5], "texture": "#0"}, + "east": {"uv": [13.25, 0.5, 13.5, 0.75], "texture": "#0"}, + "south": {"uv": [0.75, 13.25, 1, 13.5], "texture": "#0"}, + "west": {"uv": [13.25, 0.75, 13.5, 1], "texture": "#0"}, + "up": {"uv": [1.25, 13.5, 1, 13.25], "texture": "#0"}, + "down": {"uv": [1.5, 13.25, 1.25, 13.5], "texture": "#0"} + } + }, + { + "from": [6.7, 8.7, 14], + "to": [7.2, 9.2, 14.5], + "rotation": {"angle": 0, "axis": "y", "origin": [6.45, 9.45, 14.25]}, + "faces": { + "north": {"uv": [1.5, 13.25, 1.75, 13.5], "texture": "#0"}, + "east": {"uv": [1.75, 13.25, 2, 13.5], "texture": "#0"}, + "south": {"uv": [13.25, 1.75, 13.5, 2], "texture": "#0"}, + "west": {"uv": [2, 13.25, 2.25, 13.5], "texture": "#0"}, + "up": {"uv": [13.5, 2.25, 13.25, 2], "texture": "#0"}, + "down": {"uv": [2.5, 13.25, 2.25, 13.5], "texture": "#0"} + } + }, + { + "from": [5.2, 10.2, 14], + "to": [5.7, 10.7, 14.5], + "rotation": {"angle": 0, "axis": "y", "origin": [6.45, 9.45, 14.25]}, + "faces": { + "north": {"uv": [13.25, 2.25, 13.5, 2.5], "texture": "#0"}, + "east": {"uv": [2.5, 13.25, 2.75, 13.5], "texture": "#0"}, + "south": {"uv": [13.25, 2.5, 13.5, 2.75], "texture": "#0"}, + "west": {"uv": [2.75, 13.25, 3, 13.5], "texture": "#0"}, + "up": {"uv": [13.5, 3, 13.25, 2.75], "texture": "#0"}, + "down": {"uv": [3.25, 13.25, 3, 13.5], "texture": "#0"} + } + }, + { + "from": [5.2, 8.2, 14], + "to": [5.7, 8.7, 14.5], + "rotation": {"angle": 0, "axis": "y", "origin": [6.45, 9.45, 14.25]}, + "faces": { + "north": {"uv": [13.25, 3, 13.5, 3.25], "texture": "#0"}, + "east": {"uv": [3.25, 13.25, 3.5, 13.5], "texture": "#0"}, + "south": {"uv": [13.25, 3.25, 13.5, 3.5], "texture": "#0"}, + "west": {"uv": [3.5, 13.25, 3.75, 13.5], "texture": "#0"}, + "up": {"uv": [13.5, 3.75, 13.25, 3.5], "texture": "#0"}, + "down": {"uv": [4, 13.25, 3.75, 13.5], "texture": "#0"} + } + }, + { + "from": [7.2, 8.2, 14], + "to": [7.7, 8.7, 14.5], + "rotation": {"angle": 0, "axis": "y", "origin": [6.45, 9.45, 14.25]}, + "faces": { + "north": {"uv": [13.25, 3.75, 13.5, 4], "texture": "#0"}, + "east": {"uv": [4, 13.25, 4.25, 13.5], "texture": "#0"}, + "south": {"uv": [13.25, 4, 13.5, 4.25], "texture": "#0"}, + "west": {"uv": [4.25, 13.25, 4.5, 13.5], "texture": "#0"}, + "up": {"uv": [13.5, 4.5, 13.25, 4.25], "texture": "#0"}, + "down": {"uv": [4.75, 13.25, 4.5, 13.5], "texture": "#0"} + } + }, + { + "from": [7.2, 10.2, 14], + "to": [7.7, 10.7, 14.5], + "rotation": {"angle": 0, "axis": "y", "origin": [6.45, 9.45, 14.25]}, + "faces": { + "north": {"uv": [13.25, 4.5, 13.5, 4.75], "texture": "#0"}, + "east": {"uv": [4.75, 13.25, 5, 13.5], "texture": "#0"}, + "south": {"uv": [13.25, 4.75, 13.5, 5], "texture": "#0"}, + "west": {"uv": [5, 13.25, 5.25, 13.5], "texture": "#0"}, + "up": {"uv": [13.5, 5.25, 13.25, 5], "texture": "#0"}, + "down": {"uv": [5.5, 13.25, 5.25, 13.5], "texture": "#0"} + } + }, + { + "from": [9.9, 6.4, 14], + "to": [10.4, 10.9, 14.5], + "rotation": {"angle": 0, "axis": "y", "origin": [10.15, 8.65, 14.25]}, + "faces": { + "north": {"uv": [7, 10.25, 7.25, 11.5], "texture": "#0"}, + "east": {"uv": [10.25, 7.25, 10.5, 8.5], "texture": "#0"}, + "south": {"uv": [8.5, 10.25, 8.75, 11.5], "texture": "#0"}, + "west": {"uv": [8.75, 10.25, 9, 11.5], "texture": "#0"}, + "up": {"uv": [13.5, 5.5, 13.25, 5.25], "texture": "#0"}, + "down": {"uv": [5.75, 13.25, 5.5, 13.5], "texture": "#0"} + } + }, + { + "from": [9.4, 8.9, 14], + "to": [9.9, 9.4, 14.5], + "rotation": {"angle": 0, "axis": "y", "origin": [10.15, 8.65, 14.25]}, + "faces": { + "north": {"uv": [13.25, 5.5, 13.5, 5.75], "texture": "#0"}, + "east": {"uv": [5.75, 13.25, 6, 13.5], "texture": "#0"}, + "south": {"uv": [13.25, 5.75, 13.5, 6], "texture": "#0"}, + "west": {"uv": [6, 13.25, 6.25, 13.5], "texture": "#0"}, + "up": {"uv": [13.5, 6.25, 13.25, 6], "texture": "#0"}, + "down": {"uv": [6.5, 13.25, 6.25, 13.5], "texture": "#0"} + } + }, + { + "from": [9.4, 7.9, 14], + "to": [9.9, 8.4, 14.5], + "rotation": {"angle": 0, "axis": "y", "origin": [10.15, 8.65, 14.25]}, + "faces": { + "north": {"uv": [13.25, 6.25, 13.5, 6.5], "texture": "#0"}, + "east": {"uv": [6.5, 13.25, 6.75, 13.5], "texture": "#0"}, + "south": {"uv": [13.25, 6.5, 13.5, 6.75], "texture": "#0"}, + "west": {"uv": [6.75, 13.25, 7, 13.5], "texture": "#0"}, + "up": {"uv": [13.5, 7, 13.25, 6.75], "texture": "#0"}, + "down": {"uv": [7.25, 13.25, 7, 13.5], "texture": "#0"} + } + }, + { + "from": [8.4, 8.4, 14], + "to": [9.9, 8.9, 14.5], + "rotation": {"angle": 0, "axis": "y", "origin": [10.15, 8.65, 14.25]}, + "faces": { + "north": {"uv": [7.25, 12.5, 7.75, 12.75], "texture": "#0"}, + "east": {"uv": [13.25, 7, 13.5, 7.25], "texture": "#0"}, + "south": {"uv": [12.5, 7.25, 13, 7.5], "texture": "#0"}, + "west": {"uv": [7.25, 13.25, 7.5, 13.5], "texture": "#0"}, + "up": {"uv": [13, 7.75, 12.5, 7.5], "texture": "#0"}, + "down": {"uv": [8.25, 12.5, 7.75, 12.75], "texture": "#0"} + } + }, + { + "from": [10.4, 8.4, 14], + "to": [11.9, 8.9, 14.5], + "rotation": {"angle": 0, "axis": "y", "origin": [10.15, 8.65, 14.25]}, + "faces": { + "north": {"uv": [12.5, 7.75, 13, 8], "texture": "#0"}, + "east": {"uv": [13.25, 7.25, 13.5, 7.5], "texture": "#0"}, + "south": {"uv": [12.5, 8, 13, 8.25], "texture": "#0"}, + "west": {"uv": [7.5, 13.25, 7.75, 13.5], "texture": "#0"}, + "up": {"uv": [13, 8.75, 12.5, 8.5], "texture": "#0"}, + "down": {"uv": [13, 8.75, 12.5, 9], "texture": "#0"} + } + }, + { + "from": [10.4, 8.9, 14], + "to": [10.9, 9.4, 14.5], + "rotation": {"angle": 0, "axis": "y", "origin": [10.15, 8.65, 14.25]}, + "faces": { + "north": {"uv": [13.25, 7.5, 13.5, 7.75], "texture": "#0"}, + "east": {"uv": [7.75, 13.25, 8, 13.5], "texture": "#0"}, + "south": {"uv": [13.25, 7.75, 13.5, 8], "texture": "#0"}, + "west": {"uv": [8, 13.25, 8.25, 13.5], "texture": "#0"}, + "up": {"uv": [13.5, 8.25, 13.25, 8], "texture": "#0"}, + "down": {"uv": [8.5, 13.25, 8.25, 13.5], "texture": "#0"} + } + }, + { + "from": [10.4, 7.9, 14], + "to": [10.9, 8.4, 14.5], + "rotation": {"angle": 0, "axis": "y", "origin": [10.15, 8.65, 14.25]}, + "faces": { + "north": {"uv": [13.25, 8.25, 13.5, 8.5], "texture": "#0"}, + "east": {"uv": [8.5, 13.25, 8.75, 13.5], "texture": "#0"}, + "south": {"uv": [13.25, 8.5, 13.5, 8.75], "texture": "#0"}, + "west": {"uv": [8.75, 13.25, 9, 13.5], "texture": "#0"}, + "up": {"uv": [13.5, 9, 13.25, 8.75], "texture": "#0"}, + "down": {"uv": [9.25, 13.25, 9, 13.5], "texture": "#0"} + } + }, + { + "from": [6.9, 6, 1.5], + "to": [7.9, 6.5, 2], + "rotation": {"angle": 0, "axis": "y", "origin": [8.15, 6.25, 1.75]}, + "faces": { + "north": {"uv": [13.25, 9, 13.5, 9.25], "texture": "#0"}, + "east": {"uv": [9.25, 13.25, 9.5, 13.5], "texture": "#0"}, + "south": {"uv": [13.25, 9.25, 13.5, 9.5], "texture": "#0"}, + "west": {"uv": [9.5, 13.25, 9.75, 13.5], "texture": "#0"}, + "up": {"uv": [13.5, 9.75, 13.25, 9.5], "texture": "#0"}, + "down": {"uv": [10, 13.25, 9.75, 13.5], "texture": "#0"} + } + }, + { + "from": [7.9, 4.5, 1.5], + "to": [8.4, 8, 2], + "rotation": {"angle": 0, "axis": "y", "origin": [8.15, 6.25, 1.75]}, + "faces": { + "north": {"uv": [3.25, 11.75, 3.5, 12.75], "texture": "#0"}, + "east": {"uv": [3.5, 11.75, 3.75, 12.75], "texture": "#0"}, + "south": {"uv": [3.75, 11.75, 4, 12.75], "texture": "#0"}, + "west": {"uv": [11.75, 4.5, 12, 5.5], "texture": "#0"}, + "up": {"uv": [13.5, 10, 13.25, 9.75], "texture": "#0"}, + "down": {"uv": [10.25, 13.25, 10, 13.5], "texture": "#0"} + } + }, + { + "from": [8.4, 6, 1.5], + "to": [9.4, 6.5, 2], + "rotation": {"angle": 0, "axis": "y", "origin": [8.15, 6.25, 1.75]}, + "faces": { + "north": {"uv": [13.25, 10, 13.5, 10.25], "texture": "#0"}, + "east": {"uv": [10.25, 13.25, 10.5, 13.5], "texture": "#0"}, + "south": {"uv": [13.25, 10.25, 13.5, 10.5], "texture": "#0"}, + "west": {"uv": [10.5, 13.25, 10.75, 13.5], "texture": "#0"}, + "up": {"uv": [13.5, 10.75, 13.25, 10.5], "texture": "#0"}, + "down": {"uv": [11, 13.25, 10.75, 13.5], "texture": "#0"} + } + }, + { + "from": [6.7, 9.2, 1.5], + "to": [8.7, 9.7, 2], + "rotation": {"angle": 0, "axis": "y", "origin": [6.45, 9.45, 1.75]}, + "faces": { + "north": {"uv": [12.5, 9, 13, 9.25], "texture": "#0"}, + "east": {"uv": [13.25, 10.75, 13.5, 11], "texture": "#0"}, + "south": {"uv": [12.5, 9.25, 13, 9.5], "texture": "#0"}, + "west": {"uv": [11, 13.25, 11.25, 13.5], "texture": "#0"}, + "up": {"uv": [13, 9.75, 12.5, 9.5], "texture": "#0"}, + "down": {"uv": [13, 9.75, 12.5, 10], "texture": "#0"} + } + }, + { + "from": [6.2, 6.7, 1.5], + "to": [6.7, 11.7, 2], + "rotation": {"angle": 0, "axis": "y", "origin": [6.45, 9.45, 1.75]}, + "faces": { + "north": {"uv": [9, 10.25, 9.25, 11.5], "texture": "#0"}, + "east": {"uv": [9.25, 10.25, 9.5, 11.5], "texture": "#0"}, + "south": {"uv": [9.5, 10.25, 9.75, 11.5], "texture": "#0"}, + "west": {"uv": [9.75, 10.25, 10, 11.5], "texture": "#0"}, + "up": {"uv": [13.5, 11.25, 13.25, 11], "texture": "#0"}, + "down": {"uv": [11.5, 13.25, 11.25, 13.5], "texture": "#0"} + } + }, + { + "from": [4.2, 9.2, 1.5], + "to": [6.2, 9.7, 2], + "rotation": {"angle": 0, "axis": "y", "origin": [6.45, 9.45, 1.75]}, + "faces": { + "north": {"uv": [12.5, 10.25, 13, 10.5], "texture": "#0"}, + "east": {"uv": [13.25, 11.25, 13.5, 11.5], "texture": "#0"}, + "south": {"uv": [12.5, 10.5, 13, 10.75], "texture": "#0"}, + "west": {"uv": [11.5, 13.25, 11.75, 13.5], "texture": "#0"}, + "up": {"uv": [11.25, 12.75, 10.75, 12.5], "texture": "#0"}, + "down": {"uv": [13, 11.5, 12.5, 11.75], "texture": "#0"} + } + }, + { + "from": [5.7, 9.7, 1.5], + "to": [6.2, 10.2, 2], + "rotation": {"angle": 0, "axis": "y", "origin": [6.45, 9.45, 1.75]}, + "faces": { + "north": {"uv": [13.25, 11.5, 13.5, 11.75], "texture": "#0"}, + "east": {"uv": [11.75, 13.25, 12, 13.5], "texture": "#0"}, + "south": {"uv": [13.25, 11.75, 13.5, 12], "texture": "#0"}, + "west": {"uv": [12, 13.25, 12.25, 13.5], "texture": "#0"}, + "up": {"uv": [13.5, 12.25, 13.25, 12], "texture": "#0"}, + "down": {"uv": [12.5, 13.25, 12.25, 13.5], "texture": "#0"} + } + }, + { + "from": [6.7, 9.7, 1.5], + "to": [7.2, 10.2, 2], + "rotation": {"angle": 0, "axis": "y", "origin": [6.45, 9.45, 1.75]}, + "faces": { + "north": {"uv": [13.25, 12.25, 13.5, 12.5], "texture": "#0"}, + "east": {"uv": [12.5, 13.25, 12.75, 13.5], "texture": "#0"}, + "south": {"uv": [13.25, 12.5, 13.5, 12.75], "texture": "#0"}, + "west": {"uv": [12.75, 13.25, 13, 13.5], "texture": "#0"}, + "up": {"uv": [13.5, 13, 13.25, 12.75], "texture": "#0"}, + "down": {"uv": [13.25, 13.25, 13, 13.5], "texture": "#0"} + } + }, + { + "from": [5.7, 8.7, 1.5], + "to": [6.2, 9.2, 2], + "rotation": {"angle": 0, "axis": "y", "origin": [6.45, 9.45, 1.75]}, + "faces": { + "north": {"uv": [13.25, 13, 13.5, 13.25], "texture": "#0"}, + "east": {"uv": [13.25, 13.25, 13.5, 13.5], "texture": "#0"}, + "south": {"uv": [0, 13.5, 0.25, 13.75], "texture": "#0"}, + "west": {"uv": [13.5, 0, 13.75, 0.25], "texture": "#0"}, + "up": {"uv": [0.5, 13.75, 0.25, 13.5], "texture": "#0"}, + "down": {"uv": [13.75, 0.25, 13.5, 0.5], "texture": "#0"} + } + }, + { + "from": [6.7, 8.7, 1.5], + "to": [7.2, 9.2, 2], + "rotation": {"angle": 0, "axis": "y", "origin": [6.45, 9.45, 1.75]}, + "faces": { + "north": {"uv": [0.5, 13.5, 0.75, 13.75], "texture": "#0"}, + "east": {"uv": [13.5, 0.5, 13.75, 0.75], "texture": "#0"}, + "south": {"uv": [0.75, 13.5, 1, 13.75], "texture": "#0"}, + "west": {"uv": [13.5, 0.75, 13.75, 1], "texture": "#0"}, + "up": {"uv": [1.25, 13.75, 1, 13.5], "texture": "#0"}, + "down": {"uv": [13.75, 1, 13.5, 1.25], "texture": "#0"} + } + }, + { + "from": [5.2, 10.2, 1.5], + "to": [5.7, 10.7, 2], + "rotation": {"angle": 0, "axis": "y", "origin": [6.45, 9.45, 1.75]}, + "faces": { + "north": {"uv": [1.25, 13.5, 1.5, 13.75], "texture": "#0"}, + "east": {"uv": [13.5, 1.25, 13.75, 1.5], "texture": "#0"}, + "south": {"uv": [1.5, 13.5, 1.75, 13.75], "texture": "#0"}, + "west": {"uv": [13.5, 1.5, 13.75, 1.75], "texture": "#0"}, + "up": {"uv": [2, 13.75, 1.75, 13.5], "texture": "#0"}, + "down": {"uv": [13.75, 1.75, 13.5, 2], "texture": "#0"} + } + }, + { + "from": [5.2, 8.2, 1.5], + "to": [5.7, 8.7, 2], + "rotation": {"angle": 0, "axis": "y", "origin": [6.45, 9.45, 1.75]}, + "faces": { + "north": {"uv": [2, 13.5, 2.25, 13.75], "texture": "#0"}, + "east": {"uv": [13.5, 2, 13.75, 2.25], "texture": "#0"}, + "south": {"uv": [2.25, 13.5, 2.5, 13.75], "texture": "#0"}, + "west": {"uv": [13.5, 2.25, 13.75, 2.5], "texture": "#0"}, + "up": {"uv": [2.75, 13.75, 2.5, 13.5], "texture": "#0"}, + "down": {"uv": [13.75, 2.5, 13.5, 2.75], "texture": "#0"} + } + }, + { + "from": [7.2, 8.2, 1.5], + "to": [7.7, 8.7, 2], + "rotation": {"angle": 0, "axis": "y", "origin": [6.45, 9.45, 1.75]}, + "faces": { + "north": {"uv": [2.75, 13.5, 3, 13.75], "texture": "#0"}, + "east": {"uv": [13.5, 2.75, 13.75, 3], "texture": "#0"}, + "south": {"uv": [3, 13.5, 3.25, 13.75], "texture": "#0"}, + "west": {"uv": [13.5, 3, 13.75, 3.25], "texture": "#0"}, + "up": {"uv": [3.5, 13.75, 3.25, 13.5], "texture": "#0"}, + "down": {"uv": [13.75, 3.25, 13.5, 3.5], "texture": "#0"} + } + }, + { + "from": [7.2, 10.2, 1.5], + "to": [7.7, 10.7, 2], + "rotation": {"angle": 0, "axis": "y", "origin": [6.45, 9.45, 1.75]}, + "faces": { + "north": {"uv": [3.5, 13.5, 3.75, 13.75], "texture": "#0"}, + "east": {"uv": [13.5, 3.5, 13.75, 3.75], "texture": "#0"}, + "south": {"uv": [3.75, 13.5, 4, 13.75], "texture": "#0"}, + "west": {"uv": [13.5, 3.75, 13.75, 4], "texture": "#0"}, + "up": {"uv": [4.25, 13.75, 4, 13.5], "texture": "#0"}, + "down": {"uv": [13.75, 4, 13.5, 4.25], "texture": "#0"} + } + }, + { + "from": [9.9, 6.4, 1.5], + "to": [10.4, 10.9, 2], + "rotation": {"angle": 0, "axis": "y", "origin": [10.15, 8.65, 1.75]}, + "faces": { + "north": {"uv": [10, 10.25, 10.25, 11.5], "texture": "#0"}, + "east": {"uv": [10.25, 10.25, 10.5, 11.5], "texture": "#0"}, + "south": {"uv": [10.5, 0, 10.75, 1.25], "texture": "#0"}, + "west": {"uv": [10.5, 1.25, 10.75, 2.5], "texture": "#0"}, + "up": {"uv": [4.5, 13.75, 4.25, 13.5], "texture": "#0"}, + "down": {"uv": [13.75, 4.25, 13.5, 4.5], "texture": "#0"} + } + }, + { + "from": [9.4, 8.9, 1.5], + "to": [9.9, 9.4, 2], + "rotation": {"angle": 0, "axis": "y", "origin": [10.15, 8.65, 1.75]}, + "faces": { + "north": {"uv": [4.5, 13.5, 4.75, 13.75], "texture": "#0"}, + "east": {"uv": [13.5, 4.5, 13.75, 4.75], "texture": "#0"}, + "south": {"uv": [4.75, 13.5, 5, 13.75], "texture": "#0"}, + "west": {"uv": [13.5, 4.75, 13.75, 5], "texture": "#0"}, + "up": {"uv": [5.25, 13.75, 5, 13.5], "texture": "#0"}, + "down": {"uv": [13.75, 5, 13.5, 5.25], "texture": "#0"} + } + }, + { + "from": [9.4, 7.9, 1.5], + "to": [9.9, 8.4, 2], + "rotation": {"angle": 0, "axis": "y", "origin": [10.15, 8.65, 1.75]}, + "faces": { + "north": {"uv": [5.25, 13.5, 5.5, 13.75], "texture": "#0"}, + "east": {"uv": [13.5, 5.25, 13.75, 5.5], "texture": "#0"}, + "south": {"uv": [5.5, 13.5, 5.75, 13.75], "texture": "#0"}, + "west": {"uv": [13.5, 5.5, 13.75, 5.75], "texture": "#0"}, + "up": {"uv": [6, 13.75, 5.75, 13.5], "texture": "#0"}, + "down": {"uv": [13.75, 5.75, 13.5, 6], "texture": "#0"} + } + }, + { + "from": [8.4, 8.4, 1.5], + "to": [9.9, 8.9, 2], + "rotation": {"angle": 0, "axis": "y", "origin": [10.15, 8.65, 1.75]}, + "faces": { + "north": {"uv": [12.5, 11.75, 13, 12], "texture": "#0"}, + "east": {"uv": [6, 13.5, 6.25, 13.75], "texture": "#0"}, + "south": {"uv": [12.5, 12, 13, 12.25], "texture": "#0"}, + "west": {"uv": [13.5, 6, 13.75, 6.25], "texture": "#0"}, + "up": {"uv": [12.75, 12.75, 12.25, 12.5], "texture": "#0"}, + "down": {"uv": [13.25, 0, 12.75, 0.25], "texture": "#0"} + } + }, + { + "from": [10.4, 8.4, 1.5], + "to": [11.9, 8.9, 2], + "rotation": {"angle": 0, "axis": "y", "origin": [10.15, 8.65, 1.75]}, + "faces": { + "north": {"uv": [12.75, 0.25, 13.25, 0.5], "texture": "#0"}, + "east": {"uv": [6.25, 13.5, 6.5, 13.75], "texture": "#0"}, + "south": {"uv": [12.75, 0.5, 13.25, 0.75], "texture": "#0"}, + "west": {"uv": [13.5, 6.25, 13.75, 6.5], "texture": "#0"}, + "up": {"uv": [13.25, 1, 12.75, 0.75], "texture": "#0"}, + "down": {"uv": [1.5, 12.75, 1, 13], "texture": "#0"} + } + }, + { + "from": [10.4, 8.9, 1.5], + "to": [10.9, 9.4, 2], + "rotation": {"angle": 0, "axis": "y", "origin": [10.15, 8.65, 1.75]}, + "faces": { + "north": {"uv": [6.5, 13.5, 6.75, 13.75], "texture": "#0"}, + "east": {"uv": [13.5, 6.5, 13.75, 6.75], "texture": "#0"}, + "south": {"uv": [6.75, 13.5, 7, 13.75], "texture": "#0"}, + "west": {"uv": [13.5, 6.75, 13.75, 7], "texture": "#0"}, + "up": {"uv": [7.25, 13.75, 7, 13.5], "texture": "#0"}, + "down": {"uv": [13.75, 7, 13.5, 7.25], "texture": "#0"} + } + }, + { + "from": [10.4, 7.9, 1.5], + "to": [10.9, 8.4, 2], + "rotation": {"angle": 0, "axis": "y", "origin": [10.15, 8.65, 1.75]}, + "faces": { + "north": {"uv": [7.25, 13.5, 7.5, 13.75], "texture": "#0"}, + "east": {"uv": [13.5, 7.25, 13.75, 7.5], "texture": "#0"}, + "south": {"uv": [7.5, 13.5, 7.75, 13.75], "texture": "#0"}, + "west": {"uv": [13.5, 7.5, 13.75, 7.75], "texture": "#0"}, + "up": {"uv": [8, 13.75, 7.75, 13.5], "texture": "#0"}, + "down": {"uv": [13.75, 7.75, 13.5, 8], "texture": "#0"} + } + }, + { + "from": [1.425, 6, 8.125], + "to": [1.925, 6.5, 9.125], + "rotation": {"angle": 0, "axis": "y", "origin": [1.675, 8.35, 7.85]}, + "faces": { + "north": {"uv": [8, 13.5, 8.25, 13.75], "texture": "#0"}, + "east": {"uv": [13.5, 8, 13.75, 8.25], "texture": "#0"}, + "south": {"uv": [8.25, 13.5, 8.5, 13.75], "texture": "#0"}, + "west": {"uv": [13.5, 8.25, 13.75, 8.5], "texture": "#0"}, + "up": {"uv": [8.75, 13.75, 8.5, 13.5], "texture": "#0"}, + "down": {"uv": [13.75, 8.5, 13.5, 8.75], "texture": "#0"} + } + }, + { + "from": [1.425, 4.5, 7.625], + "to": [1.925, 8, 8.125], + "rotation": {"angle": 0, "axis": "y", "origin": [1.675, 8.35, 7.85]}, + "faces": { + "north": {"uv": [6.25, 11.75, 6.5, 12.75], "texture": "#0"}, + "east": {"uv": [6.5, 11.75, 6.75, 12.75], "texture": "#0"}, + "south": {"uv": [6.75, 11.75, 7, 12.75], "texture": "#0"}, + "west": {"uv": [7, 11.75, 7.25, 12.75], "texture": "#0"}, + "up": {"uv": [9, 13.75, 8.75, 13.5], "texture": "#0"}, + "down": {"uv": [13.75, 8.75, 13.5, 9], "texture": "#0"} + } + }, + { + "from": [1.425, 6, 6.625], + "to": [1.925, 6.5, 7.625], + "rotation": {"angle": 0, "axis": "y", "origin": [1.675, 8.35, 7.85]}, + "faces": { + "north": {"uv": [9, 13.5, 9.25, 13.75], "texture": "#0"}, + "east": {"uv": [13.5, 9, 13.75, 9.25], "texture": "#0"}, + "south": {"uv": [9.25, 13.5, 9.5, 13.75], "texture": "#0"}, + "west": {"uv": [13.5, 9.25, 13.75, 9.5], "texture": "#0"}, + "up": {"uv": [9.75, 13.75, 9.5, 13.5], "texture": "#0"}, + "down": {"uv": [13.75, 9.5, 13.5, 9.75], "texture": "#0"} + } + }, + { + "from": [1.425, 9.2, 7.325], + "to": [1.925, 9.7, 9.325], + "rotation": {"angle": 0, "axis": "y", "origin": [1.675, 8.35, 7.85]}, + "faces": { + "north": {"uv": [9.75, 13.5, 10, 13.75], "texture": "#0"}, + "east": {"uv": [1.5, 12.75, 2, 13], "texture": "#0"}, + "south": {"uv": [13.5, 9.75, 13.75, 10], "texture": "#0"}, + "west": {"uv": [12.75, 2, 13.25, 2.25], "texture": "#0"}, + "up": {"uv": [8.5, 13, 8.25, 12.5], "texture": "#0"}, + "down": {"uv": [9.5, 12.5, 9.25, 13], "texture": "#0"} + } + }, + { + "from": [1.425, 6.7, 9.325], + "to": [1.925, 11.7, 9.825], + "rotation": {"angle": 0, "axis": "y", "origin": [1.675, 8.35, 7.85]}, + "faces": { + "north": {"uv": [10.5, 2.5, 10.75, 3.75], "texture": "#0"}, + "east": {"uv": [3, 10.5, 3.25, 11.75], "texture": "#0"}, + "south": {"uv": [3.25, 10.5, 3.5, 11.75], "texture": "#0"}, + "west": {"uv": [3.5, 10.5, 3.75, 11.75], "texture": "#0"}, + "up": {"uv": [10.25, 13.75, 10, 13.5], "texture": "#0"}, + "down": {"uv": [13.75, 10, 13.5, 10.25], "texture": "#0"} + } + }, + { + "from": [1.425, 9.2, 9.825], + "to": [1.925, 9.7, 11.825], + "rotation": {"angle": 0, "axis": "y", "origin": [1.675, 8.35, 7.85]}, + "faces": { + "north": {"uv": [10.25, 13.5, 10.5, 13.75], "texture": "#0"}, + "east": {"uv": [12.75, 2.25, 13.25, 2.5], "texture": "#0"}, + "south": {"uv": [13.5, 10.25, 13.75, 10.5], "texture": "#0"}, + "west": {"uv": [3, 12.75, 3.5, 13], "texture": "#0"}, + "up": {"uv": [10.25, 13, 10, 12.5], "texture": "#0"}, + "down": {"uv": [11.5, 12.5, 11.25, 13], "texture": "#0"} + } + }, + { + "from": [1.425, 9.7, 9.825], + "to": [1.925, 10.2, 10.325], + "rotation": {"angle": 0, "axis": "y", "origin": [1.675, 8.35, 7.85]}, + "faces": { + "north": {"uv": [10.5, 13.5, 10.75, 13.75], "texture": "#0"}, + "east": {"uv": [13.5, 10.5, 13.75, 10.75], "texture": "#0"}, + "south": {"uv": [10.75, 13.5, 11, 13.75], "texture": "#0"}, + "west": {"uv": [13.5, 10.75, 13.75, 11], "texture": "#0"}, + "up": {"uv": [11.25, 13.75, 11, 13.5], "texture": "#0"}, + "down": {"uv": [13.75, 11, 13.5, 11.25], "texture": "#0"} + } + }, + { + "from": [1.425, 9.7, 8.825], + "to": [1.925, 10.2, 9.325], + "rotation": {"angle": 0, "axis": "y", "origin": [1.675, 8.35, 7.85]}, + "faces": { + "north": {"uv": [11.25, 13.5, 11.5, 13.75], "texture": "#0"}, + "east": {"uv": [13.5, 11.25, 13.75, 11.5], "texture": "#0"}, + "south": {"uv": [11.5, 13.5, 11.75, 13.75], "texture": "#0"}, + "west": {"uv": [13.5, 11.5, 13.75, 11.75], "texture": "#0"}, + "up": {"uv": [12, 13.75, 11.75, 13.5], "texture": "#0"}, + "down": {"uv": [13.75, 11.75, 13.5, 12], "texture": "#0"} + } + }, + { + "from": [1.425, 8.7, 9.825], + "to": [1.925, 9.2, 10.325], + "rotation": {"angle": 0, "axis": "y", "origin": [1.675, 8.35, 7.85]}, + "faces": { + "north": {"uv": [12, 13.5, 12.25, 13.75], "texture": "#0"}, + "east": {"uv": [13.5, 12, 13.75, 12.25], "texture": "#0"}, + "south": {"uv": [12.25, 13.5, 12.5, 13.75], "texture": "#0"}, + "west": {"uv": [13.5, 12.25, 13.75, 12.5], "texture": "#0"}, + "up": {"uv": [12.75, 13.75, 12.5, 13.5], "texture": "#0"}, + "down": {"uv": [13.75, 12.5, 13.5, 12.75], "texture": "#0"} + } + }, + { + "from": [1.425, 8.7, 8.825], + "to": [1.925, 9.2, 9.325], + "rotation": {"angle": 0, "axis": "y", "origin": [1.675, 8.35, 7.85]}, + "faces": { + "north": {"uv": [12.75, 13.5, 13, 13.75], "texture": "#0"}, + "east": {"uv": [13.5, 12.75, 13.75, 13], "texture": "#0"}, + "south": {"uv": [13, 13.5, 13.25, 13.75], "texture": "#0"}, + "west": {"uv": [13.5, 13, 13.75, 13.25], "texture": "#0"}, + "up": {"uv": [13.5, 13.75, 13.25, 13.5], "texture": "#0"}, + "down": {"uv": [13.75, 13.25, 13.5, 13.5], "texture": "#0"} + } + }, + { + "from": [1.425, 10.2, 10.325], + "to": [1.925, 10.7, 10.825], + "rotation": {"angle": 0, "axis": "y", "origin": [1.675, 8.35, 7.85]}, + "faces": { + "north": {"uv": [13.5, 13.5, 13.75, 13.75], "texture": "#0"}, + "east": {"uv": [0, 13.75, 0.25, 14], "texture": "#0"}, + "south": {"uv": [13.75, 0, 14, 0.25], "texture": "#0"}, + "west": {"uv": [0.25, 13.75, 0.5, 14], "texture": "#0"}, + "up": {"uv": [14, 0.5, 13.75, 0.25], "texture": "#0"}, + "down": {"uv": [0.75, 13.75, 0.5, 14], "texture": "#0"} + } + }, + { + "from": [1.425, 8.2, 10.325], + "to": [1.925, 8.7, 10.825], + "rotation": {"angle": 0, "axis": "y", "origin": [1.675, 8.35, 7.85]}, + "faces": { + "north": {"uv": [13.75, 0.5, 14, 0.75], "texture": "#0"}, + "east": {"uv": [0.75, 13.75, 1, 14], "texture": "#0"}, + "south": {"uv": [13.75, 0.75, 14, 1], "texture": "#0"}, + "west": {"uv": [1, 13.75, 1.25, 14], "texture": "#0"}, + "up": {"uv": [14, 1.25, 13.75, 1], "texture": "#0"}, + "down": {"uv": [1.5, 13.75, 1.25, 14], "texture": "#0"} + } + }, + { + "from": [1.425, 8.2, 8.325], + "to": [1.925, 8.7, 8.825], + "rotation": {"angle": 0, "axis": "y", "origin": [1.675, 8.35, 7.85]}, + "faces": { + "north": {"uv": [13.75, 1.25, 14, 1.5], "texture": "#0"}, + "east": {"uv": [1.5, 13.75, 1.75, 14], "texture": "#0"}, + "south": {"uv": [13.75, 1.5, 14, 1.75], "texture": "#0"}, + "west": {"uv": [1.75, 13.75, 2, 14], "texture": "#0"}, + "up": {"uv": [14, 2, 13.75, 1.75], "texture": "#0"}, + "down": {"uv": [2.25, 13.75, 2, 14], "texture": "#0"} + } + }, + { + "from": [1.425, 10.2, 8.325], + "to": [1.925, 10.7, 8.825], + "rotation": {"angle": 0, "axis": "y", "origin": [1.675, 8.35, 7.85]}, + "faces": { + "north": {"uv": [13.75, 2, 14, 2.25], "texture": "#0"}, + "east": {"uv": [2.25, 13.75, 2.5, 14], "texture": "#0"}, + "south": {"uv": [13.75, 2.25, 14, 2.5], "texture": "#0"}, + "west": {"uv": [2.5, 13.75, 2.75, 14], "texture": "#0"}, + "up": {"uv": [14, 2.75, 13.75, 2.5], "texture": "#0"}, + "down": {"uv": [3, 13.75, 2.75, 14], "texture": "#0"} + } + }, + { + "from": [1.425, 6.4, 5.625], + "to": [1.925, 10.9, 6.125], + "rotation": {"angle": 0, "axis": "y", "origin": [1.675, 8.35, 7.85]}, + "faces": { + "north": {"uv": [3.75, 10.5, 4, 11.75], "texture": "#0"}, + "east": {"uv": [10.5, 4.5, 10.75, 5.75], "texture": "#0"}, + "south": {"uv": [10.5, 7.25, 10.75, 8.5], "texture": "#0"}, + "west": {"uv": [10.5, 10, 10.75, 11.25], "texture": "#0"}, + "up": {"uv": [14, 3, 13.75, 2.75], "texture": "#0"}, + "down": {"uv": [3.25, 13.75, 3, 14], "texture": "#0"} + } + }, + { + "from": [1.425, 8.9, 6.125], + "to": [1.925, 9.4, 6.625], + "rotation": {"angle": 0, "axis": "y", "origin": [1.675, 8.35, 7.85]}, + "faces": { + "north": {"uv": [13.75, 3, 14, 3.25], "texture": "#0"}, + "east": {"uv": [3.25, 13.75, 3.5, 14], "texture": "#0"}, + "south": {"uv": [13.75, 3.25, 14, 3.5], "texture": "#0"}, + "west": {"uv": [3.5, 13.75, 3.75, 14], "texture": "#0"}, + "up": {"uv": [14, 3.75, 13.75, 3.5], "texture": "#0"}, + "down": {"uv": [4, 13.75, 3.75, 14], "texture": "#0"} + } + }, + { + "from": [1.425, 7.9, 6.125], + "to": [1.925, 8.4, 6.625], + "rotation": {"angle": 0, "axis": "y", "origin": [1.675, 8.35, 7.85]}, + "faces": { + "north": {"uv": [13.75, 3.75, 14, 4], "texture": "#0"}, + "east": {"uv": [4, 13.75, 4.25, 14], "texture": "#0"}, + "south": {"uv": [13.75, 4, 14, 4.25], "texture": "#0"}, + "west": {"uv": [4.25, 13.75, 4.5, 14], "texture": "#0"}, + "up": {"uv": [14, 4.5, 13.75, 4.25], "texture": "#0"}, + "down": {"uv": [4.75, 13.75, 4.5, 14], "texture": "#0"} + } + }, + { + "from": [1.425, 8.4, 6.125], + "to": [1.925, 8.9, 7.625], + "rotation": {"angle": 0, "axis": "y", "origin": [1.675, 8.35, 7.85]}, + "faces": { + "north": {"uv": [13.75, 4.5, 14, 4.75], "texture": "#0"}, + "east": {"uv": [12.75, 3, 13.25, 3.25], "texture": "#0"}, + "south": {"uv": [4.75, 13.75, 5, 14], "texture": "#0"}, + "west": {"uv": [12.75, 3.25, 13.25, 3.5], "texture": "#0"}, + "up": {"uv": [3.75, 13.25, 3.5, 12.75], "texture": "#0"}, + "down": {"uv": [13, 3.5, 12.75, 4], "texture": "#0"} + } + }, + { + "from": [1.425, 8.4, 4.125], + "to": [1.925, 8.9, 5.625], + "rotation": {"angle": 0, "axis": "y", "origin": [1.675, 8.35, 7.85]}, + "faces": { + "north": {"uv": [13.75, 4.75, 14, 5], "texture": "#0"}, + "east": {"uv": [12.75, 4, 13.25, 4.25], "texture": "#0"}, + "south": {"uv": [5, 13.75, 5.25, 14], "texture": "#0"}, + "west": {"uv": [12.75, 4.25, 13.25, 4.5], "texture": "#0"}, + "up": {"uv": [4, 13.25, 3.75, 12.75], "texture": "#0"}, + "down": {"uv": [13, 4.5, 12.75, 5], "texture": "#0"} + } + }, + { + "from": [1.425, 8.9, 5.125], + "to": [1.925, 9.4, 5.625], + "rotation": {"angle": 0, "axis": "y", "origin": [1.675, 8.35, 7.85]}, + "faces": { + "north": {"uv": [13.75, 5, 14, 5.25], "texture": "#0"}, + "east": {"uv": [5.25, 13.75, 5.5, 14], "texture": "#0"}, + "south": {"uv": [13.75, 5.25, 14, 5.5], "texture": "#0"}, + "west": {"uv": [5.5, 13.75, 5.75, 14], "texture": "#0"}, + "up": {"uv": [14, 5.75, 13.75, 5.5], "texture": "#0"}, + "down": {"uv": [6, 13.75, 5.75, 14], "texture": "#0"} + } + }, + { + "from": [1.425, 7.9, 5.125], + "to": [1.925, 8.4, 5.625], + "rotation": {"angle": 0, "axis": "y", "origin": [1.675, 8.35, 7.85]}, + "faces": { + "north": {"uv": [13.75, 5.75, 14, 6], "texture": "#0"}, + "east": {"uv": [6, 13.75, 6.25, 14], "texture": "#0"}, + "south": {"uv": [13.75, 6, 14, 6.25], "texture": "#0"}, + "west": {"uv": [6.25, 13.75, 6.5, 14], "texture": "#0"}, + "up": {"uv": [14, 6.5, 13.75, 6.25], "texture": "#0"}, + "down": {"uv": [6.75, 13.75, 6.5, 14], "texture": "#0"} + } + }, + { + "from": [13.925, 6, 8.125], + "to": [14.425, 6.5, 9.125], + "rotation": {"angle": 0, "axis": "y", "origin": [14.175, 8.35, 7.85]}, + "faces": { + "north": {"uv": [13.75, 6.5, 14, 6.75], "texture": "#0"}, + "east": {"uv": [6.75, 13.75, 7, 14], "texture": "#0"}, + "south": {"uv": [13.75, 6.75, 14, 7], "texture": "#0"}, + "west": {"uv": [7, 13.75, 7.25, 14], "texture": "#0"}, + "up": {"uv": [14, 7.25, 13.75, 7], "texture": "#0"}, + "down": {"uv": [7.5, 13.75, 7.25, 14], "texture": "#0"} + } + }, + { + "from": [13.925, 4.5, 7.625], + "to": [14.425, 8, 8.125], + "rotation": {"angle": 0, "axis": "y", "origin": [14.175, 8.35, 7.85]}, + "faces": { + "north": {"uv": [11.75, 7.25, 12, 8.25], "texture": "#0"}, + "east": {"uv": [8.5, 11.75, 8.75, 12.75], "texture": "#0"}, + "south": {"uv": [8.75, 11.75, 9, 12.75], "texture": "#0"}, + "west": {"uv": [9, 11.75, 9.25, 12.75], "texture": "#0"}, + "up": {"uv": [14, 7.5, 13.75, 7.25], "texture": "#0"}, + "down": {"uv": [7.75, 13.75, 7.5, 14], "texture": "#0"} + } + }, + { + "from": [13.925, 6, 6.625], + "to": [14.425, 6.5, 7.625], + "rotation": {"angle": 0, "axis": "y", "origin": [14.175, 8.35, 7.85]}, + "faces": { + "north": {"uv": [13.75, 7.5, 14, 7.75], "texture": "#0"}, + "east": {"uv": [7.75, 13.75, 8, 14], "texture": "#0"}, + "south": {"uv": [13.75, 7.75, 14, 8], "texture": "#0"}, + "west": {"uv": [8, 13.75, 8.25, 14], "texture": "#0"}, + "up": {"uv": [14, 8.25, 13.75, 8], "texture": "#0"}, + "down": {"uv": [8.5, 13.75, 8.25, 14], "texture": "#0"} + } + }, + { + "from": [13.925, 9.2, 7.325], + "to": [14.425, 9.7, 9.325], + "rotation": {"angle": 0, "axis": "y", "origin": [14.175, 8.35, 7.85]}, + "faces": { + "north": {"uv": [13.75, 8.25, 14, 8.5], "texture": "#0"}, + "east": {"uv": [5.25, 12.75, 5.75, 13], "texture": "#0"}, + "south": {"uv": [8.5, 13.75, 8.75, 14], "texture": "#0"}, + "west": {"uv": [12.75, 5.5, 13.25, 5.75], "texture": "#0"}, + "up": {"uv": [6, 13.25, 5.75, 12.75], "texture": "#0"}, + "down": {"uv": [6.25, 12.75, 6, 13.25], "texture": "#0"} + } + }, + { + "from": [13.925, 6.7, 9.325], + "to": [14.425, 11.7, 9.825], + "rotation": {"angle": 0, "axis": "y", "origin": [14.175, 8.35, 7.85]}, + "faces": { + "north": {"uv": [10.75, 0, 11, 1.25], "texture": "#0"}, + "east": {"uv": [10.75, 1.25, 11, 2.5], "texture": "#0"}, + "south": {"uv": [10.75, 2.5, 11, 3.75], "texture": "#0"}, + "west": {"uv": [10.75, 4.5, 11, 5.75], "texture": "#0"}, + "up": {"uv": [14, 8.75, 13.75, 8.5], "texture": "#0"}, + "down": {"uv": [9, 13.75, 8.75, 14], "texture": "#0"} + } + }, + { + "from": [13.925, 9.2, 9.825], + "to": [14.425, 9.7, 11.825], + "rotation": {"angle": 0, "axis": "y", "origin": [14.175, 8.35, 7.85]}, + "faces": { + "north": {"uv": [13.75, 8.75, 14, 9], "texture": "#0"}, + "east": {"uv": [6.25, 12.75, 6.75, 13], "texture": "#0"}, + "south": {"uv": [9, 13.75, 9.25, 14], "texture": "#0"}, + "west": {"uv": [6.75, 12.75, 7.25, 13], "texture": "#0"}, + "up": {"uv": [7.5, 13.25, 7.25, 12.75], "texture": "#0"}, + "down": {"uv": [7.75, 12.75, 7.5, 13.25], "texture": "#0"} + } + }, + { + "from": [13.925, 9.7, 9.825], + "to": [14.425, 10.2, 10.325], + "rotation": {"angle": 0, "axis": "y", "origin": [14.175, 8.35, 7.85]}, + "faces": { + "north": {"uv": [13.75, 9, 14, 9.25], "texture": "#0"}, + "east": {"uv": [9.25, 13.75, 9.5, 14], "texture": "#0"}, + "south": {"uv": [13.75, 9.25, 14, 9.5], "texture": "#0"}, + "west": {"uv": [9.5, 13.75, 9.75, 14], "texture": "#0"}, + "up": {"uv": [14, 9.75, 13.75, 9.5], "texture": "#0"}, + "down": {"uv": [10, 13.75, 9.75, 14], "texture": "#0"} + } + }, + { + "from": [13.925, 9.7, 8.825], + "to": [14.425, 10.2, 9.325], + "rotation": {"angle": 0, "axis": "y", "origin": [14.175, 8.35, 7.85]}, + "faces": { + "north": {"uv": [13.75, 9.75, 14, 10], "texture": "#0"}, + "east": {"uv": [10, 13.75, 10.25, 14], "texture": "#0"}, + "south": {"uv": [13.75, 10, 14, 10.25], "texture": "#0"}, + "west": {"uv": [10.25, 13.75, 10.5, 14], "texture": "#0"}, + "up": {"uv": [14, 10.5, 13.75, 10.25], "texture": "#0"}, + "down": {"uv": [10.75, 13.75, 10.5, 14], "texture": "#0"} + } + }, + { + "from": [13.925, 8.7, 9.825], + "to": [14.425, 9.2, 10.325], + "rotation": {"angle": 0, "axis": "y", "origin": [14.175, 8.35, 7.85]}, + "faces": { + "north": {"uv": [13.75, 10.5, 14, 10.75], "texture": "#0"}, + "east": {"uv": [10.75, 13.75, 11, 14], "texture": "#0"}, + "south": {"uv": [13.75, 10.75, 14, 11], "texture": "#0"}, + "west": {"uv": [11, 13.75, 11.25, 14], "texture": "#0"}, + "up": {"uv": [14, 11.25, 13.75, 11], "texture": "#0"}, + "down": {"uv": [11.5, 13.75, 11.25, 14], "texture": "#0"} + } + }, + { + "from": [13.925, 8.7, 8.825], + "to": [14.425, 9.2, 9.325], + "rotation": {"angle": 0, "axis": "y", "origin": [14.175, 8.35, 7.85]}, + "faces": { + "north": {"uv": [13.75, 11.25, 14, 11.5], "texture": "#0"}, + "east": {"uv": [11.5, 13.75, 11.75, 14], "texture": "#0"}, + "south": {"uv": [13.75, 11.5, 14, 11.75], "texture": "#0"}, + "west": {"uv": [11.75, 13.75, 12, 14], "texture": "#0"}, + "up": {"uv": [14, 12, 13.75, 11.75], "texture": "#0"}, + "down": {"uv": [12.25, 13.75, 12, 14], "texture": "#0"} + } + }, + { + "from": [13.925, 10.2, 10.325], + "to": [14.425, 10.7, 10.825], + "rotation": {"angle": 0, "axis": "y", "origin": [14.175, 8.35, 7.85]}, + "faces": { + "north": {"uv": [13.75, 12, 14, 12.25], "texture": "#0"}, + "east": {"uv": [12.25, 13.75, 12.5, 14], "texture": "#0"}, + "south": {"uv": [13.75, 12.25, 14, 12.5], "texture": "#0"}, + "west": {"uv": [12.5, 13.75, 12.75, 14], "texture": "#0"}, + "up": {"uv": [14, 12.75, 13.75, 12.5], "texture": "#0"}, + "down": {"uv": [13, 13.75, 12.75, 14], "texture": "#0"} + } + }, + { + "from": [13.925, 8.2, 10.325], + "to": [14.425, 8.7, 10.825], + "rotation": {"angle": 0, "axis": "y", "origin": [14.175, 8.35, 7.85]}, + "faces": { + "north": {"uv": [13.75, 12.75, 14, 13], "texture": "#0"}, + "east": {"uv": [13, 13.75, 13.25, 14], "texture": "#0"}, + "south": {"uv": [13.75, 13, 14, 13.25], "texture": "#0"}, + "west": {"uv": [13.25, 13.75, 13.5, 14], "texture": "#0"}, + "up": {"uv": [14, 13.5, 13.75, 13.25], "texture": "#0"}, + "down": {"uv": [13.75, 13.75, 13.5, 14], "texture": "#0"} + } + }, + { + "from": [13.925, 8.2, 8.325], + "to": [14.425, 8.7, 8.825], + "rotation": {"angle": 0, "axis": "y", "origin": [14.175, 8.35, 7.85]}, + "faces": { + "north": {"uv": [13.75, 13.5, 14, 13.75], "texture": "#0"}, + "east": {"uv": [13.75, 13.75, 14, 14], "texture": "#0"}, + "south": {"uv": [0, 14, 0.25, 14.25], "texture": "#0"}, + "west": {"uv": [14, 0, 14.25, 0.25], "texture": "#0"}, + "up": {"uv": [0.5, 14.25, 0.25, 14], "texture": "#0"}, + "down": {"uv": [14.25, 0.25, 14, 0.5], "texture": "#0"} + } + }, + { + "from": [13.925, 10.2, 8.325], + "to": [14.425, 10.7, 8.825], + "rotation": {"angle": 0, "axis": "y", "origin": [14.175, 8.35, 7.85]}, + "faces": { + "north": {"uv": [0.5, 14, 0.75, 14.25], "texture": "#0"}, + "east": {"uv": [14, 0.5, 14.25, 0.75], "texture": "#0"}, + "south": {"uv": [0.75, 14, 1, 14.25], "texture": "#0"}, + "west": {"uv": [14, 0.75, 14.25, 1], "texture": "#0"}, + "up": {"uv": [1.25, 14.25, 1, 14], "texture": "#0"}, + "down": {"uv": [14.25, 1, 14, 1.25], "texture": "#0"} + } + }, + { + "from": [13.925, 6.4, 5.625], + "to": [14.425, 10.9, 6.125], + "rotation": {"angle": 0, "axis": "y", "origin": [14.175, 8.35, 7.85]}, + "faces": { + "north": {"uv": [10.75, 7.25, 11, 8.5], "texture": "#0"}, + "east": {"uv": [10.75, 10, 11, 11.25], "texture": "#0"}, + "south": {"uv": [11, 0, 11.25, 1.25], "texture": "#0"}, + "west": {"uv": [11, 1.25, 11.25, 2.5], "texture": "#0"}, + "up": {"uv": [1.5, 14.25, 1.25, 14], "texture": "#0"}, + "down": {"uv": [14.25, 1.25, 14, 1.5], "texture": "#0"} + } + }, + { + "from": [13.925, 8.9, 6.125], + "to": [14.425, 9.4, 6.625], + "rotation": {"angle": 0, "axis": "y", "origin": [14.175, 8.35, 7.85]}, + "faces": { + "north": {"uv": [1.5, 14, 1.75, 14.25], "texture": "#0"}, + "east": {"uv": [14, 1.5, 14.25, 1.75], "texture": "#0"}, + "south": {"uv": [1.75, 14, 2, 14.25], "texture": "#0"}, + "west": {"uv": [14, 1.75, 14.25, 2], "texture": "#0"}, + "up": {"uv": [2.25, 14.25, 2, 14], "texture": "#0"}, + "down": {"uv": [14.25, 2, 14, 2.25], "texture": "#0"} + } + }, + { + "from": [13.925, 7.9, 6.125], + "to": [14.425, 8.4, 6.625], + "rotation": {"angle": 0, "axis": "y", "origin": [14.175, 8.35, 7.85]}, + "faces": { + "north": {"uv": [2.25, 14, 2.5, 14.25], "texture": "#0"}, + "east": {"uv": [14, 2.25, 14.25, 2.5], "texture": "#0"}, + "south": {"uv": [2.5, 14, 2.75, 14.25], "texture": "#0"}, + "west": {"uv": [14, 2.5, 14.25, 2.75], "texture": "#0"}, + "up": {"uv": [3, 14.25, 2.75, 14], "texture": "#0"}, + "down": {"uv": [14.25, 2.75, 14, 3], "texture": "#0"} + } + }, + { + "from": [13.925, 8.4, 6.125], + "to": [14.425, 8.9, 7.625], + "rotation": {"angle": 0, "axis": "y", "origin": [14.175, 8.35, 7.85]}, + "faces": { + "north": {"uv": [3, 14, 3.25, 14.25], "texture": "#0"}, + "east": {"uv": [7.75, 12.75, 8.25, 13], "texture": "#0"}, + "south": {"uv": [14, 3, 14.25, 3.25], "texture": "#0"}, + "west": {"uv": [12.75, 8.25, 13.25, 8.5], "texture": "#0"}, + "up": {"uv": [8.75, 13.25, 8.5, 12.75], "texture": "#0"}, + "down": {"uv": [9, 12.75, 8.75, 13.25], "texture": "#0"} + } + }, + { + "from": [13.925, 8.4, 4.125], + "to": [14.425, 8.9, 5.625], + "rotation": {"angle": 0, "axis": "y", "origin": [14.175, 8.35, 7.85]}, + "faces": { + "north": {"uv": [3.25, 14, 3.5, 14.25], "texture": "#0"}, + "east": {"uv": [9.5, 12.75, 10, 13], "texture": "#0"}, + "south": {"uv": [14, 3.25, 14.25, 3.5], "texture": "#0"}, + "west": {"uv": [12.75, 10, 13.25, 10.25], "texture": "#0"}, + "up": {"uv": [9.25, 13.25, 9, 12.75], "texture": "#0"}, + "down": {"uv": [10.5, 12.75, 10.25, 13.25], "texture": "#0"} + } + }, + { + "from": [13.925, 8.9, 5.125], + "to": [14.425, 9.4, 5.625], + "rotation": {"angle": 0, "axis": "y", "origin": [14.175, 8.35, 7.85]}, + "faces": { + "north": {"uv": [3.5, 14, 3.75, 14.25], "texture": "#0"}, + "east": {"uv": [14, 3.5, 14.25, 3.75], "texture": "#0"}, + "south": {"uv": [3.75, 14, 4, 14.25], "texture": "#0"}, + "west": {"uv": [14, 3.75, 14.25, 4], "texture": "#0"}, + "up": {"uv": [4.25, 14.25, 4, 14], "texture": "#0"}, + "down": {"uv": [14.25, 4, 14, 4.25], "texture": "#0"} + } + }, + { + "from": [13.925, 7.9, 5.125], + "to": [14.425, 8.4, 5.625], + "rotation": {"angle": 0, "axis": "y", "origin": [14.175, 8.35, 7.85]}, + "faces": { + "north": {"uv": [4.25, 14, 4.5, 14.25], "texture": "#0"}, + "east": {"uv": [14, 4.25, 14.25, 4.5], "texture": "#0"}, + "south": {"uv": [4.5, 14, 4.75, 14.25], "texture": "#0"}, + "west": {"uv": [14, 4.5, 14.25, 4.75], "texture": "#0"}, + "up": {"uv": [5, 14.25, 4.75, 14], "texture": "#0"}, + "down": {"uv": [14.25, 4.75, 14, 5], "texture": "#0"} + } + }, + { + "from": [6.9, 14, 9.7], + "to": [7.9, 14.5, 10.2], + "rotation": {"angle": 0, "axis": "x", "origin": [8.175, 14.25, 7.85]}, + "faces": { + "north": {"uv": [5, 14, 5.25, 14.25], "texture": "#0"}, + "east": {"uv": [14, 5, 14.25, 5.25], "texture": "#0"}, + "south": {"uv": [5.25, 14, 5.5, 14.25], "texture": "#0"}, + "west": {"uv": [14, 5.25, 14.25, 5.5], "texture": "#0"}, + "up": {"uv": [5.75, 14.25, 5.5, 14], "texture": "#0"}, + "down": {"uv": [14.25, 5.5, 14, 5.75], "texture": "#0"} + } + }, + { + "from": [7.9, 14, 8.2], + "to": [8.4, 14.5, 11.7], + "rotation": {"angle": 0, "axis": "x", "origin": [8.175, 14.25, 7.85]}, + "faces": { + "north": {"uv": [5.75, 14, 6, 14.25], "texture": "#0"}, + "east": {"uv": [9.25, 11.75, 10.25, 12], "texture": "#0"}, + "south": {"uv": [14, 5.75, 14.25, 6], "texture": "#0"}, + "west": {"uv": [11.75, 10, 12.75, 10.25], "texture": "#0"}, + "up": {"uv": [10.5, 12.75, 10.25, 11.75], "texture": "#0"}, + "down": {"uv": [12, 10.25, 11.75, 11.25], "texture": "#0"} + } + }, + { + "from": [8.4, 14, 9.7], + "to": [9.4, 14.5, 10.2], + "rotation": {"angle": 0, "axis": "x", "origin": [8.175, 14.25, 7.85]}, + "faces": { + "north": {"uv": [6, 14, 6.25, 14.25], "texture": "#0"}, + "east": {"uv": [14, 6, 14.25, 6.25], "texture": "#0"}, + "south": {"uv": [6.25, 14, 6.5, 14.25], "texture": "#0"}, + "west": {"uv": [14, 6.25, 14.25, 6.5], "texture": "#0"}, + "up": {"uv": [6.75, 14.25, 6.5, 14], "texture": "#0"}, + "down": {"uv": [14.25, 6.5, 14, 6.75], "texture": "#0"} + } + }, + { + "from": [6.7, 14, 6.5], + "to": [8.7, 14.5, 7], + "rotation": {"angle": 0, "axis": "x", "origin": [8.175, 14.25, 7.85]}, + "faces": { + "north": {"uv": [10.5, 12.75, 11, 13], "texture": "#0"}, + "east": {"uv": [6.75, 14, 7, 14.25], "texture": "#0"}, + "south": {"uv": [12.75, 10.75, 13.25, 11], "texture": "#0"}, + "west": {"uv": [14, 6.75, 14.25, 7], "texture": "#0"}, + "up": {"uv": [13.25, 11.25, 12.75, 11], "texture": "#0"}, + "down": {"uv": [13.25, 11.25, 12.75, 11.5], "texture": "#0"} + } + }, + { + "from": [6.2, 14, 4.5], + "to": [6.7, 14.5, 9.5], + "rotation": {"angle": 0, "axis": "x", "origin": [8.175, 14.25, 7.85]}, + "faces": { + "north": {"uv": [7, 14, 7.25, 14.25], "texture": "#0"}, + "east": {"uv": [10.25, 5.75, 11.5, 6], "texture": "#0"}, + "south": {"uv": [14, 7, 14.25, 7.25], "texture": "#0"}, + "west": {"uv": [10.25, 8.5, 11.5, 8.75], "texture": "#0"}, + "up": {"uv": [11.25, 3.75, 11, 2.5], "texture": "#0"}, + "down": {"uv": [11.25, 4.5, 11, 5.75], "texture": "#0"} + } + }, + { + "from": [4.2, 14, 6.5], + "to": [6.2, 14.5, 7], + "rotation": {"angle": 0, "axis": "x", "origin": [8.175, 14.25, 7.85]}, + "faces": { + "north": {"uv": [11.5, 12.75, 12, 13], "texture": "#0"}, + "east": {"uv": [7.25, 14, 7.5, 14.25], "texture": "#0"}, + "south": {"uv": [12, 12.75, 12.5, 13], "texture": "#0"}, + "west": {"uv": [14, 7.25, 14.25, 7.5], "texture": "#0"}, + "up": {"uv": [13.25, 12.5, 12.75, 12.25], "texture": "#0"}, + "down": {"uv": [13, 12.75, 12.5, 13], "texture": "#0"} + } + }, + { + "from": [5.7, 14, 6], + "to": [6.2, 14.5, 6.5], + "rotation": {"angle": 0, "axis": "x", "origin": [8.175, 14.25, 7.85]}, + "faces": { + "north": {"uv": [7.5, 14, 7.75, 14.25], "texture": "#0"}, + "east": {"uv": [14, 7.5, 14.25, 7.75], "texture": "#0"}, + "south": {"uv": [7.75, 14, 8, 14.25], "texture": "#0"}, + "west": {"uv": [14, 7.75, 14.25, 8], "texture": "#0"}, + "up": {"uv": [8.25, 14.25, 8, 14], "texture": "#0"}, + "down": {"uv": [14.25, 8, 14, 8.25], "texture": "#0"} + } + }, + { + "from": [6.7, 14, 6], + "to": [7.2, 14.5, 6.5], + "rotation": {"angle": 0, "axis": "x", "origin": [8.175, 14.25, 7.85]}, + "faces": { + "north": {"uv": [8.25, 14, 8.5, 14.25], "texture": "#0"}, + "east": {"uv": [14, 8.25, 14.25, 8.5], "texture": "#0"}, + "south": {"uv": [8.5, 14, 8.75, 14.25], "texture": "#0"}, + "west": {"uv": [14, 8.5, 14.25, 8.75], "texture": "#0"}, + "up": {"uv": [9, 14.25, 8.75, 14], "texture": "#0"}, + "down": {"uv": [14.25, 8.75, 14, 9], "texture": "#0"} + } + }, + { + "from": [5.7, 14, 7], + "to": [6.2, 14.5, 7.5], + "rotation": {"angle": 0, "axis": "x", "origin": [8.175, 14.25, 7.85]}, + "faces": { + "north": {"uv": [9, 14, 9.25, 14.25], "texture": "#0"}, + "east": {"uv": [14, 9, 14.25, 9.25], "texture": "#0"}, + "south": {"uv": [9.25, 14, 9.5, 14.25], "texture": "#0"}, + "west": {"uv": [14, 9.25, 14.25, 9.5], "texture": "#0"}, + "up": {"uv": [9.75, 14.25, 9.5, 14], "texture": "#0"}, + "down": {"uv": [14.25, 9.5, 14, 9.75], "texture": "#0"} + } + }, + { + "from": [6.7, 14, 7], + "to": [7.2, 14.5, 7.5], + "rotation": {"angle": 0, "axis": "x", "origin": [8.175, 14.25, 7.85]}, + "faces": { + "north": {"uv": [9.75, 14, 10, 14.25], "texture": "#0"}, + "east": {"uv": [14, 9.75, 14.25, 10], "texture": "#0"}, + "south": {"uv": [10, 14, 10.25, 14.25], "texture": "#0"}, + "west": {"uv": [14, 10, 14.25, 10.25], "texture": "#0"}, + "up": {"uv": [10.5, 14.25, 10.25, 14], "texture": "#0"}, + "down": {"uv": [14.25, 10.25, 14, 10.5], "texture": "#0"} + } + }, + { + "from": [5.2, 14, 5.5], + "to": [5.7, 14.5, 6], + "rotation": {"angle": 0, "axis": "x", "origin": [8.175, 14.25, 7.85]}, + "faces": { + "north": {"uv": [10.5, 14, 10.75, 14.25], "texture": "#0"}, + "east": {"uv": [14, 10.5, 14.25, 10.75], "texture": "#0"}, + "south": {"uv": [10.75, 14, 11, 14.25], "texture": "#0"}, + "west": {"uv": [14, 10.75, 14.25, 11], "texture": "#0"}, + "up": {"uv": [11.25, 14.25, 11, 14], "texture": "#0"}, + "down": {"uv": [14.25, 11, 14, 11.25], "texture": "#0"} + } + }, + { + "from": [5.2, 14, 7.5], + "to": [5.7, 14.5, 8], + "rotation": {"angle": 0, "axis": "x", "origin": [8.175, 14.25, 7.85]}, + "faces": { + "north": {"uv": [11.25, 14, 11.5, 14.25], "texture": "#0"}, + "east": {"uv": [14, 11.25, 14.25, 11.5], "texture": "#0"}, + "south": {"uv": [11.5, 14, 11.75, 14.25], "texture": "#0"}, + "west": {"uv": [14, 11.5, 14.25, 11.75], "texture": "#0"}, + "up": {"uv": [12, 14.25, 11.75, 14], "texture": "#0"}, + "down": {"uv": [14.25, 11.75, 14, 12], "texture": "#0"} + } + }, + { + "from": [7.2, 14, 7.5], + "to": [7.7, 14.5, 8], + "rotation": {"angle": 0, "axis": "x", "origin": [8.175, 14.25, 7.85]}, + "faces": { + "north": {"uv": [12, 14, 12.25, 14.25], "texture": "#0"}, + "east": {"uv": [14, 12, 14.25, 12.25], "texture": "#0"}, + "south": {"uv": [12.25, 14, 12.5, 14.25], "texture": "#0"}, + "west": {"uv": [14, 12.25, 14.25, 12.5], "texture": "#0"}, + "up": {"uv": [12.75, 14.25, 12.5, 14], "texture": "#0"}, + "down": {"uv": [14.25, 12.5, 14, 12.75], "texture": "#0"} + } + }, + { + "from": [7.2, 14, 5.5], + "to": [7.7, 14.5, 6], + "rotation": {"angle": 0, "axis": "x", "origin": [8.175, 14.25, 7.85]}, + "faces": { + "north": {"uv": [12.75, 14, 13, 14.25], "texture": "#0"}, + "east": {"uv": [14, 12.75, 14.25, 13], "texture": "#0"}, + "south": {"uv": [13, 14, 13.25, 14.25], "texture": "#0"}, + "west": {"uv": [14, 13, 14.25, 13.25], "texture": "#0"}, + "up": {"uv": [13.5, 14.25, 13.25, 14], "texture": "#0"}, + "down": {"uv": [14.25, 13.25, 14, 13.5], "texture": "#0"} + } + }, + { + "from": [9.9, 14, 5.3], + "to": [10.4, 14.5, 9.8], + "rotation": {"angle": 0, "axis": "x", "origin": [8.175, 14.25, 7.85]}, + "faces": { + "north": {"uv": [13.5, 14, 13.75, 14.25], "texture": "#0"}, + "east": {"uv": [10.25, 8.75, 11.5, 9], "texture": "#0"}, + "south": {"uv": [14, 13.5, 14.25, 13.75], "texture": "#0"}, + "west": {"uv": [10.25, 9, 11.5, 9.25], "texture": "#0"}, + "up": {"uv": [11.25, 8.5, 11, 7.25], "texture": "#0"}, + "down": {"uv": [11.25, 10, 11, 11.25], "texture": "#0"} + } + }, + { + "from": [9.4, 14, 6.8], + "to": [9.9, 14.5, 7.3], + "rotation": {"angle": 0, "axis": "x", "origin": [8.175, 14.25, 7.85]}, + "faces": { + "north": {"uv": [13.75, 14, 14, 14.25], "texture": "#0"}, + "east": {"uv": [14, 13.75, 14.25, 14], "texture": "#0"}, + "south": {"uv": [14, 14, 14.25, 14.25], "texture": "#0"}, + "west": {"uv": [0, 14.25, 0.25, 14.5], "texture": "#0"}, + "up": {"uv": [14.5, 0.25, 14.25, 0], "texture": "#0"}, + "down": {"uv": [0.5, 14.25, 0.25, 14.5], "texture": "#0"} + } + }, + { + "from": [9.4, 14, 7.8], + "to": [9.9, 14.5, 8.3], + "rotation": {"angle": 0, "axis": "x", "origin": [8.175, 14.25, 7.85]}, + "faces": { + "north": {"uv": [14.25, 0.25, 14.5, 0.5], "texture": "#0"}, + "east": {"uv": [0.5, 14.25, 0.75, 14.5], "texture": "#0"}, + "south": {"uv": [14.25, 0.5, 14.5, 0.75], "texture": "#0"}, + "west": {"uv": [0.75, 14.25, 1, 14.5], "texture": "#0"}, + "up": {"uv": [14.5, 1, 14.25, 0.75], "texture": "#0"}, + "down": {"uv": [1.25, 14.25, 1, 14.5], "texture": "#0"} + } + }, + { + "from": [8.4, 14, 7.3], + "to": [9.9, 14.5, 7.8], + "rotation": {"angle": 0, "axis": "x", "origin": [8.175, 14.25, 7.85]}, + "faces": { + "north": {"uv": [12.75, 12.5, 13.25, 12.75], "texture": "#0"}, + "east": {"uv": [14.25, 1, 14.5, 1.25], "texture": "#0"}, + "south": {"uv": [0, 13, 0.5, 13.25], "texture": "#0"}, + "west": {"uv": [1.25, 14.25, 1.5, 14.5], "texture": "#0"}, + "up": {"uv": [1, 13.25, 0.5, 13], "texture": "#0"}, + "down": {"uv": [1.5, 13, 1, 13.25], "texture": "#0"} + } + }, + { + "from": [10.4, 14, 7.3], + "to": [11.9, 14.5, 7.8], + "rotation": {"angle": 0, "axis": "x", "origin": [8.175, 14.25, 7.85]}, + "faces": { + "north": {"uv": [13, 1, 13.5, 1.25], "texture": "#0"}, + "east": {"uv": [14.25, 1.25, 14.5, 1.5], "texture": "#0"}, + "south": {"uv": [13, 1.25, 13.5, 1.5], "texture": "#0"}, + "west": {"uv": [1.5, 14.25, 1.75, 14.5], "texture": "#0"}, + "up": {"uv": [2, 13.25, 1.5, 13], "texture": "#0"}, + "down": {"uv": [13.5, 1.5, 13, 1.75], "texture": "#0"} + } + }, + { + "from": [10.4, 14, 6.8], + "to": [10.9, 14.5, 7.3], + "rotation": {"angle": 0, "axis": "x", "origin": [8.175, 14.25, 7.85]}, + "faces": { + "north": {"uv": [14.25, 1.5, 14.5, 1.75], "texture": "#0"}, + "east": {"uv": [1.75, 14.25, 2, 14.5], "texture": "#0"}, + "south": {"uv": [14.25, 1.75, 14.5, 2], "texture": "#0"}, + "west": {"uv": [2, 14.25, 2.25, 14.5], "texture": "#0"}, + "up": {"uv": [14.5, 2.25, 14.25, 2], "texture": "#0"}, + "down": {"uv": [2.5, 14.25, 2.25, 14.5], "texture": "#0"} + } + }, + { + "from": [10.4, 14, 7.8], + "to": [10.9, 14.5, 8.3], + "rotation": {"angle": 0, "axis": "x", "origin": [8.175, 14.25, 7.85]}, + "faces": { + "north": {"uv": [14.25, 2.25, 14.5, 2.5], "texture": "#0"}, + "east": {"uv": [2.5, 14.25, 2.75, 14.5], "texture": "#0"}, + "south": {"uv": [14.25, 2.5, 14.5, 2.75], "texture": "#0"}, + "west": {"uv": [2.75, 14.25, 3, 14.5], "texture": "#0"}, + "up": {"uv": [14.5, 3, 14.25, 2.75], "texture": "#0"}, + "down": {"uv": [3.25, 14.25, 3, 14.5], "texture": "#0"} + } + } + ], + "groups": [ + { + "name": "ornaments", + "origin": [3, 8, 3], + "color": 0, + "children": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31] + }, + { + "name": "center", + "origin": [8, 8, 8], + "color": 0, + "children": [32, 33, 34] + }, + { + "name": "plates", + "origin": [8, 8, 8], + "color": 0, + "children": [35, 36, 37, 38, 39, 40] + }, + { + "name": "symbol", + "origin": [6, 8, 1], + "color": 0, + "children": [ + { + "name": "side1", + "origin": [7.5, 8.5, 14], + "color": 0, + "children": [ + { + "name": "group", + "origin": [7.5, 8.5, 14], + "color": 0, + "children": [41, 42, 43] + }, + { + "name": "group", + "origin": [6, 8, 1], + "color": 0, + "children": [44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54] + }, + { + "name": "group", + "origin": [6, 3.5, 14], + "color": 0, + "children": [55, 56, 57, 58, 59, 60, 61] + } + ] + }, + { + "name": "side2", + "origin": [7.5, 8.5, 14], + "color": 0, + "children": [ + { + "name": "group", + "origin": [7.5, 8.5, 14], + "color": 0, + "children": [62, 63, 64] + }, + { + "name": "group", + "origin": [6, 8, 1], + "color": 0, + "children": [65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75] + }, + { + "name": "group", + "origin": [6, 3.5, 14], + "color": 0, + "children": [76, 77, 78, 79, 80, 81, 82] + } + ] + }, + { + "name": "side3", + "origin": [7.5, 8.5, 14], + "color": 0, + "children": [ + { + "name": "group", + "origin": [7.5, 8.5, 14], + "color": 0, + "children": [83, 84, 85] + }, + { + "name": "group", + "origin": [6, 8, 1], + "color": 0, + "children": [86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96] + }, + { + "name": "group", + "origin": [6, 3.5, 14], + "color": 0, + "children": [97, 98, 99, 100, 101, 102, 103] + } + ] + }, + { + "name": "side4", + "origin": [7.5, 8.5, 14], + "color": 0, + "children": [ + { + "name": "group", + "origin": [7.5, 8.5, 14], + "color": 0, + "children": [104, 105, 106] + }, + { + "name": "group", + "origin": [6, 8, 1], + "color": 0, + "children": [107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117] + }, + { + "name": "group", + "origin": [6, 3.5, 14], + "color": 0, + "children": [118, 119, 120, 121, 122, 123, 124] + } + ] + }, + { + "name": "top", + "origin": [7.5, 8.5, 14], + "color": 0, + "children": [ + { + "name": "group", + "origin": [7.5, 8.5, 14], + "color": 0, + "children": [125, 126, 127] + }, + { + "name": "group", + "origin": [6, 8, 1], + "color": 0, + "children": [128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138] + }, + { + "name": "group", + "origin": [6, 3.5, 14], + "color": 0, + "children": [139, 140, 141, 142, 143, 144, 145] + } + ] + } + ] + } + ] +} diff --git a/src/main/resources/assets/utilitiesinexcess/models/blocks/upgrade_pump_fluids.json b/src/main/resources/assets/utilitiesinexcess/models/blocks/upgrade_pump_fluids.json new file mode 100644 index 00000000..4940b064 --- /dev/null +++ b/src/main/resources/assets/utilitiesinexcess/models/blocks/upgrade_pump_fluids.json @@ -0,0 +1,992 @@ +{ + "format_version": "1.9.0", + "credit": "Made with Blockbench", + "texture_size": [64, 64], + "textures": { + "0": "utilitiesinexcess:upgrade_pump_fluids", + "particle": "utilitiesinexcess:upgrade_pump_fluids" + }, + "elements": [ + { + "from": [2, 7, 3], + "to": [4, 9, 4], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 8]}, + "faces": { + "north": {"uv": [7.5, 4, 8, 4.5], "texture": "#0"}, + "east": {"uv": [3.5, 12, 3.75, 12.5], "texture": "#0"}, + "south": {"uv": [7.5, 4.5, 8, 5], "texture": "#0"}, + "west": {"uv": [3.75, 12, 4, 12.5], "texture": "#0"}, + "up": {"uv": [12.5, 4, 12, 3.75], "texture": "#0"}, + "down": {"uv": [4.5, 12, 4, 12.25], "texture": "#0"} + } + }, + { + "from": [3, 7, 2], + "to": [4, 9, 3], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 8]}, + "faces": { + "north": {"uv": [4.5, 12, 4.75, 12.5], "texture": "#0"}, + "east": {"uv": [4.75, 12, 5, 12.5], "texture": "#0"}, + "south": {"uv": [12, 6, 12.25, 6.5], "texture": "#0"}, + "west": {"uv": [12, 6.5, 12.25, 7], "texture": "#0"}, + "up": {"uv": [7.5, 13, 7.25, 12.75], "texture": "#0"}, + "down": {"uv": [13, 7.25, 12.75, 7.5], "texture": "#0"} + } + }, + { + "from": [3, 11, 3], + "to": [4, 13, 4], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 8]}, + "faces": { + "north": {"uv": [7.75, 12, 8, 12.5], "texture": "#0"}, + "east": {"uv": [8, 12, 8.25, 12.5], "texture": "#0"}, + "south": {"uv": [8.25, 12, 8.5, 12.5], "texture": "#0"}, + "west": {"uv": [8.5, 12, 8.75, 12.5], "texture": "#0"}, + "up": {"uv": [7.75, 13, 7.5, 12.75], "texture": "#0"}, + "down": {"uv": [13, 7.5, 12.75, 7.75], "texture": "#0"} + } + }, + { + "from": [3, 3, 3], + "to": [4, 5, 4], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 8]}, + "faces": { + "north": {"uv": [8.75, 12, 9, 12.5], "texture": "#0"}, + "east": {"uv": [12, 8.75, 12.25, 9.25], "texture": "#0"}, + "south": {"uv": [9, 12, 9.25, 12.5], "texture": "#0"}, + "west": {"uv": [12, 9.25, 12.25, 9.75], "texture": "#0"}, + "up": {"uv": [13, 8, 12.75, 7.75], "texture": "#0"}, + "down": {"uv": [13, 8, 12.75, 8.25], "texture": "#0"} + } + }, + { + "from": [3, 7, 12], + "to": [4, 9, 14], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 8]}, + "faces": { + "north": {"uv": [12, 11, 12.25, 11.5], "texture": "#0"}, + "east": {"uv": [10.75, 3.5, 11.25, 4], "texture": "#0"}, + "south": {"uv": [12, 11.5, 12.25, 12], "texture": "#0"}, + "west": {"uv": [5, 10.75, 5.5, 11.25], "texture": "#0"}, + "up": {"uv": [12, 12.5, 11.75, 12], "texture": "#0"}, + "down": {"uv": [12.25, 12, 12, 12.5], "texture": "#0"} + } + }, + { + "from": [2, 7, 12], + "to": [3, 9, 13], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 8]}, + "faces": { + "north": {"uv": [12.25, 0, 12.5, 0.5], "texture": "#0"}, + "east": {"uv": [12.25, 0.5, 12.5, 1], "texture": "#0"}, + "south": {"uv": [12.25, 1, 12.5, 1.5], "texture": "#0"}, + "west": {"uv": [1.5, 12.25, 1.75, 12.75], "texture": "#0"}, + "up": {"uv": [13, 8.5, 12.75, 8.25], "texture": "#0"}, + "down": {"uv": [13, 8.5, 12.75, 8.75], "texture": "#0"} + } + }, + { + "from": [3, 11, 12], + "to": [4, 13, 13], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 8]}, + "faces": { + "north": {"uv": [12.25, 1.5, 12.5, 2], "texture": "#0"}, + "east": {"uv": [1.75, 12.25, 2, 12.75], "texture": "#0"}, + "south": {"uv": [12.25, 2, 12.5, 2.5], "texture": "#0"}, + "west": {"uv": [12.25, 2.5, 12.5, 3], "texture": "#0"}, + "up": {"uv": [13, 9, 12.75, 8.75], "texture": "#0"}, + "down": {"uv": [13, 9, 12.75, 9.25], "texture": "#0"} + } + }, + { + "from": [3, 3, 12], + "to": [4, 5, 13], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 8]}, + "faces": { + "north": {"uv": [12.25, 3, 12.5, 3.5], "texture": "#0"}, + "east": {"uv": [4, 12.25, 4.25, 12.75], "texture": "#0"}, + "south": {"uv": [12.25, 4, 12.5, 4.5], "texture": "#0"}, + "west": {"uv": [4.25, 12.25, 4.5, 12.75], "texture": "#0"}, + "up": {"uv": [9.5, 13, 9.25, 12.75], "texture": "#0"}, + "down": {"uv": [13, 9.25, 12.75, 9.5], "texture": "#0"} + } + }, + { + "from": [12, 7, 12], + "to": [14, 9, 13], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 8]}, + "faces": { + "north": {"uv": [5.5, 10.75, 6, 11.25], "texture": "#0"}, + "east": {"uv": [12.25, 4.5, 12.5, 5], "texture": "#0"}, + "south": {"uv": [6, 10.75, 6.5, 11.25], "texture": "#0"}, + "west": {"uv": [5, 12.25, 5.25, 12.75], "texture": "#0"}, + "up": {"uv": [12.5, 10, 12, 9.75], "texture": "#0"}, + "down": {"uv": [12.75, 3.5, 12.25, 3.75], "texture": "#0"} + } + }, + { + "from": [12, 7, 13], + "to": [13, 9, 14], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 8]}, + "faces": { + "north": {"uv": [12.25, 5, 12.5, 5.5], "texture": "#0"}, + "east": {"uv": [5.25, 12.25, 5.5, 12.75], "texture": "#0"}, + "south": {"uv": [5.5, 12.25, 5.75, 12.75], "texture": "#0"}, + "west": {"uv": [12.25, 5.5, 12.5, 6], "texture": "#0"}, + "up": {"uv": [9.75, 13, 9.5, 12.75], "texture": "#0"}, + "down": {"uv": [13, 9.5, 12.75, 9.75], "texture": "#0"} + } + }, + { + "from": [12, 11, 12], + "to": [13, 13, 13], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 8]}, + "faces": { + "north": {"uv": [5.75, 12.25, 6, 12.75], "texture": "#0"}, + "east": {"uv": [6, 12.25, 6.25, 12.75], "texture": "#0"}, + "south": {"uv": [12.25, 6, 12.5, 6.5], "texture": "#0"}, + "west": {"uv": [6.25, 12.25, 6.5, 12.75], "texture": "#0"}, + "up": {"uv": [10, 13, 9.75, 12.75], "texture": "#0"}, + "down": {"uv": [13, 9.75, 12.75, 10], "texture": "#0"} + } + }, + { + "from": [12, 3, 12], + "to": [13, 5, 13], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 8]}, + "faces": { + "north": {"uv": [6.5, 12.25, 6.75, 12.75], "texture": "#0"}, + "east": {"uv": [12.25, 6.5, 12.5, 7], "texture": "#0"}, + "south": {"uv": [6.75, 12.25, 7, 12.75], "texture": "#0"}, + "west": {"uv": [7, 12.25, 7.25, 12.75], "texture": "#0"}, + "up": {"uv": [10.25, 13, 10, 12.75], "texture": "#0"}, + "down": {"uv": [13, 10, 12.75, 10.25], "texture": "#0"} + } + }, + { + "from": [12, 7, 2], + "to": [13, 9, 4], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 8]}, + "faces": { + "north": {"uv": [12.25, 7, 12.5, 7.5], "texture": "#0"}, + "east": {"uv": [6.5, 10.75, 7, 11.25], "texture": "#0"}, + "south": {"uv": [7.25, 12.25, 7.5, 12.75], "texture": "#0"}, + "west": {"uv": [7, 10.75, 7.5, 11.25], "texture": "#0"}, + "up": {"uv": [7.75, 12.75, 7.5, 12.25], "texture": "#0"}, + "down": {"uv": [12.5, 7.5, 12.25, 8], "texture": "#0"} + } + }, + { + "from": [13, 7, 3], + "to": [14, 9, 4], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 8]}, + "faces": { + "north": {"uv": [12.25, 8, 12.5, 8.5], "texture": "#0"}, + "east": {"uv": [12.25, 8.5, 12.5, 9], "texture": "#0"}, + "south": {"uv": [12.25, 9, 12.5, 9.5], "texture": "#0"}, + "west": {"uv": [9.25, 12.25, 9.5, 12.75], "texture": "#0"}, + "up": {"uv": [10.5, 13, 10.25, 12.75], "texture": "#0"}, + "down": {"uv": [13, 10.25, 12.75, 10.5], "texture": "#0"} + } + }, + { + "from": [12, 11, 3], + "to": [13, 13, 4], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 8]}, + "faces": { + "north": {"uv": [9.5, 12.25, 9.75, 12.75], "texture": "#0"}, + "east": {"uv": [9.75, 12.25, 10, 12.75], "texture": "#0"}, + "south": {"uv": [10, 12.25, 10.25, 12.75], "texture": "#0"}, + "west": {"uv": [12.25, 10, 12.5, 10.5], "texture": "#0"}, + "up": {"uv": [10.75, 13, 10.5, 12.75], "texture": "#0"}, + "down": {"uv": [13, 10.5, 12.75, 10.75], "texture": "#0"} + } + }, + { + "from": [12, 3, 3], + "to": [13, 5, 4], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 8]}, + "faces": { + "north": {"uv": [10.25, 12.25, 10.5, 12.75], "texture": "#0"}, + "east": {"uv": [10.5, 12.25, 10.75, 12.75], "texture": "#0"}, + "south": {"uv": [12.25, 10.5, 12.5, 11], "texture": "#0"}, + "west": {"uv": [10.75, 12.25, 11, 12.75], "texture": "#0"}, + "up": {"uv": [11, 13, 10.75, 12.75], "texture": "#0"}, + "down": {"uv": [13, 10.75, 12.75, 11], "texture": "#0"} + } + }, + { + "from": [7, 12, 2], + "to": [9, 14, 3], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 8]}, + "faces": { + "north": {"uv": [7.5, 10.75, 8, 11.25], "texture": "#0"}, + "east": {"uv": [11, 12.25, 11.25, 12.75], "texture": "#0"}, + "south": {"uv": [10.75, 10.25, 11.25, 10.75], "texture": "#0"}, + "west": {"uv": [12.25, 11, 12.5, 11.5], "texture": "#0"}, + "up": {"uv": [12.75, 9.75, 12.25, 9.5], "texture": "#0"}, + "down": {"uv": [11.75, 12.25, 11.25, 12.5], "texture": "#0"} + } + }, + { + "from": [7, 13, 3], + "to": [9, 14, 4], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 8]}, + "faces": { + "north": {"uv": [12.25, 11.5, 12.75, 11.75], "texture": "#0"}, + "east": {"uv": [11, 12.75, 11.25, 13], "texture": "#0"}, + "south": {"uv": [12.25, 11.75, 12.75, 12], "texture": "#0"}, + "west": {"uv": [12.75, 11, 13, 11.25], "texture": "#0"}, + "up": {"uv": [12.75, 12.25, 12.25, 12], "texture": "#0"}, + "down": {"uv": [12.75, 12.25, 12.25, 12.5], "texture": "#0"} + } + }, + { + "from": [13, 12, 7], + "to": [14, 14, 9], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 8]}, + "faces": { + "north": {"uv": [0, 12.5, 0.25, 13], "texture": "#0"}, + "east": {"uv": [10.75, 10.75, 11.25, 11.25], "texture": "#0"}, + "south": {"uv": [12.5, 0, 12.75, 0.5], "texture": "#0"}, + "west": {"uv": [11, 0, 11.5, 0.5], "texture": "#0"}, + "up": {"uv": [0.5, 13, 0.25, 12.5], "texture": "#0"}, + "down": {"uv": [0.75, 12.5, 0.5, 13], "texture": "#0"} + } + }, + { + "from": [12, 13, 7], + "to": [13, 14, 9], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 8]}, + "faces": { + "north": {"uv": [12.75, 11.5, 13, 11.75], "texture": "#0"}, + "east": {"uv": [12.5, 0.5, 13, 0.75], "texture": "#0"}, + "south": {"uv": [12.75, 11.75, 13, 12], "texture": "#0"}, + "west": {"uv": [0.75, 12.5, 1.25, 12.75], "texture": "#0"}, + "up": {"uv": [12.75, 1.25, 12.5, 0.75], "texture": "#0"}, + "down": {"uv": [1.5, 12.5, 1.25, 13], "texture": "#0"} + } + }, + { + "from": [7, 12, 13], + "to": [9, 14, 14], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 8]}, + "faces": { + "north": {"uv": [11, 0.5, 11.5, 1], "texture": "#0"}, + "east": {"uv": [12.5, 1.25, 12.75, 1.75], "texture": "#0"}, + "south": {"uv": [11, 1, 11.5, 1.5], "texture": "#0"}, + "west": {"uv": [12.5, 1.75, 12.75, 2.25], "texture": "#0"}, + "up": {"uv": [13, 2.5, 12.5, 2.25], "texture": "#0"}, + "down": {"uv": [13, 2.5, 12.5, 2.75], "texture": "#0"} + } + }, + { + "from": [7, 13, 12], + "to": [9, 14, 13], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 8]}, + "faces": { + "north": {"uv": [2.75, 12.5, 3.25, 12.75], "texture": "#0"}, + "east": {"uv": [12.75, 12, 13, 12.25], "texture": "#0"}, + "south": {"uv": [12.5, 2.75, 13, 3], "texture": "#0"}, + "west": {"uv": [12.75, 12.25, 13, 12.5], "texture": "#0"}, + "up": {"uv": [13, 3.25, 12.5, 3], "texture": "#0"}, + "down": {"uv": [3.75, 12.5, 3.25, 12.75], "texture": "#0"} + } + }, + { + "from": [2, 12, 7], + "to": [3, 14, 9], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 8]}, + "faces": { + "north": {"uv": [3.75, 12.5, 4, 13], "texture": "#0"}, + "east": {"uv": [11, 1.5, 11.5, 2], "texture": "#0"}, + "south": {"uv": [12.5, 3.75, 12.75, 4.25], "texture": "#0"}, + "west": {"uv": [11, 2.25, 11.5, 2.75], "texture": "#0"}, + "up": {"uv": [12.75, 4.75, 12.5, 4.25], "texture": "#0"}, + "down": {"uv": [4.75, 12.5, 4.5, 13], "texture": "#0"} + } + }, + { + "from": [3, 13, 7], + "to": [4, 14, 9], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 8]}, + "faces": { + "north": {"uv": [12.75, 12.5, 13, 12.75], "texture": "#0"}, + "east": {"uv": [12.5, 3.25, 13, 3.5], "texture": "#0"}, + "south": {"uv": [12.75, 12.75, 13, 13], "texture": "#0"}, + "west": {"uv": [12.5, 4.75, 13, 5], "texture": "#0"}, + "up": {"uv": [5, 13, 4.75, 12.5], "texture": "#0"}, + "down": {"uv": [12.75, 5, 12.5, 5.5], "texture": "#0"} + } + }, + { + "from": [3, 2, 6], + "to": [4, 3, 10], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 8]}, + "faces": { + "north": {"uv": [0, 13, 0.25, 13.25], "texture": "#0"}, + "east": {"uv": [11, 2.75, 12, 3], "texture": "#0"}, + "south": {"uv": [13, 0, 13.25, 0.25], "texture": "#0"}, + "west": {"uv": [11, 3, 12, 3.25], "texture": "#0"}, + "up": {"uv": [11.25, 5, 11, 4], "texture": "#0"}, + "down": {"uv": [11.25, 5, 11, 6], "texture": "#0"} + } + }, + { + "from": [2, 2, 6], + "to": [3, 4, 10], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 8]}, + "faces": { + "north": {"uv": [12.5, 5.5, 12.75, 6], "texture": "#0"}, + "east": {"uv": [6.5, 4, 7.5, 4.5], "texture": "#0"}, + "south": {"uv": [12.5, 6, 12.75, 6.5], "texture": "#0"}, + "west": {"uv": [6.5, 4.5, 7.5, 5], "texture": "#0"}, + "up": {"uv": [11.25, 7, 11, 6], "texture": "#0"}, + "down": {"uv": [11.5, 3.25, 11.25, 4.25], "texture": "#0"} + } + }, + { + "from": [6, 2, 12], + "to": [10, 3, 13], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 8]}, + "faces": { + "north": {"uv": [11.25, 4.25, 12.25, 4.5], "texture": "#0"}, + "east": {"uv": [0.25, 13, 0.5, 13.25], "texture": "#0"}, + "south": {"uv": [11.25, 4.5, 12.25, 4.75], "texture": "#0"}, + "west": {"uv": [13, 0.25, 13.25, 0.5], "texture": "#0"}, + "up": {"uv": [12.25, 5, 11.25, 4.75], "texture": "#0"}, + "down": {"uv": [6, 11.25, 5, 11.5], "texture": "#0"} + } + }, + { + "from": [6, 2, 13], + "to": [10, 4, 14], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 8]}, + "faces": { + "north": {"uv": [10, 4, 11, 4.5], "texture": "#0"}, + "east": {"uv": [12.5, 6.5, 12.75, 7], "texture": "#0"}, + "south": {"uv": [10, 4.5, 11, 5], "texture": "#0"}, + "west": {"uv": [12.5, 7, 12.75, 7.5], "texture": "#0"}, + "up": {"uv": [12.25, 5.25, 11.25, 5], "texture": "#0"}, + "down": {"uv": [12.25, 5.25, 11.25, 5.5], "texture": "#0"} + } + }, + { + "from": [12, 2, 6], + "to": [13, 3, 10], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 8]}, + "faces": { + "north": {"uv": [0.5, 13, 0.75, 13.25], "texture": "#0"}, + "east": {"uv": [11.25, 5.5, 12.25, 5.75], "texture": "#0"}, + "south": {"uv": [13, 0.5, 13.25, 0.75], "texture": "#0"}, + "west": {"uv": [11.25, 5.75, 12.25, 6], "texture": "#0"}, + "up": {"uv": [6.25, 12.25, 6, 11.25], "texture": "#0"}, + "down": {"uv": [11.5, 6, 11.25, 7], "texture": "#0"} + } + }, + { + "from": [13, 2, 6], + "to": [14, 4, 10], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 8]}, + "faces": { + "north": {"uv": [12.5, 7.5, 12.75, 8], "texture": "#0"}, + "east": {"uv": [10, 5, 11, 5.5], "texture": "#0"}, + "south": {"uv": [7.75, 12.5, 8, 13], "texture": "#0"}, + "west": {"uv": [10, 5.5, 11, 6], "texture": "#0"}, + "up": {"uv": [6.5, 12.25, 6.25, 11.25], "texture": "#0"}, + "down": {"uv": [6.75, 11.25, 6.5, 12.25], "texture": "#0"} + } + }, + { + "from": [6, 2, 3], + "to": [10, 3, 4], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 8]}, + "faces": { + "north": {"uv": [6.75, 11.25, 7.75, 11.5], "texture": "#0"}, + "east": {"uv": [13, 0.75, 13.25, 1], "texture": "#0"}, + "south": {"uv": [11.25, 10, 12.25, 10.25], "texture": "#0"}, + "west": {"uv": [13, 1, 13.25, 1.25], "texture": "#0"}, + "up": {"uv": [12.25, 10.5, 11.25, 10.25], "texture": "#0"}, + "down": {"uv": [12.25, 10.5, 11.25, 10.75], "texture": "#0"} + } + }, + { + "from": [6, 2, 2], + "to": [10, 4, 3], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 8]}, + "faces": { + "north": {"uv": [10, 6, 11, 6.5], "texture": "#0"}, + "east": {"uv": [8, 12.5, 8.25, 13], "texture": "#0"}, + "south": {"uv": [10, 6.5, 11, 7], "texture": "#0"}, + "west": {"uv": [12.5, 8, 12.75, 8.5], "texture": "#0"}, + "up": {"uv": [11.75, 11.5, 10.75, 11.25], "texture": "#0"}, + "down": {"uv": [12.25, 10.75, 11.25, 11], "texture": "#0"} + } + }, + { + "from": [12, 3, 4], + "to": [13, 13, 12], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 8]}, + "faces": { + "north": {"uv": [3, 9.5, 3.25, 12], "texture": "#0"}, + "east": {"uv": [2.5, 0, 4.5, 2.5], "texture": "#0"}, + "south": {"uv": [3.25, 9.5, 3.5, 12], "texture": "#0"}, + "west": {"uv": [2.5, 2.5, 4.5, 5], "texture": "#0"}, + "up": {"uv": [10.25, 9, 10, 7], "texture": "#0"}, + "down": {"uv": [8.25, 10, 8, 12], "texture": "#0"} + } + }, + { + "from": [3, 3, 4], + "to": [4, 13, 12], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 8]}, + "faces": { + "north": {"uv": [3.5, 9.5, 3.75, 12], "texture": "#0"}, + "east": {"uv": [4.5, 0, 6.5, 2.5], "texture": "#0"}, + "south": {"uv": [3.75, 9.5, 4, 12], "texture": "#0"}, + "west": {"uv": [4.5, 2.5, 6.5, 5], "texture": "#0"}, + "up": {"uv": [8.5, 12, 8.25, 10], "texture": "#0"}, + "down": {"uv": [8.75, 10, 8.5, 12], "texture": "#0"} + } + }, + { + "name": "base", + "from": [4, 3, 3], + "to": [12, 13, 13], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 8]}, + "faces": { + "north": {"uv": [0, 5, 2, 7.5], "texture": "#0"}, + "east": {"uv": [0, 0, 2.5, 2.5], "texture": "#0"}, + "south": {"uv": [2, 5, 4, 7.5], "texture": "#0"}, + "west": {"uv": [0, 2.5, 2.5, 5], "texture": "#0"}, + "up": {"uv": [6, 7.5, 4, 5], "texture": "#0"}, + "down": {"uv": [8, 5, 6, 7.5], "texture": "#0"} + } + }, + { + "from": [4, 4, 13], + "to": [12, 12, 14], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 8]}, + "faces": { + "north": {"uv": [6.5, 0, 8.5, 2], "texture": "#0"}, + "east": {"uv": [8.75, 10, 9, 12], "texture": "#0"}, + "south": {"uv": [6.5, 2, 8.5, 4], "texture": "#0"}, + "west": {"uv": [9, 10, 9.25, 12], "texture": "#0"}, + "up": {"uv": [12, 9.25, 10, 9], "texture": "#0"}, + "down": {"uv": [11.25, 10, 9.25, 10.25], "texture": "#0"} + } + }, + { + "from": [4, 13, 4], + "to": [12, 14, 12], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 8]}, + "faces": { + "north": {"uv": [10, 9.25, 12, 9.5], "texture": "#0"}, + "east": {"uv": [10, 9.5, 12, 9.75], "texture": "#0"}, + "south": {"uv": [10, 9.75, 12, 10], "texture": "#0"}, + "west": {"uv": [10.25, 7, 12.25, 7.25], "texture": "#0"}, + "up": {"uv": [2, 9.5, 0, 7.5], "texture": "#0"}, + "down": {"uv": [4, 7.5, 2, 9.5], "texture": "#0"} + } + }, + { + "from": [13, 4, 4], + "to": [14, 12, 12], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 8]}, + "faces": { + "north": {"uv": [9.25, 10.25, 9.5, 12.25], "texture": "#0"}, + "east": {"uv": [4, 7.5, 6, 9.5], "texture": "#0"}, + "south": {"uv": [9.5, 10.25, 9.75, 12.25], "texture": "#0"}, + "west": {"uv": [6, 7.5, 8, 9.5], "texture": "#0"}, + "up": {"uv": [10, 12.25, 9.75, 10.25], "texture": "#0"}, + "down": {"uv": [10.25, 10.25, 10, 12.25], "texture": "#0"} + } + }, + { + "from": [4, 4, 2], + "to": [12, 12, 3], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 8]}, + "faces": { + "north": {"uv": [8, 4, 10, 6], "texture": "#0"}, + "east": {"uv": [10.25, 10.25, 10.5, 12.25], "texture": "#0"}, + "south": {"uv": [8, 6, 10, 8], "texture": "#0"}, + "west": {"uv": [10.5, 0, 10.75, 2], "texture": "#0"}, + "up": {"uv": [12.25, 7.5, 10.25, 7.25], "texture": "#0"}, + "down": {"uv": [12.25, 7.5, 10.25, 7.75], "texture": "#0"} + } + }, + { + "from": [4, 2, 4], + "to": [12, 3, 12], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 8]}, + "faces": { + "north": {"uv": [10.25, 7.75, 12.25, 8], "texture": "#0"}, + "east": {"uv": [10.25, 8, 12.25, 8.25], "texture": "#0"}, + "south": {"uv": [10.25, 8.25, 12.25, 8.5], "texture": "#0"}, + "west": {"uv": [10.25, 8.5, 12.25, 8.75], "texture": "#0"}, + "up": {"uv": [10, 10, 8, 8], "texture": "#0"}, + "down": {"uv": [10.5, 0, 8.5, 2], "texture": "#0"} + } + }, + { + "from": [2, 4, 4], + "to": [3, 12, 12], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 8]}, + "faces": { + "north": {"uv": [10.5, 2, 10.75, 4], "texture": "#0"}, + "east": {"uv": [8.5, 2, 10.5, 4], "texture": "#0"}, + "south": {"uv": [10.5, 10.25, 10.75, 12.25], "texture": "#0"}, + "west": {"uv": [0, 9.5, 2, 11.5], "texture": "#0"}, + "up": {"uv": [11, 2, 10.75, 0], "texture": "#0"}, + "down": {"uv": [2.25, 10.75, 2, 12.75], "texture": "#0"} + } + }, + { + "from": [1.5, 9.75, 7.75], + "to": [2, 10.75, 8.25], + "rotation": {"angle": 0, "axis": "x", "origin": [1.5, 6.5, 8.25]}, + "faces": { + "north": {"uv": [1.25, 13, 1.5, 13.25], "texture": "#0"}, + "east": {"uv": [13, 1.25, 13.25, 1.5], "texture": "#0"}, + "south": {"uv": [1.5, 13, 1.75, 13.25], "texture": "#0"}, + "west": {"uv": [13, 1.5, 13.25, 1.75], "texture": "#0"}, + "up": {"uv": [2, 13.25, 1.75, 13], "texture": "#0"}, + "down": {"uv": [13.25, 1.75, 13, 2], "texture": "#0"} + } + }, + { + "from": [1.5, 5.25, 7.25], + "to": [2, 9.75, 8.75], + "rotation": {"angle": 0, "axis": "y", "origin": [1.5, 6.5, 7.75]}, + "faces": { + "north": {"uv": [2.25, 10.75, 2.5, 12], "texture": "#0"}, + "east": {"uv": [4, 9.5, 4.5, 10.75], "texture": "#0"}, + "south": {"uv": [10.75, 2.25, 11, 3.5], "texture": "#0"}, + "west": {"uv": [4.5, 9.5, 5, 10.75], "texture": "#0"}, + "up": {"uv": [8.5, 13, 8.25, 12.5], "texture": "#0"}, + "down": {"uv": [8.75, 12.5, 8.5, 13], "texture": "#0"} + } + }, + { + "from": [1.5, 5.75, 6.75], + "to": [2, 8.75, 7.25], + "rotation": {"angle": 0, "axis": "y", "origin": [1.5, 6.5, 6.25]}, + "faces": { + "north": {"uv": [1.75, 11.5, 2, 12.25], "texture": "#0"}, + "east": {"uv": [11.5, 3.25, 11.75, 4], "texture": "#0"}, + "south": {"uv": [5, 11.5, 5.25, 12.25], "texture": "#0"}, + "west": {"uv": [5.25, 11.5, 5.5, 12.25], "texture": "#0"}, + "up": {"uv": [13.25, 2.25, 13, 2], "texture": "#0"}, + "down": {"uv": [13.25, 2.25, 13, 2.5], "texture": "#0"} + } + }, + { + "from": [1.5, 6.25, 6.25], + "to": [2, 7.75, 6.75], + "rotation": {"angle": 0, "axis": "y", "origin": [1.5, 6.5, 5.75]}, + "faces": { + "north": {"uv": [12.5, 8.5, 12.75, 9], "texture": "#0"}, + "east": {"uv": [8.75, 12.5, 9, 13], "texture": "#0"}, + "south": {"uv": [9, 12.5, 9.25, 13], "texture": "#0"}, + "west": {"uv": [12.5, 9, 12.75, 9.5], "texture": "#0"}, + "up": {"uv": [13.25, 2.75, 13, 2.5], "texture": "#0"}, + "down": {"uv": [13.25, 2.75, 13, 3], "texture": "#0"} + } + }, + { + "from": [1.5, 6.25, 9.25], + "to": [2, 7.75, 9.75], + "rotation": {"angle": 0, "axis": "y", "origin": [1.5, 6.5, 8.75]}, + "faces": { + "north": {"uv": [12.5, 9.75, 12.75, 10.25], "texture": "#0"}, + "east": {"uv": [12.5, 10.25, 12.75, 10.75], "texture": "#0"}, + "south": {"uv": [12.5, 10.75, 12.75, 11.25], "texture": "#0"}, + "west": {"uv": [11.25, 12.5, 11.5, 13], "texture": "#0"}, + "up": {"uv": [13.25, 3.25, 13, 3], "texture": "#0"}, + "down": {"uv": [13.25, 3.25, 13, 3.5], "texture": "#0"} + } + }, + { + "from": [1.5, 5.75, 8.75], + "to": [2, 8.75, 9.25], + "rotation": {"angle": 0, "axis": "y", "origin": [1.5, 6.5, 8.25]}, + "faces": { + "north": {"uv": [5.5, 11.5, 5.75, 12.25], "texture": "#0"}, + "east": {"uv": [5.75, 11.5, 6, 12.25], "texture": "#0"}, + "south": {"uv": [11.5, 6, 11.75, 6.75], "texture": "#0"}, + "west": {"uv": [6.75, 11.5, 7, 12.25], "texture": "#0"}, + "up": {"uv": [4, 13.25, 3.75, 13], "texture": "#0"}, + "down": {"uv": [13.25, 4, 13, 4.25], "texture": "#0"} + } + }, + { + "from": [14, 9.75, 7.75], + "to": [14.5, 10.75, 8.25], + "rotation": {"angle": 0, "axis": "y", "origin": [14, 6.5, 8.25]}, + "faces": { + "north": {"uv": [13, 4.25, 13.25, 4.5], "texture": "#0"}, + "east": {"uv": [4.5, 13, 4.75, 13.25], "texture": "#0"}, + "south": {"uv": [13, 4.5, 13.25, 4.75], "texture": "#0"}, + "west": {"uv": [4.75, 13, 5, 13.25], "texture": "#0"}, + "up": {"uv": [13.25, 5, 13, 4.75], "texture": "#0"}, + "down": {"uv": [13.25, 5, 13, 5.25], "texture": "#0"} + } + }, + { + "from": [14, 5.25, 7.25], + "to": [14.5, 9.75, 8.75], + "rotation": {"angle": 0, "axis": "y", "origin": [14, 6.5, 7.75]}, + "faces": { + "north": {"uv": [2.5, 10.75, 2.75, 12], "texture": "#0"}, + "east": {"uv": [5, 9.5, 5.5, 10.75], "texture": "#0"}, + "south": {"uv": [2.75, 10.75, 3, 12], "texture": "#0"}, + "west": {"uv": [5.5, 9.5, 6, 10.75], "texture": "#0"}, + "up": {"uv": [11.75, 13, 11.5, 12.5], "texture": "#0"}, + "down": {"uv": [12, 12.5, 11.75, 13], "texture": "#0"} + } + }, + { + "from": [14, 5.75, 6.75], + "to": [14.5, 8.75, 7.25], + "rotation": {"angle": 0, "axis": "y", "origin": [14, 6.5, 6.25]}, + "faces": { + "north": {"uv": [7, 11.5, 7.25, 12.25], "texture": "#0"}, + "east": {"uv": [7.25, 11.5, 7.5, 12.25], "texture": "#0"}, + "south": {"uv": [7.5, 11.5, 7.75, 12.25], "texture": "#0"}, + "west": {"uv": [10.75, 11.5, 11, 12.25], "texture": "#0"}, + "up": {"uv": [13.25, 5.5, 13, 5.25], "texture": "#0"}, + "down": {"uv": [13.25, 5.5, 13, 5.75], "texture": "#0"} + } + }, + { + "from": [14, 6.25, 6.25], + "to": [14.5, 7.75, 6.75], + "rotation": {"angle": 0, "axis": "y", "origin": [14, 6.5, 5.75]}, + "faces": { + "north": {"uv": [12, 12.5, 12.25, 13], "texture": "#0"}, + "east": {"uv": [12.25, 12.5, 12.5, 13], "texture": "#0"}, + "south": {"uv": [12.5, 12.5, 12.75, 13], "texture": "#0"}, + "west": {"uv": [12.75, 0, 13, 0.5], "texture": "#0"}, + "up": {"uv": [6, 13.25, 5.75, 13], "texture": "#0"}, + "down": {"uv": [13.25, 5.75, 13, 6], "texture": "#0"} + } + }, + { + "from": [14, 6.25, 9.25], + "to": [14.5, 7.75, 9.75], + "rotation": {"angle": 0, "axis": "y", "origin": [14, 6.5, 8.75]}, + "faces": { + "north": {"uv": [0.75, 12.75, 1, 13.25], "texture": "#0"}, + "east": {"uv": [12.75, 0.75, 13, 1.25], "texture": "#0"}, + "south": {"uv": [1, 12.75, 1.25, 13.25], "texture": "#0"}, + "west": {"uv": [12.75, 1.25, 13, 1.75], "texture": "#0"}, + "up": {"uv": [6.25, 13.25, 6, 13], "texture": "#0"}, + "down": {"uv": [13.25, 6, 13, 6.25], "texture": "#0"} + } + }, + { + "from": [14, 5.75, 8.75], + "to": [14.5, 8.75, 9.25], + "rotation": {"angle": 0, "axis": "y", "origin": [14, 6.5, 8.25]}, + "faces": { + "north": {"uv": [11, 11.5, 11.25, 12.25], "texture": "#0"}, + "east": {"uv": [11.25, 11.5, 11.5, 12.25], "texture": "#0"}, + "south": {"uv": [11.5, 11.5, 11.75, 12.25], "texture": "#0"}, + "west": {"uv": [0, 11.75, 0.25, 12.5], "texture": "#0"}, + "up": {"uv": [6.5, 13.25, 6.25, 13], "texture": "#0"}, + "down": {"uv": [13.25, 6.25, 13, 6.5], "texture": "#0"} + } + }, + { + "from": [7.75, 9.75, 14], + "to": [8.25, 10.75, 14.5], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8.625, 14.25]}, + "faces": { + "north": {"uv": [6.5, 13, 6.75, 13.25], "texture": "#0"}, + "east": {"uv": [13, 6.5, 13.25, 6.75], "texture": "#0"}, + "south": {"uv": [6.75, 13, 7, 13.25], "texture": "#0"}, + "west": {"uv": [13, 6.75, 13.25, 7], "texture": "#0"}, + "up": {"uv": [7.25, 13.25, 7, 13], "texture": "#0"}, + "down": {"uv": [13.25, 7, 13, 7.25], "texture": "#0"} + } + }, + { + "from": [7.25, 5.25, 14], + "to": [8.75, 9.75, 14.5], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8.625, 14.25]}, + "faces": { + "north": {"uv": [6, 9.5, 6.5, 10.75], "texture": "#0"}, + "east": {"uv": [4, 10.75, 4.25, 12], "texture": "#0"}, + "south": {"uv": [6.5, 9.5, 7, 10.75], "texture": "#0"}, + "west": {"uv": [4.25, 10.75, 4.5, 12], "texture": "#0"}, + "up": {"uv": [13, 11.5, 12.5, 11.25], "texture": "#0"}, + "down": {"uv": [2, 12.75, 1.5, 13], "texture": "#0"} + } + }, + { + "from": [6.75, 5.75, 14], + "to": [7.25, 8.75, 14.5], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8.625, 14.25]}, + "faces": { + "north": {"uv": [11.75, 0, 12, 0.75], "texture": "#0"}, + "east": {"uv": [0.25, 11.75, 0.5, 12.5], "texture": "#0"}, + "south": {"uv": [0.5, 11.75, 0.75, 12.5], "texture": "#0"}, + "west": {"uv": [0.75, 11.75, 1, 12.5], "texture": "#0"}, + "up": {"uv": [7.5, 13.25, 7.25, 13], "texture": "#0"}, + "down": {"uv": [13.25, 7.25, 13, 7.5], "texture": "#0"} + } + }, + { + "from": [6.25, 6.25, 14], + "to": [6.75, 7.75, 14.5], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8.625, 14.25]}, + "faces": { + "north": {"uv": [12.75, 1.75, 13, 2.25], "texture": "#0"}, + "east": {"uv": [2, 12.75, 2.25, 13.25], "texture": "#0"}, + "south": {"uv": [2.25, 12.75, 2.5, 13.25], "texture": "#0"}, + "west": {"uv": [2.5, 12.75, 2.75, 13.25], "texture": "#0"}, + "up": {"uv": [7.75, 13.25, 7.5, 13], "texture": "#0"}, + "down": {"uv": [13.25, 7.5, 13, 7.75], "texture": "#0"} + } + }, + { + "from": [9.25, 6.25, 14], + "to": [9.75, 7.75, 14.5], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8.625, 14.25]}, + "faces": { + "north": {"uv": [2.75, 12.75, 3, 13.25], "texture": "#0"}, + "east": {"uv": [3, 12.75, 3.25, 13.25], "texture": "#0"}, + "south": {"uv": [3.25, 12.75, 3.5, 13.25], "texture": "#0"}, + "west": {"uv": [3.5, 12.75, 3.75, 13.25], "texture": "#0"}, + "up": {"uv": [8, 13.25, 7.75, 13], "texture": "#0"}, + "down": {"uv": [13.25, 7.75, 13, 8], "texture": "#0"} + } + }, + { + "from": [8.75, 5.75, 14], + "to": [9.25, 8.75, 14.5], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8.625, 14.25]}, + "faces": { + "north": {"uv": [1, 11.75, 1.25, 12.5], "texture": "#0"}, + "east": {"uv": [11.75, 1, 12, 1.75], "texture": "#0"}, + "south": {"uv": [1.25, 11.75, 1.5, 12.5], "texture": "#0"}, + "west": {"uv": [11.75, 3.25, 12, 4], "texture": "#0"}, + "up": {"uv": [8.25, 13.25, 8, 13], "texture": "#0"}, + "down": {"uv": [13.25, 8, 13, 8.25], "texture": "#0"} + } + }, + { + "from": [7.75, 9.75, 1.5], + "to": [8.25, 10.75, 2], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8.625, 1.75]}, + "faces": { + "north": {"uv": [8.25, 13, 8.5, 13.25], "texture": "#0"}, + "east": {"uv": [13, 8.25, 13.25, 8.5], "texture": "#0"}, + "south": {"uv": [8.5, 13, 8.75, 13.25], "texture": "#0"}, + "west": {"uv": [13, 8.5, 13.25, 8.75], "texture": "#0"}, + "up": {"uv": [9, 13.25, 8.75, 13], "texture": "#0"}, + "down": {"uv": [13.25, 8.75, 13, 9], "texture": "#0"} + } + }, + { + "from": [7.25, 5.25, 1.5], + "to": [8.75, 9.75, 2], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8.625, 1.75]}, + "faces": { + "north": {"uv": [7, 9.5, 7.5, 10.75], "texture": "#0"}, + "east": {"uv": [4.5, 10.75, 4.75, 12], "texture": "#0"}, + "south": {"uv": [7.5, 9.5, 8, 10.75], "texture": "#0"}, + "west": {"uv": [4.75, 10.75, 5, 12], "texture": "#0"}, + "up": {"uv": [13.25, 3.75, 12.75, 3.5], "texture": "#0"}, + "down": {"uv": [13.25, 3.75, 12.75, 4], "texture": "#0"} + } + }, + { + "from": [8.75, 5.75, 1.5], + "to": [9.25, 8.75, 2], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8.625, 1.75]}, + "faces": { + "north": {"uv": [11.75, 6, 12, 6.75], "texture": "#0"}, + "east": {"uv": [11.75, 11.25, 12, 12], "texture": "#0"}, + "south": {"uv": [12, 0, 12.25, 0.75], "texture": "#0"}, + "west": {"uv": [12, 1, 12.25, 1.75], "texture": "#0"}, + "up": {"uv": [9.25, 13.25, 9, 13], "texture": "#0"}, + "down": {"uv": [13.25, 9, 13, 9.25], "texture": "#0"} + } + }, + { + "from": [9.25, 6.25, 1.5], + "to": [9.75, 7.75, 2], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8.625, 1.75]}, + "faces": { + "north": {"uv": [4, 12.75, 4.25, 13.25], "texture": "#0"}, + "east": {"uv": [12.75, 4, 13, 4.5], "texture": "#0"}, + "south": {"uv": [4.25, 12.75, 4.5, 13.25], "texture": "#0"}, + "west": {"uv": [5, 12.75, 5.25, 13.25], "texture": "#0"}, + "up": {"uv": [9.5, 13.25, 9.25, 13], "texture": "#0"}, + "down": {"uv": [13.25, 9.25, 13, 9.5], "texture": "#0"} + } + }, + { + "from": [6.25, 6.25, 1.5], + "to": [6.75, 7.75, 2], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8.625, 1.75]}, + "faces": { + "north": {"uv": [12.75, 5, 13, 5.5], "texture": "#0"}, + "east": {"uv": [5.25, 12.75, 5.5, 13.25], "texture": "#0"}, + "south": {"uv": [5.5, 12.75, 5.75, 13.25], "texture": "#0"}, + "west": {"uv": [12.75, 5.5, 13, 6], "texture": "#0"}, + "up": {"uv": [9.75, 13.25, 9.5, 13], "texture": "#0"}, + "down": {"uv": [13.25, 9.5, 13, 9.75], "texture": "#0"} + } + }, + { + "from": [6.75, 5.75, 1.5], + "to": [7.25, 8.75, 2], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8.625, 1.75]}, + "faces": { + "north": {"uv": [12, 1.75, 12.25, 2.5], "texture": "#0"}, + "east": {"uv": [2.25, 12, 2.5, 12.75], "texture": "#0"}, + "south": {"uv": [2.5, 12, 2.75, 12.75], "texture": "#0"}, + "west": {"uv": [12, 2.5, 12.25, 3.25], "texture": "#0"}, + "up": {"uv": [10, 13.25, 9.75, 13], "texture": "#0"}, + "down": {"uv": [13.25, 9.75, 13, 10], "texture": "#0"} + } + }, + { + "from": [7.75, 13.975, 5.125], + "to": [8.25, 14.475, 6.125], + "rotation": {"angle": 0, "axis": "x", "origin": [8, 14.225, 7.25]}, + "faces": { + "north": {"uv": [11, 3.25, 11.25, 3.5], "texture": "#0"}, + "east": {"uv": [12, 4, 12.25, 4.25], "texture": "#0"}, + "south": {"uv": [12.75, 4.5, 13, 4.75], "texture": "#0"}, + "west": {"uv": [5.75, 12.75, 6, 13], "texture": "#0"}, + "up": {"uv": [6.25, 13, 6, 12.75], "texture": "#0"}, + "down": {"uv": [13, 6, 12.75, 6.25], "texture": "#0"} + } + }, + { + "from": [7.25, 13.975, 6.125], + "to": [8.75, 14.475, 10.625], + "rotation": {"angle": 0, "axis": "x", "origin": [8, 14.225, 7.25]}, + "faces": { + "north": {"uv": [11.5, 1.75, 12, 2], "texture": "#0"}, + "east": {"uv": [10.25, 8.75, 11.5, 9], "texture": "#0"}, + "south": {"uv": [11.5, 2.25, 12, 2.5], "texture": "#0"}, + "west": {"uv": [10.75, 2, 12, 2.25], "texture": "#0"}, + "up": {"uv": [2.5, 10.75, 2, 9.5], "texture": "#0"}, + "down": {"uv": [3, 9.5, 2.5, 10.75], "texture": "#0"} + } + }, + { + "from": [8.75, 13.975, 7.125], + "to": [9.25, 14.475, 10.125], + "rotation": {"angle": 0, "axis": "x", "origin": [8, 14.225, 7.25]}, + "faces": { + "north": {"uv": [6.25, 12.75, 6.5, 13], "texture": "#0"}, + "east": {"uv": [11.25, 11, 12, 11.25], "texture": "#0"}, + "south": {"uv": [12.75, 6.25, 13, 6.5], "texture": "#0"}, + "west": {"uv": [0, 11.5, 0.75, 11.75], "texture": "#0"}, + "up": {"uv": [8, 12, 7.75, 11.25], "texture": "#0"}, + "down": {"uv": [11.75, 0, 11.5, 0.75], "texture": "#0"} + } + }, + { + "from": [9.25, 13.975, 8.125], + "to": [9.75, 14.475, 9.625], + "rotation": {"angle": 0, "axis": "x", "origin": [8, 14.225, 7.25]}, + "faces": { + "north": {"uv": [6.5, 12.75, 6.75, 13], "texture": "#0"}, + "east": {"uv": [11.5, 2.5, 12, 2.75], "texture": "#0"}, + "south": {"uv": [12.75, 6.5, 13, 6.75], "texture": "#0"}, + "west": {"uv": [11.5, 4, 12, 4.25], "texture": "#0"}, + "up": {"uv": [3, 12.5, 2.75, 12], "texture": "#0"}, + "down": {"uv": [3.25, 12, 3, 12.5], "texture": "#0"} + } + }, + { + "from": [6.25, 13.975, 8.125], + "to": [6.75, 14.475, 9.625], + "rotation": {"angle": 0, "axis": "x", "origin": [8, 14.225, 7.25]}, + "faces": { + "north": {"uv": [6.75, 12.75, 7, 13], "texture": "#0"}, + "east": {"uv": [11.5, 6.75, 12, 7], "texture": "#0"}, + "south": {"uv": [12.75, 6.75, 13, 7], "texture": "#0"}, + "west": {"uv": [11.5, 8.75, 12, 9], "texture": "#0"}, + "up": {"uv": [3.5, 12.5, 3.25, 12], "texture": "#0"}, + "down": {"uv": [12.25, 3.25, 12, 3.75], "texture": "#0"} + } + }, + { + "from": [6.75, 13.975, 7.125], + "to": [7.25, 14.475, 10.125], + "rotation": {"angle": 0, "axis": "x", "origin": [8, 14.225, 7.25]}, + "faces": { + "north": {"uv": [7, 12.75, 7.25, 13], "texture": "#0"}, + "east": {"uv": [0.75, 11.5, 1.5, 11.75], "texture": "#0"}, + "south": {"uv": [12.75, 7, 13, 7.25], "texture": "#0"}, + "west": {"uv": [11.5, 0.75, 12.25, 1], "texture": "#0"}, + "up": {"uv": [11.75, 1.75, 11.5, 1], "texture": "#0"}, + "down": {"uv": [1.75, 11.5, 1.5, 12.25], "texture": "#0"} + } + } + ], + "groups": [ + { + "name": "ornaments", + "origin": [3, 8, 3], + "color": 0, + "children": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31] + }, + { + "name": "center", + "origin": [8, 8, 8], + "color": 0, + "children": [32, 33, 34] + }, + { + "name": "plates", + "origin": [8, 8, 8], + "color": 0, + "children": [35, 36, 37, 38, 39, 40] + }, + { + "name": "symbol", + "origin": [6, 8, 1], + "color": 0, + "children": [ + { + "name": "side1", + "origin": [1.5, 6.5, 8.25], + "color": 0, + "children": [41, 42, 43, 44, 45, 46] + }, + { + "name": "side2", + "origin": [1.5, 6.5, 8.25], + "color": 0, + "children": [47, 48, 49, 50, 51, 52] + }, + { + "name": "side3", + "origin": [1.5, 6.5, 8.25], + "color": 0, + "children": [53, 54, 55, 56, 57, 58] + }, + { + "name": "side4", + "origin": [1.5, 6.5, 8.25], + "color": 0, + "children": [59, 60, 61, 62, 63, 64] + }, + { + "name": "top", + "origin": [1.5, 6.5, 8.25], + "color": 0, + "children": [65, 66, 67, 68, 69, 70] + } + ] + } + ] +} diff --git a/src/main/resources/assets/utilitiesinexcess/models/blocks/upgrade_silk_touch.json b/src/main/resources/assets/utilitiesinexcess/models/blocks/upgrade_silk_touch.json new file mode 100644 index 00000000..25e0f790 --- /dev/null +++ b/src/main/resources/assets/utilitiesinexcess/models/blocks/upgrade_silk_touch.json @@ -0,0 +1,1122 @@ +{ + "format_version": "1.9.0", + "credit": "Made with Blockbench", + "texture_size": [64, 64], + "textures": { + "0": "utilitiesinexcess:upgrade_silk_touch", + "particle": "utilitiesinexcess:upgrade_silk_touch" + }, + "elements": [ + { + "from": [2, 7, 3], + "to": [4, 9, 4], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 8]}, + "faces": { + "north": {"uv": [7.5, 4, 8, 4.5], "texture": "#0"}, + "east": {"uv": [10, 10.75, 10.25, 11.25], "texture": "#0"}, + "south": {"uv": [7.5, 4.5, 8, 5], "texture": "#0"}, + "west": {"uv": [10.25, 10.75, 10.5, 11.25], "texture": "#0"}, + "up": {"uv": [11.25, 6, 10.75, 5.75], "texture": "#0"}, + "down": {"uv": [11, 10.75, 10.5, 11], "texture": "#0"} + } + }, + { + "from": [3, 7, 2], + "to": [4, 9, 3], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 8]}, + "faces": { + "north": {"uv": [11, 0, 11.25, 0.5], "texture": "#0"}, + "east": {"uv": [11, 2.25, 11.25, 2.75], "texture": "#0"}, + "south": {"uv": [11, 2.75, 11.25, 3.25], "texture": "#0"}, + "west": {"uv": [10.5, 11, 10.75, 11.5], "texture": "#0"}, + "up": {"uv": [11.75, 1, 11.5, 0.75], "texture": "#0"}, + "down": {"uv": [1.75, 12.5, 1.5, 12.75], "texture": "#0"} + } + }, + { + "from": [3, 11, 3], + "to": [4, 13, 4], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 8]}, + "faces": { + "north": {"uv": [10.75, 11, 11, 11.5], "texture": "#0"}, + "east": {"uv": [11, 10.75, 11.25, 11.25], "texture": "#0"}, + "south": {"uv": [11.25, 0, 11.5, 0.5], "texture": "#0"}, + "west": {"uv": [11.25, 2.25, 11.5, 2.75], "texture": "#0"}, + "up": {"uv": [12.75, 6.75, 12.5, 6.5], "texture": "#0"}, + "down": {"uv": [12.75, 6.75, 12.5, 7], "texture": "#0"} + } + }, + { + "from": [3, 3, 3], + "to": [4, 5, 4], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 8]}, + "faces": { + "north": {"uv": [11.25, 2.75, 11.5, 3.25], "texture": "#0"}, + "east": {"uv": [11.25, 5.25, 11.5, 5.75], "texture": "#0"}, + "south": {"uv": [6.25, 11.25, 6.5, 11.75], "texture": "#0"}, + "west": {"uv": [6.5, 11.25, 6.75, 11.75], "texture": "#0"}, + "up": {"uv": [7.25, 12.75, 7, 12.5], "texture": "#0"}, + "down": {"uv": [12.75, 7, 12.5, 7.25], "texture": "#0"} + } + }, + { + "from": [3, 7, 12], + "to": [4, 9, 14], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 8]}, + "faces": { + "north": {"uv": [6.75, 11.25, 7, 11.75], "texture": "#0"}, + "east": {"uv": [10.25, 4.5, 10.75, 5], "texture": "#0"}, + "south": {"uv": [7, 11.25, 7.25, 11.75], "texture": "#0"}, + "west": {"uv": [10.25, 5, 10.75, 5.5], "texture": "#0"}, + "up": {"uv": [11.5, 7.75, 11.25, 7.25], "texture": "#0"}, + "down": {"uv": [11.5, 7.75, 11.25, 8.25], "texture": "#0"} + } + }, + { + "from": [2, 7, 12], + "to": [3, 9, 13], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 8]}, + "faces": { + "north": {"uv": [11.25, 8.25, 11.5, 8.75], "texture": "#0"}, + "east": {"uv": [8.5, 11.25, 8.75, 11.75], "texture": "#0"}, + "south": {"uv": [8.75, 11.25, 9, 11.75], "texture": "#0"}, + "west": {"uv": [11.25, 8.75, 11.5, 9.25], "texture": "#0"}, + "up": {"uv": [7.5, 12.75, 7.25, 12.5], "texture": "#0"}, + "down": {"uv": [12.75, 7.25, 12.5, 7.5], "texture": "#0"} + } + }, + { + "from": [3, 11, 12], + "to": [4, 13, 13], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 8]}, + "faces": { + "north": {"uv": [9, 11.25, 9.25, 11.75], "texture": "#0"}, + "east": {"uv": [9.25, 11.25, 9.5, 11.75], "texture": "#0"}, + "south": {"uv": [9.5, 11.25, 9.75, 11.75], "texture": "#0"}, + "west": {"uv": [9.75, 11.25, 10, 11.75], "texture": "#0"}, + "up": {"uv": [7.75, 12.75, 7.5, 12.5], "texture": "#0"}, + "down": {"uv": [12.75, 7.5, 12.5, 7.75], "texture": "#0"} + } + }, + { + "from": [3, 3, 12], + "to": [4, 5, 13], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 8]}, + "faces": { + "north": {"uv": [10, 11.25, 10.25, 11.75], "texture": "#0"}, + "east": {"uv": [10.25, 11.25, 10.5, 11.75], "texture": "#0"}, + "south": {"uv": [11.25, 10.75, 11.5, 11.25], "texture": "#0"}, + "west": {"uv": [11, 11.25, 11.25, 11.75], "texture": "#0"}, + "up": {"uv": [8, 12.75, 7.75, 12.5], "texture": "#0"}, + "down": {"uv": [12.75, 7.75, 12.5, 8], "texture": "#0"} + } + }, + { + "from": [12, 7, 12], + "to": [14, 9, 13], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 8]}, + "faces": { + "north": {"uv": [10.25, 5.5, 10.75, 6], "texture": "#0"}, + "east": {"uv": [11.25, 11.25, 11.5, 11.75], "texture": "#0"}, + "south": {"uv": [6.25, 10.25, 6.75, 10.75], "texture": "#0"}, + "west": {"uv": [0, 11.5, 0.25, 12], "texture": "#0"}, + "up": {"uv": [11.75, 6, 11.25, 5.75], "texture": "#0"}, + "down": {"uv": [12, 0, 11.5, 0.25], "texture": "#0"} + } + }, + { + "from": [12, 7, 13], + "to": [13, 9, 14], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 8]}, + "faces": { + "north": {"uv": [0.25, 11.5, 0.5, 12], "texture": "#0"}, + "east": {"uv": [11.5, 0.25, 11.75, 0.75], "texture": "#0"}, + "south": {"uv": [0.5, 11.5, 0.75, 12], "texture": "#0"}, + "west": {"uv": [0.75, 11.5, 1, 12], "texture": "#0"}, + "up": {"uv": [12.75, 8.25, 12.5, 8], "texture": "#0"}, + "down": {"uv": [8.5, 12.5, 8.25, 12.75], "texture": "#0"} + } + }, + { + "from": [12, 11, 12], + "to": [13, 13, 13], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 8]}, + "faces": { + "north": {"uv": [1, 11.5, 1.25, 12], "texture": "#0"}, + "east": {"uv": [1.25, 11.5, 1.5, 12], "texture": "#0"}, + "south": {"uv": [1.5, 11.5, 1.75, 12], "texture": "#0"}, + "west": {"uv": [1.75, 11.5, 2, 12], "texture": "#0"}, + "up": {"uv": [12.75, 8.5, 12.5, 8.25], "texture": "#0"}, + "down": {"uv": [12.75, 8.5, 12.5, 8.75], "texture": "#0"} + } + }, + { + "from": [12, 3, 12], + "to": [13, 5, 13], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 8]}, + "faces": { + "north": {"uv": [11.5, 2.25, 11.75, 2.75], "texture": "#0"}, + "east": {"uv": [11.5, 2.75, 11.75, 3.25], "texture": "#0"}, + "south": {"uv": [3, 11.5, 3.25, 12], "texture": "#0"}, + "west": {"uv": [3.25, 11.5, 3.5, 12], "texture": "#0"}, + "up": {"uv": [9, 12.75, 8.75, 12.5], "texture": "#0"}, + "down": {"uv": [12.75, 8.75, 12.5, 9], "texture": "#0"} + } + }, + { + "from": [12, 7, 2], + "to": [13, 9, 4], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 8]}, + "faces": { + "north": {"uv": [3.5, 11.5, 3.75, 12], "texture": "#0"}, + "east": {"uv": [6.75, 10.25, 7.25, 10.75], "texture": "#0"}, + "south": {"uv": [3.75, 11.5, 4, 12], "texture": "#0"}, + "west": {"uv": [10.25, 7.25, 10.75, 7.75], "texture": "#0"}, + "up": {"uv": [11.75, 5.75, 11.5, 5.25], "texture": "#0"}, + "down": {"uv": [11.75, 7.25, 11.5, 7.75], "texture": "#0"} + } + }, + { + "from": [13, 7, 3], + "to": [14, 9, 4], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 8]}, + "faces": { + "north": {"uv": [11.5, 7.75, 11.75, 8.25], "texture": "#0"}, + "east": {"uv": [11.5, 8.25, 11.75, 8.75], "texture": "#0"}, + "south": {"uv": [11.5, 8.75, 11.75, 9.25], "texture": "#0"}, + "west": {"uv": [11.5, 10, 11.75, 10.5], "texture": "#0"}, + "up": {"uv": [12.75, 9.25, 12.5, 9], "texture": "#0"}, + "down": {"uv": [12.75, 9.25, 12.5, 9.5], "texture": "#0"} + } + }, + { + "from": [12, 11, 3], + "to": [13, 13, 4], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 8]}, + "faces": { + "north": {"uv": [10.5, 11.5, 10.75, 12], "texture": "#0"}, + "east": {"uv": [11.5, 10.5, 11.75, 11], "texture": "#0"}, + "south": {"uv": [10.75, 11.5, 11, 12], "texture": "#0"}, + "west": {"uv": [11.5, 11, 11.75, 11.5], "texture": "#0"}, + "up": {"uv": [12.75, 9.75, 12.5, 9.5], "texture": "#0"}, + "down": {"uv": [12.75, 9.75, 12.5, 10], "texture": "#0"} + } + }, + { + "from": [12, 3, 3], + "to": [13, 5, 4], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 8]}, + "faces": { + "north": {"uv": [11.5, 11.5, 11.75, 12], "texture": "#0"}, + "east": {"uv": [11.75, 0.25, 12, 0.75], "texture": "#0"}, + "south": {"uv": [11.75, 0.75, 12, 1.25], "texture": "#0"}, + "west": {"uv": [11.75, 1.25, 12, 1.75], "texture": "#0"}, + "up": {"uv": [10.25, 12.75, 10, 12.5], "texture": "#0"}, + "down": {"uv": [10.5, 12.5, 10.25, 12.75], "texture": "#0"} + } + }, + { + "from": [7, 12, 2], + "to": [9, 14, 3], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 8]}, + "faces": { + "north": {"uv": [10.25, 7.75, 10.75, 8.25], "texture": "#0"}, + "east": {"uv": [11.75, 1.75, 12, 2.25], "texture": "#0"}, + "south": {"uv": [10.25, 8.25, 10.75, 8.75], "texture": "#0"}, + "west": {"uv": [11.75, 2.25, 12, 2.75], "texture": "#0"}, + "up": {"uv": [12.25, 3, 11.75, 2.75], "texture": "#0"}, + "down": {"uv": [12.25, 3, 11.75, 3.25], "texture": "#0"} + } + }, + { + "from": [7, 13, 3], + "to": [9, 14, 4], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 8]}, + "faces": { + "north": {"uv": [11.75, 3.25, 12.25, 3.5], "texture": "#0"}, + "east": {"uv": [12.5, 10.25, 12.75, 10.5], "texture": "#0"}, + "south": {"uv": [11.75, 3.5, 12.25, 3.75], "texture": "#0"}, + "west": {"uv": [10.5, 12.5, 10.75, 12.75], "texture": "#0"}, + "up": {"uv": [12.25, 4, 11.75, 3.75], "texture": "#0"}, + "down": {"uv": [12.25, 4.5, 11.75, 4.75], "texture": "#0"} + } + }, + { + "from": [13, 12, 7], + "to": [14, 14, 9], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 8]}, + "faces": { + "north": {"uv": [11.75, 4.75, 12, 5.25], "texture": "#0"}, + "east": {"uv": [8.5, 10.25, 9, 10.75], "texture": "#0"}, + "south": {"uv": [11.75, 5.25, 12, 5.75], "texture": "#0"}, + "west": {"uv": [10.25, 8.75, 10.75, 9.25], "texture": "#0"}, + "up": {"uv": [6.5, 12.25, 6.25, 11.75], "texture": "#0"}, + "down": {"uv": [6.75, 11.75, 6.5, 12.25], "texture": "#0"} + } + }, + { + "from": [12, 13, 7], + "to": [13, 14, 9], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 8]}, + "faces": { + "north": {"uv": [12.5, 10.5, 12.75, 10.75], "texture": "#0"}, + "east": {"uv": [11.75, 5.75, 12.25, 6], "texture": "#0"}, + "south": {"uv": [12.5, 10.75, 12.75, 11], "texture": "#0"}, + "west": {"uv": [6.75, 11.75, 7.25, 12], "texture": "#0"}, + "up": {"uv": [12, 7.75, 11.75, 7.25], "texture": "#0"}, + "down": {"uv": [12, 7.75, 11.75, 8.25], "texture": "#0"} + } + }, + { + "from": [7, 12, 13], + "to": [9, 14, 14], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 8]}, + "faces": { + "north": {"uv": [9, 10.25, 9.5, 10.75], "texture": "#0"}, + "east": {"uv": [11.75, 8.25, 12, 8.75], "texture": "#0"}, + "south": {"uv": [9.5, 10.25, 10, 10.75], "texture": "#0"}, + "west": {"uv": [8.5, 11.75, 8.75, 12.25], "texture": "#0"}, + "up": {"uv": [9.25, 12, 8.75, 11.75], "texture": "#0"}, + "down": {"uv": [12.25, 8.75, 11.75, 9], "texture": "#0"} + } + }, + { + "from": [7, 13, 12], + "to": [9, 14, 13], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 8]}, + "faces": { + "north": {"uv": [11.75, 9, 12.25, 9.25], "texture": "#0"}, + "east": {"uv": [11, 12.5, 11.25, 12.75], "texture": "#0"}, + "south": {"uv": [9.25, 11.75, 9.75, 12], "texture": "#0"}, + "west": {"uv": [12.5, 11, 12.75, 11.25], "texture": "#0"}, + "up": {"uv": [10.25, 12, 9.75, 11.75], "texture": "#0"}, + "down": {"uv": [12.25, 10, 11.75, 10.25], "texture": "#0"} + } + }, + { + "from": [2, 12, 7], + "to": [3, 14, 9], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 8]}, + "faces": { + "north": {"uv": [10.25, 11.75, 10.5, 12.25], "texture": "#0"}, + "east": {"uv": [10, 10.25, 10.5, 10.75], "texture": "#0"}, + "south": {"uv": [11.75, 10.25, 12, 10.75], "texture": "#0"}, + "west": {"uv": [10.5, 0, 11, 0.5], "texture": "#0"}, + "up": {"uv": [12, 11.25, 11.75, 10.75], "texture": "#0"}, + "down": {"uv": [11.25, 11.75, 11, 12.25], "texture": "#0"} + } + }, + { + "from": [3, 13, 7], + "to": [4, 14, 9], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 8]}, + "faces": { + "north": {"uv": [11.25, 12.5, 11.5, 12.75], "texture": "#0"}, + "east": {"uv": [11.75, 11.25, 12.25, 11.5], "texture": "#0"}, + "south": {"uv": [11.5, 12.5, 11.75, 12.75], "texture": "#0"}, + "west": {"uv": [11.75, 11.5, 12.25, 11.75], "texture": "#0"}, + "up": {"uv": [11.5, 12.25, 11.25, 11.75], "texture": "#0"}, + "down": {"uv": [12, 11.75, 11.75, 12.25], "texture": "#0"} + } + }, + { + "from": [3, 2, 6], + "to": [4, 3, 10], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 8]}, + "faces": { + "north": {"uv": [12.5, 11.75, 12.75, 12], "texture": "#0"}, + "east": {"uv": [10.5, 0.5, 11.5, 0.75], "texture": "#0"}, + "south": {"uv": [12.5, 12, 12.75, 12.25], "texture": "#0"}, + "west": {"uv": [10.5, 0.75, 11.5, 1], "texture": "#0"}, + "up": {"uv": [10.75, 2, 10.5, 1], "texture": "#0"}, + "down": {"uv": [10.75, 2, 10.5, 3], "texture": "#0"} + } + }, + { + "from": [2, 2, 6], + "to": [3, 4, 10], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 8]}, + "faces": { + "north": {"uv": [0, 12, 0.25, 12.5], "texture": "#0"}, + "east": {"uv": [6.5, 4, 7.5, 4.5], "texture": "#0"}, + "south": {"uv": [12, 0, 12.25, 0.5], "texture": "#0"}, + "west": {"uv": [6.5, 4.5, 7.5, 5], "texture": "#0"}, + "up": {"uv": [3.25, 11.5, 3, 10.5], "texture": "#0"}, + "down": {"uv": [10.75, 3, 10.5, 4], "texture": "#0"} + } + }, + { + "from": [6, 2, 12], + "to": [10, 3, 13], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 8]}, + "faces": { + "north": {"uv": [10.5, 10, 11.5, 10.25], "texture": "#0"}, + "east": {"uv": [12.25, 12.5, 12.5, 12.75], "texture": "#0"}, + "south": {"uv": [10.5, 10.25, 11.5, 10.5], "texture": "#0"}, + "west": {"uv": [12.5, 12.5, 12.75, 12.75], "texture": "#0"}, + "up": {"uv": [11.5, 10.75, 10.5, 10.5], "texture": "#0"}, + "down": {"uv": [11.75, 1, 10.75, 1.25], "texture": "#0"} + } + }, + { + "from": [6, 2, 13], + "to": [10, 4, 14], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 8]}, + "faces": { + "north": {"uv": [3, 9.5, 4, 10], "texture": "#0"}, + "east": {"uv": [0.25, 12, 0.5, 12.5], "texture": "#0"}, + "south": {"uv": [4, 9.5, 5, 10], "texture": "#0"}, + "west": {"uv": [0.5, 12, 0.75, 12.5], "texture": "#0"}, + "up": {"uv": [11.75, 1.5, 10.75, 1.25], "texture": "#0"}, + "down": {"uv": [11.75, 1.5, 10.75, 1.75], "texture": "#0"} + } + }, + { + "from": [12, 2, 6], + "to": [13, 3, 10], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 8]}, + "faces": { + "north": {"uv": [12.75, 0, 13, 0.25], "texture": "#0"}, + "east": {"uv": [10.75, 1.75, 11.75, 2], "texture": "#0"}, + "south": {"uv": [12.75, 0.25, 13, 0.5], "texture": "#0"}, + "west": {"uv": [10.75, 2, 11.75, 2.25], "texture": "#0"}, + "up": {"uv": [3.5, 11.5, 3.25, 10.5], "texture": "#0"}, + "down": {"uv": [3.75, 10.5, 3.5, 11.5], "texture": "#0"} + } + }, + { + "from": [13, 2, 6], + "to": [14, 4, 10], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 8]}, + "faces": { + "north": {"uv": [12, 0.5, 12.25, 1], "texture": "#0"}, + "east": {"uv": [5, 9.5, 6, 10], "texture": "#0"}, + "south": {"uv": [0.75, 12, 1, 12.5], "texture": "#0"}, + "west": {"uv": [6, 9.5, 7, 10], "texture": "#0"}, + "up": {"uv": [4, 11.5, 3.75, 10.5], "texture": "#0"}, + "down": {"uv": [11, 2.25, 10.75, 3.25], "texture": "#0"} + } + }, + { + "from": [6, 2, 3], + "to": [10, 3, 4], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 8]}, + "faces": { + "north": {"uv": [10.75, 3.25, 11.75, 3.5], "texture": "#0"}, + "east": {"uv": [0.5, 12.75, 0.75, 13], "texture": "#0"}, + "south": {"uv": [10.75, 3.5, 11.75, 3.75], "texture": "#0"}, + "west": {"uv": [12.75, 0.5, 13, 0.75], "texture": "#0"}, + "up": {"uv": [11.75, 4, 10.75, 3.75], "texture": "#0"}, + "down": {"uv": [11.75, 4.5, 10.75, 4.75], "texture": "#0"} + } + }, + { + "from": [6, 2, 2], + "to": [10, 4, 3], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 8]}, + "faces": { + "north": {"uv": [7, 9.5, 8, 10], "texture": "#0"}, + "east": {"uv": [1, 12, 1.25, 12.5], "texture": "#0"}, + "south": {"uv": [3, 10, 4, 10.5], "texture": "#0"}, + "west": {"uv": [12, 1, 12.25, 1.5], "texture": "#0"}, + "up": {"uv": [11.75, 5, 10.75, 4.75], "texture": "#0"}, + "down": {"uv": [11.75, 5, 10.75, 5.25], "texture": "#0"} + } + }, + { + "from": [12, 3, 4], + "to": [13, 13, 12], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 8]}, + "faces": { + "north": {"uv": [2, 9.5, 2.25, 12], "texture": "#0"}, + "east": {"uv": [2.5, 0, 4.5, 2.5], "texture": "#0"}, + "south": {"uv": [2.25, 9.5, 2.5, 12], "texture": "#0"}, + "west": {"uv": [2.5, 2.5, 4.5, 5], "texture": "#0"}, + "up": {"uv": [4.25, 12, 4, 10], "texture": "#0"}, + "down": {"uv": [10.25, 4, 10, 6], "texture": "#0"} + } + }, + { + "from": [3, 3, 4], + "to": [4, 13, 12], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 8]}, + "faces": { + "north": {"uv": [2.5, 9.5, 2.75, 12], "texture": "#0"}, + "east": {"uv": [4.5, 0, 6.5, 2.5], "texture": "#0"}, + "south": {"uv": [2.75, 9.5, 3, 12], "texture": "#0"}, + "west": {"uv": [4.5, 2.5, 6.5, 5], "texture": "#0"}, + "up": {"uv": [4.5, 12, 4.25, 10], "texture": "#0"}, + "down": {"uv": [4.75, 10, 4.5, 12], "texture": "#0"} + } + }, + { + "name": "base", + "from": [4, 3, 3], + "to": [12, 13, 13], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 8]}, + "faces": { + "north": {"uv": [0, 5, 2, 7.5], "texture": "#0"}, + "east": {"uv": [0, 0, 2.5, 2.5], "texture": "#0"}, + "south": {"uv": [2, 5, 4, 7.5], "texture": "#0"}, + "west": {"uv": [0, 2.5, 2.5, 5], "texture": "#0"}, + "up": {"uv": [6, 7.5, 4, 5], "texture": "#0"}, + "down": {"uv": [8, 5, 6, 7.5], "texture": "#0"} + } + }, + { + "from": [4, 4, 13], + "to": [12, 12, 14], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 8]}, + "faces": { + "north": {"uv": [6.5, 0, 8.5, 2], "texture": "#0"}, + "east": {"uv": [4.75, 10, 5, 12], "texture": "#0"}, + "south": {"uv": [6.5, 2, 8.5, 4], "texture": "#0"}, + "west": {"uv": [5, 10, 5.25, 12], "texture": "#0"}, + "up": {"uv": [7.25, 10.25, 5.25, 10], "texture": "#0"}, + "down": {"uv": [12, 6, 10, 6.25], "texture": "#0"} + } + }, + { + "from": [4, 13, 4], + "to": [12, 14, 12], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 8]}, + "faces": { + "north": {"uv": [10, 6.25, 12, 6.5], "texture": "#0"}, + "east": {"uv": [10, 6.5, 12, 6.75], "texture": "#0"}, + "south": {"uv": [10, 6.75, 12, 7], "texture": "#0"}, + "west": {"uv": [10, 7, 12, 7.25], "texture": "#0"}, + "up": {"uv": [2, 9.5, 0, 7.5], "texture": "#0"}, + "down": {"uv": [4, 7.5, 2, 9.5], "texture": "#0"} + } + }, + { + "from": [13, 4, 4], + "to": [14, 12, 12], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 8]}, + "faces": { + "north": {"uv": [7.25, 10, 7.5, 12], "texture": "#0"}, + "east": {"uv": [4, 7.5, 6, 9.5], "texture": "#0"}, + "south": {"uv": [10, 7.25, 10.25, 9.25], "texture": "#0"}, + "west": {"uv": [6, 7.5, 8, 9.5], "texture": "#0"}, + "up": {"uv": [7.75, 12, 7.5, 10], "texture": "#0"}, + "down": {"uv": [8, 10, 7.75, 12], "texture": "#0"} + } + }, + { + "from": [4, 4, 2], + "to": [12, 12, 3], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 8]}, + "faces": { + "north": {"uv": [8, 4, 10, 6], "texture": "#0"}, + "east": {"uv": [8, 10, 8.25, 12], "texture": "#0"}, + "south": {"uv": [8, 6, 10, 8], "texture": "#0"}, + "west": {"uv": [8.25, 10, 8.5, 12], "texture": "#0"}, + "up": {"uv": [10.5, 10.25, 8.5, 10], "texture": "#0"}, + "down": {"uv": [12, 9.25, 10, 9.5], "texture": "#0"} + } + }, + { + "from": [4, 2, 4], + "to": [12, 3, 12], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 8]}, + "faces": { + "north": {"uv": [10, 9.5, 12, 9.75], "texture": "#0"}, + "east": {"uv": [10, 9.75, 12, 10], "texture": "#0"}, + "south": {"uv": [10.25, 4, 12.25, 4.25], "texture": "#0"}, + "west": {"uv": [10.25, 4.25, 12.25, 4.5], "texture": "#0"}, + "up": {"uv": [10, 10, 8, 8], "texture": "#0"}, + "down": {"uv": [10.5, 0, 8.5, 2], "texture": "#0"} + } + }, + { + "from": [2, 4, 4], + "to": [3, 12, 12], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 8]}, + "faces": { + "north": {"uv": [5.25, 10.25, 5.5, 12.25], "texture": "#0"}, + "east": {"uv": [8.5, 2, 10.5, 4], "texture": "#0"}, + "south": {"uv": [5.5, 10.25, 5.75, 12.25], "texture": "#0"}, + "west": {"uv": [0, 9.5, 2, 11.5], "texture": "#0"}, + "up": {"uv": [6, 12.25, 5.75, 10.25], "texture": "#0"}, + "down": {"uv": [6.25, 10.25, 6, 12.25], "texture": "#0"} + } + }, + { + "from": [5.25, 9.75, 1], + "to": [7.25, 10.75, 2], + "rotation": {"angle": 0, "axis": "z", "origin": [7.87374, 8.14142, 1.5]}, + "faces": { + "north": {"uv": [1.25, 12, 1.75, 12.25], "texture": "#0"}, + "east": {"uv": [0.75, 12.75, 1, 13], "texture": "#0"}, + "south": {"uv": [12, 1.5, 12.5, 1.75], "texture": "#0"}, + "west": {"uv": [12.75, 0.75, 13, 1], "texture": "#0"}, + "up": {"uv": [2.25, 12.25, 1.75, 12], "texture": "#0"}, + "down": {"uv": [12.5, 1.75, 12, 2], "texture": "#0"} + } + }, + { + "from": [5.25, 8.75, 1], + "to": [6.25, 9.75, 2], + "rotation": {"angle": 0, "axis": "y", "origin": [7.87374, 8.14142, 1.5]}, + "faces": { + "north": {"uv": [1, 12.75, 1.25, 13], "texture": "#0"}, + "east": {"uv": [12.75, 1, 13, 1.25], "texture": "#0"}, + "south": {"uv": [1.25, 12.75, 1.5, 13], "texture": "#0"}, + "west": {"uv": [12.75, 1.25, 13, 1.5], "texture": "#0"}, + "up": {"uv": [1.75, 13, 1.5, 12.75], "texture": "#0"}, + "down": {"uv": [2, 12.75, 1.75, 13], "texture": "#0"} + } + }, + { + "from": [6.25, 7.75, 1], + "to": [7.25, 8.75, 2], + "rotation": {"angle": 0, "axis": "y", "origin": [7.87374, 8.14142, 1.5]}, + "faces": { + "north": {"uv": [2, 12.75, 2.25, 13], "texture": "#0"}, + "east": {"uv": [2.25, 12.75, 2.5, 13], "texture": "#0"}, + "south": {"uv": [2.5, 12.75, 2.75, 13], "texture": "#0"}, + "west": {"uv": [2.75, 12.75, 3, 13], "texture": "#0"}, + "up": {"uv": [3.25, 13, 3, 12.75], "texture": "#0"}, + "down": {"uv": [3.5, 12.75, 3.25, 13], "texture": "#0"} + } + }, + { + "from": [6.25, 8.75, 1], + "to": [8.25, 9.75, 2], + "rotation": {"angle": 0, "axis": "y", "origin": [7.87374, 8.14142, 1.5]}, + "faces": { + "north": {"uv": [12, 2, 12.5, 2.25], "texture": "#0"}, + "east": {"uv": [12.75, 3.25, 13, 3.5], "texture": "#0"}, + "south": {"uv": [2.25, 12, 2.75, 12.25], "texture": "#0"}, + "west": {"uv": [3.5, 12.75, 3.75, 13], "texture": "#0"}, + "up": {"uv": [12.5, 2.5, 12, 2.25], "texture": "#0"}, + "down": {"uv": [12.5, 2.5, 12, 2.75], "texture": "#0"} + } + }, + { + "from": [7.25, 6.75, 1], + "to": [9.25, 8.75, 2], + "rotation": {"angle": 0, "axis": "y", "origin": [7.87374, 8.14142, 1.5]}, + "faces": { + "north": {"uv": [10.75, 5.25, 11.25, 5.75], "texture": "#0"}, + "east": {"uv": [2.75, 12, 3, 12.5], "texture": "#0"}, + "south": {"uv": [6.25, 10.75, 6.75, 11.25], "texture": "#0"}, + "west": {"uv": [3, 12, 3.25, 12.5], "texture": "#0"}, + "up": {"uv": [3.75, 12.25, 3.25, 12], "texture": "#0"}, + "down": {"uv": [4.25, 12, 3.75, 12.25], "texture": "#0"} + } + }, + { + "from": [9.53789, 8.3307, 1], + "to": [11.53789, 8.6307, 2], + "rotation": {"angle": -45, "axis": "z", "origin": [7.87374, 8.14142, 1.5]}, + "faces": { + "north": {"uv": [4.25, 12, 4.75, 12.25], "texture": "#0"}, + "east": {"uv": [3.75, 12.75, 4, 13], "texture": "#0"}, + "south": {"uv": [4.75, 12, 5.25, 12.25], "texture": "#0"}, + "west": {"uv": [4, 12.75, 4.25, 13], "texture": "#0"}, + "up": {"uv": [12.5, 5, 12, 4.75], "texture": "#0"}, + "down": {"uv": [12.5, 5, 12, 5.25], "texture": "#0"} + } + }, + { + "from": [9.67932, 7.96764, 1], + "to": [11.53732, 8.33264, 2], + "rotation": {"angle": -45, "axis": "z", "origin": [7.87374, 8.14142, 1.5]}, + "faces": { + "north": {"uv": [12, 5.25, 12.5, 5.5], "texture": "#0"}, + "east": {"uv": [12.75, 4, 13, 4.25], "texture": "#0"}, + "south": {"uv": [12, 5.5, 12.5, 5.75], "texture": "#0"}, + "west": {"uv": [4.25, 12.75, 4.5, 13], "texture": "#0"}, + "up": {"uv": [12.5, 6.25, 12, 6], "texture": "#0"}, + "down": {"uv": [12.5, 6.25, 12, 6.5], "texture": "#0"} + } + }, + { + "from": [9.53789, 7.67359, 1], + "to": [11.53789, 7.97359, 2], + "rotation": {"angle": -45, "axis": "z", "origin": [7.87374, 8.14142, 1.5]}, + "faces": { + "north": {"uv": [12, 6.5, 12.5, 6.75], "texture": "#0"}, + "east": {"uv": [4.5, 12.75, 4.75, 13], "texture": "#0"}, + "south": {"uv": [6.75, 12, 7.25, 12.25], "texture": "#0"}, + "west": {"uv": [4.75, 12.75, 5, 13], "texture": "#0"}, + "up": {"uv": [12.5, 7, 12, 6.75], "texture": "#0"}, + "down": {"uv": [12.5, 7, 12, 7.25], "texture": "#0"} + } + }, + { + "from": [5.25, 9.75, 14], + "to": [7.25, 10.75, 15], + "rotation": {"angle": 0, "axis": "y", "origin": [7.87374, 8.14142, 14.5]}, + "faces": { + "north": {"uv": [7.25, 12, 7.75, 12.25], "texture": "#0"}, + "east": {"uv": [5, 12.75, 5.25, 13], "texture": "#0"}, + "south": {"uv": [12, 7.25, 12.5, 7.5], "texture": "#0"}, + "west": {"uv": [5.25, 12.75, 5.5, 13], "texture": "#0"}, + "up": {"uv": [12.5, 7.75, 12, 7.5], "texture": "#0"}, + "down": {"uv": [8.25, 12, 7.75, 12.25], "texture": "#0"} + } + }, + { + "from": [5.25, 8.75, 14], + "to": [6.25, 9.75, 15], + "rotation": {"angle": 0, "axis": "y", "origin": [7.87374, 8.14142, 14.5]}, + "faces": { + "north": {"uv": [5.5, 12.75, 5.75, 13], "texture": "#0"}, + "east": {"uv": [5.75, 12.75, 6, 13], "texture": "#0"}, + "south": {"uv": [12.75, 5.75, 13, 6], "texture": "#0"}, + "west": {"uv": [6, 12.75, 6.25, 13], "texture": "#0"}, + "up": {"uv": [6.5, 13, 6.25, 12.75], "texture": "#0"}, + "down": {"uv": [6.75, 12.75, 6.5, 13], "texture": "#0"} + } + }, + { + "from": [6.25, 7.75, 14], + "to": [7.25, 8.75, 15], + "rotation": {"angle": 0, "axis": "y", "origin": [7.87374, 8.14142, 14.5]}, + "faces": { + "north": {"uv": [12.75, 6.5, 13, 6.75], "texture": "#0"}, + "east": {"uv": [6.75, 12.75, 7, 13], "texture": "#0"}, + "south": {"uv": [12.75, 6.75, 13, 7], "texture": "#0"}, + "west": {"uv": [7, 12.75, 7.25, 13], "texture": "#0"}, + "up": {"uv": [13, 7.25, 12.75, 7], "texture": "#0"}, + "down": {"uv": [7.5, 12.75, 7.25, 13], "texture": "#0"} + } + }, + { + "from": [6.25, 8.75, 14], + "to": [8.25, 9.75, 15], + "rotation": {"angle": 0, "axis": "y", "origin": [7.87374, 8.14142, 14.5]}, + "faces": { + "north": {"uv": [12, 7.75, 12.5, 8], "texture": "#0"}, + "east": {"uv": [12.75, 7.25, 13, 7.5], "texture": "#0"}, + "south": {"uv": [12, 8, 12.5, 8.25], "texture": "#0"}, + "west": {"uv": [7.5, 12.75, 7.75, 13], "texture": "#0"}, + "up": {"uv": [12.5, 8.5, 12, 8.25], "texture": "#0"}, + "down": {"uv": [12.5, 8.5, 12, 8.75], "texture": "#0"} + } + }, + { + "from": [7.25, 6.75, 14], + "to": [9.25, 8.75, 15], + "rotation": {"angle": 0, "axis": "y", "origin": [7.87374, 8.14142, 14.5]}, + "faces": { + "north": {"uv": [6.75, 10.75, 7.25, 11.25], "texture": "#0"}, + "east": {"uv": [8.25, 12, 8.5, 12.5], "texture": "#0"}, + "south": {"uv": [10.75, 7.25, 11.25, 7.75], "texture": "#0"}, + "west": {"uv": [8.75, 12, 9, 12.5], "texture": "#0"}, + "up": {"uv": [9.5, 12.25, 9, 12], "texture": "#0"}, + "down": {"uv": [12.5, 9.25, 12, 9.5], "texture": "#0"} + } + }, + { + "from": [9.53789, 8.3307, 14], + "to": [11.53789, 8.6307, 15], + "rotation": {"angle": -45, "axis": "z", "origin": [7.87374, 8.14142, 14.5]}, + "faces": { + "north": {"uv": [9.5, 12, 10, 12.25], "texture": "#0"}, + "east": {"uv": [12.75, 7.5, 13, 7.75], "texture": "#0"}, + "south": {"uv": [12, 9.5, 12.5, 9.75], "texture": "#0"}, + "west": {"uv": [7.75, 12.75, 8, 13], "texture": "#0"}, + "up": {"uv": [12.5, 10, 12, 9.75], "texture": "#0"}, + "down": {"uv": [12.5, 10.25, 12, 10.5], "texture": "#0"} + } + }, + { + "from": [9.67932, 7.96764, 14], + "to": [11.53732, 8.33264, 15], + "rotation": {"angle": -45, "axis": "z", "origin": [7.87374, 8.14142, 14.5]}, + "faces": { + "north": {"uv": [10.5, 12, 11, 12.25], "texture": "#0"}, + "east": {"uv": [12.75, 7.75, 13, 8], "texture": "#0"}, + "south": {"uv": [12, 10.5, 12.5, 10.75], "texture": "#0"}, + "west": {"uv": [8, 12.75, 8.25, 13], "texture": "#0"}, + "up": {"uv": [12.5, 11, 12, 10.75], "texture": "#0"}, + "down": {"uv": [12.5, 11, 12, 11.25], "texture": "#0"} + } + }, + { + "from": [9.53789, 7.67359, 14], + "to": [11.53789, 7.97359, 15], + "rotation": {"angle": -45, "axis": "z", "origin": [7.87374, 8.14142, 14.5]}, + "faces": { + "north": {"uv": [12, 11.75, 12.5, 12], "texture": "#0"}, + "east": {"uv": [12.75, 8, 13, 8.25], "texture": "#0"}, + "south": {"uv": [12, 12, 12.5, 12.25], "texture": "#0"}, + "west": {"uv": [8.25, 12.75, 8.5, 13], "texture": "#0"}, + "up": {"uv": [12.75, 0.25, 12.25, 0], "texture": "#0"}, + "down": {"uv": [12.75, 0.25, 12.25, 0.5], "texture": "#0"} + } + }, + { + "from": [13.97374, 9.75, 8.62374], + "to": [14.97374, 10.75, 10.62374], + "rotation": {"angle": 0, "axis": "y", "origin": [14.47374, 8.14142, 8]}, + "faces": { + "north": {"uv": [12.75, 8.25, 13, 8.5], "texture": "#0"}, + "east": {"uv": [12.25, 0.5, 12.75, 0.75], "texture": "#0"}, + "south": {"uv": [8.5, 12.75, 8.75, 13], "texture": "#0"}, + "west": {"uv": [12.25, 0.75, 12.75, 1], "texture": "#0"}, + "up": {"uv": [10.25, 12.5, 10, 12], "texture": "#0"}, + "down": {"uv": [11.75, 12, 11.5, 12.5], "texture": "#0"} + } + }, + { + "from": [13.97374, 8.75, 9.62374], + "to": [14.97374, 9.75, 10.62374], + "rotation": {"angle": 0, "axis": "y", "origin": [14.47374, 8.14142, 8]}, + "faces": { + "north": {"uv": [12.75, 8.5, 13, 8.75], "texture": "#0"}, + "east": {"uv": [8.75, 12.75, 9, 13], "texture": "#0"}, + "south": {"uv": [12.75, 8.75, 13, 9], "texture": "#0"}, + "west": {"uv": [9, 12.75, 9.25, 13], "texture": "#0"}, + "up": {"uv": [13, 9.25, 12.75, 9], "texture": "#0"}, + "down": {"uv": [9.5, 12.75, 9.25, 13], "texture": "#0"} + } + }, + { + "from": [13.97374, 7.75, 8.62374], + "to": [14.97374, 8.75, 9.62374], + "rotation": {"angle": 0, "axis": "y", "origin": [14.47374, 8.14142, 8]}, + "faces": { + "north": {"uv": [12.75, 9.25, 13, 9.5], "texture": "#0"}, + "east": {"uv": [9.5, 12.75, 9.75, 13], "texture": "#0"}, + "south": {"uv": [12.75, 9.5, 13, 9.75], "texture": "#0"}, + "west": {"uv": [9.75, 12.75, 10, 13], "texture": "#0"}, + "up": {"uv": [13, 10, 12.75, 9.75], "texture": "#0"}, + "down": {"uv": [10.25, 12.75, 10, 13], "texture": "#0"} + } + }, + { + "from": [13.97374, 8.75, 7.62374], + "to": [14.97374, 9.75, 9.62374], + "rotation": {"angle": 0, "axis": "y", "origin": [14.47374, 8.14142, 8]}, + "faces": { + "north": {"uv": [12.75, 10, 13, 10.25], "texture": "#0"}, + "east": {"uv": [12.25, 1, 12.75, 1.25], "texture": "#0"}, + "south": {"uv": [10.25, 12.75, 10.5, 13], "texture": "#0"}, + "west": {"uv": [1.25, 12.25, 1.75, 12.5], "texture": "#0"}, + "up": {"uv": [2, 12.75, 1.75, 12.25], "texture": "#0"}, + "down": {"uv": [2.25, 12.25, 2, 12.75], "texture": "#0"} + } + }, + { + "from": [13.97374, 6.75, 6.62374], + "to": [14.97374, 8.75, 8.62374], + "rotation": {"angle": 0, "axis": "y", "origin": [14.47374, 8.14142, 8]}, + "faces": { + "north": {"uv": [2.25, 12.25, 2.5, 12.75], "texture": "#0"}, + "east": {"uv": [10.75, 7.75, 11.25, 8.25], "texture": "#0"}, + "south": {"uv": [2.5, 12.25, 2.75, 12.75], "texture": "#0"}, + "west": {"uv": [10.75, 8.25, 11.25, 8.75], "texture": "#0"}, + "up": {"uv": [12.5, 3.25, 12.25, 2.75], "texture": "#0"}, + "down": {"uv": [3.5, 12.25, 3.25, 12.75], "texture": "#0"} + } + }, + { + "from": [13.97374, 8.3307, 4.33585], + "to": [14.97374, 8.6307, 6.33585], + "rotation": {"angle": -45, "axis": "x", "origin": [14.47374, 8.14142, 8]}, + "faces": { + "north": {"uv": [12.75, 10.25, 13, 10.5], "texture": "#0"}, + "east": {"uv": [12.25, 1.25, 12.75, 1.5], "texture": "#0"}, + "south": {"uv": [10.5, 12.75, 10.75, 13], "texture": "#0"}, + "west": {"uv": [12.25, 3.25, 12.75, 3.5], "texture": "#0"}, + "up": {"uv": [3.75, 12.75, 3.5, 12.25], "texture": "#0"}, + "down": {"uv": [12.5, 3.5, 12.25, 4], "texture": "#0"} + } + }, + { + "from": [13.97374, 7.96764, 4.33643], + "to": [14.97374, 8.33264, 6.19443], + "rotation": {"angle": -45, "axis": "x", "origin": [14.47374, 8.14142, 8]}, + "faces": { + "north": {"uv": [12.75, 10.5, 13, 10.75], "texture": "#0"}, + "east": {"uv": [3.75, 12.25, 4.25, 12.5], "texture": "#0"}, + "south": {"uv": [10.75, 12.75, 11, 13], "texture": "#0"}, + "west": {"uv": [12.25, 4, 12.75, 4.25], "texture": "#0"}, + "up": {"uv": [4.5, 12.75, 4.25, 12.25], "texture": "#0"}, + "down": {"uv": [12.5, 4.25, 12.25, 4.75], "texture": "#0"} + } + }, + { + "from": [13.97374, 7.67359, 4.33585], + "to": [14.97374, 7.97359, 6.33585], + "rotation": {"angle": -45, "axis": "x", "origin": [14.47374, 8.14142, 8]}, + "faces": { + "north": {"uv": [12.75, 10.75, 13, 11], "texture": "#0"}, + "east": {"uv": [4.5, 12.25, 5, 12.5], "texture": "#0"}, + "south": {"uv": [11, 12.75, 11.25, 13], "texture": "#0"}, + "west": {"uv": [5, 12.25, 5.5, 12.5], "texture": "#0"}, + "up": {"uv": [5.75, 12.75, 5.5, 12.25], "texture": "#0"}, + "down": {"uv": [6, 12.25, 5.75, 12.75], "texture": "#0"} + } + }, + { + "from": [0.97374, 9.75, 8.62374], + "to": [1.97374, 10.75, 10.62374], + "rotation": {"angle": 0, "axis": "y", "origin": [1.47374, 8.14142, 8]}, + "faces": { + "north": {"uv": [12.75, 11, 13, 11.25], "texture": "#0"}, + "east": {"uv": [12.25, 5.75, 12.75, 6], "texture": "#0"}, + "south": {"uv": [11.25, 12.75, 11.5, 13], "texture": "#0"}, + "west": {"uv": [6, 12.25, 6.5, 12.5], "texture": "#0"}, + "up": {"uv": [6.75, 12.75, 6.5, 12.25], "texture": "#0"}, + "down": {"uv": [7, 12.25, 6.75, 12.75], "texture": "#0"} + } + }, + { + "from": [0.97374, 8.75, 9.62374], + "to": [1.97374, 9.75, 10.62374], + "rotation": {"angle": 0, "axis": "y", "origin": [1.47374, 8.14142, 8]}, + "faces": { + "north": {"uv": [12.75, 11.25, 13, 11.5], "texture": "#0"}, + "east": {"uv": [11.5, 12.75, 11.75, 13], "texture": "#0"}, + "south": {"uv": [12.75, 11.5, 13, 11.75], "texture": "#0"}, + "west": {"uv": [11.75, 12.75, 12, 13], "texture": "#0"}, + "up": {"uv": [13, 12, 12.75, 11.75], "texture": "#0"}, + "down": {"uv": [12.25, 12.75, 12, 13], "texture": "#0"} + } + }, + { + "from": [0.97374, 7.75, 8.62374], + "to": [1.97374, 8.75, 9.62374], + "rotation": {"angle": 0, "axis": "y", "origin": [1.47374, 8.14142, 8]}, + "faces": { + "north": {"uv": [12.75, 12, 13, 12.25], "texture": "#0"}, + "east": {"uv": [12.25, 12.75, 12.5, 13], "texture": "#0"}, + "south": {"uv": [12.75, 12.25, 13, 12.5], "texture": "#0"}, + "west": {"uv": [12.5, 12.75, 12.75, 13], "texture": "#0"}, + "up": {"uv": [13, 12.75, 12.75, 12.5], "texture": "#0"}, + "down": {"uv": [13, 12.75, 12.75, 13], "texture": "#0"} + } + }, + { + "from": [0.97374, 8.75, 7.62374], + "to": [1.97374, 9.75, 9.62374], + "rotation": {"angle": 0, "axis": "y", "origin": [1.47374, 8.14142, 8]}, + "faces": { + "north": {"uv": [0, 13, 0.25, 13.25], "texture": "#0"}, + "east": {"uv": [7, 12.25, 7.5, 12.5], "texture": "#0"}, + "south": {"uv": [13, 0, 13.25, 0.25], "texture": "#0"}, + "west": {"uv": [7.5, 12.25, 8, 12.5], "texture": "#0"}, + "up": {"uv": [8.25, 12.75, 8, 12.25], "texture": "#0"}, + "down": {"uv": [8.75, 12.25, 8.5, 12.75], "texture": "#0"} + } + }, + { + "from": [0.97374, 6.75, 6.62374], + "to": [1.97374, 8.75, 8.62374], + "rotation": {"angle": 0, "axis": "y", "origin": [1.47374, 8.14142, 8]}, + "faces": { + "north": {"uv": [12.25, 8.75, 12.5, 9.25], "texture": "#0"}, + "east": {"uv": [8.5, 10.75, 9, 11.25], "texture": "#0"}, + "south": {"uv": [9, 12.25, 9.25, 12.75], "texture": "#0"}, + "west": {"uv": [10.75, 8.75, 11.25, 9.25], "texture": "#0"}, + "up": {"uv": [9.5, 12.75, 9.25, 12.25], "texture": "#0"}, + "down": {"uv": [9.75, 12.25, 9.5, 12.75], "texture": "#0"} + } + }, + { + "from": [0.97374, 8.3307, 4.33585], + "to": [1.97374, 8.6307, 6.33585], + "rotation": {"angle": -45, "axis": "x", "origin": [1.47374, 8.14142, 8]}, + "faces": { + "north": {"uv": [0.25, 13, 0.5, 13.25], "texture": "#0"}, + "east": {"uv": [12.25, 10, 12.75, 10.25], "texture": "#0"}, + "south": {"uv": [13, 0.25, 13.25, 0.5], "texture": "#0"}, + "west": {"uv": [10.25, 12.25, 10.75, 12.5], "texture": "#0"}, + "up": {"uv": [10, 12.75, 9.75, 12.25], "texture": "#0"}, + "down": {"uv": [11, 12.25, 10.75, 12.75], "texture": "#0"} + } + }, + { + "from": [0.97374, 7.96764, 4.33643], + "to": [1.97374, 8.33264, 6.19443], + "rotation": {"angle": -45, "axis": "x", "origin": [1.47374, 8.14142, 8]}, + "faces": { + "north": {"uv": [0.5, 13, 0.75, 13.25], "texture": "#0"}, + "east": {"uv": [11, 12.25, 11.5, 12.5], "texture": "#0"}, + "south": {"uv": [13, 0.5, 13.25, 0.75], "texture": "#0"}, + "west": {"uv": [12.25, 11.25, 12.75, 11.5], "texture": "#0"}, + "up": {"uv": [12, 12.75, 11.75, 12.25], "texture": "#0"}, + "down": {"uv": [12.25, 12.25, 12, 12.75], "texture": "#0"} + } + }, + { + "from": [0.97374, 7.67359, 4.33585], + "to": [1.97374, 7.97359, 6.33585], + "rotation": {"angle": -45, "axis": "x", "origin": [1.47374, 8.14142, 8]}, + "faces": { + "north": {"uv": [0.75, 13, 1, 13.25], "texture": "#0"}, + "east": {"uv": [12.25, 11.5, 12.75, 11.75], "texture": "#0"}, + "south": {"uv": [13, 0.75, 13.25, 1], "texture": "#0"}, + "west": {"uv": [12.25, 12.25, 12.75, 12.5], "texture": "#0"}, + "up": {"uv": [0.25, 13, 0, 12.5], "texture": "#0"}, + "down": {"uv": [0.5, 12.5, 0.25, 13], "texture": "#0"} + } + }, + { + "from": [5.25, 13.89142, 5.39142], + "to": [7.25, 14.89142, 6.39142], + "rotation": {"angle": 0, "axis": "x", "origin": [7.87374, 14.39142, 8]}, + "faces": { + "north": {"uv": [0.5, 12.5, 1, 12.75], "texture": "#0"}, + "east": {"uv": [1, 13, 1.25, 13.25], "texture": "#0"}, + "south": {"uv": [1, 12.5, 1.5, 12.75], "texture": "#0"}, + "west": {"uv": [13, 1, 13.25, 1.25], "texture": "#0"}, + "up": {"uv": [13, 1.75, 12.5, 1.5], "texture": "#0"}, + "down": {"uv": [13, 1.75, 12.5, 2], "texture": "#0"} + } + }, + { + "from": [5.25, 13.89142, 6.39142], + "to": [6.25, 14.89142, 7.39142], + "rotation": {"angle": 0, "axis": "x", "origin": [7.87374, 14.39142, 8]}, + "faces": { + "north": {"uv": [1.25, 13, 1.5, 13.25], "texture": "#0"}, + "east": {"uv": [13, 1.25, 13.25, 1.5], "texture": "#0"}, + "south": {"uv": [1.5, 13, 1.75, 13.25], "texture": "#0"}, + "west": {"uv": [13, 1.5, 13.25, 1.75], "texture": "#0"}, + "up": {"uv": [2, 13.25, 1.75, 13], "texture": "#0"}, + "down": {"uv": [13.25, 1.75, 13, 2], "texture": "#0"} + } + }, + { + "from": [6.25, 13.89142, 7.39142], + "to": [7.25, 14.89142, 8.39142], + "rotation": {"angle": 0, "axis": "x", "origin": [7.87374, 14.39142, 8]}, + "faces": { + "north": {"uv": [2, 13, 2.25, 13.25], "texture": "#0"}, + "east": {"uv": [13, 2, 13.25, 2.25], "texture": "#0"}, + "south": {"uv": [2.25, 13, 2.5, 13.25], "texture": "#0"}, + "west": {"uv": [13, 2.25, 13.25, 2.5], "texture": "#0"}, + "up": {"uv": [2.75, 13.25, 2.5, 13], "texture": "#0"}, + "down": {"uv": [13.25, 2.5, 13, 2.75], "texture": "#0"} + } + }, + { + "from": [6.25, 13.89142, 6.39142], + "to": [8.25, 14.89142, 7.39142], + "rotation": {"angle": 0, "axis": "x", "origin": [7.87374, 14.39142, 8]}, + "faces": { + "north": {"uv": [12.5, 2, 13, 2.25], "texture": "#0"}, + "east": {"uv": [2.75, 13, 3, 13.25], "texture": "#0"}, + "south": {"uv": [12.5, 2.25, 13, 2.5], "texture": "#0"}, + "west": {"uv": [13, 2.75, 13.25, 3], "texture": "#0"}, + "up": {"uv": [13, 2.75, 12.5, 2.5], "texture": "#0"}, + "down": {"uv": [3.25, 12.5, 2.75, 12.75], "texture": "#0"} + } + }, + { + "from": [7.25, 13.89142, 7.39142], + "to": [9.25, 14.89142, 9.39142], + "rotation": {"angle": 0, "axis": "x", "origin": [7.87374, 14.39142, 8]}, + "faces": { + "north": {"uv": [12.5, 2.75, 13, 3], "texture": "#0"}, + "east": {"uv": [12.5, 3, 13, 3.25], "texture": "#0"}, + "south": {"uv": [12.5, 3.5, 13, 3.75], "texture": "#0"}, + "west": {"uv": [3.75, 12.5, 4.25, 12.75], "texture": "#0"}, + "up": {"uv": [9.5, 11.25, 9, 10.75], "texture": "#0"}, + "down": {"uv": [10, 10.75, 9.5, 11.25], "texture": "#0"} + } + }, + { + "from": [9.53789, 13.89142, 7.51072], + "to": [11.53789, 14.89142, 7.81072], + "rotation": {"angle": -45, "axis": "y", "origin": [7.87374, 14.39142, 8]}, + "faces": { + "north": {"uv": [12.5, 3.75, 13, 4], "texture": "#0"}, + "east": {"uv": [3, 13, 3.25, 13.25], "texture": "#0"}, + "south": {"uv": [12.5, 4.25, 13, 4.5], "texture": "#0"}, + "west": {"uv": [13, 3, 13.25, 3.25], "texture": "#0"}, + "up": {"uv": [5, 12.75, 4.5, 12.5], "texture": "#0"}, + "down": {"uv": [13, 4.5, 12.5, 4.75], "texture": "#0"} + } + }, + { + "from": [9.67932, 13.89142, 7.80878], + "to": [11.53732, 14.89142, 8.17378], + "rotation": {"angle": -45, "axis": "y", "origin": [7.87374, 14.39142, 8]}, + "faces": { + "north": {"uv": [12.5, 4.75, 13, 5], "texture": "#0"}, + "east": {"uv": [3.25, 13, 3.5, 13.25], "texture": "#0"}, + "south": {"uv": [5, 12.5, 5.5, 12.75], "texture": "#0"}, + "west": {"uv": [13, 3.25, 13.25, 3.5], "texture": "#0"}, + "up": {"uv": [13, 5.25, 12.5, 5], "texture": "#0"}, + "down": {"uv": [13, 5.25, 12.5, 5.5], "texture": "#0"} + } + }, + { + "from": [9.53789, 13.89142, 8.16783], + "to": [11.53789, 14.89142, 8.46783], + "rotation": {"angle": -45, "axis": "y", "origin": [7.87374, 14.39142, 8]}, + "faces": { + "north": {"uv": [12.5, 5.5, 13, 5.75], "texture": "#0"}, + "east": {"uv": [3.5, 13, 3.75, 13.25], "texture": "#0"}, + "south": {"uv": [6, 12.5, 6.5, 12.75], "texture": "#0"}, + "west": {"uv": [13, 3.5, 13.25, 3.75], "texture": "#0"}, + "up": {"uv": [13, 6.25, 12.5, 6], "texture": "#0"}, + "down": {"uv": [13, 6.25, 12.5, 6.5], "texture": "#0"} + } + } + ], + "groups": [ + { + "name": "ornaments", + "origin": [3, 8, 3], + "color": 0, + "children": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31] + }, + { + "name": "center", + "origin": [8, 8, 8], + "color": 0, + "children": [32, 33, 34] + }, + { + "name": "plates", + "origin": [8, 8, 8], + "color": 0, + "children": [35, 36, 37, 38, 39, 40] + }, + { + "name": "symbol", + "origin": [6, 8, 1], + "color": 0, + "children": [ + { + "name": "side1", + "origin": [11.5, 12.1, 1.5], + "color": 0, + "children": [41, 42, 43, 44, 45, 46, 47, 48] + }, + { + "name": "side2", + "origin": [11.5, 12.1, 1.5], + "color": 0, + "children": [49, 50, 51, 52, 53, 54, 55, 56] + }, + { + "name": "side3", + "origin": [11.5, 12.1, 1.5], + "color": 0, + "children": [57, 58, 59, 60, 61, 62, 63, 64] + }, + { + "name": "side4", + "origin": [11.5, 12.1, 1.5], + "color": 0, + "children": [65, 66, 67, 68, 69, 70, 71, 72] + }, + { + "name": "top", + "origin": [11.5, 12.1, 1.5], + "color": 0, + "children": [73, 74, 75, 76, 77, 78, 79, 80] + } + ] + } + ] +} diff --git a/src/main/resources/assets/utilitiesinexcess/models/blocks/upgrade_speed_1.json b/src/main/resources/assets/utilitiesinexcess/models/blocks/upgrade_speed_1.json new file mode 100644 index 00000000..ccba740c --- /dev/null +++ b/src/main/resources/assets/utilitiesinexcess/models/blocks/upgrade_speed_1.json @@ -0,0 +1,701 @@ +{ + "format_version": "1.9.0", + "credit": "Made with Blockbench", + "texture_size": [64, 64], + "textures": { + "0": "utilitiesinexcess:upgrade_speed_1", + "particle": "utilitiesinexcess:upgrade_speed_1" + }, + "elements": [ + { + "from": [2, 7, 3], + "to": [4, 9, 4], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 8]}, + "faces": { + "north": {"uv": [7.5, 4, 8, 4.5], "texture": "#0"}, + "east": {"uv": [11.5, 5.5, 11.75, 6], "texture": "#0"}, + "south": {"uv": [7.5, 4.5, 8, 5], "texture": "#0"}, + "west": {"uv": [6.75, 11.5, 7, 12], "texture": "#0"}, + "up": {"uv": [12, 4, 11.5, 3.75], "texture": "#0"}, + "down": {"uv": [12, 7.25, 11.5, 7.5], "texture": "#0"} + } + }, + { + "from": [3, 7, 2], + "to": [4, 9, 3], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 8]}, + "faces": { + "north": {"uv": [7, 11.5, 7.25, 12], "texture": "#0"}, + "east": {"uv": [8.5, 11.5, 8.75, 12], "texture": "#0"}, + "south": {"uv": [8.75, 11.5, 9, 12], "texture": "#0"}, + "west": {"uv": [9, 11.5, 9.25, 12], "texture": "#0"}, + "up": {"uv": [11.75, 8.75, 11.5, 8.5], "texture": "#0"}, + "down": {"uv": [12.5, 3.5, 12.25, 3.75], "texture": "#0"} + } + }, + { + "from": [3, 11, 3], + "to": [4, 13, 4], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 8]}, + "faces": { + "north": {"uv": [9.25, 11.5, 9.5, 12], "texture": "#0"}, + "east": {"uv": [9.5, 11.5, 9.75, 12], "texture": "#0"}, + "south": {"uv": [9.75, 11.5, 10, 12], "texture": "#0"}, + "west": {"uv": [10, 11.5, 10.25, 12], "texture": "#0"}, + "up": {"uv": [12.5, 6.75, 12.25, 6.5], "texture": "#0"}, + "down": {"uv": [12.5, 6.75, 12.25, 7], "texture": "#0"} + } + }, + { + "from": [3, 3, 3], + "to": [4, 5, 4], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 8]}, + "faces": { + "north": {"uv": [11.5, 10, 11.75, 10.5], "texture": "#0"}, + "east": {"uv": [10.25, 11.5, 10.5, 12], "texture": "#0"}, + "south": {"uv": [11.5, 10.5, 11.75, 11], "texture": "#0"}, + "west": {"uv": [11.25, 11.5, 11.5, 12], "texture": "#0"}, + "up": {"uv": [12.5, 7.25, 12.25, 7], "texture": "#0"}, + "down": {"uv": [12.5, 7.25, 12.25, 7.5], "texture": "#0"} + } + }, + { + "from": [3, 7, 12], + "to": [4, 9, 14], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 8]}, + "faces": { + "north": {"uv": [11.5, 11.5, 11.75, 12], "texture": "#0"}, + "east": {"uv": [10.25, 8.75, 10.75, 9.25], "texture": "#0"}, + "south": {"uv": [11.75, 1, 12, 1.5], "texture": "#0"}, + "west": {"uv": [3.25, 10.5, 3.75, 11], "texture": "#0"}, + "up": {"uv": [12, 2, 11.75, 1.5], "texture": "#0"}, + "down": {"uv": [12, 2, 11.75, 2.5], "texture": "#0"} + } + }, + { + "from": [2, 7, 12], + "to": [3, 9, 13], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 8]}, + "faces": { + "north": {"uv": [11.75, 2.5, 12, 3], "texture": "#0"}, + "east": {"uv": [3, 11.75, 3.25, 12.25], "texture": "#0"}, + "south": {"uv": [11.75, 3, 12, 3.5], "texture": "#0"}, + "west": {"uv": [11.75, 4.5, 12, 5], "texture": "#0"}, + "up": {"uv": [12.5, 7.75, 12.25, 7.5], "texture": "#0"}, + "down": {"uv": [12.5, 7.75, 12.25, 8], "texture": "#0"} + } + }, + { + "from": [3, 11, 12], + "to": [4, 13, 13], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 8]}, + "faces": { + "north": {"uv": [11.75, 5, 12, 5.5], "texture": "#0"}, + "east": {"uv": [11.75, 5.5, 12, 6], "texture": "#0"}, + "south": {"uv": [11.75, 8.5, 12, 9], "texture": "#0"}, + "west": {"uv": [11.75, 10, 12, 10.5], "texture": "#0"}, + "up": {"uv": [12.5, 8.25, 12.25, 8], "texture": "#0"}, + "down": {"uv": [12.5, 8.25, 12.25, 8.5], "texture": "#0"} + } + }, + { + "from": [3, 3, 12], + "to": [4, 5, 13], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 8]}, + "faces": { + "north": {"uv": [11.75, 10.5, 12, 11], "texture": "#0"}, + "east": {"uv": [11.75, 11.5, 12, 12], "texture": "#0"}, + "south": {"uv": [12, 1, 12.25, 1.5], "texture": "#0"}, + "west": {"uv": [12, 1.5, 12.25, 2], "texture": "#0"}, + "up": {"uv": [12.5, 8.75, 12.25, 8.5], "texture": "#0"}, + "down": {"uv": [12.5, 8.75, 12.25, 9], "texture": "#0"} + } + }, + { + "from": [12, 7, 12], + "to": [14, 9, 13], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 8]}, + "faces": { + "north": {"uv": [10.5, 4.5, 11, 5], "texture": "#0"}, + "east": {"uv": [2, 12, 2.25, 12.5], "texture": "#0"}, + "south": {"uv": [10.5, 5, 11, 5.5], "texture": "#0"}, + "west": {"uv": [12, 2, 12.25, 2.5], "texture": "#0"}, + "up": {"uv": [12.25, 3.75, 11.75, 3.5], "texture": "#0"}, + "down": {"uv": [12.25, 9, 11.75, 9.25], "texture": "#0"} + } + }, + { + "from": [12, 7, 13], + "to": [13, 9, 14], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 8]}, + "faces": { + "north": {"uv": [2.25, 12, 2.5, 12.5], "texture": "#0"}, + "east": {"uv": [2.5, 12, 2.75, 12.5], "texture": "#0"}, + "south": {"uv": [12, 2.5, 12.25, 3], "texture": "#0"}, + "west": {"uv": [2.75, 12, 3, 12.5], "texture": "#0"}, + "up": {"uv": [9.25, 12.5, 9, 12.25], "texture": "#0"}, + "down": {"uv": [12.5, 9, 12.25, 9.25], "texture": "#0"} + } + }, + { + "from": [12, 11, 12], + "to": [13, 13, 13], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 8]}, + "faces": { + "north": {"uv": [12, 3, 12.25, 3.5], "texture": "#0"}, + "east": {"uv": [3.25, 12, 3.5, 12.5], "texture": "#0"}, + "south": {"uv": [3.5, 12, 3.75, 12.5], "texture": "#0"}, + "west": {"uv": [4, 12, 4.25, 12.5], "texture": "#0"}, + "up": {"uv": [9.5, 12.5, 9.25, 12.25], "texture": "#0"}, + "down": {"uv": [9.75, 12.25, 9.5, 12.5], "texture": "#0"} + } + }, + { + "from": [12, 3, 12], + "to": [13, 5, 13], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 8]}, + "faces": { + "north": {"uv": [4.25, 12, 4.5, 12.5], "texture": "#0"}, + "east": {"uv": [4.5, 12, 4.75, 12.5], "texture": "#0"}, + "south": {"uv": [12, 4.5, 12.25, 5], "texture": "#0"}, + "west": {"uv": [4.75, 12, 5, 12.5], "texture": "#0"}, + "up": {"uv": [10, 12.5, 9.75, 12.25], "texture": "#0"}, + "down": {"uv": [12.5, 10, 12.25, 10.25], "texture": "#0"} + } + }, + { + "from": [12, 7, 2], + "to": [13, 9, 4], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 8]}, + "faces": { + "north": {"uv": [5, 12, 5.25, 12.5], "texture": "#0"}, + "east": {"uv": [10.5, 7.5, 11, 8], "texture": "#0"}, + "south": {"uv": [12, 5, 12.25, 5.5], "texture": "#0"}, + "west": {"uv": [10.5, 8, 11, 8.5], "texture": "#0"}, + "up": {"uv": [12.25, 6, 12, 5.5], "texture": "#0"}, + "down": {"uv": [12.25, 6, 12, 6.5], "texture": "#0"} + } + }, + { + "from": [13, 7, 3], + "to": [14, 9, 4], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 8]}, + "faces": { + "north": {"uv": [12, 6.5, 12.25, 7], "texture": "#0"}, + "east": {"uv": [6.75, 12, 7, 12.5], "texture": "#0"}, + "south": {"uv": [7, 12, 7.25, 12.5], "texture": "#0"}, + "west": {"uv": [12, 7, 12.25, 7.5], "texture": "#0"}, + "up": {"uv": [12.5, 10.5, 12.25, 10.25], "texture": "#0"}, + "down": {"uv": [11, 12.25, 10.75, 12.5], "texture": "#0"} + } + }, + { + "from": [12, 11, 3], + "to": [13, 13, 4], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 8]}, + "faces": { + "north": {"uv": [7.25, 12, 7.5, 12.5], "texture": "#0"}, + "east": {"uv": [7.5, 12, 7.75, 12.5], "texture": "#0"}, + "south": {"uv": [12, 7.5, 12.25, 8], "texture": "#0"}, + "west": {"uv": [7.75, 12, 8, 12.5], "texture": "#0"}, + "up": {"uv": [11.25, 12.5, 11, 12.25], "texture": "#0"}, + "down": {"uv": [12.5, 11, 12.25, 11.25], "texture": "#0"} + } + }, + { + "from": [12, 3, 3], + "to": [13, 5, 4], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 8]}, + "faces": { + "north": {"uv": [8, 12, 8.25, 12.5], "texture": "#0"}, + "east": {"uv": [12, 8, 12.25, 8.5], "texture": "#0"}, + "south": {"uv": [8.25, 12, 8.5, 12.5], "texture": "#0"}, + "west": {"uv": [8.5, 12, 8.75, 12.5], "texture": "#0"}, + "up": {"uv": [12.5, 11.5, 12.25, 11.25], "texture": "#0"}, + "down": {"uv": [12.5, 11.5, 12.25, 11.75], "texture": "#0"} + } + }, + { + "from": [7, 12, 2], + "to": [9, 14, 3], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 8]}, + "faces": { + "north": {"uv": [10.5, 10, 11, 10.5], "texture": "#0"}, + "east": {"uv": [12, 8.5, 12.25, 9], "texture": "#0"}, + "south": {"uv": [10.5, 10.5, 11, 11], "texture": "#0"}, + "west": {"uv": [8.75, 12, 9, 12.5], "texture": "#0"}, + "up": {"uv": [12.5, 4, 12, 3.75], "texture": "#0"}, + "down": {"uv": [9.5, 12, 9, 12.25], "texture": "#0"} + } + }, + { + "from": [7, 13, 3], + "to": [9, 14, 4], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 8]}, + "faces": { + "north": {"uv": [12, 9.25, 12.5, 9.5], "texture": "#0"}, + "east": {"uv": [12.25, 11.75, 12.5, 12], "texture": "#0"}, + "south": {"uv": [9.5, 12, 10, 12.25], "texture": "#0"}, + "west": {"uv": [12, 12.25, 12.25, 12.5], "texture": "#0"}, + "up": {"uv": [12.5, 9.75, 12, 9.5], "texture": "#0"}, + "down": {"uv": [12.5, 9.75, 12, 10], "texture": "#0"} + } + }, + { + "from": [13, 12, 7], + "to": [14, 14, 9], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 8]}, + "faces": { + "north": {"uv": [10, 12, 10.25, 12.5], "texture": "#0"}, + "east": {"uv": [10.75, 0, 11.25, 0.5], "texture": "#0"}, + "south": {"uv": [12, 10, 12.25, 10.5], "texture": "#0"}, + "west": {"uv": [10.75, 0.5, 11.25, 1], "texture": "#0"}, + "up": {"uv": [10.5, 12.5, 10.25, 12], "texture": "#0"}, + "down": {"uv": [10.75, 12, 10.5, 12.5], "texture": "#0"} + } + }, + { + "from": [12, 13, 7], + "to": [13, 14, 9], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 8]}, + "faces": { + "north": {"uv": [12.25, 12.25, 12.5, 12.5], "texture": "#0"}, + "east": {"uv": [12, 10.5, 12.5, 10.75], "texture": "#0"}, + "south": {"uv": [0, 12.5, 0.25, 12.75], "texture": "#0"}, + "west": {"uv": [10.75, 12, 11.25, 12.25], "texture": "#0"}, + "up": {"uv": [11.5, 12.5, 11.25, 12], "texture": "#0"}, + "down": {"uv": [11.75, 12, 11.5, 12.5], "texture": "#0"} + } + }, + { + "from": [7, 12, 13], + "to": [9, 14, 14], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 8]}, + "faces": { + "north": {"uv": [10.75, 1, 11.25, 1.5], "texture": "#0"}, + "east": {"uv": [12, 11.5, 12.25, 12], "texture": "#0"}, + "south": {"uv": [10.75, 1.5, 11.25, 2], "texture": "#0"}, + "west": {"uv": [11.75, 12, 12, 12.5], "texture": "#0"}, + "up": {"uv": [12.5, 11, 12, 10.75], "texture": "#0"}, + "down": {"uv": [12.5, 12, 12, 12.25], "texture": "#0"} + } + }, + { + "from": [7, 13, 12], + "to": [9, 14, 13], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 8]}, + "faces": { + "north": {"uv": [12.25, 0, 12.75, 0.25], "texture": "#0"}, + "east": {"uv": [0.25, 12.5, 0.5, 12.75], "texture": "#0"}, + "south": {"uv": [12.25, 0.25, 12.75, 0.5], "texture": "#0"}, + "west": {"uv": [0.5, 12.5, 0.75, 12.75], "texture": "#0"}, + "up": {"uv": [12.75, 0.75, 12.25, 0.5], "texture": "#0"}, + "down": {"uv": [12.75, 0.75, 12.25, 1], "texture": "#0"} + } + }, + { + "from": [2, 12, 7], + "to": [3, 14, 9], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 8]}, + "faces": { + "north": {"uv": [12.25, 1, 12.5, 1.5], "texture": "#0"}, + "east": {"uv": [10.75, 2, 11.25, 2.5], "texture": "#0"}, + "south": {"uv": [12.25, 1.5, 12.5, 2], "texture": "#0"}, + "west": {"uv": [10.75, 2.5, 11.25, 3], "texture": "#0"}, + "up": {"uv": [12.5, 2.5, 12.25, 2], "texture": "#0"}, + "down": {"uv": [12.5, 2.5, 12.25, 3], "texture": "#0"} + } + }, + { + "from": [3, 13, 7], + "to": [4, 14, 9], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 8]}, + "faces": { + "north": {"uv": [0.75, 12.5, 1, 12.75], "texture": "#0"}, + "east": {"uv": [12.25, 3, 12.75, 3.25], "texture": "#0"}, + "south": {"uv": [1, 12.5, 1.25, 12.75], "texture": "#0"}, + "west": {"uv": [12.25, 3.25, 12.75, 3.5], "texture": "#0"}, + "up": {"uv": [3.25, 12.75, 3, 12.25], "texture": "#0"}, + "down": {"uv": [12.5, 4, 12.25, 4.5], "texture": "#0"} + } + }, + { + "from": [3, 2, 6], + "to": [4, 3, 10], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 8]}, + "faces": { + "north": {"uv": [12.5, 1, 12.75, 1.25], "texture": "#0"}, + "east": {"uv": [10.5, 3.75, 11.5, 4], "texture": "#0"}, + "south": {"uv": [1.25, 12.5, 1.5, 12.75], "texture": "#0"}, + "west": {"uv": [10.5, 5.5, 11.5, 5.75], "texture": "#0"}, + "up": {"uv": [4, 11.5, 3.75, 10.5], "texture": "#0"}, + "down": {"uv": [3.5, 11, 3.25, 12], "texture": "#0"} + } + }, + { + "from": [2, 2, 6], + "to": [3, 4, 10], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 8]}, + "faces": { + "north": {"uv": [12.25, 4.5, 12.5, 5], "texture": "#0"}, + "east": {"uv": [6.5, 4, 7.5, 4.5], "texture": "#0"}, + "south": {"uv": [12.25, 5, 12.5, 5.5], "texture": "#0"}, + "west": {"uv": [6.5, 4.5, 7.5, 5], "texture": "#0"}, + "up": {"uv": [3.75, 12, 3.5, 11], "texture": "#0"}, + "down": {"uv": [11.25, 4.5, 11, 5.5], "texture": "#0"} + } + }, + { + "from": [6, 2, 12], + "to": [10, 3, 13], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 8]}, + "faces": { + "north": {"uv": [10.5, 8.5, 11.5, 8.75], "texture": "#0"}, + "east": {"uv": [12.5, 1.25, 12.75, 1.5], "texture": "#0"}, + "south": {"uv": [10.75, 3, 11.75, 3.25], "texture": "#0"}, + "west": {"uv": [1.5, 12.5, 1.75, 12.75], "texture": "#0"}, + "up": {"uv": [11.75, 3.5, 10.75, 3.25], "texture": "#0"}, + "down": {"uv": [11.75, 3.5, 10.75, 3.75], "texture": "#0"} + } + }, + { + "from": [6, 2, 13], + "to": [10, 4, 14], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 8]}, + "faces": { + "north": {"uv": [3, 9.5, 4, 10], "texture": "#0"}, + "east": {"uv": [5.25, 12.25, 5.5, 12.75], "texture": "#0"}, + "south": {"uv": [4, 9.5, 5, 10], "texture": "#0"}, + "west": {"uv": [5.5, 12.25, 5.75, 12.75], "texture": "#0"}, + "up": {"uv": [11.75, 9, 10.75, 8.75], "texture": "#0"}, + "down": {"uv": [11.75, 9, 10.75, 9.25], "texture": "#0"} + } + }, + { + "from": [12, 2, 6], + "to": [13, 3, 10], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 8]}, + "faces": { + "north": {"uv": [12.5, 1.5, 12.75, 1.75], "texture": "#0"}, + "east": {"uv": [11, 7.5, 12, 7.75], "texture": "#0"}, + "south": {"uv": [1.75, 12.5, 2, 12.75], "texture": "#0"}, + "west": {"uv": [11, 7.75, 12, 8], "texture": "#0"}, + "up": {"uv": [11.25, 11, 11, 10], "texture": "#0"}, + "down": {"uv": [10.75, 11, 10.5, 12], "texture": "#0"} + } + }, + { + "from": [13, 2, 6], + "to": [14, 4, 10], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 8]}, + "faces": { + "north": {"uv": [12.25, 5.5, 12.5, 6], "texture": "#0"}, + "east": {"uv": [5, 9.5, 6, 10], "texture": "#0"}, + "south": {"uv": [5.75, 12.25, 6, 12.75], "texture": "#0"}, + "west": {"uv": [6, 9.5, 7, 10], "texture": "#0"}, + "up": {"uv": [11, 12, 10.75, 11], "texture": "#0"}, + "down": {"uv": [11.25, 11, 11, 12], "texture": "#0"} + } + }, + { + "from": [6, 2, 3], + "to": [10, 3, 4], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 8]}, + "faces": { + "north": {"uv": [11, 8, 12, 8.25], "texture": "#0"}, + "east": {"uv": [12.5, 1.75, 12.75, 2], "texture": "#0"}, + "south": {"uv": [11, 8.25, 12, 8.5], "texture": "#0"}, + "west": {"uv": [2, 12.5, 2.25, 12.75], "texture": "#0"}, + "up": {"uv": [12.25, 0.25, 11.25, 0], "texture": "#0"}, + "down": {"uv": [12.25, 0.25, 11.25, 0.5], "texture": "#0"} + } + }, + { + "from": [6, 2, 2], + "to": [10, 4, 3], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 8]}, + "faces": { + "north": {"uv": [7, 9.5, 8, 10], "texture": "#0"}, + "east": {"uv": [6, 12.25, 6.25, 12.75], "texture": "#0"}, + "south": {"uv": [3, 10, 4, 10.5], "texture": "#0"}, + "west": {"uv": [12.25, 6, 12.5, 6.5], "texture": "#0"}, + "up": {"uv": [12.25, 0.75, 11.25, 0.5], "texture": "#0"}, + "down": {"uv": [12.25, 0.75, 11.25, 1], "texture": "#0"} + } + }, + { + "from": [12, 3, 4], + "to": [13, 13, 12], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 8]}, + "faces": { + "north": {"uv": [2, 9.5, 2.25, 12], "texture": "#0"}, + "east": {"uv": [2.5, 0, 4.5, 2.5], "texture": "#0"}, + "south": {"uv": [2.25, 9.5, 2.5, 12], "texture": "#0"}, + "west": {"uv": [2.5, 2.5, 4.5, 5], "texture": "#0"}, + "up": {"uv": [4.25, 12, 4, 10], "texture": "#0"}, + "down": {"uv": [10.25, 4, 10, 6], "texture": "#0"} + } + }, + { + "from": [3, 3, 4], + "to": [4, 13, 12], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 8]}, + "faces": { + "north": {"uv": [2.5, 9.5, 2.75, 12], "texture": "#0"}, + "east": {"uv": [4.5, 0, 6.5, 2.5], "texture": "#0"}, + "south": {"uv": [2.75, 9.5, 3, 12], "texture": "#0"}, + "west": {"uv": [4.5, 2.5, 6.5, 5], "texture": "#0"}, + "up": {"uv": [4.5, 12, 4.25, 10], "texture": "#0"}, + "down": {"uv": [4.75, 10, 4.5, 12], "texture": "#0"} + } + }, + { + "name": "base", + "from": [4, 3, 3], + "to": [12, 13, 13], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 8]}, + "faces": { + "north": {"uv": [0, 5, 2, 7.5], "texture": "#0"}, + "east": {"uv": [0, 0, 2.5, 2.5], "texture": "#0"}, + "south": {"uv": [2, 5, 4, 7.5], "texture": "#0"}, + "west": {"uv": [0, 2.5, 2.5, 5], "texture": "#0"}, + "up": {"uv": [6, 7.5, 4, 5], "texture": "#0"}, + "down": {"uv": [8, 5, 6, 7.5], "texture": "#0"} + } + }, + { + "from": [4, 4, 13], + "to": [12, 12, 14], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 8]}, + "faces": { + "north": {"uv": [6.5, 0, 8.5, 2], "texture": "#0"}, + "east": {"uv": [4.75, 10, 5, 12], "texture": "#0"}, + "south": {"uv": [6.5, 2, 8.5, 4], "texture": "#0"}, + "west": {"uv": [5, 10, 5.25, 12], "texture": "#0"}, + "up": {"uv": [7.25, 10.25, 5.25, 10], "texture": "#0"}, + "down": {"uv": [12, 6, 10, 6.25], "texture": "#0"} + } + }, + { + "from": [4, 13, 4], + "to": [12, 14, 12], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 8]}, + "faces": { + "north": {"uv": [10, 6.25, 12, 6.5], "texture": "#0"}, + "east": {"uv": [10, 6.5, 12, 6.75], "texture": "#0"}, + "south": {"uv": [10, 6.75, 12, 7], "texture": "#0"}, + "west": {"uv": [10, 7, 12, 7.25], "texture": "#0"}, + "up": {"uv": [2, 9.5, 0, 7.5], "texture": "#0"}, + "down": {"uv": [4, 7.5, 2, 9.5], "texture": "#0"} + } + }, + { + "from": [13, 4, 4], + "to": [14, 12, 12], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 8]}, + "faces": { + "north": {"uv": [7.25, 10, 7.5, 12], "texture": "#0"}, + "east": {"uv": [4, 7.5, 6, 9.5], "texture": "#0"}, + "south": {"uv": [10, 7.25, 10.25, 9.25], "texture": "#0"}, + "west": {"uv": [6, 7.5, 8, 9.5], "texture": "#0"}, + "up": {"uv": [7.75, 12, 7.5, 10], "texture": "#0"}, + "down": {"uv": [8, 10, 7.75, 12], "texture": "#0"} + } + }, + { + "from": [4, 4, 2], + "to": [12, 12, 3], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 8]}, + "faces": { + "north": {"uv": [8, 4, 10, 6], "texture": "#0"}, + "east": {"uv": [8, 10, 8.25, 12], "texture": "#0"}, + "south": {"uv": [8, 6, 10, 8], "texture": "#0"}, + "west": {"uv": [8.25, 10, 8.5, 12], "texture": "#0"}, + "up": {"uv": [10.5, 10.25, 8.5, 10], "texture": "#0"}, + "down": {"uv": [12, 9.25, 10, 9.5], "texture": "#0"} + } + }, + { + "from": [4, 2, 4], + "to": [12, 3, 12], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 8]}, + "faces": { + "north": {"uv": [10, 9.5, 12, 9.75], "texture": "#0"}, + "east": {"uv": [10, 9.75, 12, 10], "texture": "#0"}, + "south": {"uv": [10.25, 4, 12.25, 4.25], "texture": "#0"}, + "west": {"uv": [10.25, 4.25, 12.25, 4.5], "texture": "#0"}, + "up": {"uv": [10, 10, 8, 8], "texture": "#0"}, + "down": {"uv": [10.5, 0, 8.5, 2], "texture": "#0"} + } + }, + { + "from": [2, 4, 4], + "to": [3, 12, 12], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 8]}, + "faces": { + "north": {"uv": [5.25, 10.25, 5.5, 12.25], "texture": "#0"}, + "east": {"uv": [8.5, 2, 10.5, 4], "texture": "#0"}, + "south": {"uv": [5.5, 10.25, 5.75, 12.25], "texture": "#0"}, + "west": {"uv": [0, 9.5, 2, 11.5], "texture": "#0"}, + "up": {"uv": [6, 12.25, 5.75, 10.25], "texture": "#0"}, + "down": {"uv": [6.25, 10.25, 6, 12.25], "texture": "#0"} + } + }, + { + "from": [1, 5.75, 9], + "to": [2, 9.38, 10], + "rotation": {"angle": -45, "axis": "x", "origin": [1.5, 7.75, 9.5]}, + "faces": { + "north": {"uv": [11.25, 1, 11.5, 2], "texture": "#0"}, + "east": {"uv": [11.25, 2, 11.5, 3], "texture": "#0"}, + "south": {"uv": [11.25, 4.5, 11.5, 5.5], "texture": "#0"}, + "west": {"uv": [11.25, 10, 11.5, 11], "texture": "#0"}, + "up": {"uv": [12.75, 2.25, 12.5, 2], "texture": "#0"}, + "down": {"uv": [2.5, 12.5, 2.25, 12.75], "texture": "#0"} + } + }, + { + "from": [1, 5.75, 6], + "to": [2, 10.37, 7], + "rotation": {"angle": 45, "axis": "x", "origin": [1.5, 7.75, 6.5]}, + "faces": { + "north": {"uv": [10.25, 4.5, 10.5, 5.75], "texture": "#0"}, + "east": {"uv": [6.25, 10.25, 6.5, 11.5], "texture": "#0"}, + "south": {"uv": [6.5, 10.25, 6.75, 11.5], "texture": "#0"}, + "west": {"uv": [6.75, 10.25, 7, 11.5], "texture": "#0"}, + "up": {"uv": [12.75, 2.5, 12.5, 2.25], "texture": "#0"}, + "down": {"uv": [2.75, 12.5, 2.5, 12.75], "texture": "#0"} + } + }, + { + "from": [9, 14, 6.62], + "to": [10, 15, 10.25], + "rotation": {"angle": 45, "axis": "y", "origin": [9.5, 14.75, 8.25]}, + "faces": { + "north": {"uv": [12.5, 2.5, 12.75, 2.75], "texture": "#0"}, + "east": {"uv": [11.25, 11, 12.25, 11.25], "texture": "#0"}, + "south": {"uv": [2.75, 12.5, 3, 12.75], "texture": "#0"}, + "west": {"uv": [11.25, 11.25, 12.25, 11.5], "texture": "#0"}, + "up": {"uv": [0.25, 12.5, 0, 11.5], "texture": "#0"}, + "down": {"uv": [0.5, 11.5, 0.25, 12.5], "texture": "#0"} + } + }, + { + "from": [6, 14, 5.63], + "to": [7, 15, 10.25], + "rotation": {"angle": -45, "axis": "y", "origin": [6.5, 14.75, 8.25]}, + "faces": { + "north": {"uv": [12.5, 2.75, 12.75, 3], "texture": "#0"}, + "east": {"uv": [10.25, 5.75, 11.5, 6], "texture": "#0"}, + "south": {"uv": [3.25, 12.5, 3.5, 12.75], "texture": "#0"}, + "west": {"uv": [10.25, 7.25, 11.5, 7.5], "texture": "#0"}, + "up": {"uv": [7.25, 11.5, 7, 10.25], "texture": "#0"}, + "down": {"uv": [10.5, 7.5, 10.25, 8.75], "texture": "#0"} + } + }, + { + "from": [14, 5.75, 6], + "to": [15, 9.38, 7], + "rotation": {"angle": 45, "axis": "x", "origin": [14.5, 7.75, 6.5]}, + "faces": { + "north": {"uv": [0.5, 11.5, 0.75, 12.5], "texture": "#0"}, + "east": {"uv": [0.75, 11.5, 1, 12.5], "texture": "#0"}, + "south": {"uv": [1, 11.5, 1.25, 12.5], "texture": "#0"}, + "west": {"uv": [11.5, 1, 11.75, 2], "texture": "#0"}, + "up": {"uv": [3.75, 12.75, 3.5, 12.5], "texture": "#0"}, + "down": {"uv": [12.75, 3.5, 12.5, 3.75], "texture": "#0"} + } + }, + { + "from": [14, 5.75, 9], + "to": [15, 10.37, 10], + "rotation": {"angle": -45, "axis": "x", "origin": [14.5, 7.75, 9.5]}, + "faces": { + "north": {"uv": [8.5, 10.25, 8.75, 11.5], "texture": "#0"}, + "east": {"uv": [8.75, 10.25, 9, 11.5], "texture": "#0"}, + "south": {"uv": [9, 10.25, 9.25, 11.5], "texture": "#0"}, + "west": {"uv": [9.25, 10.25, 9.5, 11.5], "texture": "#0"}, + "up": {"uv": [4, 12.75, 3.75, 12.5], "texture": "#0"}, + "down": {"uv": [12.75, 3.75, 12.5, 4], "texture": "#0"} + } + }, + { + "from": [6, 5.75, 14], + "to": [7, 10.37, 15], + "rotation": {"angle": -45, "axis": "z", "origin": [6.5, 7.75, 14.5]}, + "faces": { + "north": {"uv": [9.5, 10.25, 9.75, 11.5], "texture": "#0"}, + "east": {"uv": [9.75, 10.25, 10, 11.5], "texture": "#0"}, + "south": {"uv": [10, 10.25, 10.25, 11.5], "texture": "#0"}, + "west": {"uv": [10.25, 10.25, 10.5, 11.5], "texture": "#0"}, + "up": {"uv": [4.25, 12.75, 4, 12.5], "texture": "#0"}, + "down": {"uv": [12.75, 4, 12.5, 4.25], "texture": "#0"} + } + }, + { + "from": [9, 5.75, 14], + "to": [10, 9.38, 15], + "rotation": {"angle": 45, "axis": "z", "origin": [9.5, 7.75, 14.5]}, + "faces": { + "north": {"uv": [1.25, 11.5, 1.5, 12.5], "texture": "#0"}, + "east": {"uv": [1.5, 11.5, 1.75, 12.5], "texture": "#0"}, + "south": {"uv": [1.75, 11.5, 2, 12.5], "texture": "#0"}, + "west": {"uv": [11.5, 2, 11.75, 3], "texture": "#0"}, + "up": {"uv": [4.5, 12.75, 4.25, 12.5], "texture": "#0"}, + "down": {"uv": [12.75, 4.25, 12.5, 4.5], "texture": "#0"} + } + }, + { + "from": [6, 5.75, 1], + "to": [7, 9.38, 2], + "rotation": {"angle": -45, "axis": "z", "origin": [6.5, 7.75, 1.5]}, + "faces": { + "north": {"uv": [3.75, 11.5, 4, 12.5], "texture": "#0"}, + "east": {"uv": [11.5, 4.5, 11.75, 5.5], "texture": "#0"}, + "south": {"uv": [6.25, 11.5, 6.5, 12.5], "texture": "#0"}, + "west": {"uv": [6.5, 11.5, 6.75, 12.5], "texture": "#0"}, + "up": {"uv": [4.75, 12.75, 4.5, 12.5], "texture": "#0"}, + "down": {"uv": [12.75, 4.5, 12.5, 4.75], "texture": "#0"} + } + }, + { + "from": [9, 5.75, 1], + "to": [10, 10.37, 2], + "rotation": {"angle": 45, "axis": "z", "origin": [9.5, 7.75, 1.5]}, + "faces": { + "north": {"uv": [10.5, 0, 10.75, 1.25], "texture": "#0"}, + "east": {"uv": [10.5, 1.25, 10.75, 2.5], "texture": "#0"}, + "south": {"uv": [10.5, 2.5, 10.75, 3.75], "texture": "#0"}, + "west": {"uv": [3, 10.5, 3.25, 11.75], "texture": "#0"}, + "up": {"uv": [5, 12.75, 4.75, 12.5], "texture": "#0"}, + "down": {"uv": [12.75, 4.75, 12.5, 5], "texture": "#0"} + } + } + ], + "groups": [ + { + "name": "ornaments", + "origin": [3, 8, 3], + "color": 0, + "children": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31] + }, + { + "name": "center", + "origin": [8, 8, 8], + "color": 0, + "children": [32, 33, 34] + }, + { + "name": "plates", + "origin": [8, 8, 8], + "color": 0, + "children": [35, 36, 37, 38, 39, 40] + }, + { + "name": "symbol", + "origin": [6, 8, 1], + "color": 0, + "children": [41, 42, 43, 44, 45, 46, 47, 48, 49, 50] + } + ] +} diff --git a/src/main/resources/assets/utilitiesinexcess/models/blocks/upgrade_speed_2.json b/src/main/resources/assets/utilitiesinexcess/models/blocks/upgrade_speed_2.json new file mode 100644 index 00000000..e729a6b6 --- /dev/null +++ b/src/main/resources/assets/utilitiesinexcess/models/blocks/upgrade_speed_2.json @@ -0,0 +1,831 @@ +{ + "format_version": "1.9.0", + "credit": "Made with Blockbench", + "texture_size": [64, 64], + "textures": { + "0": "utilitiesinexcess:upgrade_speed_2", + "particle": "utilitiesinexcess:upgrade_speed_2" + }, + "elements": [ + { + "from": [2, 7, 3], + "to": [4, 9, 4], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 8]}, + "faces": { + "north": {"uv": [7.5, 4, 8, 4.5], "texture": "#0"}, + "east": {"uv": [11.75, 11, 12, 11.5], "texture": "#0"}, + "south": {"uv": [7.5, 4.5, 8, 5], "texture": "#0"}, + "west": {"uv": [4, 12, 4.25, 12.5], "texture": "#0"}, + "up": {"uv": [11, 4, 10.5, 3.75], "texture": "#0"}, + "down": {"uv": [4.75, 12, 4.25, 12.25], "texture": "#0"} + } + }, + { + "from": [3, 7, 2], + "to": [4, 9, 3], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 8]}, + "faces": { + "north": {"uv": [12, 4.5, 12.25, 5], "texture": "#0"}, + "east": {"uv": [4.75, 12, 5, 12.5], "texture": "#0"}, + "south": {"uv": [5, 12, 5.25, 12.5], "texture": "#0"}, + "west": {"uv": [12, 5, 12.25, 5.5], "texture": "#0"}, + "up": {"uv": [11.25, 4, 11, 3.75], "texture": "#0"}, + "down": {"uv": [12.5, 5.5, 12.25, 5.75], "texture": "#0"} + } + }, + { + "from": [3, 11, 3], + "to": [4, 13, 4], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 8]}, + "faces": { + "north": {"uv": [12, 6, 12.25, 6.5], "texture": "#0"}, + "east": {"uv": [12, 6.5, 12.25, 7], "texture": "#0"}, + "south": {"uv": [7.25, 12, 7.5, 12.5], "texture": "#0"}, + "west": {"uv": [7.5, 12, 7.75, 12.5], "texture": "#0"}, + "up": {"uv": [13, 5.75, 12.75, 5.5], "texture": "#0"}, + "down": {"uv": [6, 12.75, 5.75, 13], "texture": "#0"} + } + }, + { + "from": [3, 3, 3], + "to": [4, 5, 4], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 8]}, + "faces": { + "north": {"uv": [7.75, 12, 8, 12.5], "texture": "#0"}, + "east": {"uv": [8, 12, 8.25, 12.5], "texture": "#0"}, + "south": {"uv": [8.25, 12, 8.5, 12.5], "texture": "#0"}, + "west": {"uv": [12, 9.25, 12.25, 9.75], "texture": "#0"}, + "up": {"uv": [13, 6, 12.75, 5.75], "texture": "#0"}, + "down": {"uv": [6.25, 12.75, 6, 13], "texture": "#0"} + } + }, + { + "from": [3, 7, 12], + "to": [4, 9, 14], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 8]}, + "faces": { + "north": {"uv": [12, 9.75, 12.25, 10.25], "texture": "#0"}, + "east": {"uv": [11.25, 0, 11.75, 0.5], "texture": "#0"}, + "south": {"uv": [12, 10.25, 12.25, 10.75], "texture": "#0"}, + "west": {"uv": [11.25, 0.5, 11.75, 1], "texture": "#0"}, + "up": {"uv": [12.25, 11.25, 12, 10.75], "texture": "#0"}, + "down": {"uv": [12.25, 11.75, 12, 12.25], "texture": "#0"} + } + }, + { + "from": [2, 7, 12], + "to": [3, 9, 13], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 8]}, + "faces": { + "north": {"uv": [12.25, 1, 12.5, 1.5], "texture": "#0"}, + "east": {"uv": [12.25, 1.5, 12.5, 2], "texture": "#0"}, + "south": {"uv": [12.25, 2, 12.5, 2.5], "texture": "#0"}, + "west": {"uv": [12.25, 2.5, 12.5, 3], "texture": "#0"}, + "up": {"uv": [13, 6.25, 12.75, 6], "texture": "#0"}, + "down": {"uv": [6.5, 12.75, 6.25, 13], "texture": "#0"} + } + }, + { + "from": [3, 11, 12], + "to": [4, 13, 13], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 8]}, + "faces": { + "north": {"uv": [12.25, 3, 12.5, 3.5], "texture": "#0"}, + "east": {"uv": [12.25, 3.5, 12.5, 4], "texture": "#0"}, + "south": {"uv": [12.25, 4, 12.5, 4.5], "texture": "#0"}, + "west": {"uv": [4.25, 12.25, 4.5, 12.75], "texture": "#0"}, + "up": {"uv": [13, 6.5, 12.75, 6.25], "texture": "#0"}, + "down": {"uv": [6.75, 12.75, 6.5, 13], "texture": "#0"} + } + }, + { + "from": [3, 3, 12], + "to": [4, 5, 13], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 8]}, + "faces": { + "north": {"uv": [4.5, 12.25, 4.75, 12.75], "texture": "#0"}, + "east": {"uv": [12.25, 4.5, 12.5, 5], "texture": "#0"}, + "south": {"uv": [12.25, 5, 12.5, 5.5], "texture": "#0"}, + "west": {"uv": [5.25, 12.25, 5.5, 12.75], "texture": "#0"}, + "up": {"uv": [13, 6.75, 12.75, 6.5], "texture": "#0"}, + "down": {"uv": [7, 12.75, 6.75, 13], "texture": "#0"} + } + }, + { + "from": [12, 7, 12], + "to": [14, 9, 13], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 8]}, + "faces": { + "north": {"uv": [11.25, 1, 11.75, 1.5], "texture": "#0"}, + "east": {"uv": [5.5, 12.25, 5.75, 12.75], "texture": "#0"}, + "south": {"uv": [11.25, 1.5, 11.75, 2], "texture": "#0"}, + "west": {"uv": [5.75, 12.25, 6, 12.75], "texture": "#0"}, + "up": {"uv": [12.5, 7.25, 12, 7], "texture": "#0"}, + "down": {"uv": [12.5, 11.25, 12, 11.5], "texture": "#0"} + } + }, + { + "from": [12, 7, 13], + "to": [13, 9, 14], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 8]}, + "faces": { + "north": {"uv": [6, 12.25, 6.25, 12.75], "texture": "#0"}, + "east": {"uv": [12.25, 6, 12.5, 6.5], "texture": "#0"}, + "south": {"uv": [12.25, 6.5, 12.5, 7], "texture": "#0"}, + "west": {"uv": [12.25, 9.25, 12.5, 9.75], "texture": "#0"}, + "up": {"uv": [13, 7, 12.75, 6.75], "texture": "#0"}, + "down": {"uv": [7.25, 12.75, 7, 13], "texture": "#0"} + } + }, + { + "from": [12, 11, 12], + "to": [13, 13, 13], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 8]}, + "faces": { + "north": {"uv": [12.25, 9.75, 12.5, 10.25], "texture": "#0"}, + "east": {"uv": [12.25, 10.25, 12.5, 10.75], "texture": "#0"}, + "south": {"uv": [12.25, 10.75, 12.5, 11.25], "texture": "#0"}, + "west": {"uv": [11, 12.25, 11.25, 12.75], "texture": "#0"}, + "up": {"uv": [7.5, 13, 7.25, 12.75], "texture": "#0"}, + "down": {"uv": [13, 7.25, 12.75, 7.5], "texture": "#0"} + } + }, + { + "from": [12, 3, 12], + "to": [13, 5, 13], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 8]}, + "faces": { + "north": {"uv": [12.25, 11.75, 12.5, 12.25], "texture": "#0"}, + "east": {"uv": [12, 12.25, 12.25, 12.75], "texture": "#0"}, + "south": {"uv": [12.25, 12.25, 12.5, 12.75], "texture": "#0"}, + "west": {"uv": [0, 12.5, 0.25, 13], "texture": "#0"}, + "up": {"uv": [7.75, 13, 7.5, 12.75], "texture": "#0"}, + "down": {"uv": [13, 7.5, 12.75, 7.75], "texture": "#0"} + } + }, + { + "from": [12, 7, 2], + "to": [13, 9, 4], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 8]}, + "faces": { + "north": {"uv": [0.25, 12.5, 0.5, 13], "texture": "#0"}, + "east": {"uv": [11.25, 2, 11.75, 2.5], "texture": "#0"}, + "south": {"uv": [12.5, 1, 12.75, 1.5], "texture": "#0"}, + "west": {"uv": [11.25, 2.5, 11.75, 3], "texture": "#0"}, + "up": {"uv": [1.75, 13, 1.5, 12.5], "texture": "#0"}, + "down": {"uv": [12.75, 1.5, 12.5, 2], "texture": "#0"} + } + }, + { + "from": [13, 7, 3], + "to": [14, 9, 4], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 8]}, + "faces": { + "north": {"uv": [1.75, 12.5, 2, 13], "texture": "#0"}, + "east": {"uv": [12.5, 2, 12.75, 2.5], "texture": "#0"}, + "south": {"uv": [12.5, 2.5, 12.75, 3], "texture": "#0"}, + "west": {"uv": [12.5, 3, 12.75, 3.5], "texture": "#0"}, + "up": {"uv": [8, 13, 7.75, 12.75], "texture": "#0"}, + "down": {"uv": [13, 7.75, 12.75, 8], "texture": "#0"} + } + }, + { + "from": [12, 11, 3], + "to": [13, 13, 4], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 8]}, + "faces": { + "north": {"uv": [12.5, 3.5, 12.75, 4], "texture": "#0"}, + "east": {"uv": [4, 12.5, 4.25, 13], "texture": "#0"}, + "south": {"uv": [12.5, 4, 12.75, 4.5], "texture": "#0"}, + "west": {"uv": [12.5, 4.5, 12.75, 5], "texture": "#0"}, + "up": {"uv": [8.25, 13, 8, 12.75], "texture": "#0"}, + "down": {"uv": [13, 8, 12.75, 8.25], "texture": "#0"} + } + }, + { + "from": [12, 3, 3], + "to": [13, 5, 4], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 8]}, + "faces": { + "north": {"uv": [4.75, 12.5, 5, 13], "texture": "#0"}, + "east": {"uv": [5, 12.5, 5.25, 13], "texture": "#0"}, + "south": {"uv": [12.5, 5, 12.75, 5.5], "texture": "#0"}, + "west": {"uv": [12.5, 5.5, 12.75, 6], "texture": "#0"}, + "up": {"uv": [13, 8.5, 12.75, 8.25], "texture": "#0"}, + "down": {"uv": [8.75, 12.75, 8.5, 13], "texture": "#0"} + } + }, + { + "from": [7, 12, 2], + "to": [9, 14, 3], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 8]}, + "faces": { + "north": {"uv": [11.25, 3, 11.75, 3.5], "texture": "#0"}, + "east": {"uv": [12.5, 6, 12.75, 6.5], "texture": "#0"}, + "south": {"uv": [11.25, 3.5, 11.75, 4], "texture": "#0"}, + "west": {"uv": [12.5, 6.5, 12.75, 7], "texture": "#0"}, + "up": {"uv": [12.75, 8.5, 12.25, 8.25], "texture": "#0"}, + "down": {"uv": [13, 7, 12.5, 7.25], "texture": "#0"} + } + }, + { + "from": [7, 13, 3], + "to": [9, 14, 4], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 8]}, + "faces": { + "north": {"uv": [7.25, 12.5, 7.75, 12.75], "texture": "#0"}, + "east": {"uv": [8.75, 12.75, 9, 13], "texture": "#0"}, + "south": {"uv": [7.75, 12.5, 8.25, 12.75], "texture": "#0"}, + "west": {"uv": [9, 12.75, 9.25, 13], "texture": "#0"}, + "up": {"uv": [13, 8.75, 12.5, 8.5], "texture": "#0"}, + "down": {"uv": [13, 8.75, 12.5, 9], "texture": "#0"} + } + }, + { + "from": [13, 12, 7], + "to": [14, 14, 9], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 8]}, + "faces": { + "north": {"uv": [8.25, 12.5, 8.5, 13], "texture": "#0"}, + "east": {"uv": [11.25, 4.5, 11.75, 5], "texture": "#0"}, + "south": {"uv": [12.5, 9, 12.75, 9.5], "texture": "#0"}, + "west": {"uv": [11.25, 5, 11.75, 5.5], "texture": "#0"}, + "up": {"uv": [12.75, 10, 12.5, 9.5], "texture": "#0"}, + "down": {"uv": [12.75, 10, 12.5, 10.5], "texture": "#0"} + } + }, + { + "from": [12, 13, 7], + "to": [13, 14, 9], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 8]}, + "faces": { + "north": {"uv": [12.75, 9, 13, 9.25], "texture": "#0"}, + "east": {"uv": [12.5, 10.5, 13, 10.75], "texture": "#0"}, + "south": {"uv": [9.25, 12.75, 9.5, 13], "texture": "#0"}, + "west": {"uv": [12.5, 10.75, 13, 11], "texture": "#0"}, + "up": {"uv": [12.75, 11.5, 12.5, 11], "texture": "#0"}, + "down": {"uv": [11.5, 12.5, 11.25, 13], "texture": "#0"} + } + }, + { + "from": [7, 12, 13], + "to": [9, 14, 14], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 8]}, + "faces": { + "north": {"uv": [11.25, 7.25, 11.75, 7.75], "texture": "#0"}, + "east": {"uv": [12.5, 11.5, 12.75, 12], "texture": "#0"}, + "south": {"uv": [11.25, 7.75, 11.75, 8.25], "texture": "#0"}, + "west": {"uv": [12.5, 12, 12.75, 12.5], "texture": "#0"}, + "up": {"uv": [13, 12.75, 12.5, 12.5], "texture": "#0"}, + "down": {"uv": [13.25, 0, 12.75, 0.25], "texture": "#0"} + } + }, + { + "from": [7, 13, 12], + "to": [9, 14, 13], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 8]}, + "faces": { + "north": {"uv": [12.75, 0.25, 13.25, 0.5], "texture": "#0"}, + "east": {"uv": [12.75, 9.25, 13, 9.5], "texture": "#0"}, + "south": {"uv": [12.75, 0.5, 13.25, 0.75], "texture": "#0"}, + "west": {"uv": [9.5, 12.75, 9.75, 13], "texture": "#0"}, + "up": {"uv": [13.25, 1, 12.75, 0.75], "texture": "#0"}, + "down": {"uv": [13.25, 1, 12.75, 1.25], "texture": "#0"} + } + }, + { + "from": [2, 12, 7], + "to": [3, 14, 9], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 8]}, + "faces": { + "north": {"uv": [12.75, 1.25, 13, 1.75], "texture": "#0"}, + "east": {"uv": [11.25, 10, 11.75, 10.5], "texture": "#0"}, + "south": {"uv": [12.75, 1.75, 13, 2.25], "texture": "#0"}, + "west": {"uv": [10.5, 11.25, 11, 11.75], "texture": "#0"}, + "up": {"uv": [13, 2.75, 12.75, 2.25], "texture": "#0"}, + "down": {"uv": [13, 2.75, 12.75, 3.25], "texture": "#0"} + } + }, + { + "from": [3, 13, 7], + "to": [4, 14, 9], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 8]}, + "faces": { + "north": {"uv": [12.75, 9.5, 13, 9.75], "texture": "#0"}, + "east": {"uv": [3, 12.75, 3.5, 13], "texture": "#0"}, + "south": {"uv": [9.75, 12.75, 10, 13], "texture": "#0"}, + "west": {"uv": [12.75, 3.25, 13.25, 3.5], "texture": "#0"}, + "up": {"uv": [3.75, 13.25, 3.5, 12.75], "texture": "#0"}, + "down": {"uv": [13, 3.5, 12.75, 4], "texture": "#0"} + } + }, + { + "from": [3, 2, 6], + "to": [4, 3, 10], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 8]}, + "faces": { + "north": {"uv": [12.75, 9.75, 13, 10], "texture": "#0"}, + "east": {"uv": [11.25, 5.5, 12.25, 5.75], "texture": "#0"}, + "south": {"uv": [10, 12.75, 10.25, 13], "texture": "#0"}, + "west": {"uv": [11.25, 8.25, 12.25, 8.5], "texture": "#0"}, + "up": {"uv": [11.5, 11.5, 11.25, 10.5], "texture": "#0"}, + "down": {"uv": [11.25, 11.25, 11, 12.25], "texture": "#0"} + } + }, + { + "from": [2, 2, 6], + "to": [3, 4, 10], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 8]}, + "faces": { + "north": {"uv": [3.75, 12.75, 4, 13.25], "texture": "#0"}, + "east": {"uv": [6.5, 4, 7.5, 4.5], "texture": "#0"}, + "south": {"uv": [12.75, 4, 13, 4.5], "texture": "#0"}, + "west": {"uv": [6.5, 4.5, 7.5, 5], "texture": "#0"}, + "up": {"uv": [0.25, 12.5, 0, 11.5], "texture": "#0"}, + "down": {"uv": [0.5, 11.5, 0.25, 12.5], "texture": "#0"} + } + }, + { + "from": [6, 2, 12], + "to": [10, 3, 13], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 8]}, + "faces": { + "north": {"uv": [0.5, 11.5, 1.5, 11.75], "texture": "#0"}, + "east": {"uv": [12.75, 10, 13, 10.25], "texture": "#0"}, + "south": {"uv": [11.5, 5.75, 12.5, 6], "texture": "#0"}, + "west": {"uv": [10.25, 12.75, 10.5, 13], "texture": "#0"}, + "up": {"uv": [7.25, 11.75, 6.25, 11.5], "texture": "#0"}, + "down": {"uv": [9.5, 11.5, 8.5, 11.75], "texture": "#0"} + } + }, + { + "from": [6, 2, 13], + "to": [10, 4, 14], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 8]}, + "faces": { + "north": {"uv": [3, 9.5, 4, 10], "texture": "#0"}, + "east": {"uv": [4.25, 12.75, 4.5, 13.25], "texture": "#0"}, + "south": {"uv": [4, 9.5, 5, 10], "texture": "#0"}, + "west": {"uv": [4.5, 12.75, 4.75, 13.25], "texture": "#0"}, + "up": {"uv": [12.5, 8.75, 11.5, 8.5], "texture": "#0"}, + "down": {"uv": [12.5, 8.75, 11.5, 9], "texture": "#0"} + } + }, + { + "from": [12, 2, 6], + "to": [13, 3, 10], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 8]}, + "faces": { + "north": {"uv": [12.75, 10.25, 13, 10.5], "texture": "#0"}, + "east": {"uv": [11.5, 9, 12.5, 9.25], "texture": "#0"}, + "south": {"uv": [10.5, 12.75, 10.75, 13], "texture": "#0"}, + "west": {"uv": [9.5, 11.5, 10.5, 11.75], "texture": "#0"}, + "up": {"uv": [1.75, 12.5, 1.5, 11.5], "texture": "#0"}, + "down": {"uv": [2, 11.5, 1.75, 12.5], "texture": "#0"} + } + }, + { + "from": [13, 2, 6], + "to": [14, 4, 10], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 8]}, + "faces": { + "north": {"uv": [12.75, 4.5, 13, 5], "texture": "#0"}, + "east": {"uv": [5, 9.5, 6, 10], "texture": "#0"}, + "south": {"uv": [12.75, 5, 13, 5.5], "texture": "#0"}, + "west": {"uv": [6, 9.5, 7, 10], "texture": "#0"}, + "up": {"uv": [11.75, 11.5, 11.5, 10.5], "texture": "#0"}, + "down": {"uv": [11.5, 11.5, 11.25, 12.5], "texture": "#0"} + } + }, + { + "from": [6, 2, 3], + "to": [10, 3, 4], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 8]}, + "faces": { + "north": {"uv": [11.5, 11.5, 12.5, 11.75], "texture": "#0"}, + "east": {"uv": [10.75, 12.75, 11, 13], "texture": "#0"}, + "south": {"uv": [11.75, 0, 12.75, 0.25], "texture": "#0"}, + "west": {"uv": [11, 12.75, 11.25, 13], "texture": "#0"}, + "up": {"uv": [12.75, 0.5, 11.75, 0.25], "texture": "#0"}, + "down": {"uv": [1.5, 11.75, 0.5, 12], "texture": "#0"} + } + }, + { + "from": [6, 2, 2], + "to": [10, 4, 3], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 8]}, + "faces": { + "north": {"uv": [7, 9.5, 8, 10], "texture": "#0"}, + "east": {"uv": [5.25, 12.75, 5.5, 13.25], "texture": "#0"}, + "south": {"uv": [3, 10, 4, 10.5], "texture": "#0"}, + "west": {"uv": [5.5, 12.75, 5.75, 13.25], "texture": "#0"}, + "up": {"uv": [12.75, 0.75, 11.75, 0.5], "texture": "#0"}, + "down": {"uv": [12.75, 0.75, 11.75, 1], "texture": "#0"} + } + }, + { + "from": [12, 3, 4], + "to": [13, 13, 12], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 8]}, + "faces": { + "north": {"uv": [2, 9.5, 2.25, 12], "texture": "#0"}, + "east": {"uv": [2.5, 0, 4.5, 2.5], "texture": "#0"}, + "south": {"uv": [2.25, 9.5, 2.5, 12], "texture": "#0"}, + "west": {"uv": [2.5, 2.5, 4.5, 5], "texture": "#0"}, + "up": {"uv": [4.25, 12, 4, 10], "texture": "#0"}, + "down": {"uv": [10.25, 4, 10, 6], "texture": "#0"} + } + }, + { + "from": [3, 3, 4], + "to": [4, 13, 12], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 8]}, + "faces": { + "north": {"uv": [2.5, 9.5, 2.75, 12], "texture": "#0"}, + "east": {"uv": [4.5, 0, 6.5, 2.5], "texture": "#0"}, + "south": {"uv": [2.75, 9.5, 3, 12], "texture": "#0"}, + "west": {"uv": [4.5, 2.5, 6.5, 5], "texture": "#0"}, + "up": {"uv": [4.5, 12, 4.25, 10], "texture": "#0"}, + "down": {"uv": [4.75, 10, 4.5, 12], "texture": "#0"} + } + }, + { + "name": "base", + "from": [4, 3, 3], + "to": [12, 13, 13], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 8]}, + "faces": { + "north": {"uv": [0, 5, 2, 7.5], "texture": "#0"}, + "east": {"uv": [0, 0, 2.5, 2.5], "texture": "#0"}, + "south": {"uv": [2, 5, 4, 7.5], "texture": "#0"}, + "west": {"uv": [0, 2.5, 2.5, 5], "texture": "#0"}, + "up": {"uv": [6, 7.5, 4, 5], "texture": "#0"}, + "down": {"uv": [8, 5, 6, 7.5], "texture": "#0"} + } + }, + { + "from": [4, 4, 13], + "to": [12, 12, 14], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 8]}, + "faces": { + "north": {"uv": [6.5, 0, 8.5, 2], "texture": "#0"}, + "east": {"uv": [4.75, 10, 5, 12], "texture": "#0"}, + "south": {"uv": [6.5, 2, 8.5, 4], "texture": "#0"}, + "west": {"uv": [5, 10, 5.25, 12], "texture": "#0"}, + "up": {"uv": [7.25, 10.25, 5.25, 10], "texture": "#0"}, + "down": {"uv": [12, 6, 10, 6.25], "texture": "#0"} + } + }, + { + "from": [4, 13, 4], + "to": [12, 14, 12], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 8]}, + "faces": { + "north": {"uv": [10, 6.25, 12, 6.5], "texture": "#0"}, + "east": {"uv": [10, 6.5, 12, 6.75], "texture": "#0"}, + "south": {"uv": [10, 6.75, 12, 7], "texture": "#0"}, + "west": {"uv": [10, 7, 12, 7.25], "texture": "#0"}, + "up": {"uv": [2, 9.5, 0, 7.5], "texture": "#0"}, + "down": {"uv": [4, 7.5, 2, 9.5], "texture": "#0"} + } + }, + { + "from": [13, 4, 4], + "to": [14, 12, 12], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 8]}, + "faces": { + "north": {"uv": [7.25, 10, 7.5, 12], "texture": "#0"}, + "east": {"uv": [4, 7.5, 6, 9.5], "texture": "#0"}, + "south": {"uv": [10, 7.25, 10.25, 9.25], "texture": "#0"}, + "west": {"uv": [6, 7.5, 8, 9.5], "texture": "#0"}, + "up": {"uv": [7.75, 12, 7.5, 10], "texture": "#0"}, + "down": {"uv": [8, 10, 7.75, 12], "texture": "#0"} + } + }, + { + "from": [4, 4, 2], + "to": [12, 12, 3], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 8]}, + "faces": { + "north": {"uv": [8, 4, 10, 6], "texture": "#0"}, + "east": {"uv": [8, 10, 8.25, 12], "texture": "#0"}, + "south": {"uv": [8, 6, 10, 8], "texture": "#0"}, + "west": {"uv": [8.25, 10, 8.5, 12], "texture": "#0"}, + "up": {"uv": [10.5, 10.25, 8.5, 10], "texture": "#0"}, + "down": {"uv": [12, 9.25, 10, 9.5], "texture": "#0"} + } + }, + { + "from": [4, 2, 4], + "to": [12, 3, 12], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 8]}, + "faces": { + "north": {"uv": [10, 9.5, 12, 9.75], "texture": "#0"}, + "east": {"uv": [10, 9.75, 12, 10], "texture": "#0"}, + "south": {"uv": [10.25, 4, 12.25, 4.25], "texture": "#0"}, + "west": {"uv": [10.25, 4.25, 12.25, 4.5], "texture": "#0"}, + "up": {"uv": [10, 10, 8, 8], "texture": "#0"}, + "down": {"uv": [10.5, 0, 8.5, 2], "texture": "#0"} + } + }, + { + "from": [2, 4, 4], + "to": [3, 12, 12], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 8]}, + "faces": { + "north": {"uv": [5.25, 10.25, 5.5, 12.25], "texture": "#0"}, + "east": {"uv": [8.5, 2, 10.5, 4], "texture": "#0"}, + "south": {"uv": [5.5, 10.25, 5.75, 12.25], "texture": "#0"}, + "west": {"uv": [0, 9.5, 2, 11.5], "texture": "#0"}, + "up": {"uv": [6, 12.25, 5.75, 10.25], "texture": "#0"}, + "down": {"uv": [6.25, 10.25, 6, 12.25], "texture": "#0"} + } + }, + { + "from": [6, 4.75, 1], + "to": [7, 8.38, 2], + "rotation": {"angle": -45, "axis": "z", "origin": [6.5, 6.75, 1.5]}, + "faces": { + "north": {"uv": [11.75, 1, 12, 2], "texture": "#0"}, + "east": {"uv": [11.75, 2, 12, 3], "texture": "#0"}, + "south": {"uv": [3, 11.75, 3.25, 12.75], "texture": "#0"}, + "west": {"uv": [11.75, 3, 12, 4], "texture": "#0"}, + "up": {"uv": [13, 11.25, 12.75, 11], "texture": "#0"}, + "down": {"uv": [13, 11.25, 12.75, 11.5], "texture": "#0"} + } + }, + { + "from": [1, 4.75, 6], + "to": [2, 9.37, 7], + "rotation": {"angle": 45, "axis": "x", "origin": [1.5, 6.75, 6.5]}, + "faces": { + "north": {"uv": [10.25, 4.5, 10.5, 5.75], "texture": "#0"}, + "east": {"uv": [6.25, 10.25, 6.5, 11.5], "texture": "#0"}, + "south": {"uv": [6.5, 10.25, 6.75, 11.5], "texture": "#0"}, + "west": {"uv": [6.75, 10.25, 7, 11.5], "texture": "#0"}, + "up": {"uv": [11.75, 13, 11.5, 12.75], "texture": "#0"}, + "down": {"uv": [13, 11.5, 12.75, 11.75], "texture": "#0"} + } + }, + { + "from": [1, 6.75, 9], + "to": [2, 10.38, 10], + "rotation": {"angle": -45, "axis": "x", "origin": [1.5, 8.75, 9.5]}, + "faces": { + "north": {"uv": [3.25, 11.75, 3.5, 12.75], "texture": "#0"}, + "east": {"uv": [3.5, 11.75, 3.75, 12.75], "texture": "#0"}, + "south": {"uv": [3.75, 11.75, 4, 12.75], "texture": "#0"}, + "west": {"uv": [11.75, 4.5, 12, 5.5], "texture": "#0"}, + "up": {"uv": [12, 13, 11.75, 12.75], "texture": "#0"}, + "down": {"uv": [13, 11.75, 12.75, 12], "texture": "#0"} + } + }, + { + "from": [1, 6.75, 6], + "to": [2, 11.37, 7], + "rotation": {"angle": 45, "axis": "x", "origin": [1.5, 8.75, 6.5]}, + "faces": { + "north": {"uv": [7, 10.25, 7.25, 11.5], "texture": "#0"}, + "east": {"uv": [10.25, 7.25, 10.5, 8.5], "texture": "#0"}, + "south": {"uv": [8.5, 10.25, 8.75, 11.5], "texture": "#0"}, + "west": {"uv": [8.75, 10.25, 9, 11.5], "texture": "#0"}, + "up": {"uv": [12.25, 13, 12, 12.75], "texture": "#0"}, + "down": {"uv": [13, 12, 12.75, 12.25], "texture": "#0"} + } + }, + { + "from": [1, 4.75, 9], + "to": [2, 8.38, 10], + "rotation": {"angle": -45, "axis": "x", "origin": [1.5, 6.75, 9.5]}, + "faces": { + "north": {"uv": [6.25, 11.75, 6.5, 12.75], "texture": "#0"}, + "east": {"uv": [6.5, 11.75, 6.75, 12.75], "texture": "#0"}, + "south": {"uv": [6.75, 11.75, 7, 12.75], "texture": "#0"}, + "west": {"uv": [7, 11.75, 7.25, 12.75], "texture": "#0"}, + "up": {"uv": [12.5, 13, 12.25, 12.75], "texture": "#0"}, + "down": {"uv": [13, 12.25, 12.75, 12.5], "texture": "#0"} + } + }, + { + "from": [6, 4.75, 14], + "to": [7, 9.37, 15], + "rotation": {"angle": -45, "axis": "z", "origin": [6.5, 6.75, 14.5]}, + "faces": { + "north": {"uv": [9, 10.25, 9.25, 11.5], "texture": "#0"}, + "east": {"uv": [9.25, 10.25, 9.5, 11.5], "texture": "#0"}, + "south": {"uv": [9.5, 10.25, 9.75, 11.5], "texture": "#0"}, + "west": {"uv": [9.75, 10.25, 10, 11.5], "texture": "#0"}, + "up": {"uv": [12.75, 13, 12.5, 12.75], "texture": "#0"}, + "down": {"uv": [13, 12.75, 12.75, 13], "texture": "#0"} + } + }, + { + "from": [9, 14, 7.62], + "to": [10, 15, 11.25], + "rotation": {"angle": 45, "axis": "y", "origin": [9.5, 14.75, 9.25]}, + "faces": { + "north": {"uv": [0, 13, 0.25, 13.25], "texture": "#0"}, + "east": {"uv": [11.75, 7.25, 12.75, 7.5], "texture": "#0"}, + "south": {"uv": [0.25, 13, 0.5, 13.25], "texture": "#0"}, + "west": {"uv": [11.75, 7.5, 12.75, 7.75], "texture": "#0"}, + "up": {"uv": [8.75, 12.75, 8.5, 11.75], "texture": "#0"}, + "down": {"uv": [9, 11.75, 8.75, 12.75], "texture": "#0"} + } + }, + { + "from": [6, 14, 6.63], + "to": [7, 15, 11.25], + "rotation": {"angle": -45, "axis": "y", "origin": [6.5, 14.75, 9.25]}, + "faces": { + "north": {"uv": [0.5, 13, 0.75, 13.25], "texture": "#0"}, + "east": {"uv": [10.25, 5.75, 11.5, 6], "texture": "#0"}, + "south": {"uv": [0.75, 13, 1, 13.25], "texture": "#0"}, + "west": {"uv": [10.25, 8.5, 11.5, 8.75], "texture": "#0"}, + "up": {"uv": [10.25, 11.5, 10, 10.25], "texture": "#0"}, + "down": {"uv": [10.5, 10.25, 10.25, 11.5], "texture": "#0"} + } + }, + { + "from": [9, 14, 5.62], + "to": [10, 15, 9.25], + "rotation": {"angle": 45, "axis": "y", "origin": [9.5, 14.75, 7.25]}, + "faces": { + "north": {"uv": [1, 13, 1.25, 13.25], "texture": "#0"}, + "east": {"uv": [11.75, 7.75, 12.75, 8], "texture": "#0"}, + "south": {"uv": [1.25, 13, 1.5, 13.25], "texture": "#0"}, + "west": {"uv": [11.75, 8, 12.75, 8.25], "texture": "#0"}, + "up": {"uv": [9.25, 12.75, 9, 11.75], "texture": "#0"}, + "down": {"uv": [9.5, 11.75, 9.25, 12.75], "texture": "#0"} + } + }, + { + "from": [6, 14, 4.63], + "to": [7, 15, 9.25], + "rotation": {"angle": -45, "axis": "y", "origin": [6.5, 14.75, 7.25]}, + "faces": { + "north": {"uv": [13, 1.25, 13.25, 1.5], "texture": "#0"}, + "east": {"uv": [10.25, 8.75, 11.5, 9], "texture": "#0"}, + "south": {"uv": [1.5, 13, 1.75, 13.25], "texture": "#0"}, + "west": {"uv": [10.25, 9, 11.5, 9.25], "texture": "#0"}, + "up": {"uv": [10.75, 1.25, 10.5, 0], "texture": "#0"}, + "down": {"uv": [10.75, 1.25, 10.5, 2.5], "texture": "#0"} + } + }, + { + "from": [14, 4.75, 6], + "to": [15, 8.38, 7], + "rotation": {"angle": 45, "axis": "x", "origin": [14.5, 6.75, 6.5]}, + "faces": { + "north": {"uv": [9.5, 11.75, 9.75, 12.75], "texture": "#0"}, + "east": {"uv": [9.75, 11.75, 10, 12.75], "texture": "#0"}, + "south": {"uv": [10, 11.75, 10.25, 12.75], "texture": "#0"}, + "west": {"uv": [11.75, 10, 12, 11], "texture": "#0"}, + "up": {"uv": [13.25, 1.75, 13, 1.5], "texture": "#0"}, + "down": {"uv": [2, 13, 1.75, 13.25], "texture": "#0"} + } + }, + { + "from": [14, 4.75, 9], + "to": [15, 9.37, 10], + "rotation": {"angle": -45, "axis": "x", "origin": [14.5, 6.75, 9.5]}, + "faces": { + "north": {"uv": [10.5, 2.5, 10.75, 3.75], "texture": "#0"}, + "east": {"uv": [3, 10.5, 3.25, 11.75], "texture": "#0"}, + "south": {"uv": [3.25, 10.5, 3.5, 11.75], "texture": "#0"}, + "west": {"uv": [3.5, 10.5, 3.75, 11.75], "texture": "#0"}, + "up": {"uv": [13.25, 2, 13, 1.75], "texture": "#0"}, + "down": {"uv": [2.25, 13, 2, 13.25], "texture": "#0"} + } + }, + { + "from": [14, 6.75, 6], + "to": [15, 10.38, 7], + "rotation": {"angle": 45, "axis": "x", "origin": [14.5, 8.75, 6.5]}, + "faces": { + "north": {"uv": [10.25, 11.75, 10.5, 12.75], "texture": "#0"}, + "east": {"uv": [10.5, 11.75, 10.75, 12.75], "texture": "#0"}, + "south": {"uv": [10.75, 11.75, 11, 12.75], "texture": "#0"}, + "west": {"uv": [11.5, 11.75, 11.75, 12.75], "texture": "#0"}, + "up": {"uv": [13.25, 2.25, 13, 2], "texture": "#0"}, + "down": {"uv": [2.5, 13, 2.25, 13.25], "texture": "#0"} + } + }, + { + "from": [14, 6.75, 9], + "to": [15, 11.37, 10], + "rotation": {"angle": -45, "axis": "x", "origin": [14.5, 8.75, 9.5]}, + "faces": { + "north": {"uv": [3.75, 10.5, 4, 11.75], "texture": "#0"}, + "east": {"uv": [10.5, 4.5, 10.75, 5.75], "texture": "#0"}, + "south": {"uv": [10.5, 7.25, 10.75, 8.5], "texture": "#0"}, + "west": {"uv": [10.5, 10, 10.75, 11.25], "texture": "#0"}, + "up": {"uv": [13.25, 2.5, 13, 2.25], "texture": "#0"}, + "down": {"uv": [2.75, 13, 2.5, 13.25], "texture": "#0"} + } + }, + { + "from": [9, 4.75, 14], + "to": [10, 8.38, 15], + "rotation": {"angle": 45, "axis": "z", "origin": [9.5, 6.75, 14.5]}, + "faces": { + "north": {"uv": [11.75, 11.75, 12, 12.75], "texture": "#0"}, + "east": {"uv": [0.5, 12, 0.75, 13], "texture": "#0"}, + "south": {"uv": [0.75, 12, 1, 13], "texture": "#0"}, + "west": {"uv": [1, 12, 1.25, 13], "texture": "#0"}, + "up": {"uv": [13.25, 2.75, 13, 2.5], "texture": "#0"}, + "down": {"uv": [3, 13, 2.75, 13.25], "texture": "#0"} + } + }, + { + "from": [6, 6.75, 14], + "to": [7, 11.37, 15], + "rotation": {"angle": -45, "axis": "z", "origin": [6.5, 8.75, 14.5]}, + "faces": { + "north": {"uv": [10.75, 0, 11, 1.25], "texture": "#0"}, + "east": {"uv": [10.75, 1.25, 11, 2.5], "texture": "#0"}, + "south": {"uv": [10.75, 2.5, 11, 3.75], "texture": "#0"}, + "west": {"uv": [10.75, 4.5, 11, 5.75], "texture": "#0"}, + "up": {"uv": [13.25, 3, 13, 2.75], "texture": "#0"}, + "down": {"uv": [3.25, 13, 3, 13.25], "texture": "#0"} + } + }, + { + "from": [9, 6.75, 14], + "to": [10, 10.38, 15], + "rotation": {"angle": 45, "axis": "z", "origin": [9.5, 8.75, 14.5]}, + "faces": { + "north": {"uv": [12, 1, 12.25, 2], "texture": "#0"}, + "east": {"uv": [1.25, 12, 1.5, 13], "texture": "#0"}, + "south": {"uv": [2, 12, 2.25, 13], "texture": "#0"}, + "west": {"uv": [12, 2, 12.25, 3], "texture": "#0"}, + "up": {"uv": [13.25, 3.25, 13, 3], "texture": "#0"}, + "down": {"uv": [3.5, 13, 3.25, 13.25], "texture": "#0"} + } + }, + { + "from": [9, 4.75, 1], + "to": [10, 9.37, 2], + "rotation": {"angle": 45, "axis": "z", "origin": [9.5, 6.75, 1.5]}, + "faces": { + "north": {"uv": [10.75, 7.25, 11, 8.5], "texture": "#0"}, + "east": {"uv": [10.75, 10, 11, 11.25], "texture": "#0"}, + "south": {"uv": [11, 0, 11.25, 1.25], "texture": "#0"}, + "west": {"uv": [11, 1.25, 11.25, 2.5], "texture": "#0"}, + "up": {"uv": [13.25, 3.75, 13, 3.5], "texture": "#0"}, + "down": {"uv": [13.25, 3.75, 13, 4], "texture": "#0"} + } + }, + { + "from": [6, 6.75, 1], + "to": [7, 10.38, 2], + "rotation": {"angle": -45, "axis": "z", "origin": [6.5, 8.75, 1.5]}, + "faces": { + "north": {"uv": [2.25, 12, 2.5, 13], "texture": "#0"}, + "east": {"uv": [2.5, 12, 2.75, 13], "texture": "#0"}, + "south": {"uv": [2.75, 12, 3, 13], "texture": "#0"}, + "west": {"uv": [12, 3, 12.25, 4], "texture": "#0"}, + "up": {"uv": [4.25, 13.25, 4, 13], "texture": "#0"}, + "down": {"uv": [13.25, 4, 13, 4.25], "texture": "#0"} + } + }, + { + "from": [9, 6.75, 1], + "to": [10, 11.37, 2], + "rotation": {"angle": 45, "axis": "z", "origin": [9.5, 8.75, 1.5]}, + "faces": { + "north": {"uv": [11, 2.5, 11.25, 3.75], "texture": "#0"}, + "east": {"uv": [11, 4.5, 11.25, 5.75], "texture": "#0"}, + "south": {"uv": [11, 7.25, 11.25, 8.5], "texture": "#0"}, + "west": {"uv": [11, 10, 11.25, 11.25], "texture": "#0"}, + "up": {"uv": [13.25, 4.5, 13, 4.25], "texture": "#0"}, + "down": {"uv": [13.25, 4.5, 13, 4.75], "texture": "#0"} + } + } + ], + "groups": [ + { + "name": "ornaments", + "origin": [3, 8, 3], + "color": 0, + "children": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31] + }, + { + "name": "center", + "origin": [8, 8, 8], + "color": 0, + "children": [32, 33, 34] + }, + { + "name": "plates", + "origin": [8, 8, 8], + "color": 0, + "children": [35, 36, 37, 38, 39, 40] + }, + { + "name": "symbol", + "origin": [6, 8, 1], + "color": 0, + "children": [41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60] + } + ] +} diff --git a/src/main/resources/assets/utilitiesinexcess/models/blocks/upgrade_speed_3.json b/src/main/resources/assets/utilitiesinexcess/models/blocks/upgrade_speed_3.json new file mode 100644 index 00000000..c721e553 --- /dev/null +++ b/src/main/resources/assets/utilitiesinexcess/models/blocks/upgrade_speed_3.json @@ -0,0 +1,961 @@ +{ + "format_version": "1.9.0", + "credit": "Made with Blockbench", + "texture_size": [64, 64], + "textures": { + "0": "utilitiesinexcess:upgrade_speed_3", + "particle": "utilitiesinexcess:upgrade_speed_3" + }, + "elements": [ + { + "from": [2, 7, 3], + "to": [4, 9, 4], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 8]}, + "faces": { + "north": {"uv": [7.5, 4, 8, 4.5], "texture": "#0"}, + "east": {"uv": [12, 9.5, 12.25, 10], "texture": "#0"}, + "south": {"uv": [7.5, 4.5, 8, 5], "texture": "#0"}, + "west": {"uv": [12.25, 5, 12.5, 5.5], "texture": "#0"}, + "up": {"uv": [13, 5.25, 12.5, 5], "texture": "#0"}, + "down": {"uv": [13, 5.25, 12.5, 5.5], "texture": "#0"} + } + }, + { + "from": [3, 7, 2], + "to": [4, 9, 3], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 8]}, + "faces": { + "north": {"uv": [12.25, 9.5, 12.5, 10], "texture": "#0"}, + "east": {"uv": [12.5, 10.5, 12.75, 11], "texture": "#0"}, + "south": {"uv": [10.75, 12.5, 11, 13], "texture": "#0"}, + "west": {"uv": [11, 12.5, 11.25, 13], "texture": "#0"}, + "up": {"uv": [13.5, 0.25, 13.25, 0], "texture": "#0"}, + "down": {"uv": [0.5, 13.25, 0.25, 13.5], "texture": "#0"} + } + }, + { + "from": [3, 11, 3], + "to": [4, 13, 4], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 8]}, + "faces": { + "north": {"uv": [12.5, 11, 12.75, 11.5], "texture": "#0"}, + "east": {"uv": [11.25, 12.5, 11.5, 13], "texture": "#0"}, + "south": {"uv": [11.5, 12.5, 11.75, 13], "texture": "#0"}, + "west": {"uv": [12.5, 11.5, 12.75, 12], "texture": "#0"}, + "up": {"uv": [13.5, 0.5, 13.25, 0.25], "texture": "#0"}, + "down": {"uv": [0.75, 13.25, 0.5, 13.5], "texture": "#0"} + } + }, + { + "from": [3, 3, 3], + "to": [4, 5, 4], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 8]}, + "faces": { + "north": {"uv": [11.75, 12.5, 12, 13], "texture": "#0"}, + "east": {"uv": [12, 12.5, 12.25, 13], "texture": "#0"}, + "south": {"uv": [12.5, 12, 12.75, 12.5], "texture": "#0"}, + "west": {"uv": [12.25, 12.5, 12.5, 13], "texture": "#0"}, + "up": {"uv": [13.5, 0.75, 13.25, 0.5], "texture": "#0"}, + "down": {"uv": [1, 13.25, 0.75, 13.5], "texture": "#0"} + } + }, + { + "from": [3, 7, 12], + "to": [4, 9, 14], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 8]}, + "faces": { + "north": {"uv": [12.5, 12.5, 12.75, 13], "texture": "#0"}, + "east": {"uv": [10.5, 4.75, 11, 5.25], "texture": "#0"}, + "south": {"uv": [0, 12.75, 0.25, 13.25], "texture": "#0"}, + "west": {"uv": [10.5, 5.25, 11, 5.75], "texture": "#0"}, + "up": {"uv": [13, 0.5, 12.75, 0], "texture": "#0"}, + "down": {"uv": [0.5, 12.75, 0.25, 13.25], "texture": "#0"} + } + }, + { + "from": [2, 7, 12], + "to": [3, 9, 13], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 8]}, + "faces": { + "north": {"uv": [0.5, 12.75, 0.75, 13.25], "texture": "#0"}, + "east": {"uv": [12.75, 0.5, 13, 1], "texture": "#0"}, + "south": {"uv": [0.75, 12.75, 1, 13.25], "texture": "#0"}, + "west": {"uv": [1, 12.75, 1.25, 13.25], "texture": "#0"}, + "up": {"uv": [13.5, 1, 13.25, 0.75], "texture": "#0"}, + "down": {"uv": [1.25, 13.25, 1, 13.5], "texture": "#0"} + } + }, + { + "from": [3, 11, 12], + "to": [4, 13, 13], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 8]}, + "faces": { + "north": {"uv": [1.25, 12.75, 1.5, 13.25], "texture": "#0"}, + "east": {"uv": [1.5, 12.75, 1.75, 13.25], "texture": "#0"}, + "south": {"uv": [1.75, 12.75, 2, 13.25], "texture": "#0"}, + "west": {"uv": [12.75, 2, 13, 2.5], "texture": "#0"}, + "up": {"uv": [13.5, 1.25, 13.25, 1], "texture": "#0"}, + "down": {"uv": [1.5, 13.25, 1.25, 13.5], "texture": "#0"} + } + }, + { + "from": [3, 3, 12], + "to": [4, 5, 13], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 8]}, + "faces": { + "north": {"uv": [12.75, 2.5, 13, 3], "texture": "#0"}, + "east": {"uv": [12.75, 3, 13, 3.5], "texture": "#0"}, + "south": {"uv": [12.75, 3.5, 13, 4], "texture": "#0"}, + "west": {"uv": [12.75, 4, 13, 4.5], "texture": "#0"}, + "up": {"uv": [13.5, 1.5, 13.25, 1.25], "texture": "#0"}, + "down": {"uv": [1.75, 13.25, 1.5, 13.5], "texture": "#0"} + } + }, + { + "from": [12, 7, 12], + "to": [14, 9, 13], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 8]}, + "faces": { + "north": {"uv": [11, 4.75, 11.5, 5.25], "texture": "#0"}, + "east": {"uv": [12.75, 4.5, 13, 5], "texture": "#0"}, + "south": {"uv": [11, 5.25, 11.5, 5.75], "texture": "#0"}, + "west": {"uv": [12.75, 5.5, 13, 6], "texture": "#0"}, + "up": {"uv": [13.25, 6.25, 12.75, 6], "texture": "#0"}, + "down": {"uv": [13.25, 6.25, 12.75, 6.5], "texture": "#0"} + } + }, + { + "from": [12, 7, 13], + "to": [13, 9, 14], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 8]}, + "faces": { + "north": {"uv": [12.75, 6.5, 13, 7], "texture": "#0"}, + "east": {"uv": [12.75, 7, 13, 7.5], "texture": "#0"}, + "south": {"uv": [12.75, 7.5, 13, 8], "texture": "#0"}, + "west": {"uv": [12.75, 8.25, 13, 8.75], "texture": "#0"}, + "up": {"uv": [13.5, 1.75, 13.25, 1.5], "texture": "#0"}, + "down": {"uv": [2, 13.25, 1.75, 13.5], "texture": "#0"} + } + }, + { + "from": [12, 11, 12], + "to": [13, 13, 13], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 8]}, + "faces": { + "north": {"uv": [12.75, 8.75, 13, 9.25], "texture": "#0"}, + "east": {"uv": [12.75, 9.5, 13, 10], "texture": "#0"}, + "south": {"uv": [12.75, 10, 13, 10.5], "texture": "#0"}, + "west": {"uv": [12.75, 10.5, 13, 11], "texture": "#0"}, + "up": {"uv": [13.5, 2, 13.25, 1.75], "texture": "#0"}, + "down": {"uv": [13.5, 2, 13.25, 2.25], "texture": "#0"} + } + }, + { + "from": [12, 3, 12], + "to": [13, 5, 13], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 8]}, + "faces": { + "north": {"uv": [12.75, 11, 13, 11.5], "texture": "#0"}, + "east": {"uv": [12.75, 11.5, 13, 12], "texture": "#0"}, + "south": {"uv": [12.75, 12, 13, 12.5], "texture": "#0"}, + "west": {"uv": [12.75, 12.5, 13, 13], "texture": "#0"}, + "up": {"uv": [13.5, 2.5, 13.25, 2.25], "texture": "#0"}, + "down": {"uv": [13.5, 2.5, 13.25, 2.75], "texture": "#0"} + } + }, + { + "from": [12, 7, 2], + "to": [13, 9, 4], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 8]}, + "faces": { + "north": {"uv": [13, 0, 13.25, 0.5], "texture": "#0"}, + "east": {"uv": [6.25, 11.5, 6.75, 12], "texture": "#0"}, + "south": {"uv": [13, 0.5, 13.25, 1], "texture": "#0"}, + "west": {"uv": [6.75, 11.5, 7.25, 12], "texture": "#0"}, + "up": {"uv": [13.25, 1.5, 13, 1], "texture": "#0"}, + "down": {"uv": [13.25, 1.5, 13, 2], "texture": "#0"} + } + }, + { + "from": [13, 7, 3], + "to": [14, 9, 4], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 8]}, + "faces": { + "north": {"uv": [2, 13, 2.25, 13.5], "texture": "#0"}, + "east": {"uv": [13, 2, 13.25, 2.5], "texture": "#0"}, + "south": {"uv": [2.25, 13, 2.5, 13.5], "texture": "#0"}, + "west": {"uv": [2.5, 13, 2.75, 13.5], "texture": "#0"}, + "up": {"uv": [13.5, 3, 13.25, 2.75], "texture": "#0"}, + "down": {"uv": [13.5, 3, 13.25, 3.25], "texture": "#0"} + } + }, + { + "from": [12, 11, 3], + "to": [13, 13, 4], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 8]}, + "faces": { + "north": {"uv": [13, 2.5, 13.25, 3], "texture": "#0"}, + "east": {"uv": [2.75, 13, 3, 13.5], "texture": "#0"}, + "south": {"uv": [3, 13, 3.25, 13.5], "texture": "#0"}, + "west": {"uv": [13, 3, 13.25, 3.5], "texture": "#0"}, + "up": {"uv": [13.5, 3.5, 13.25, 3.25], "texture": "#0"}, + "down": {"uv": [13.5, 3.5, 13.25, 3.75], "texture": "#0"} + } + }, + { + "from": [12, 3, 3], + "to": [13, 5, 4], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 8]}, + "faces": { + "north": {"uv": [3.25, 13, 3.5, 13.5], "texture": "#0"}, + "east": {"uv": [3.5, 13, 3.75, 13.5], "texture": "#0"}, + "south": {"uv": [13, 3.5, 13.25, 4], "texture": "#0"}, + "west": {"uv": [3.75, 13, 4, 13.5], "texture": "#0"}, + "up": {"uv": [13.5, 4, 13.25, 3.75], "texture": "#0"}, + "down": {"uv": [13.5, 4, 13.25, 4.25], "texture": "#0"} + } + }, + { + "from": [7, 12, 2], + "to": [9, 14, 3], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 8]}, + "faces": { + "north": {"uv": [11.5, 7.25, 12, 7.75], "texture": "#0"}, + "east": {"uv": [4, 13, 4.25, 13.5], "texture": "#0"}, + "south": {"uv": [11.5, 7.75, 12, 8.25], "texture": "#0"}, + "west": {"uv": [13, 4, 13.25, 4.5], "texture": "#0"}, + "up": {"uv": [4.75, 13.25, 4.25, 13], "texture": "#0"}, + "down": {"uv": [13.5, 4.5, 13, 4.75], "texture": "#0"} + } + }, + { + "from": [7, 13, 3], + "to": [9, 14, 4], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 8]}, + "faces": { + "north": {"uv": [4.75, 13, 5.25, 13.25], "texture": "#0"}, + "east": {"uv": [4.25, 13.25, 4.5, 13.5], "texture": "#0"}, + "south": {"uv": [13, 4.75, 13.5, 5], "texture": "#0"}, + "west": {"uv": [13.25, 4.25, 13.5, 4.5], "texture": "#0"}, + "up": {"uv": [13.5, 5.25, 13, 5], "texture": "#0"}, + "down": {"uv": [13.5, 5.25, 13, 5.5], "texture": "#0"} + } + }, + { + "from": [13, 12, 7], + "to": [14, 14, 9], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 8]}, + "faces": { + "north": {"uv": [13, 5.5, 13.25, 6], "texture": "#0"}, + "east": {"uv": [11.5, 8.25, 12, 8.75], "texture": "#0"}, + "south": {"uv": [6.25, 13, 6.5, 13.5], "texture": "#0"}, + "west": {"uv": [8.5, 11.5, 9, 12], "texture": "#0"}, + "up": {"uv": [13.25, 7, 13, 6.5], "texture": "#0"}, + "down": {"uv": [13.25, 7, 13, 7.5], "texture": "#0"} + } + }, + { + "from": [12, 13, 7], + "to": [13, 14, 9], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 8]}, + "faces": { + "north": {"uv": [4.5, 13.25, 4.75, 13.5], "texture": "#0"}, + "east": {"uv": [13, 7.5, 13.5, 7.75], "texture": "#0"}, + "south": {"uv": [4.75, 13.25, 5, 13.5], "texture": "#0"}, + "west": {"uv": [13, 7.75, 13.5, 8], "texture": "#0"}, + "up": {"uv": [7.75, 13.5, 7.5, 13], "texture": "#0"}, + "down": {"uv": [13.25, 8, 13, 8.5], "texture": "#0"} + } + }, + { + "from": [7, 12, 13], + "to": [9, 14, 14], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 8]}, + "faces": { + "north": {"uv": [11.5, 8.75, 12, 9.25], "texture": "#0"}, + "east": {"uv": [13, 8.5, 13.25, 9], "texture": "#0"}, + "south": {"uv": [9, 11.5, 9.5, 12], "texture": "#0"}, + "west": {"uv": [8.75, 13, 9, 13.5], "texture": "#0"}, + "up": {"uv": [13.5, 9.25, 13, 9], "texture": "#0"}, + "down": {"uv": [13.5, 9.25, 13, 9.5], "texture": "#0"} + } + }, + { + "from": [7, 13, 12], + "to": [9, 14, 13], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 8]}, + "faces": { + "north": {"uv": [13, 9.5, 13.5, 9.75], "texture": "#0"}, + "east": {"uv": [5, 13.25, 5.25, 13.5], "texture": "#0"}, + "south": {"uv": [13, 9.75, 13.5, 10], "texture": "#0"}, + "west": {"uv": [5.25, 13.25, 5.5, 13.5], "texture": "#0"}, + "up": {"uv": [10.5, 13.25, 10, 13], "texture": "#0"}, + "down": {"uv": [13.5, 10, 13, 10.25], "texture": "#0"} + } + }, + { + "from": [2, 12, 7], + "to": [3, 14, 9], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 8]}, + "faces": { + "north": {"uv": [13, 10.25, 13.25, 10.75], "texture": "#0"}, + "east": {"uv": [9.5, 11.5, 10, 12], "texture": "#0"}, + "south": {"uv": [10.75, 13, 11, 13.5], "texture": "#0"}, + "west": {"uv": [10, 11.5, 10.5, 12], "texture": "#0"}, + "up": {"uv": [13.25, 11.25, 13, 10.75], "texture": "#0"}, + "down": {"uv": [11.25, 13, 11, 13.5], "texture": "#0"} + } + }, + { + "from": [3, 13, 7], + "to": [4, 14, 9], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 8]}, + "faces": { + "north": {"uv": [5.5, 13.25, 5.75, 13.5], "texture": "#0"}, + "east": {"uv": [11.25, 13, 11.75, 13.25], "texture": "#0"}, + "south": {"uv": [13.25, 5.5, 13.5, 5.75], "texture": "#0"}, + "west": {"uv": [13, 11.25, 13.5, 11.5], "texture": "#0"}, + "up": {"uv": [13.25, 12, 13, 11.5], "texture": "#0"}, + "down": {"uv": [12, 13, 11.75, 13.5], "texture": "#0"} + } + }, + { + "from": [3, 2, 6], + "to": [4, 3, 10], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 8]}, + "faces": { + "north": {"uv": [5.75, 13.25, 6, 13.5], "texture": "#0"}, + "east": {"uv": [11.5, 10, 12.5, 10.25], "texture": "#0"}, + "south": {"uv": [13.25, 5.75, 13.5, 6], "texture": "#0"}, + "west": {"uv": [11.5, 10.25, 12.5, 10.5], "texture": "#0"}, + "up": {"uv": [11.75, 11.5, 11.5, 10.5], "texture": "#0"}, + "down": {"uv": [11.75, 11.5, 11.5, 12.5], "texture": "#0"} + } + }, + { + "from": [2, 2, 6], + "to": [3, 4, 10], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 8]}, + "faces": { + "north": {"uv": [12, 13, 12.25, 13.5], "texture": "#0"}, + "east": {"uv": [6.5, 4, 7.5, 4.5], "texture": "#0"}, + "south": {"uv": [13, 12, 13.25, 12.5], "texture": "#0"}, + "west": {"uv": [6.5, 4.5, 7.5, 5], "texture": "#0"}, + "up": {"uv": [12, 1, 11.75, 0], "texture": "#0"}, + "down": {"uv": [12, 1, 11.75, 2], "texture": "#0"} + } + }, + { + "from": [6, 2, 12], + "to": [10, 3, 13], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 8]}, + "faces": { + "north": {"uv": [11.75, 2, 12.75, 2.25], "texture": "#0"}, + "east": {"uv": [6, 13.25, 6.25, 13.5], "texture": "#0"}, + "south": {"uv": [11.75, 2.25, 12.75, 2.5], "texture": "#0"}, + "west": {"uv": [13.25, 6, 13.5, 6.25], "texture": "#0"}, + "up": {"uv": [12.75, 2.75, 11.75, 2.5], "texture": "#0"}, + "down": {"uv": [12.75, 2.75, 11.75, 3], "texture": "#0"} + } + }, + { + "from": [6, 2, 13], + "to": [10, 4, 14], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 8]}, + "faces": { + "north": {"uv": [3, 9.5, 4, 10], "texture": "#0"}, + "east": {"uv": [12.25, 13, 12.5, 13.5], "texture": "#0"}, + "south": {"uv": [4, 9.5, 5, 10], "texture": "#0"}, + "west": {"uv": [12.5, 13, 12.75, 13.5], "texture": "#0"}, + "up": {"uv": [4, 12, 3, 11.75], "texture": "#0"}, + "down": {"uv": [12.75, 3, 11.75, 3.25], "texture": "#0"} + } + }, + { + "from": [12, 2, 6], + "to": [13, 3, 10], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 8]}, + "faces": { + "north": {"uv": [13.25, 6.25, 13.5, 6.5], "texture": "#0"}, + "east": {"uv": [11.75, 3.25, 12.75, 3.5], "texture": "#0"}, + "south": {"uv": [6.5, 13.25, 6.75, 13.5], "texture": "#0"}, + "west": {"uv": [11.75, 3.5, 12.75, 3.75], "texture": "#0"}, + "up": {"uv": [12, 5.5, 11.75, 4.5], "texture": "#0"}, + "down": {"uv": [12, 10.5, 11.75, 11.5], "texture": "#0"} + } + }, + { + "from": [13, 2, 6], + "to": [14, 4, 10], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 8]}, + "faces": { + "north": {"uv": [13, 12.5, 13.25, 13], "texture": "#0"}, + "east": {"uv": [5, 9.5, 6, 10], "texture": "#0"}, + "south": {"uv": [12.75, 13, 13, 13.5], "texture": "#0"}, + "west": {"uv": [6, 9.5, 7, 10], "texture": "#0"}, + "up": {"uv": [12, 12.5, 11.75, 11.5], "texture": "#0"}, + "down": {"uv": [12.25, 0, 12, 1], "texture": "#0"} + } + }, + { + "from": [6, 2, 3], + "to": [10, 3, 4], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 8]}, + "faces": { + "north": {"uv": [11.75, 3.75, 12.75, 4], "texture": "#0"}, + "east": {"uv": [13.25, 6.5, 13.5, 6.75], "texture": "#0"}, + "south": {"uv": [11.75, 5.5, 12.75, 5.75], "texture": "#0"}, + "west": {"uv": [6.75, 13.25, 7, 13.5], "texture": "#0"}, + "up": {"uv": [12.75, 6, 11.75, 5.75], "texture": "#0"}, + "down": {"uv": [13, 1, 12, 1.25], "texture": "#0"} + } + }, + { + "from": [6, 2, 2], + "to": [10, 4, 3], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 8]}, + "faces": { + "north": {"uv": [7, 9.5, 8, 10], "texture": "#0"}, + "east": {"uv": [13, 13, 13.25, 13.5], "texture": "#0"}, + "south": {"uv": [3, 10, 4, 10.5], "texture": "#0"}, + "west": {"uv": [0, 13.25, 0.25, 13.75], "texture": "#0"}, + "up": {"uv": [13, 1.5, 12, 1.25], "texture": "#0"}, + "down": {"uv": [13, 1.5, 12, 1.75], "texture": "#0"} + } + }, + { + "from": [12, 3, 4], + "to": [13, 13, 12], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 8]}, + "faces": { + "north": {"uv": [2, 9.5, 2.25, 12], "texture": "#0"}, + "east": {"uv": [2.5, 0, 4.5, 2.5], "texture": "#0"}, + "south": {"uv": [2.25, 9.5, 2.5, 12], "texture": "#0"}, + "west": {"uv": [2.5, 2.5, 4.5, 5], "texture": "#0"}, + "up": {"uv": [4.25, 12, 4, 10], "texture": "#0"}, + "down": {"uv": [10.25, 4, 10, 6], "texture": "#0"} + } + }, + { + "from": [3, 3, 4], + "to": [4, 13, 12], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 8]}, + "faces": { + "north": {"uv": [2.5, 9.5, 2.75, 12], "texture": "#0"}, + "east": {"uv": [4.5, 0, 6.5, 2.5], "texture": "#0"}, + "south": {"uv": [2.75, 9.5, 3, 12], "texture": "#0"}, + "west": {"uv": [4.5, 2.5, 6.5, 5], "texture": "#0"}, + "up": {"uv": [4.5, 12, 4.25, 10], "texture": "#0"}, + "down": {"uv": [4.75, 10, 4.5, 12], "texture": "#0"} + } + }, + { + "name": "base", + "from": [4, 3, 3], + "to": [12, 13, 13], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 8]}, + "faces": { + "north": {"uv": [0, 5, 2, 7.5], "texture": "#0"}, + "east": {"uv": [0, 0, 2.5, 2.5], "texture": "#0"}, + "south": {"uv": [2, 5, 4, 7.5], "texture": "#0"}, + "west": {"uv": [0, 2.5, 2.5, 5], "texture": "#0"}, + "up": {"uv": [6, 7.5, 4, 5], "texture": "#0"}, + "down": {"uv": [8, 5, 6, 7.5], "texture": "#0"} + } + }, + { + "from": [4, 4, 13], + "to": [12, 12, 14], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 8]}, + "faces": { + "north": {"uv": [6.5, 0, 8.5, 2], "texture": "#0"}, + "east": {"uv": [4.75, 10, 5, 12], "texture": "#0"}, + "south": {"uv": [6.5, 2, 8.5, 4], "texture": "#0"}, + "west": {"uv": [5, 10, 5.25, 12], "texture": "#0"}, + "up": {"uv": [7.25, 10.25, 5.25, 10], "texture": "#0"}, + "down": {"uv": [12, 6, 10, 6.25], "texture": "#0"} + } + }, + { + "from": [4, 13, 4], + "to": [12, 14, 12], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 8]}, + "faces": { + "north": {"uv": [10, 6.25, 12, 6.5], "texture": "#0"}, + "east": {"uv": [10, 6.5, 12, 6.75], "texture": "#0"}, + "south": {"uv": [10, 6.75, 12, 7], "texture": "#0"}, + "west": {"uv": [10, 7, 12, 7.25], "texture": "#0"}, + "up": {"uv": [2, 9.5, 0, 7.5], "texture": "#0"}, + "down": {"uv": [4, 7.5, 2, 9.5], "texture": "#0"} + } + }, + { + "from": [13, 4, 4], + "to": [14, 12, 12], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 8]}, + "faces": { + "north": {"uv": [7.25, 10, 7.5, 12], "texture": "#0"}, + "east": {"uv": [4, 7.5, 6, 9.5], "texture": "#0"}, + "south": {"uv": [10, 7.25, 10.25, 9.25], "texture": "#0"}, + "west": {"uv": [6, 7.5, 8, 9.5], "texture": "#0"}, + "up": {"uv": [7.75, 12, 7.5, 10], "texture": "#0"}, + "down": {"uv": [8, 10, 7.75, 12], "texture": "#0"} + } + }, + { + "from": [4, 4, 2], + "to": [12, 12, 3], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 8]}, + "faces": { + "north": {"uv": [8, 4, 10, 6], "texture": "#0"}, + "east": {"uv": [8, 10, 8.25, 12], "texture": "#0"}, + "south": {"uv": [8, 6, 10, 8], "texture": "#0"}, + "west": {"uv": [8.25, 10, 8.5, 12], "texture": "#0"}, + "up": {"uv": [10.5, 10.25, 8.5, 10], "texture": "#0"}, + "down": {"uv": [12, 9.25, 10, 9.5], "texture": "#0"} + } + }, + { + "from": [4, 2, 4], + "to": [12, 3, 12], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 8]}, + "faces": { + "north": {"uv": [10, 9.5, 12, 9.75], "texture": "#0"}, + "east": {"uv": [10, 9.75, 12, 10], "texture": "#0"}, + "south": {"uv": [10.25, 4, 12.25, 4.25], "texture": "#0"}, + "west": {"uv": [10.25, 4.25, 12.25, 4.5], "texture": "#0"}, + "up": {"uv": [10, 10, 8, 8], "texture": "#0"}, + "down": {"uv": [10.5, 0, 8.5, 2], "texture": "#0"} + } + }, + { + "from": [2, 4, 4], + "to": [3, 12, 12], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 8]}, + "faces": { + "north": {"uv": [5.25, 10.25, 5.5, 12.25], "texture": "#0"}, + "east": {"uv": [8.5, 2, 10.5, 4], "texture": "#0"}, + "south": {"uv": [5.5, 10.25, 5.75, 12.25], "texture": "#0"}, + "west": {"uv": [0, 9.5, 2, 11.5], "texture": "#0"}, + "up": {"uv": [6, 12.25, 5.75, 10.25], "texture": "#0"}, + "down": {"uv": [6.25, 10.25, 6, 12.25], "texture": "#0"} + } + }, + { + "from": [6, 5.75, 1], + "to": [7, 9.38, 2], + "rotation": {"angle": -45, "axis": "z", "origin": [6.5, 7.75, 1.5]}, + "faces": { + "north": {"uv": [2, 12, 2.25, 13], "texture": "#0"}, + "east": {"uv": [2.25, 12, 2.5, 13], "texture": "#0"}, + "south": {"uv": [2.5, 12, 2.75, 13], "texture": "#0"}, + "west": {"uv": [2.75, 12, 3, 13], "texture": "#0"}, + "up": {"uv": [13.5, 7, 13.25, 6.75], "texture": "#0"}, + "down": {"uv": [7.25, 13.25, 7, 13.5], "texture": "#0"} + } + }, + { + "from": [1, 5.75, 6], + "to": [2, 10.37, 7], + "rotation": {"angle": 45, "axis": "x", "origin": [1.5, 7.75, 6.5]}, + "faces": { + "north": {"uv": [10.25, 4.5, 10.5, 5.75], "texture": "#0"}, + "east": {"uv": [6.25, 10.25, 6.5, 11.5], "texture": "#0"}, + "south": {"uv": [6.5, 10.25, 6.75, 11.5], "texture": "#0"}, + "west": {"uv": [6.75, 10.25, 7, 11.5], "texture": "#0"}, + "up": {"uv": [13.5, 7.25, 13.25, 7], "texture": "#0"}, + "down": {"uv": [7.5, 13.25, 7.25, 13.5], "texture": "#0"} + } + }, + { + "from": [1, 7.75, 9], + "to": [2, 11.38, 10], + "rotation": {"angle": -45, "axis": "x", "origin": [1.5, 9.75, 9.5]}, + "faces": { + "north": {"uv": [3, 12, 3.25, 13], "texture": "#0"}, + "east": {"uv": [3.25, 12, 3.5, 13], "texture": "#0"}, + "south": {"uv": [3.5, 12, 3.75, 13], "texture": "#0"}, + "west": {"uv": [3.75, 12, 4, 13], "texture": "#0"}, + "up": {"uv": [13.5, 7.5, 13.25, 7.25], "texture": "#0"}, + "down": {"uv": [8, 13.25, 7.75, 13.5], "texture": "#0"} + } + }, + { + "from": [1, 7.75, 6], + "to": [2, 12.37, 7], + "rotation": {"angle": 45, "axis": "x", "origin": [1.5, 9.75, 6.5]}, + "faces": { + "north": {"uv": [7, 10.25, 7.25, 11.5], "texture": "#0"}, + "east": {"uv": [10.25, 7.25, 10.5, 8.5], "texture": "#0"}, + "south": {"uv": [8.5, 10.25, 8.75, 11.5], "texture": "#0"}, + "west": {"uv": [8.75, 10.25, 9, 11.5], "texture": "#0"}, + "up": {"uv": [8.25, 13.5, 8, 13.25], "texture": "#0"}, + "down": {"uv": [13.5, 8, 13.25, 8.25], "texture": "#0"} + } + }, + { + "from": [1, 3.75, 9], + "to": [2, 7.38, 10], + "rotation": {"angle": -45, "axis": "x", "origin": [1.5, 5.75, 9.5]}, + "faces": { + "north": {"uv": [4, 12, 4.25, 13], "texture": "#0"}, + "east": {"uv": [4.25, 12, 4.5, 13], "texture": "#0"}, + "south": {"uv": [4.5, 12, 4.75, 13], "texture": "#0"}, + "west": {"uv": [12, 4.5, 12.25, 5.5], "texture": "#0"}, + "up": {"uv": [8.5, 13.5, 8.25, 13.25], "texture": "#0"}, + "down": {"uv": [13.5, 8.25, 13.25, 8.5], "texture": "#0"} + } + }, + { + "from": [1, 3.75, 6], + "to": [2, 8.37, 7], + "rotation": {"angle": 45, "axis": "x", "origin": [1.5, 5.75, 6.5]}, + "faces": { + "north": {"uv": [9, 10.25, 9.25, 11.5], "texture": "#0"}, + "east": {"uv": [9.25, 10.25, 9.5, 11.5], "texture": "#0"}, + "south": {"uv": [9.5, 10.25, 9.75, 11.5], "texture": "#0"}, + "west": {"uv": [9.75, 10.25, 10, 11.5], "texture": "#0"}, + "up": {"uv": [8.75, 13.5, 8.5, 13.25], "texture": "#0"}, + "down": {"uv": [13.5, 8.5, 13.25, 8.75], "texture": "#0"} + } + }, + { + "from": [1, 5.75, 9], + "to": [2, 9.38, 10], + "rotation": {"angle": -45, "axis": "x", "origin": [1.5, 7.75, 9.5]}, + "faces": { + "north": {"uv": [4.75, 12, 5, 13], "texture": "#0"}, + "east": {"uv": [5, 12, 5.25, 13], "texture": "#0"}, + "south": {"uv": [12, 6, 12.25, 7], "texture": "#0"}, + "west": {"uv": [6.25, 12, 6.5, 13], "texture": "#0"}, + "up": {"uv": [13.5, 9, 13.25, 8.75], "texture": "#0"}, + "down": {"uv": [9.25, 13.25, 9, 13.5], "texture": "#0"} + } + }, + { + "from": [6, 5.75, 14], + "to": [7, 10.37, 15], + "rotation": {"angle": -45, "axis": "z", "origin": [6.5, 7.75, 14.5]}, + "faces": { + "north": {"uv": [10, 10.25, 10.25, 11.5], "texture": "#0"}, + "east": {"uv": [10.25, 10.25, 10.5, 11.5], "texture": "#0"}, + "south": {"uv": [10.5, 0, 10.75, 1.25], "texture": "#0"}, + "west": {"uv": [10.5, 1.25, 10.75, 2.5], "texture": "#0"}, + "up": {"uv": [9.5, 13.5, 9.25, 13.25], "texture": "#0"}, + "down": {"uv": [9.75, 13.25, 9.5, 13.5], "texture": "#0"} + } + }, + { + "from": [9, 14, 6.62], + "to": [10, 15, 10.25], + "rotation": {"angle": 45, "axis": "y", "origin": [9.5, 14.75, 8.25]}, + "faces": { + "north": {"uv": [9.75, 13.25, 10, 13.5], "texture": "#0"}, + "east": {"uv": [12, 1.75, 13, 2], "texture": "#0"}, + "south": {"uv": [10, 13.25, 10.25, 13.5], "texture": "#0"}, + "west": {"uv": [6.5, 12, 7.5, 12.25], "texture": "#0"}, + "up": {"uv": [12.25, 8, 12, 7], "texture": "#0"}, + "down": {"uv": [7.75, 12, 7.5, 13], "texture": "#0"} + } + }, + { + "from": [6, 14, 5.63], + "to": [7, 15, 10.25], + "rotation": {"angle": -45, "axis": "y", "origin": [6.5, 14.75, 8.25]}, + "faces": { + "north": {"uv": [10.25, 13.25, 10.5, 13.5], "texture": "#0"}, + "east": {"uv": [10.25, 5.75, 11.5, 6], "texture": "#0"}, + "south": {"uv": [13.25, 10.25, 13.5, 10.5], "texture": "#0"}, + "west": {"uv": [10.25, 8.5, 11.5, 8.75], "texture": "#0"}, + "up": {"uv": [10.75, 3.75, 10.5, 2.5], "texture": "#0"}, + "down": {"uv": [3.25, 10.5, 3, 11.75], "texture": "#0"} + } + }, + { + "from": [9, 14, 4.62], + "to": [10, 15, 8.25], + "rotation": {"angle": 45, "axis": "y", "origin": [9.5, 14.75, 6.25]}, + "faces": { + "north": {"uv": [13.25, 10.5, 13.5, 10.75], "texture": "#0"}, + "east": {"uv": [7.75, 12, 8.75, 12.25], "texture": "#0"}, + "south": {"uv": [13.25, 10.75, 13.5, 11], "texture": "#0"}, + "west": {"uv": [12, 8, 13, 8.25], "texture": "#0"}, + "up": {"uv": [12.25, 9.25, 12, 8.25], "texture": "#0"}, + "down": {"uv": [9, 12, 8.75, 13], "texture": "#0"} + } + }, + { + "from": [6, 14, 3.63], + "to": [7, 15, 8.25], + "rotation": {"angle": -45, "axis": "y", "origin": [6.5, 14.75, 6.25]}, + "faces": { + "north": {"uv": [13.25, 11, 13.5, 11.25], "texture": "#0"}, + "east": {"uv": [10.25, 8.75, 11.5, 9], "texture": "#0"}, + "south": {"uv": [11.25, 13.25, 11.5, 13.5], "texture": "#0"}, + "west": {"uv": [10.25, 9, 11.5, 9.25], "texture": "#0"}, + "up": {"uv": [3.5, 11.75, 3.25, 10.5], "texture": "#0"}, + "down": {"uv": [3.75, 10.5, 3.5, 11.75], "texture": "#0"} + } + }, + { + "from": [9, 14, 8.62], + "to": [10, 15, 12.25], + "rotation": {"angle": 45, "axis": "y", "origin": [9.5, 14.75, 10.25]}, + "faces": { + "north": {"uv": [11.5, 13.25, 11.75, 13.5], "texture": "#0"}, + "east": {"uv": [9, 12, 10, 12.25], "texture": "#0"}, + "south": {"uv": [13.25, 11.5, 13.5, 11.75], "texture": "#0"}, + "west": {"uv": [12, 9.25, 13, 9.5], "texture": "#0"}, + "up": {"uv": [10.25, 13, 10, 12], "texture": "#0"}, + "down": {"uv": [10.5, 12, 10.25, 13], "texture": "#0"} + } + }, + { + "from": [6, 14, 7.63], + "to": [7, 15, 12.25], + "rotation": {"angle": -45, "axis": "y", "origin": [6.5, 14.75, 10.25]}, + "faces": { + "north": {"uv": [13.25, 11.75, 13.5, 12], "texture": "#0"}, + "east": {"uv": [10.5, 3.75, 11.75, 4], "texture": "#0"}, + "south": {"uv": [13.25, 12, 13.5, 12.25], "texture": "#0"}, + "west": {"uv": [10.5, 4.5, 11.75, 4.75], "texture": "#0"}, + "up": {"uv": [4, 11.75, 3.75, 10.5], "texture": "#0"}, + "down": {"uv": [10.75, 7.25, 10.5, 8.5], "texture": "#0"} + } + }, + { + "from": [14, 5.75, 6], + "to": [15, 9.38, 7], + "rotation": {"angle": 45, "axis": "x", "origin": [14.5, 7.75, 6.5]}, + "faces": { + "north": {"uv": [12, 10.5, 12.25, 11.5], "texture": "#0"}, + "east": {"uv": [12, 11.5, 12.25, 12.5], "texture": "#0"}, + "south": {"uv": [12.25, 0, 12.5, 1], "texture": "#0"}, + "west": {"uv": [12.25, 4, 12.5, 5], "texture": "#0"}, + "up": {"uv": [13.5, 12.5, 13.25, 12.25], "texture": "#0"}, + "down": {"uv": [13.5, 12.5, 13.25, 12.75], "texture": "#0"} + } + }, + { + "from": [14, 5.75, 9], + "to": [15, 10.37, 10], + "rotation": {"angle": -45, "axis": "x", "origin": [14.5, 7.75, 9.5]}, + "faces": { + "north": {"uv": [10.5, 10, 10.75, 11.25], "texture": "#0"}, + "east": {"uv": [10.75, 0, 11, 1.25], "texture": "#0"}, + "south": {"uv": [10.75, 1.25, 11, 2.5], "texture": "#0"}, + "west": {"uv": [10.75, 2.5, 11, 3.75], "texture": "#0"}, + "up": {"uv": [13.5, 13, 13.25, 12.75], "texture": "#0"}, + "down": {"uv": [13.5, 13, 13.25, 13.25], "texture": "#0"} + } + }, + { + "from": [14, 7.75, 6], + "to": [15, 11.38, 7], + "rotation": {"angle": 45, "axis": "x", "origin": [14.5, 9.75, 6.5]}, + "faces": { + "north": {"uv": [5.25, 12.25, 5.5, 13.25], "texture": "#0"}, + "east": {"uv": [5.5, 12.25, 5.75, 13.25], "texture": "#0"}, + "south": {"uv": [5.75, 12.25, 6, 13.25], "texture": "#0"}, + "west": {"uv": [6, 12.25, 6.25, 13.25], "texture": "#0"}, + "up": {"uv": [13.5, 13.5, 13.25, 13.25], "texture": "#0"}, + "down": {"uv": [13.75, 0, 13.5, 0.25], "texture": "#0"} + } + }, + { + "from": [14, 7.75, 9], + "to": [15, 12.37, 10], + "rotation": {"angle": -45, "axis": "x", "origin": [14.5, 9.75, 9.5]}, + "faces": { + "north": {"uv": [10.75, 7.25, 11, 8.5], "texture": "#0"}, + "east": {"uv": [10.75, 10, 11, 11.25], "texture": "#0"}, + "south": {"uv": [11, 0, 11.25, 1.25], "texture": "#0"}, + "west": {"uv": [11, 1.25, 11.25, 2.5], "texture": "#0"}, + "up": {"uv": [0.5, 13.75, 0.25, 13.5], "texture": "#0"}, + "down": {"uv": [13.75, 0.25, 13.5, 0.5], "texture": "#0"} + } + }, + { + "from": [14, 3.75, 6], + "to": [15, 7.38, 7], + "rotation": {"angle": 45, "axis": "x", "origin": [14.5, 5.75, 6.5]}, + "faces": { + "north": {"uv": [12.25, 6, 12.5, 7], "texture": "#0"}, + "east": {"uv": [6.5, 12.25, 6.75, 13.25], "texture": "#0"}, + "south": {"uv": [6.75, 12.25, 7, 13.25], "texture": "#0"}, + "west": {"uv": [7, 12.25, 7.25, 13.25], "texture": "#0"}, + "up": {"uv": [0.75, 13.75, 0.5, 13.5], "texture": "#0"}, + "down": {"uv": [13.75, 0.5, 13.5, 0.75], "texture": "#0"} + } + }, + { + "from": [14, 3.75, 9], + "to": [15, 8.37, 10], + "rotation": {"angle": -45, "axis": "x", "origin": [14.5, 5.75, 9.5]}, + "faces": { + "north": {"uv": [11, 2.5, 11.25, 3.75], "texture": "#0"}, + "east": {"uv": [11, 7.25, 11.25, 8.5], "texture": "#0"}, + "south": {"uv": [11, 10, 11.25, 11.25], "texture": "#0"}, + "west": {"uv": [11.25, 0, 11.5, 1.25], "texture": "#0"}, + "up": {"uv": [1, 13.75, 0.75, 13.5], "texture": "#0"}, + "down": {"uv": [13.75, 0.75, 13.5, 1], "texture": "#0"} + } + }, + { + "from": [9, 5.75, 14], + "to": [10, 9.38, 15], + "rotation": {"angle": 45, "axis": "z", "origin": [9.5, 7.75, 14.5]}, + "faces": { + "north": {"uv": [12.25, 7, 12.5, 8], "texture": "#0"}, + "east": {"uv": [7.25, 12.25, 7.5, 13.25], "texture": "#0"}, + "south": {"uv": [7.75, 12.25, 8, 13.25], "texture": "#0"}, + "west": {"uv": [8, 12.25, 8.25, 13.25], "texture": "#0"}, + "up": {"uv": [1.25, 13.75, 1, 13.5], "texture": "#0"}, + "down": {"uv": [13.75, 1, 13.5, 1.25], "texture": "#0"} + } + }, + { + "from": [6, 7.75, 14], + "to": [7, 12.37, 15], + "rotation": {"angle": -45, "axis": "z", "origin": [6.5, 9.75, 14.5]}, + "faces": { + "north": {"uv": [11.25, 1.25, 11.5, 2.5], "texture": "#0"}, + "east": {"uv": [11.25, 2.5, 11.5, 3.75], "texture": "#0"}, + "south": {"uv": [11.25, 7.25, 11.5, 8.5], "texture": "#0"}, + "west": {"uv": [11.25, 10, 11.5, 11.25], "texture": "#0"}, + "up": {"uv": [1.5, 13.75, 1.25, 13.5], "texture": "#0"}, + "down": {"uv": [13.75, 1.25, 13.5, 1.5], "texture": "#0"} + } + }, + { + "from": [9, 7.75, 14], + "to": [10, 11.38, 15], + "rotation": {"angle": 45, "axis": "z", "origin": [9.5, 9.75, 14.5]}, + "faces": { + "north": {"uv": [8.25, 12.25, 8.5, 13.25], "texture": "#0"}, + "east": {"uv": [12.25, 8.25, 12.5, 9.25], "texture": "#0"}, + "south": {"uv": [8.5, 12.25, 8.75, 13.25], "texture": "#0"}, + "west": {"uv": [9, 12.25, 9.25, 13.25], "texture": "#0"}, + "up": {"uv": [1.75, 13.75, 1.5, 13.5], "texture": "#0"}, + "down": {"uv": [13.75, 1.5, 13.5, 1.75], "texture": "#0"} + } + }, + { + "from": [6, 3.75, 14], + "to": [7, 8.37, 15], + "rotation": {"angle": -45, "axis": "z", "origin": [6.5, 5.75, 14.5]}, + "faces": { + "north": {"uv": [10.5, 11.25, 10.75, 12.5], "texture": "#0"}, + "east": {"uv": [10.75, 11.25, 11, 12.5], "texture": "#0"}, + "south": {"uv": [11, 11.25, 11.25, 12.5], "texture": "#0"}, + "west": {"uv": [11.25, 11.25, 11.5, 12.5], "texture": "#0"}, + "up": {"uv": [2, 13.75, 1.75, 13.5], "texture": "#0"}, + "down": {"uv": [13.75, 1.75, 13.5, 2], "texture": "#0"} + } + }, + { + "from": [9, 3.75, 14], + "to": [10, 7.38, 15], + "rotation": {"angle": 45, "axis": "z", "origin": [9.5, 5.75, 14.5]}, + "faces": { + "north": {"uv": [9.25, 12.25, 9.5, 13.25], "texture": "#0"}, + "east": {"uv": [9.5, 12.25, 9.75, 13.25], "texture": "#0"}, + "south": {"uv": [9.75, 12.25, 10, 13.25], "texture": "#0"}, + "west": {"uv": [12.25, 10.5, 12.5, 11.5], "texture": "#0"}, + "up": {"uv": [2.25, 13.75, 2, 13.5], "texture": "#0"}, + "down": {"uv": [13.75, 2, 13.5, 2.25], "texture": "#0"} + } + }, + { + "from": [9, 5.75, 1], + "to": [10, 10.37, 2], + "rotation": {"angle": 45, "axis": "z", "origin": [9.5, 7.75, 1.5]}, + "faces": { + "north": {"uv": [0, 11.5, 0.25, 12.75], "texture": "#0"}, + "east": {"uv": [11.5, 0, 11.75, 1.25], "texture": "#0"}, + "south": {"uv": [0.25, 11.5, 0.5, 12.75], "texture": "#0"}, + "west": {"uv": [0.5, 11.5, 0.75, 12.75], "texture": "#0"}, + "up": {"uv": [2.5, 13.75, 2.25, 13.5], "texture": "#0"}, + "down": {"uv": [13.75, 2.25, 13.5, 2.5], "texture": "#0"} + } + }, + { + "from": [6, 7.75, 1], + "to": [7, 11.38, 2], + "rotation": {"angle": -45, "axis": "z", "origin": [6.5, 9.75, 1.5]}, + "faces": { + "north": {"uv": [12.25, 11.5, 12.5, 12.5], "texture": "#0"}, + "east": {"uv": [12.5, 0, 12.75, 1], "texture": "#0"}, + "south": {"uv": [12.5, 4, 12.75, 5], "texture": "#0"}, + "west": {"uv": [12.5, 6, 12.75, 7], "texture": "#0"}, + "up": {"uv": [2.75, 13.75, 2.5, 13.5], "texture": "#0"}, + "down": {"uv": [13.75, 2.5, 13.5, 2.75], "texture": "#0"} + } + }, + { + "from": [9, 7.75, 1], + "to": [10, 12.37, 2], + "rotation": {"angle": 45, "axis": "z", "origin": [9.5, 9.75, 1.5]}, + "faces": { + "north": {"uv": [0.75, 11.5, 1, 12.75], "texture": "#0"}, + "east": {"uv": [1, 11.5, 1.25, 12.75], "texture": "#0"}, + "south": {"uv": [1.25, 11.5, 1.5, 12.75], "texture": "#0"}, + "west": {"uv": [11.5, 1.25, 11.75, 2.5], "texture": "#0"}, + "up": {"uv": [3, 13.75, 2.75, 13.5], "texture": "#0"}, + "down": {"uv": [13.75, 2.75, 13.5, 3], "texture": "#0"} + } + }, + { + "from": [6, 3.75, 1], + "to": [7, 7.38, 2], + "rotation": {"angle": -45, "axis": "z", "origin": [6.5, 5.75, 1.5]}, + "faces": { + "north": {"uv": [12.5, 7, 12.75, 8], "texture": "#0"}, + "east": {"uv": [12.5, 8.25, 12.75, 9.25], "texture": "#0"}, + "south": {"uv": [12.5, 9.5, 12.75, 10.5], "texture": "#0"}, + "west": {"uv": [10.5, 12.5, 10.75, 13.5], "texture": "#0"}, + "up": {"uv": [3.25, 13.75, 3, 13.5], "texture": "#0"}, + "down": {"uv": [13.75, 3, 13.5, 3.25], "texture": "#0"} + } + }, + { + "from": [9, 3.75, 1], + "to": [10, 8.37, 2], + "rotation": {"angle": 45, "axis": "z", "origin": [9.5, 5.75, 1.5]}, + "faces": { + "north": {"uv": [1.5, 11.5, 1.75, 12.75], "texture": "#0"}, + "east": {"uv": [1.75, 11.5, 2, 12.75], "texture": "#0"}, + "south": {"uv": [11.5, 2.5, 11.75, 3.75], "texture": "#0"}, + "west": {"uv": [11.5, 4.75, 11.75, 6], "texture": "#0"}, + "up": {"uv": [3.5, 13.75, 3.25, 13.5], "texture": "#0"}, + "down": {"uv": [13.75, 3.25, 13.5, 3.5], "texture": "#0"} + } + } + ], + "groups": [ + { + "name": "ornaments", + "origin": [3, 8, 3], + "color": 0, + "children": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31] + }, + { + "name": "center", + "origin": [8, 8, 8], + "color": 0, + "children": [32, 33, 34] + }, + { + "name": "plates", + "origin": [8, 8, 8], + "color": 0, + "children": [35, 36, 37, 38, 39, 40] + }, + { + "name": "symbol", + "origin": [6, 8, 1], + "color": 0, + "children": [41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70] + } + ] +} diff --git a/src/main/resources/assets/utilitiesinexcess/models/blocks/upgrade_world_hole.json b/src/main/resources/assets/utilitiesinexcess/models/blocks/upgrade_world_hole.json new file mode 100644 index 00000000..14c5b236 --- /dev/null +++ b/src/main/resources/assets/utilitiesinexcess/models/blocks/upgrade_world_hole.json @@ -0,0 +1,1382 @@ +{ + "format_version": "1.9.0", + "credit": "Made with Blockbench", + "texture_size": [64, 64], + "textures": { + "0": "utilitiesinexcess:upgrade_world_hole", + "particle": "utilitiesinexcess:upgrade_world_hole" + }, + "elements": [ + { + "from": [2, 7, 3], + "to": [4, 9, 4], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 8]}, + "faces": { + "north": {"uv": [7.5, 4, 8, 4.5], "texture": "#0"}, + "east": {"uv": [12, 7.5, 12.25, 8], "texture": "#0"}, + "south": {"uv": [7.5, 4.5, 8, 5], "texture": "#0"}, + "west": {"uv": [8, 12, 8.25, 12.5], "texture": "#0"}, + "up": {"uv": [12.5, 8.25, 12, 8], "texture": "#0"}, + "down": {"uv": [12.5, 9.25, 12, 9.5], "texture": "#0"} + } + }, + { + "from": [3, 7, 2], + "to": [4, 9, 3], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 8]}, + "faces": { + "north": {"uv": [8.25, 12, 8.5, 12.5], "texture": "#0"}, + "east": {"uv": [12, 9.5, 12.25, 10], "texture": "#0"}, + "south": {"uv": [10.25, 12, 10.5, 12.5], "texture": "#0"}, + "west": {"uv": [10.5, 12, 10.75, 12.5], "texture": "#0"}, + "up": {"uv": [12.5, 9.25, 12.25, 9], "texture": "#0"}, + "down": {"uv": [6.75, 12.75, 6.5, 13], "texture": "#0"} + } + }, + { + "from": [3, 11, 3], + "to": [4, 13, 4], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 8]}, + "faces": { + "north": {"uv": [10.75, 12, 11, 12.5], "texture": "#0"}, + "east": {"uv": [11, 12, 11.25, 12.5], "texture": "#0"}, + "south": {"uv": [11.75, 12, 12, 12.5], "texture": "#0"}, + "west": {"uv": [12, 12, 12.25, 12.5], "texture": "#0"}, + "up": {"uv": [7, 13, 6.75, 12.75], "texture": "#0"}, + "down": {"uv": [13, 6.75, 12.75, 7], "texture": "#0"} + } + }, + { + "from": [3, 3, 3], + "to": [4, 5, 4], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 8]}, + "faces": { + "north": {"uv": [12.25, 1, 12.5, 1.5], "texture": "#0"}, + "east": {"uv": [12.25, 1.5, 12.5, 2], "texture": "#0"}, + "south": {"uv": [2, 12.25, 2.25, 12.75], "texture": "#0"}, + "west": {"uv": [2.25, 12.25, 2.5, 12.75], "texture": "#0"}, + "up": {"uv": [7.25, 13, 7, 12.75], "texture": "#0"}, + "down": {"uv": [13, 7, 12.75, 7.25], "texture": "#0"} + } + }, + { + "from": [3, 7, 12], + "to": [4, 9, 14], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 8]}, + "faces": { + "north": {"uv": [2.5, 12.25, 2.75, 12.75], "texture": "#0"}, + "east": {"uv": [10.25, 4.5, 10.75, 5], "texture": "#0"}, + "south": {"uv": [4, 12.25, 4.25, 12.75], "texture": "#0"}, + "west": {"uv": [10.25, 5, 10.75, 5.5], "texture": "#0"}, + "up": {"uv": [12.5, 4.5, 12.25, 4], "texture": "#0"}, + "down": {"uv": [4.5, 12.25, 4.25, 12.75], "texture": "#0"} + } + }, + { + "from": [2, 7, 12], + "to": [3, 9, 13], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 8]}, + "faces": { + "north": {"uv": [4.5, 12.25, 4.75, 12.75], "texture": "#0"}, + "east": {"uv": [5.25, 12.25, 5.5, 12.75], "texture": "#0"}, + "south": {"uv": [5.5, 12.25, 5.75, 12.75], "texture": "#0"}, + "west": {"uv": [5.75, 12.25, 6, 12.75], "texture": "#0"}, + "up": {"uv": [7.5, 13, 7.25, 12.75], "texture": "#0"}, + "down": {"uv": [13, 7.25, 12.75, 7.5], "texture": "#0"} + } + }, + { + "from": [3, 11, 12], + "to": [4, 13, 13], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 8]}, + "faces": { + "north": {"uv": [6, 12.25, 6.25, 12.75], "texture": "#0"}, + "east": {"uv": [12.25, 6, 12.5, 6.5], "texture": "#0"}, + "south": {"uv": [6.25, 12.25, 6.5, 12.75], "texture": "#0"}, + "west": {"uv": [6.5, 12.25, 6.75, 12.75], "texture": "#0"}, + "up": {"uv": [7.75, 13, 7.5, 12.75], "texture": "#0"}, + "down": {"uv": [13, 7.5, 12.75, 7.75], "texture": "#0"} + } + }, + { + "from": [3, 3, 12], + "to": [4, 5, 13], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 8]}, + "faces": { + "north": {"uv": [6.75, 12.25, 7, 12.75], "texture": "#0"}, + "east": {"uv": [7, 12.25, 7.25, 12.75], "texture": "#0"}, + "south": {"uv": [7.25, 12.25, 7.5, 12.75], "texture": "#0"}, + "west": {"uv": [7.5, 12.25, 7.75, 12.75], "texture": "#0"}, + "up": {"uv": [8, 13, 7.75, 12.75], "texture": "#0"}, + "down": {"uv": [13, 7.75, 12.75, 8], "texture": "#0"} + } + }, + { + "from": [12, 7, 12], + "to": [14, 9, 13], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 8]}, + "faces": { + "north": {"uv": [10.25, 5.5, 10.75, 6], "texture": "#0"}, + "east": {"uv": [12.25, 7.5, 12.5, 8], "texture": "#0"}, + "south": {"uv": [6.25, 10.25, 6.75, 10.75], "texture": "#0"}, + "west": {"uv": [7.75, 12.25, 8, 12.75], "texture": "#0"}, + "up": {"uv": [12.75, 6.75, 12.25, 6.5], "texture": "#0"}, + "down": {"uv": [12.75, 8.25, 12.25, 8.5], "texture": "#0"} + } + }, + { + "from": [12, 7, 13], + "to": [13, 9, 14], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 8]}, + "faces": { + "north": {"uv": [12.25, 8.5, 12.5, 9], "texture": "#0"}, + "east": {"uv": [12.25, 9.5, 12.5, 10], "texture": "#0"}, + "south": {"uv": [12.25, 12, 12.5, 12.5], "texture": "#0"}, + "west": {"uv": [0, 12.5, 0.25, 13], "texture": "#0"}, + "up": {"uv": [13, 8.5, 12.75, 8.25], "texture": "#0"}, + "down": {"uv": [8.75, 12.75, 8.5, 13], "texture": "#0"} + } + }, + { + "from": [12, 11, 12], + "to": [13, 13, 13], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 8]}, + "faces": { + "north": {"uv": [0.25, 12.5, 0.5, 13], "texture": "#0"}, + "east": {"uv": [0.5, 12.5, 0.75, 13], "texture": "#0"}, + "south": {"uv": [12.5, 0.5, 12.75, 1], "texture": "#0"}, + "west": {"uv": [0.75, 12.5, 1, 13], "texture": "#0"}, + "up": {"uv": [13, 8.75, 12.75, 8.5], "texture": "#0"}, + "down": {"uv": [9, 12.75, 8.75, 13], "texture": "#0"} + } + }, + { + "from": [12, 3, 12], + "to": [13, 5, 13], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 8]}, + "faces": { + "north": {"uv": [1, 12.5, 1.25, 13], "texture": "#0"}, + "east": {"uv": [12.5, 1, 12.75, 1.5], "texture": "#0"}, + "south": {"uv": [1.25, 12.5, 1.5, 13], "texture": "#0"}, + "west": {"uv": [1.5, 12.5, 1.75, 13], "texture": "#0"}, + "up": {"uv": [13, 9, 12.75, 8.75], "texture": "#0"}, + "down": {"uv": [9.25, 12.75, 9, 13], "texture": "#0"} + } + }, + { + "from": [12, 7, 2], + "to": [13, 9, 4], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 8]}, + "faces": { + "north": {"uv": [12.5, 1.5, 12.75, 2], "texture": "#0"}, + "east": {"uv": [6.75, 10.25, 7.25, 10.75], "texture": "#0"}, + "south": {"uv": [1.75, 12.5, 2, 13], "texture": "#0"}, + "west": {"uv": [10.25, 7.25, 10.75, 7.75], "texture": "#0"}, + "up": {"uv": [3.25, 13, 3, 12.5], "texture": "#0"}, + "down": {"uv": [3.5, 12.5, 3.25, 13], "texture": "#0"} + } + }, + { + "from": [13, 7, 3], + "to": [14, 9, 4], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 8]}, + "faces": { + "north": {"uv": [3.5, 12.5, 3.75, 13], "texture": "#0"}, + "east": {"uv": [3.75, 12.5, 4, 13], "texture": "#0"}, + "south": {"uv": [12.5, 4, 12.75, 4.5], "texture": "#0"}, + "west": {"uv": [12.5, 6, 12.75, 6.5], "texture": "#0"}, + "up": {"uv": [13, 9.25, 12.75, 9], "texture": "#0"}, + "down": {"uv": [9.5, 12.75, 9.25, 13], "texture": "#0"} + } + }, + { + "from": [12, 11, 3], + "to": [13, 13, 4], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 8]}, + "faces": { + "north": {"uv": [12.5, 7.5, 12.75, 8], "texture": "#0"}, + "east": {"uv": [8, 12.5, 8.25, 13], "texture": "#0"}, + "south": {"uv": [8.25, 12.5, 8.5, 13], "texture": "#0"}, + "west": {"uv": [12.5, 8.5, 12.75, 9], "texture": "#0"}, + "up": {"uv": [13, 9.5, 12.75, 9.25], "texture": "#0"}, + "down": {"uv": [9.75, 12.75, 9.5, 13], "texture": "#0"} + } + }, + { + "from": [12, 3, 3], + "to": [13, 5, 4], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 8]}, + "faces": { + "north": {"uv": [12.5, 9, 12.75, 9.5], "texture": "#0"}, + "east": {"uv": [12.5, 9.5, 12.75, 10], "texture": "#0"}, + "south": {"uv": [12.5, 10, 12.75, 10.5], "texture": "#0"}, + "west": {"uv": [10.25, 12.5, 10.5, 13], "texture": "#0"}, + "up": {"uv": [13, 9.75, 12.75, 9.5], "texture": "#0"}, + "down": {"uv": [10, 12.75, 9.75, 13], "texture": "#0"} + } + }, + { + "from": [7, 12, 2], + "to": [9, 14, 3], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 8]}, + "faces": { + "north": {"uv": [10.25, 7.75, 10.75, 8.25], "texture": "#0"}, + "east": {"uv": [10.5, 12.5, 10.75, 13], "texture": "#0"}, + "south": {"uv": [10.25, 8.25, 10.75, 8.75], "texture": "#0"}, + "west": {"uv": [10.75, 12.5, 11, 13], "texture": "#0"}, + "up": {"uv": [13, 8.25, 12.5, 8], "texture": "#0"}, + "down": {"uv": [12, 12.5, 11.5, 12.75], "texture": "#0"} + } + }, + { + "from": [7, 13, 3], + "to": [9, 14, 4], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 8]}, + "faces": { + "north": {"uv": [12, 12.5, 12.5, 12.75], "texture": "#0"}, + "east": {"uv": [12.75, 9.75, 13, 10], "texture": "#0"}, + "south": {"uv": [12.5, 12, 13, 12.25], "texture": "#0"}, + "west": {"uv": [10, 12.75, 10.25, 13], "texture": "#0"}, + "up": {"uv": [13, 12.5, 12.5, 12.25], "texture": "#0"}, + "down": {"uv": [13, 12.5, 12.5, 12.75], "texture": "#0"} + } + }, + { + "from": [13, 12, 7], + "to": [14, 14, 9], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 8]}, + "faces": { + "north": {"uv": [11, 12.5, 11.25, 13], "texture": "#0"}, + "east": {"uv": [8.5, 10.25, 9, 10.75], "texture": "#0"}, + "south": {"uv": [12.75, 0, 13, 0.5], "texture": "#0"}, + "west": {"uv": [10.25, 8.75, 10.75, 9.25], "texture": "#0"}, + "up": {"uv": [13, 1, 12.75, 0.5], "texture": "#0"}, + "down": {"uv": [13, 1, 12.75, 1.5], "texture": "#0"} + } + }, + { + "from": [12, 13, 7], + "to": [13, 14, 9], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 8]}, + "faces": { + "north": {"uv": [12.75, 10, 13, 10.25], "texture": "#0"}, + "east": {"uv": [12.75, 1.5, 13.25, 1.75], "texture": "#0"}, + "south": {"uv": [12.75, 10.25, 13, 10.5], "texture": "#0"}, + "west": {"uv": [12.75, 1.75, 13.25, 2], "texture": "#0"}, + "up": {"uv": [2.25, 13.25, 2, 12.75], "texture": "#0"}, + "down": {"uv": [13, 2, 12.75, 2.5], "texture": "#0"} + } + }, + { + "from": [7, 12, 13], + "to": [9, 14, 14], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 8]}, + "faces": { + "north": {"uv": [9, 10.25, 9.5, 10.75], "texture": "#0"}, + "east": {"uv": [2.25, 12.75, 2.5, 13.25], "texture": "#0"}, + "south": {"uv": [9.5, 10.25, 10, 10.75], "texture": "#0"}, + "west": {"uv": [2.5, 12.75, 2.75, 13.25], "texture": "#0"}, + "up": {"uv": [13.25, 2.75, 12.75, 2.5], "texture": "#0"}, + "down": {"uv": [13.25, 2.75, 12.75, 3], "texture": "#0"} + } + }, + { + "from": [7, 13, 12], + "to": [9, 14, 13], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 8]}, + "faces": { + "north": {"uv": [12.75, 3, 13.25, 3.25], "texture": "#0"}, + "east": {"uv": [12.75, 10.5, 13, 10.75], "texture": "#0"}, + "south": {"uv": [12.75, 3.25, 13.25, 3.5], "texture": "#0"}, + "west": {"uv": [12.75, 10.75, 13, 11], "texture": "#0"}, + "up": {"uv": [13.25, 3.75, 12.75, 3.5], "texture": "#0"}, + "down": {"uv": [13.25, 3.75, 12.75, 4], "texture": "#0"} + } + }, + { + "from": [2, 12, 7], + "to": [3, 14, 9], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 8]}, + "faces": { + "north": {"uv": [2.75, 12.75, 3, 13.25], "texture": "#0"}, + "east": {"uv": [10, 10.25, 10.5, 10.75], "texture": "#0"}, + "south": {"uv": [4, 12.75, 4.25, 13.25], "texture": "#0"}, + "west": {"uv": [10.5, 0, 11, 0.5], "texture": "#0"}, + "up": {"uv": [13, 4.5, 12.75, 4], "texture": "#0"}, + "down": {"uv": [4.5, 12.75, 4.25, 13.25], "texture": "#0"} + } + }, + { + "from": [3, 13, 7], + "to": [4, 14, 9], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 8]}, + "faces": { + "north": {"uv": [12.75, 11, 13, 11.25], "texture": "#0"}, + "east": {"uv": [4.5, 12.75, 5, 13], "texture": "#0"}, + "south": {"uv": [11.25, 12.75, 11.5, 13], "texture": "#0"}, + "west": {"uv": [12.75, 4.5, 13.25, 4.75], "texture": "#0"}, + "up": {"uv": [13, 5.25, 12.75, 4.75], "texture": "#0"}, + "down": {"uv": [5.25, 12.75, 5, 13.25], "texture": "#0"} + } + }, + { + "from": [3, 2, 6], + "to": [4, 3, 10], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 8]}, + "faces": { + "north": {"uv": [12.75, 11.25, 13, 11.5], "texture": "#0"}, + "east": {"uv": [10.5, 0.5, 11.5, 0.75], "texture": "#0"}, + "south": {"uv": [11.5, 12.75, 11.75, 13], "texture": "#0"}, + "west": {"uv": [10.5, 0.75, 11.5, 1], "texture": "#0"}, + "up": {"uv": [10.75, 2, 10.5, 1], "texture": "#0"}, + "down": {"uv": [10.75, 2, 10.5, 3], "texture": "#0"} + } + }, + { + "from": [2, 2, 6], + "to": [3, 4, 10], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 8]}, + "faces": { + "north": {"uv": [5.25, 12.75, 5.5, 13.25], "texture": "#0"}, + "east": {"uv": [6.5, 4, 7.5, 4.5], "texture": "#0"}, + "south": {"uv": [12.75, 5.25, 13, 5.75], "texture": "#0"}, + "west": {"uv": [6.5, 4.5, 7.5, 5], "texture": "#0"}, + "up": {"uv": [3.25, 11.5, 3, 10.5], "texture": "#0"}, + "down": {"uv": [10.75, 3, 10.5, 4], "texture": "#0"} + } + }, + { + "from": [6, 2, 12], + "to": [10, 3, 13], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 8]}, + "faces": { + "north": {"uv": [10.5, 10, 11.5, 10.25], "texture": "#0"}, + "east": {"uv": [12.75, 11.5, 13, 11.75], "texture": "#0"}, + "south": {"uv": [10.5, 10.25, 11.5, 10.5], "texture": "#0"}, + "west": {"uv": [11.75, 12.75, 12, 13], "texture": "#0"}, + "up": {"uv": [11.5, 10.75, 10.5, 10.5], "texture": "#0"}, + "down": {"uv": [11.75, 1, 10.75, 1.25], "texture": "#0"} + } + }, + { + "from": [6, 2, 13], + "to": [10, 4, 14], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 8]}, + "faces": { + "north": {"uv": [3, 9.5, 4, 10], "texture": "#0"}, + "east": {"uv": [5.5, 12.75, 5.75, 13.25], "texture": "#0"}, + "south": {"uv": [4, 9.5, 5, 10], "texture": "#0"}, + "west": {"uv": [5.75, 12.75, 6, 13.25], "texture": "#0"}, + "up": {"uv": [11.75, 1.5, 10.75, 1.25], "texture": "#0"}, + "down": {"uv": [11.75, 1.5, 10.75, 1.75], "texture": "#0"} + } + }, + { + "from": [12, 2, 6], + "to": [13, 3, 10], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 8]}, + "faces": { + "north": {"uv": [12.75, 11.75, 13, 12], "texture": "#0"}, + "east": {"uv": [10.75, 1.75, 11.75, 2], "texture": "#0"}, + "south": {"uv": [12, 12.75, 12.25, 13], "texture": "#0"}, + "west": {"uv": [10.75, 2, 11.75, 2.25], "texture": "#0"}, + "up": {"uv": [3.5, 11.5, 3.25, 10.5], "texture": "#0"}, + "down": {"uv": [3.75, 10.5, 3.5, 11.5], "texture": "#0"} + } + }, + { + "from": [13, 2, 6], + "to": [14, 4, 10], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 8]}, + "faces": { + "north": {"uv": [12.75, 5.75, 13, 6.25], "texture": "#0"}, + "east": {"uv": [5, 9.5, 6, 10], "texture": "#0"}, + "south": {"uv": [6, 12.75, 6.25, 13.25], "texture": "#0"}, + "west": {"uv": [6, 9.5, 7, 10], "texture": "#0"}, + "up": {"uv": [4, 11.5, 3.75, 10.5], "texture": "#0"}, + "down": {"uv": [11, 2.25, 10.75, 3.25], "texture": "#0"} + } + }, + { + "from": [6, 2, 3], + "to": [10, 3, 4], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 8]}, + "faces": { + "north": {"uv": [10.75, 3.25, 11.75, 3.5], "texture": "#0"}, + "east": {"uv": [12.25, 12.75, 12.5, 13], "texture": "#0"}, + "south": {"uv": [10.75, 3.5, 11.75, 3.75], "texture": "#0"}, + "west": {"uv": [12.5, 12.75, 12.75, 13], "texture": "#0"}, + "up": {"uv": [11.75, 4, 10.75, 3.75], "texture": "#0"}, + "down": {"uv": [11.75, 4.5, 10.75, 4.75], "texture": "#0"} + } + }, + { + "from": [6, 2, 2], + "to": [10, 4, 3], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 8]}, + "faces": { + "north": {"uv": [7, 9.5, 8, 10], "texture": "#0"}, + "east": {"uv": [6.25, 12.75, 6.5, 13.25], "texture": "#0"}, + "south": {"uv": [3, 10, 4, 10.5], "texture": "#0"}, + "west": {"uv": [12.75, 6.25, 13, 6.75], "texture": "#0"}, + "up": {"uv": [11.75, 5, 10.75, 4.75], "texture": "#0"}, + "down": {"uv": [11.75, 5, 10.75, 5.25], "texture": "#0"} + } + }, + { + "from": [12, 3, 4], + "to": [13, 13, 12], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 8]}, + "faces": { + "north": {"uv": [2, 9.5, 2.25, 12], "texture": "#0"}, + "east": {"uv": [2.5, 0, 4.5, 2.5], "texture": "#0"}, + "south": {"uv": [2.25, 9.5, 2.5, 12], "texture": "#0"}, + "west": {"uv": [2.5, 2.5, 4.5, 5], "texture": "#0"}, + "up": {"uv": [4.25, 12, 4, 10], "texture": "#0"}, + "down": {"uv": [10.25, 4, 10, 6], "texture": "#0"} + } + }, + { + "from": [3, 3, 4], + "to": [4, 13, 12], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 8]}, + "faces": { + "north": {"uv": [2.5, 9.5, 2.75, 12], "texture": "#0"}, + "east": {"uv": [4.5, 0, 6.5, 2.5], "texture": "#0"}, + "south": {"uv": [2.75, 9.5, 3, 12], "texture": "#0"}, + "west": {"uv": [4.5, 2.5, 6.5, 5], "texture": "#0"}, + "up": {"uv": [4.5, 12, 4.25, 10], "texture": "#0"}, + "down": {"uv": [4.75, 10, 4.5, 12], "texture": "#0"} + } + }, + { + "name": "base", + "from": [4, 3, 3], + "to": [12, 13, 13], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 8]}, + "faces": { + "north": {"uv": [0, 5, 2, 7.5], "texture": "#0"}, + "east": {"uv": [0, 0, 2.5, 2.5], "texture": "#0"}, + "south": {"uv": [2, 5, 4, 7.5], "texture": "#0"}, + "west": {"uv": [0, 2.5, 2.5, 5], "texture": "#0"}, + "up": {"uv": [6, 7.5, 4, 5], "texture": "#0"}, + "down": {"uv": [8, 5, 6, 7.5], "texture": "#0"} + } + }, + { + "from": [4, 4, 13], + "to": [12, 12, 14], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 8]}, + "faces": { + "north": {"uv": [6.5, 0, 8.5, 2], "texture": "#0"}, + "east": {"uv": [4.75, 10, 5, 12], "texture": "#0"}, + "south": {"uv": [6.5, 2, 8.5, 4], "texture": "#0"}, + "west": {"uv": [5, 10, 5.25, 12], "texture": "#0"}, + "up": {"uv": [7.25, 10.25, 5.25, 10], "texture": "#0"}, + "down": {"uv": [12, 6, 10, 6.25], "texture": "#0"} + } + }, + { + "from": [4, 13, 4], + "to": [12, 14, 12], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 8]}, + "faces": { + "north": {"uv": [10, 6.25, 12, 6.5], "texture": "#0"}, + "east": {"uv": [10, 6.5, 12, 6.75], "texture": "#0"}, + "south": {"uv": [10, 6.75, 12, 7], "texture": "#0"}, + "west": {"uv": [10, 7, 12, 7.25], "texture": "#0"}, + "up": {"uv": [2, 9.5, 0, 7.5], "texture": "#0"}, + "down": {"uv": [4, 7.5, 2, 9.5], "texture": "#0"} + } + }, + { + "from": [13, 4, 4], + "to": [14, 12, 12], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 8]}, + "faces": { + "north": {"uv": [7.25, 10, 7.5, 12], "texture": "#0"}, + "east": {"uv": [4, 7.5, 6, 9.5], "texture": "#0"}, + "south": {"uv": [10, 7.25, 10.25, 9.25], "texture": "#0"}, + "west": {"uv": [6, 7.5, 8, 9.5], "texture": "#0"}, + "up": {"uv": [7.75, 12, 7.5, 10], "texture": "#0"}, + "down": {"uv": [8, 10, 7.75, 12], "texture": "#0"} + } + }, + { + "from": [4, 4, 2], + "to": [12, 12, 3], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 8]}, + "faces": { + "north": {"uv": [8, 4, 10, 6], "texture": "#0"}, + "east": {"uv": [8, 10, 8.25, 12], "texture": "#0"}, + "south": {"uv": [8, 6, 10, 8], "texture": "#0"}, + "west": {"uv": [8.25, 10, 8.5, 12], "texture": "#0"}, + "up": {"uv": [10.5, 10.25, 8.5, 10], "texture": "#0"}, + "down": {"uv": [12, 9.25, 10, 9.5], "texture": "#0"} + } + }, + { + "from": [4, 2, 4], + "to": [12, 3, 12], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 8]}, + "faces": { + "north": {"uv": [10, 9.5, 12, 9.75], "texture": "#0"}, + "east": {"uv": [10, 9.75, 12, 10], "texture": "#0"}, + "south": {"uv": [10.25, 4, 12.25, 4.25], "texture": "#0"}, + "west": {"uv": [10.25, 4.25, 12.25, 4.5], "texture": "#0"}, + "up": {"uv": [10, 10, 8, 8], "texture": "#0"}, + "down": {"uv": [10.5, 0, 8.5, 2], "texture": "#0"} + } + }, + { + "from": [2, 4, 4], + "to": [3, 12, 12], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 8]}, + "faces": { + "north": {"uv": [5.25, 10.25, 5.5, 12.25], "texture": "#0"}, + "east": {"uv": [8.5, 2, 10.5, 4], "texture": "#0"}, + "south": {"uv": [5.5, 10.25, 5.75, 12.25], "texture": "#0"}, + "west": {"uv": [0, 9.5, 2, 11.5], "texture": "#0"}, + "up": {"uv": [6, 12.25, 5.75, 10.25], "texture": "#0"}, + "down": {"uv": [6.25, 10.25, 6, 12.25], "texture": "#0"} + } + }, + { + "from": [6, 10.5, 1], + "to": [10, 11.5, 2], + "rotation": {"angle": 0, "axis": "z", "origin": [8, 8, 1.5]}, + "faces": { + "north": {"uv": [10.75, 5.25, 11.75, 5.5], "texture": "#0"}, + "east": {"uv": [12.75, 12.75, 13, 13], "texture": "#0"}, + "south": {"uv": [10.75, 5.5, 11.75, 5.75], "texture": "#0"}, + "west": {"uv": [0, 13, 0.25, 13.25], "texture": "#0"}, + "up": {"uv": [11.75, 6, 10.75, 5.75], "texture": "#0"}, + "down": {"uv": [7.25, 10.75, 6.25, 11], "texture": "#0"} + } + }, + { + "from": [6, 4.5, 1], + "to": [10, 5.5, 2], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 1.5]}, + "faces": { + "north": {"uv": [10.75, 7.25, 11.75, 7.5], "texture": "#0"}, + "east": {"uv": [13, 0, 13.25, 0.25], "texture": "#0"}, + "south": {"uv": [10.75, 7.5, 11.75, 7.75], "texture": "#0"}, + "west": {"uv": [0.25, 13, 0.5, 13.25], "texture": "#0"}, + "up": {"uv": [11.75, 8, 10.75, 7.75], "texture": "#0"}, + "down": {"uv": [11.75, 8, 10.75, 8.25], "texture": "#0"} + } + }, + { + "from": [10.5, 6, 1], + "to": [11.5, 10, 2], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 1.5]}, + "faces": { + "north": {"uv": [10.75, 8.25, 11, 9.25], "texture": "#0"}, + "east": {"uv": [8.5, 10.75, 8.75, 11.75], "texture": "#0"}, + "south": {"uv": [8.75, 10.75, 9, 11.75], "texture": "#0"}, + "west": {"uv": [9, 10.75, 9.25, 11.75], "texture": "#0"}, + "up": {"uv": [13.25, 0.5, 13, 0.25], "texture": "#0"}, + "down": {"uv": [0.75, 13, 0.5, 13.25], "texture": "#0"} + } + }, + { + "from": [10, 5, 1], + "to": [11, 6, 2], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 1.5]}, + "faces": { + "north": {"uv": [13, 0.5, 13.25, 0.75], "texture": "#0"}, + "east": {"uv": [0.75, 13, 1, 13.25], "texture": "#0"}, + "south": {"uv": [13, 0.75, 13.25, 1], "texture": "#0"}, + "west": {"uv": [1, 13, 1.25, 13.25], "texture": "#0"}, + "up": {"uv": [13.25, 1.25, 13, 1], "texture": "#0"}, + "down": {"uv": [1.5, 13, 1.25, 13.25], "texture": "#0"} + } + }, + { + "from": [5, 5, 1], + "to": [6, 6, 2], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 1.5]}, + "faces": { + "north": {"uv": [13, 1.25, 13.25, 1.5], "texture": "#0"}, + "east": {"uv": [1.5, 13, 1.75, 13.25], "texture": "#0"}, + "south": {"uv": [1.75, 13, 2, 13.25], "texture": "#0"}, + "west": {"uv": [13, 2, 13.25, 2.25], "texture": "#0"}, + "up": {"uv": [13.25, 2.5, 13, 2.25], "texture": "#0"}, + "down": {"uv": [3.25, 13, 3, 13.25], "texture": "#0"} + } + }, + { + "from": [5, 10, 1], + "to": [6, 11, 2], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 1.5]}, + "faces": { + "north": {"uv": [3.25, 13, 3.5, 13.25], "texture": "#0"}, + "east": {"uv": [3.5, 13, 3.75, 13.25], "texture": "#0"}, + "south": {"uv": [3.75, 13, 4, 13.25], "texture": "#0"}, + "west": {"uv": [13, 4, 13.25, 4.25], "texture": "#0"}, + "up": {"uv": [13.25, 4.5, 13, 4.25], "texture": "#0"}, + "down": {"uv": [4.75, 13, 4.5, 13.25], "texture": "#0"} + } + }, + { + "from": [10, 10, 1], + "to": [11, 11, 2], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 1.5]}, + "faces": { + "north": {"uv": [4.75, 13, 5, 13.25], "texture": "#0"}, + "east": {"uv": [13, 4.75, 13.25, 5], "texture": "#0"}, + "south": {"uv": [13, 5, 13.25, 5.25], "texture": "#0"}, + "west": {"uv": [13, 5.25, 13.25, 5.5], "texture": "#0"}, + "up": {"uv": [13.25, 5.75, 13, 5.5], "texture": "#0"}, + "down": {"uv": [13.25, 5.75, 13, 6], "texture": "#0"} + } + }, + { + "from": [10, 5, 1], + "to": [11, 6, 2], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 1.5]}, + "faces": { + "north": {"uv": [13, 6, 13.25, 6.25], "texture": "#0"}, + "east": {"uv": [13, 6.25, 13.25, 6.5], "texture": "#0"}, + "south": {"uv": [6.5, 13, 6.75, 13.25], "texture": "#0"}, + "west": {"uv": [13, 6.5, 13.25, 6.75], "texture": "#0"}, + "up": {"uv": [7, 13.25, 6.75, 13], "texture": "#0"}, + "down": {"uv": [13.25, 6.75, 13, 7], "texture": "#0"} + } + }, + { + "from": [4.5, 6, 1], + "to": [5.5, 10, 2], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 1.5]}, + "faces": { + "north": {"uv": [9.25, 10.75, 9.5, 11.75], "texture": "#0"}, + "east": {"uv": [9.5, 10.75, 9.75, 11.75], "texture": "#0"}, + "south": {"uv": [9.75, 10.75, 10, 11.75], "texture": "#0"}, + "west": {"uv": [10, 10.75, 10.25, 11.75], "texture": "#0"}, + "up": {"uv": [7.25, 13.25, 7, 13], "texture": "#0"}, + "down": {"uv": [13.25, 7, 13, 7.25], "texture": "#0"} + } + }, + { + "from": [5.5, 8, 1], + "to": [6.5, 8.75, 2], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 1.5]}, + "faces": { + "north": {"uv": [7.25, 13, 7.5, 13.25], "texture": "#0"}, + "east": {"uv": [13, 7.25, 13.25, 7.5], "texture": "#0"}, + "south": {"uv": [7.5, 13, 7.75, 13.25], "texture": "#0"}, + "west": {"uv": [13, 7.5, 13.25, 7.75], "texture": "#0"}, + "up": {"uv": [8, 13.25, 7.75, 13], "texture": "#0"}, + "down": {"uv": [13.25, 7.75, 13, 8], "texture": "#0"} + } + }, + { + "from": [9.5, 8, 1], + "to": [10.5, 8.75, 2], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 1.5]}, + "faces": { + "north": {"uv": [8, 13, 8.25, 13.25], "texture": "#0"}, + "east": {"uv": [13, 8, 13.25, 8.25], "texture": "#0"}, + "south": {"uv": [8.25, 13, 8.5, 13.25], "texture": "#0"}, + "west": {"uv": [13, 8.25, 13.25, 8.5], "texture": "#0"}, + "up": {"uv": [8.75, 13.25, 8.5, 13], "texture": "#0"}, + "down": {"uv": [13.25, 8.5, 13, 8.75], "texture": "#0"} + } + }, + { + "from": [6.5, 7.25, 1], + "to": [9.5, 8, 2], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 1.5]}, + "faces": { + "north": {"uv": [12, 0, 12.75, 0.25], "texture": "#0"}, + "east": {"uv": [8.75, 13, 9, 13.25], "texture": "#0"}, + "south": {"uv": [12, 0.25, 12.75, 0.5], "texture": "#0"}, + "west": {"uv": [13, 8.75, 13.25, 9], "texture": "#0"}, + "up": {"uv": [2.75, 12.25, 2, 12], "texture": "#0"}, + "down": {"uv": [12.75, 2.25, 12, 2.5], "texture": "#0"} + } + }, + { + "from": [6, 10.5, 14], + "to": [10, 11.5, 15], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 14.5]}, + "faces": { + "north": {"uv": [10.25, 10.75, 11.25, 11], "texture": "#0"}, + "east": {"uv": [9, 13, 9.25, 13.25], "texture": "#0"}, + "south": {"uv": [11, 0, 12, 0.25], "texture": "#0"}, + "west": {"uv": [13, 9, 13.25, 9.25], "texture": "#0"}, + "up": {"uv": [12, 0.5, 11, 0.25], "texture": "#0"}, + "down": {"uv": [12, 2.25, 11, 2.5], "texture": "#0"} + } + }, + { + "from": [6, 4.5, 14], + "to": [10, 5.5, 15], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 14.5]}, + "faces": { + "north": {"uv": [11, 2.5, 12, 2.75], "texture": "#0"}, + "east": {"uv": [9.25, 13, 9.5, 13.25], "texture": "#0"}, + "south": {"uv": [11, 2.75, 12, 3], "texture": "#0"}, + "west": {"uv": [13, 9.25, 13.25, 9.5], "texture": "#0"}, + "up": {"uv": [12, 3.25, 11, 3], "texture": "#0"}, + "down": {"uv": [7.25, 11, 6.25, 11.25], "texture": "#0"} + } + }, + { + "from": [10.5, 6, 14], + "to": [11.5, 10, 15], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 14.5]}, + "faces": { + "north": {"uv": [11, 8.25, 11.25, 9.25], "texture": "#0"}, + "east": {"uv": [10.25, 11, 10.5, 12], "texture": "#0"}, + "south": {"uv": [10.5, 11, 10.75, 12], "texture": "#0"}, + "west": {"uv": [10.75, 11, 11, 12], "texture": "#0"}, + "up": {"uv": [9.75, 13.25, 9.5, 13], "texture": "#0"}, + "down": {"uv": [13.25, 9.5, 13, 9.75], "texture": "#0"} + } + }, + { + "from": [10, 5, 14], + "to": [11, 6, 15], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 14.5]}, + "faces": { + "north": {"uv": [9.75, 13, 10, 13.25], "texture": "#0"}, + "east": {"uv": [13, 9.75, 13.25, 10], "texture": "#0"}, + "south": {"uv": [10, 13, 10.25, 13.25], "texture": "#0"}, + "west": {"uv": [13, 10, 13.25, 10.25], "texture": "#0"}, + "up": {"uv": [10.5, 13.25, 10.25, 13], "texture": "#0"}, + "down": {"uv": [13.25, 10.25, 13, 10.5], "texture": "#0"} + } + }, + { + "from": [5, 5, 14], + "to": [6, 6, 15], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 14.5]}, + "faces": { + "north": {"uv": [10.5, 13, 10.75, 13.25], "texture": "#0"}, + "east": {"uv": [13, 10.5, 13.25, 10.75], "texture": "#0"}, + "south": {"uv": [10.75, 13, 11, 13.25], "texture": "#0"}, + "west": {"uv": [13, 10.75, 13.25, 11], "texture": "#0"}, + "up": {"uv": [11.25, 13.25, 11, 13], "texture": "#0"}, + "down": {"uv": [13.25, 11, 13, 11.25], "texture": "#0"} + } + }, + { + "from": [5, 10, 14], + "to": [6, 11, 15], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 14.5]}, + "faces": { + "north": {"uv": [11.25, 13, 11.5, 13.25], "texture": "#0"}, + "east": {"uv": [13, 11.25, 13.25, 11.5], "texture": "#0"}, + "south": {"uv": [11.5, 13, 11.75, 13.25], "texture": "#0"}, + "west": {"uv": [13, 11.5, 13.25, 11.75], "texture": "#0"}, + "up": {"uv": [12, 13.25, 11.75, 13], "texture": "#0"}, + "down": {"uv": [13.25, 11.75, 13, 12], "texture": "#0"} + } + }, + { + "from": [10, 10, 14], + "to": [11, 11, 15], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 14.5]}, + "faces": { + "north": {"uv": [12, 13, 12.25, 13.25], "texture": "#0"}, + "east": {"uv": [13, 12, 13.25, 12.25], "texture": "#0"}, + "south": {"uv": [12.25, 13, 12.5, 13.25], "texture": "#0"}, + "west": {"uv": [13, 12.25, 13.25, 12.5], "texture": "#0"}, + "up": {"uv": [12.75, 13.25, 12.5, 13], "texture": "#0"}, + "down": {"uv": [13.25, 12.5, 13, 12.75], "texture": "#0"} + } + }, + { + "from": [10, 5, 14], + "to": [11, 6, 15], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 14.5]}, + "faces": { + "north": {"uv": [12.75, 13, 13, 13.25], "texture": "#0"}, + "east": {"uv": [13, 12.75, 13.25, 13], "texture": "#0"}, + "south": {"uv": [13, 13, 13.25, 13.25], "texture": "#0"}, + "west": {"uv": [0, 13.25, 0.25, 13.5], "texture": "#0"}, + "up": {"uv": [13.5, 0.25, 13.25, 0], "texture": "#0"}, + "down": {"uv": [0.5, 13.25, 0.25, 13.5], "texture": "#0"} + } + }, + { + "from": [4.5, 6, 14], + "to": [5.5, 10, 15], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 14.5]}, + "faces": { + "north": {"uv": [11, 11, 11.25, 12], "texture": "#0"}, + "east": {"uv": [6.25, 11.25, 6.5, 12.25], "texture": "#0"}, + "south": {"uv": [6.5, 11.25, 6.75, 12.25], "texture": "#0"}, + "west": {"uv": [6.75, 11.25, 7, 12.25], "texture": "#0"}, + "up": {"uv": [13.5, 0.5, 13.25, 0.25], "texture": "#0"}, + "down": {"uv": [0.75, 13.25, 0.5, 13.5], "texture": "#0"} + } + }, + { + "from": [5.5, 8, 14], + "to": [6.5, 8.75, 15], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 14.5]}, + "faces": { + "north": {"uv": [13.25, 0.5, 13.5, 0.75], "texture": "#0"}, + "east": {"uv": [0.75, 13.25, 1, 13.5], "texture": "#0"}, + "south": {"uv": [13.25, 0.75, 13.5, 1], "texture": "#0"}, + "west": {"uv": [1, 13.25, 1.25, 13.5], "texture": "#0"}, + "up": {"uv": [13.5, 1.25, 13.25, 1], "texture": "#0"}, + "down": {"uv": [1.5, 13.25, 1.25, 13.5], "texture": "#0"} + } + }, + { + "from": [9.5, 8, 14], + "to": [10.5, 8.75, 15], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 14.5]}, + "faces": { + "north": {"uv": [13.25, 1.25, 13.5, 1.5], "texture": "#0"}, + "east": {"uv": [1.5, 13.25, 1.75, 13.5], "texture": "#0"}, + "south": {"uv": [13.25, 1.5, 13.5, 1.75], "texture": "#0"}, + "west": {"uv": [1.75, 13.25, 2, 13.5], "texture": "#0"}, + "up": {"uv": [13.5, 2, 13.25, 1.75], "texture": "#0"}, + "down": {"uv": [2.25, 13.25, 2, 13.5], "texture": "#0"} + } + }, + { + "from": [6.5, 7.25, 14], + "to": [9.5, 8, 15], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 14.5]}, + "faces": { + "north": {"uv": [12, 2.5, 12.75, 2.75], "texture": "#0"}, + "east": {"uv": [13.25, 2, 13.5, 2.25], "texture": "#0"}, + "south": {"uv": [12, 2.75, 12.75, 3], "texture": "#0"}, + "west": {"uv": [2.25, 13.25, 2.5, 13.5], "texture": "#0"}, + "up": {"uv": [12.75, 3.25, 12, 3], "texture": "#0"}, + "down": {"uv": [4.75, 12, 4, 12.25], "texture": "#0"} + } + }, + { + "from": [14, 10.5, 6], + "to": [15, 11.5, 10], + "rotation": {"angle": 0, "axis": "y", "origin": [14.5, 8, 8]}, + "faces": { + "north": {"uv": [13.25, 2.25, 13.5, 2.5], "texture": "#0"}, + "east": {"uv": [11.25, 8.25, 12.25, 8.5], "texture": "#0"}, + "south": {"uv": [2.5, 13.25, 2.75, 13.5], "texture": "#0"}, + "west": {"uv": [11.25, 8.5, 12.25, 8.75], "texture": "#0"}, + "up": {"uv": [7.25, 12.25, 7, 11.25], "texture": "#0"}, + "down": {"uv": [11.5, 10.75, 11.25, 11.75], "texture": "#0"} + } + }, + { + "from": [14, 4.5, 6], + "to": [15, 5.5, 10], + "rotation": {"angle": 0, "axis": "y", "origin": [14.5, 8, 8]}, + "faces": { + "north": {"uv": [13.25, 2.5, 13.5, 2.75], "texture": "#0"}, + "east": {"uv": [11.25, 8.75, 12.25, 9], "texture": "#0"}, + "south": {"uv": [2.75, 13.25, 3, 13.5], "texture": "#0"}, + "west": {"uv": [11.25, 9, 12.25, 9.25], "texture": "#0"}, + "up": {"uv": [0.25, 12.5, 0, 11.5], "texture": "#0"}, + "down": {"uv": [0.5, 11.5, 0.25, 12.5], "texture": "#0"} + } + }, + { + "from": [14, 6, 4.5], + "to": [15, 10, 5.5], + "rotation": {"angle": 0, "axis": "y", "origin": [14.5, 8, 8]}, + "faces": { + "north": {"uv": [0.5, 11.5, 0.75, 12.5], "texture": "#0"}, + "east": {"uv": [0.75, 11.5, 1, 12.5], "texture": "#0"}, + "south": {"uv": [1, 11.5, 1.25, 12.5], "texture": "#0"}, + "west": {"uv": [1.25, 11.5, 1.5, 12.5], "texture": "#0"}, + "up": {"uv": [13.5, 3, 13.25, 2.75], "texture": "#0"}, + "down": {"uv": [3.25, 13.25, 3, 13.5], "texture": "#0"} + } + }, + { + "from": [14, 5, 5], + "to": [15, 6, 6], + "rotation": {"angle": 0, "axis": "y", "origin": [14.5, 8, 8]}, + "faces": { + "north": {"uv": [13.25, 3, 13.5, 3.25], "texture": "#0"}, + "east": {"uv": [3.25, 13.25, 3.5, 13.5], "texture": "#0"}, + "south": {"uv": [13.25, 3.25, 13.5, 3.5], "texture": "#0"}, + "west": {"uv": [3.5, 13.25, 3.75, 13.5], "texture": "#0"}, + "up": {"uv": [13.5, 3.75, 13.25, 3.5], "texture": "#0"}, + "down": {"uv": [4, 13.25, 3.75, 13.5], "texture": "#0"} + } + }, + { + "from": [14, 5, 10], + "to": [15, 6, 11], + "rotation": {"angle": 0, "axis": "y", "origin": [14.5, 8, 8]}, + "faces": { + "north": {"uv": [13.25, 3.75, 13.5, 4], "texture": "#0"}, + "east": {"uv": [4, 13.25, 4.25, 13.5], "texture": "#0"}, + "south": {"uv": [13.25, 4, 13.5, 4.25], "texture": "#0"}, + "west": {"uv": [4.25, 13.25, 4.5, 13.5], "texture": "#0"}, + "up": {"uv": [13.5, 4.5, 13.25, 4.25], "texture": "#0"}, + "down": {"uv": [4.75, 13.25, 4.5, 13.5], "texture": "#0"} + } + }, + { + "from": [14, 10, 10], + "to": [15, 11, 11], + "rotation": {"angle": 0, "axis": "y", "origin": [14.5, 8, 8]}, + "faces": { + "north": {"uv": [13.25, 4.5, 13.5, 4.75], "texture": "#0"}, + "east": {"uv": [4.75, 13.25, 5, 13.5], "texture": "#0"}, + "south": {"uv": [13.25, 4.75, 13.5, 5], "texture": "#0"}, + "west": {"uv": [5, 13.25, 5.25, 13.5], "texture": "#0"}, + "up": {"uv": [13.5, 5.25, 13.25, 5], "texture": "#0"}, + "down": {"uv": [5.5, 13.25, 5.25, 13.5], "texture": "#0"} + } + }, + { + "from": [14, 10, 5], + "to": [15, 11, 6], + "rotation": {"angle": 0, "axis": "y", "origin": [14.5, 8, 8]}, + "faces": { + "north": {"uv": [13.25, 5.25, 13.5, 5.5], "texture": "#0"}, + "east": {"uv": [5.5, 13.25, 5.75, 13.5], "texture": "#0"}, + "south": {"uv": [13.25, 5.5, 13.5, 5.75], "texture": "#0"}, + "west": {"uv": [5.75, 13.25, 6, 13.5], "texture": "#0"}, + "up": {"uv": [13.5, 6, 13.25, 5.75], "texture": "#0"}, + "down": {"uv": [6.25, 13.25, 6, 13.5], "texture": "#0"} + } + }, + { + "from": [14, 5, 5], + "to": [15, 6, 6], + "rotation": {"angle": 0, "axis": "y", "origin": [14.5, 8, 8]}, + "faces": { + "north": {"uv": [13.25, 6, 13.5, 6.25], "texture": "#0"}, + "east": {"uv": [6.25, 13.25, 6.5, 13.5], "texture": "#0"}, + "south": {"uv": [13.25, 6.25, 13.5, 6.5], "texture": "#0"}, + "west": {"uv": [6.5, 13.25, 6.75, 13.5], "texture": "#0"}, + "up": {"uv": [13.5, 6.75, 13.25, 6.5], "texture": "#0"}, + "down": {"uv": [7, 13.25, 6.75, 13.5], "texture": "#0"} + } + }, + { + "from": [14, 6, 10.5], + "to": [15, 10, 11.5], + "rotation": {"angle": 0, "axis": "y", "origin": [14.5, 8, 8]}, + "faces": { + "north": {"uv": [1.5, 11.5, 1.75, 12.5], "texture": "#0"}, + "east": {"uv": [1.75, 11.5, 2, 12.5], "texture": "#0"}, + "south": {"uv": [3, 11.5, 3.25, 12.5], "texture": "#0"}, + "west": {"uv": [3.25, 11.5, 3.5, 12.5], "texture": "#0"}, + "up": {"uv": [13.5, 7, 13.25, 6.75], "texture": "#0"}, + "down": {"uv": [7.25, 13.25, 7, 13.5], "texture": "#0"} + } + }, + { + "from": [14, 8, 9.5], + "to": [15, 8.75, 10.5], + "rotation": {"angle": 0, "axis": "y", "origin": [14.5, 8, 8]}, + "faces": { + "north": {"uv": [13.25, 7, 13.5, 7.25], "texture": "#0"}, + "east": {"uv": [7.25, 13.25, 7.5, 13.5], "texture": "#0"}, + "south": {"uv": [13.25, 7.25, 13.5, 7.5], "texture": "#0"}, + "west": {"uv": [7.5, 13.25, 7.75, 13.5], "texture": "#0"}, + "up": {"uv": [13.5, 7.75, 13.25, 7.5], "texture": "#0"}, + "down": {"uv": [8, 13.25, 7.75, 13.5], "texture": "#0"} + } + }, + { + "from": [14, 8, 5.5], + "to": [15, 8.75, 6.5], + "rotation": {"angle": 0, "axis": "y", "origin": [14.5, 8, 8]}, + "faces": { + "north": {"uv": [13.25, 7.75, 13.5, 8], "texture": "#0"}, + "east": {"uv": [8, 13.25, 8.25, 13.5], "texture": "#0"}, + "south": {"uv": [13.25, 8, 13.5, 8.25], "texture": "#0"}, + "west": {"uv": [8.25, 13.25, 8.5, 13.5], "texture": "#0"}, + "up": {"uv": [13.5, 8.5, 13.25, 8.25], "texture": "#0"}, + "down": {"uv": [8.75, 13.25, 8.5, 13.5], "texture": "#0"} + } + }, + { + "from": [14, 7.25, 6.5], + "to": [15, 8, 9.5], + "rotation": {"angle": 0, "axis": "y", "origin": [14.5, 8, 8]}, + "faces": { + "north": {"uv": [13.25, 8.5, 13.5, 8.75], "texture": "#0"}, + "east": {"uv": [12, 4.5, 12.75, 4.75], "texture": "#0"}, + "south": {"uv": [8.75, 13.25, 9, 13.5], "texture": "#0"}, + "west": {"uv": [12, 4.75, 12.75, 5], "texture": "#0"}, + "up": {"uv": [3, 12.75, 2.75, 12], "texture": "#0"}, + "down": {"uv": [5, 12, 4.75, 12.75], "texture": "#0"} + } + }, + { + "from": [1, 10.5, 6], + "to": [2, 11.5, 10], + "rotation": {"angle": 0, "axis": "y", "origin": [1.5, 8, 8]}, + "faces": { + "north": {"uv": [13.25, 8.75, 13.5, 9], "texture": "#0"}, + "east": {"uv": [11.5, 0.5, 12.5, 0.75], "texture": "#0"}, + "south": {"uv": [9, 13.25, 9.25, 13.5], "texture": "#0"}, + "west": {"uv": [11.5, 0.75, 12.5, 1], "texture": "#0"}, + "up": {"uv": [3.75, 12.5, 3.5, 11.5], "texture": "#0"}, + "down": {"uv": [4, 11.5, 3.75, 12.5], "texture": "#0"} + } + }, + { + "from": [1, 4.5, 6], + "to": [2, 5.5, 10], + "rotation": {"angle": 0, "axis": "y", "origin": [1.5, 8, 8]}, + "faces": { + "north": {"uv": [13.25, 9, 13.5, 9.25], "texture": "#0"}, + "east": {"uv": [11.5, 10, 12.5, 10.25], "texture": "#0"}, + "south": {"uv": [9.25, 13.25, 9.5, 13.5], "texture": "#0"}, + "west": {"uv": [11.5, 10.25, 12.5, 10.5], "texture": "#0"}, + "up": {"uv": [11.75, 11.5, 11.5, 10.5], "texture": "#0"}, + "down": {"uv": [11.75, 11.5, 11.5, 12.5], "texture": "#0"} + } + }, + { + "from": [1, 6, 4.5], + "to": [2, 10, 5.5], + "rotation": {"angle": 0, "axis": "y", "origin": [1.5, 8, 8]}, + "faces": { + "north": {"uv": [11.75, 1, 12, 2], "texture": "#0"}, + "east": {"uv": [11.75, 4.5, 12, 5.5], "texture": "#0"}, + "south": {"uv": [11.75, 7.25, 12, 8.25], "texture": "#0"}, + "west": {"uv": [8.5, 11.75, 8.75, 12.75], "texture": "#0"}, + "up": {"uv": [13.5, 9.5, 13.25, 9.25], "texture": "#0"}, + "down": {"uv": [9.75, 13.25, 9.5, 13.5], "texture": "#0"} + } + }, + { + "from": [1, 5, 5], + "to": [2, 6, 6], + "rotation": {"angle": 0, "axis": "y", "origin": [1.5, 8, 8]}, + "faces": { + "north": {"uv": [13.25, 9.5, 13.5, 9.75], "texture": "#0"}, + "east": {"uv": [9.75, 13.25, 10, 13.5], "texture": "#0"}, + "south": {"uv": [13.25, 9.75, 13.5, 10], "texture": "#0"}, + "west": {"uv": [10, 13.25, 10.25, 13.5], "texture": "#0"}, + "up": {"uv": [13.5, 10.25, 13.25, 10], "texture": "#0"}, + "down": {"uv": [10.5, 13.25, 10.25, 13.5], "texture": "#0"} + } + }, + { + "from": [1, 5, 10], + "to": [2, 6, 11], + "rotation": {"angle": 0, "axis": "y", "origin": [1.5, 8, 8]}, + "faces": { + "north": {"uv": [13.25, 10.25, 13.5, 10.5], "texture": "#0"}, + "east": {"uv": [10.5, 13.25, 10.75, 13.5], "texture": "#0"}, + "south": {"uv": [13.25, 10.5, 13.5, 10.75], "texture": "#0"}, + "west": {"uv": [10.75, 13.25, 11, 13.5], "texture": "#0"}, + "up": {"uv": [13.5, 11, 13.25, 10.75], "texture": "#0"}, + "down": {"uv": [11.25, 13.25, 11, 13.5], "texture": "#0"} + } + }, + { + "from": [1, 10, 10], + "to": [2, 11, 11], + "rotation": {"angle": 0, "axis": "y", "origin": [1.5, 8, 8]}, + "faces": { + "north": {"uv": [13.25, 11, 13.5, 11.25], "texture": "#0"}, + "east": {"uv": [11.25, 13.25, 11.5, 13.5], "texture": "#0"}, + "south": {"uv": [13.25, 11.25, 13.5, 11.5], "texture": "#0"}, + "west": {"uv": [11.5, 13.25, 11.75, 13.5], "texture": "#0"}, + "up": {"uv": [13.5, 11.75, 13.25, 11.5], "texture": "#0"}, + "down": {"uv": [12, 13.25, 11.75, 13.5], "texture": "#0"} + } + }, + { + "from": [1, 10, 5], + "to": [2, 11, 6], + "rotation": {"angle": 0, "axis": "y", "origin": [1.5, 8, 8]}, + "faces": { + "north": {"uv": [13.25, 11.75, 13.5, 12], "texture": "#0"}, + "east": {"uv": [12, 13.25, 12.25, 13.5], "texture": "#0"}, + "south": {"uv": [13.25, 12, 13.5, 12.25], "texture": "#0"}, + "west": {"uv": [12.25, 13.25, 12.5, 13.5], "texture": "#0"}, + "up": {"uv": [13.5, 12.5, 13.25, 12.25], "texture": "#0"}, + "down": {"uv": [12.75, 13.25, 12.5, 13.5], "texture": "#0"} + } + }, + { + "from": [1, 5, 5], + "to": [2, 6, 6], + "rotation": {"angle": 0, "axis": "y", "origin": [1.5, 8, 8]}, + "faces": { + "north": {"uv": [13.25, 12.5, 13.5, 12.75], "texture": "#0"}, + "east": {"uv": [12.75, 13.25, 13, 13.5], "texture": "#0"}, + "south": {"uv": [13.25, 12.75, 13.5, 13], "texture": "#0"}, + "west": {"uv": [13, 13.25, 13.25, 13.5], "texture": "#0"}, + "up": {"uv": [13.5, 13.25, 13.25, 13], "texture": "#0"}, + "down": {"uv": [13.5, 13.25, 13.25, 13.5], "texture": "#0"} + } + }, + { + "from": [1, 6, 10.5], + "to": [2, 10, 11.5], + "rotation": {"angle": 0, "axis": "y", "origin": [1.5, 8, 8]}, + "faces": { + "north": {"uv": [8.75, 11.75, 9, 12.75], "texture": "#0"}, + "east": {"uv": [9, 11.75, 9.25, 12.75], "texture": "#0"}, + "south": {"uv": [9.25, 11.75, 9.5, 12.75], "texture": "#0"}, + "west": {"uv": [9.5, 11.75, 9.75, 12.75], "texture": "#0"}, + "up": {"uv": [0.25, 13.75, 0, 13.5], "texture": "#0"}, + "down": {"uv": [13.75, 0, 13.5, 0.25], "texture": "#0"} + } + }, + { + "from": [1, 8, 9.5], + "to": [2, 8.75, 10.5], + "rotation": {"angle": 0, "axis": "y", "origin": [1.5, 8, 8]}, + "faces": { + "north": {"uv": [0.25, 13.5, 0.5, 13.75], "texture": "#0"}, + "east": {"uv": [13.5, 0.25, 13.75, 0.5], "texture": "#0"}, + "south": {"uv": [0.5, 13.5, 0.75, 13.75], "texture": "#0"}, + "west": {"uv": [13.5, 0.5, 13.75, 0.75], "texture": "#0"}, + "up": {"uv": [1, 13.75, 0.75, 13.5], "texture": "#0"}, + "down": {"uv": [13.75, 0.75, 13.5, 1], "texture": "#0"} + } + }, + { + "from": [1, 8, 5.5], + "to": [2, 8.75, 6.5], + "rotation": {"angle": 0, "axis": "y", "origin": [1.5, 8, 8]}, + "faces": { + "north": {"uv": [1, 13.5, 1.25, 13.75], "texture": "#0"}, + "east": {"uv": [13.5, 1, 13.75, 1.25], "texture": "#0"}, + "south": {"uv": [1.25, 13.5, 1.5, 13.75], "texture": "#0"}, + "west": {"uv": [13.5, 1.25, 13.75, 1.5], "texture": "#0"}, + "up": {"uv": [1.75, 13.75, 1.5, 13.5], "texture": "#0"}, + "down": {"uv": [13.75, 1.5, 13.5, 1.75], "texture": "#0"} + } + }, + { + "from": [1, 7.25, 6.5], + "to": [2, 8, 9.5], + "rotation": {"angle": 0, "axis": "y", "origin": [1.5, 8, 8]}, + "faces": { + "north": {"uv": [1.75, 13.5, 2, 13.75], "texture": "#0"}, + "east": {"uv": [12, 5, 12.75, 5.25], "texture": "#0"}, + "south": {"uv": [13.5, 1.75, 13.75, 2], "texture": "#0"}, + "west": {"uv": [12, 5.25, 12.75, 5.5], "texture": "#0"}, + "up": {"uv": [5.25, 12.75, 5, 12], "texture": "#0"}, + "down": {"uv": [12.25, 6, 12, 6.75], "texture": "#0"} + } + }, + { + "from": [6, 14, 4.5], + "to": [10, 15, 5.5], + "rotation": {"angle": 0, "axis": "x", "origin": [8, 14.5, 8]}, + "faces": { + "north": {"uv": [11.75, 2, 12.75, 2.25], "texture": "#0"}, + "east": {"uv": [2, 13.5, 2.25, 13.75], "texture": "#0"}, + "south": {"uv": [11.75, 3.25, 12.75, 3.5], "texture": "#0"}, + "west": {"uv": [13.5, 2, 13.75, 2.25], "texture": "#0"}, + "up": {"uv": [12.75, 3.75, 11.75, 3.5], "texture": "#0"}, + "down": {"uv": [12.75, 3.75, 11.75, 4], "texture": "#0"} + } + }, + { + "from": [6, 14, 10.5], + "to": [10, 15, 11.5], + "rotation": {"angle": 0, "axis": "x", "origin": [8, 14.5, 8]}, + "faces": { + "north": {"uv": [11.75, 5.5, 12.75, 5.75], "texture": "#0"}, + "east": {"uv": [2.25, 13.5, 2.5, 13.75], "texture": "#0"}, + "south": {"uv": [11.75, 5.75, 12.75, 6], "texture": "#0"}, + "west": {"uv": [13.5, 2.25, 13.75, 2.5], "texture": "#0"}, + "up": {"uv": [12.75, 10.75, 11.75, 10.5], "texture": "#0"}, + "down": {"uv": [12.75, 10.75, 11.75, 11], "texture": "#0"} + } + }, + { + "from": [4.5, 14, 6], + "to": [5.5, 15, 10], + "rotation": {"angle": 0, "axis": "x", "origin": [8, 14.5, 8]}, + "faces": { + "north": {"uv": [2.5, 13.5, 2.75, 13.75], "texture": "#0"}, + "east": {"uv": [11.75, 11, 12.75, 11.25], "texture": "#0"}, + "south": {"uv": [13.5, 2.5, 13.75, 2.75], "texture": "#0"}, + "west": {"uv": [11.75, 11.25, 12.75, 11.5], "texture": "#0"}, + "up": {"uv": [10, 12.75, 9.75, 11.75], "texture": "#0"}, + "down": {"uv": [10.25, 11.75, 10, 12.75], "texture": "#0"} + } + }, + { + "from": [5, 14, 10], + "to": [6, 15, 11], + "rotation": {"angle": 0, "axis": "x", "origin": [8, 14.5, 8]}, + "faces": { + "north": {"uv": [2.75, 13.5, 3, 13.75], "texture": "#0"}, + "east": {"uv": [13.5, 2.75, 13.75, 3], "texture": "#0"}, + "south": {"uv": [3, 13.5, 3.25, 13.75], "texture": "#0"}, + "west": {"uv": [13.5, 3, 13.75, 3.25], "texture": "#0"}, + "up": {"uv": [3.5, 13.75, 3.25, 13.5], "texture": "#0"}, + "down": {"uv": [13.75, 3.25, 13.5, 3.5], "texture": "#0"} + } + }, + { + "from": [10, 14, 10], + "to": [11, 15, 11], + "rotation": {"angle": 0, "axis": "x", "origin": [8, 14.5, 8]}, + "faces": { + "north": {"uv": [3.5, 13.5, 3.75, 13.75], "texture": "#0"}, + "east": {"uv": [13.5, 3.5, 13.75, 3.75], "texture": "#0"}, + "south": {"uv": [3.75, 13.5, 4, 13.75], "texture": "#0"}, + "west": {"uv": [13.5, 3.75, 13.75, 4], "texture": "#0"}, + "up": {"uv": [4.25, 13.75, 4, 13.5], "texture": "#0"}, + "down": {"uv": [13.75, 4, 13.5, 4.25], "texture": "#0"} + } + }, + { + "from": [10, 14, 5], + "to": [11, 15, 6], + "rotation": {"angle": 0, "axis": "x", "origin": [8, 14.5, 8]}, + "faces": { + "north": {"uv": [4.25, 13.5, 4.5, 13.75], "texture": "#0"}, + "east": {"uv": [13.5, 4.25, 13.75, 4.5], "texture": "#0"}, + "south": {"uv": [4.5, 13.5, 4.75, 13.75], "texture": "#0"}, + "west": {"uv": [13.5, 4.5, 13.75, 4.75], "texture": "#0"}, + "up": {"uv": [5, 13.75, 4.75, 13.5], "texture": "#0"}, + "down": {"uv": [13.75, 4.75, 13.5, 5], "texture": "#0"} + } + }, + { + "from": [5, 14, 5], + "to": [6, 15, 6], + "rotation": {"angle": 0, "axis": "x", "origin": [8, 14.5, 8]}, + "faces": { + "north": {"uv": [5, 13.5, 5.25, 13.75], "texture": "#0"}, + "east": {"uv": [13.5, 5, 13.75, 5.25], "texture": "#0"}, + "south": {"uv": [5.25, 13.5, 5.5, 13.75], "texture": "#0"}, + "west": {"uv": [13.5, 5.25, 13.75, 5.5], "texture": "#0"}, + "up": {"uv": [5.75, 13.75, 5.5, 13.5], "texture": "#0"}, + "down": {"uv": [13.75, 5.5, 13.5, 5.75], "texture": "#0"} + } + }, + { + "from": [5, 14, 10], + "to": [6, 15, 11], + "rotation": {"angle": 0, "axis": "x", "origin": [8, 14.5, 8]}, + "faces": { + "north": {"uv": [5.75, 13.5, 6, 13.75], "texture": "#0"}, + "east": {"uv": [13.5, 5.75, 13.75, 6], "texture": "#0"}, + "south": {"uv": [6, 13.5, 6.25, 13.75], "texture": "#0"}, + "west": {"uv": [13.5, 6, 13.75, 6.25], "texture": "#0"}, + "up": {"uv": [6.5, 13.75, 6.25, 13.5], "texture": "#0"}, + "down": {"uv": [13.75, 6.25, 13.5, 6.5], "texture": "#0"} + } + }, + { + "from": [10.5, 14, 6], + "to": [11.5, 15, 10], + "rotation": {"angle": 0, "axis": "x", "origin": [8, 14.5, 8]}, + "faces": { + "north": {"uv": [6.5, 13.5, 6.75, 13.75], "texture": "#0"}, + "east": {"uv": [11.75, 11.5, 12.75, 11.75], "texture": "#0"}, + "south": {"uv": [13.5, 6.5, 13.75, 6.75], "texture": "#0"}, + "west": {"uv": [11.75, 11.75, 12.75, 12], "texture": "#0"}, + "up": {"uv": [11.5, 12.75, 11.25, 11.75], "texture": "#0"}, + "down": {"uv": [12.25, 1, 12, 2], "texture": "#0"} + } + }, + { + "from": [9.5, 14, 7.25], + "to": [10.5, 15, 8], + "rotation": {"angle": 0, "axis": "x", "origin": [8, 14.5, 8]}, + "faces": { + "north": {"uv": [6.75, 13.5, 7, 13.75], "texture": "#0"}, + "east": {"uv": [13.5, 6.75, 13.75, 7], "texture": "#0"}, + "south": {"uv": [7, 13.5, 7.25, 13.75], "texture": "#0"}, + "west": {"uv": [13.5, 7, 13.75, 7.25], "texture": "#0"}, + "up": {"uv": [7.5, 13.75, 7.25, 13.5], "texture": "#0"}, + "down": {"uv": [13.75, 7.25, 13.5, 7.5], "texture": "#0"} + } + }, + { + "from": [5.5, 14, 7.25], + "to": [6.5, 15, 8], + "rotation": {"angle": 0, "axis": "x", "origin": [8, 14.5, 8]}, + "faces": { + "north": {"uv": [7.5, 13.5, 7.75, 13.75], "texture": "#0"}, + "east": {"uv": [13.5, 7.5, 13.75, 7.75], "texture": "#0"}, + "south": {"uv": [7.75, 13.5, 8, 13.75], "texture": "#0"}, + "west": {"uv": [13.5, 7.75, 13.75, 8], "texture": "#0"}, + "up": {"uv": [8.25, 13.75, 8, 13.5], "texture": "#0"}, + "down": {"uv": [13.75, 8, 13.5, 8.25], "texture": "#0"} + } + }, + { + "from": [6.5, 14, 8], + "to": [9.5, 15, 8.75], + "rotation": {"angle": 0, "axis": "x", "origin": [8, 14.5, 8]}, + "faces": { + "north": {"uv": [12, 6.75, 12.75, 7], "texture": "#0"}, + "east": {"uv": [8.25, 13.5, 8.5, 13.75], "texture": "#0"}, + "south": {"uv": [12, 7, 12.75, 7.25], "texture": "#0"}, + "west": {"uv": [13.5, 8.25, 13.75, 8.5], "texture": "#0"}, + "up": {"uv": [8, 12.25, 7.25, 12], "texture": "#0"}, + "down": {"uv": [12.75, 7.25, 12, 7.5], "texture": "#0"} + } + } + ], + "groups": [ + { + "name": "ornaments", + "origin": [3, 8, 3], + "color": 0, + "children": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31] + }, + { + "name": "center", + "origin": [8, 8, 8], + "color": 0, + "children": [32, 33, 34] + }, + { + "name": "plates", + "origin": [8, 8, 8], + "color": 0, + "children": [35, 36, 37, 38, 39, 40] + }, + { + "name": "symbol", + "origin": [6, 8, 1], + "color": 0, + "children": [ + { + "name": "side1", + "origin": [8, 8, 1.5], + "color": 0, + "children": [41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52] + }, + { + "name": "side2", + "origin": [8, 8, 1.5], + "color": 0, + "children": [53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64] + }, + { + "name": "side3", + "origin": [8, 8, 1.5], + "color": 0, + "children": [65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76] + }, + { + "name": "side4", + "origin": [8, 8, 1.5], + "color": 0, + "children": [77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88] + }, + { + "name": "top", + "origin": [8, 8, 1.5], + "color": 0, + "children": [89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100] + } + ] + } + ] +} diff --git a/src/main/resources/assets/utilitiesinexcess/textures/blocks/ender_marker.png b/src/main/resources/assets/utilitiesinexcess/textures/blocks/ender_marker.png new file mode 100644 index 00000000..e8798e1c Binary files /dev/null and b/src/main/resources/assets/utilitiesinexcess/textures/blocks/ender_marker.png differ diff --git a/src/main/resources/assets/utilitiesinexcess/textures/blocks/ender_quarry.png b/src/main/resources/assets/utilitiesinexcess/textures/blocks/ender_quarry.png new file mode 100644 index 00000000..4912f4e9 Binary files /dev/null and b/src/main/resources/assets/utilitiesinexcess/textures/blocks/ender_quarry.png differ diff --git a/src/main/resources/assets/utilitiesinexcess/textures/blocks/models/ender_quarry.png b/src/main/resources/assets/utilitiesinexcess/textures/blocks/models/ender_quarry.png new file mode 100644 index 00000000..4912f4e9 Binary files /dev/null and b/src/main/resources/assets/utilitiesinexcess/textures/blocks/models/ender_quarry.png differ diff --git a/src/main/resources/assets/utilitiesinexcess/textures/blocks/upgrade_fortune_1.png b/src/main/resources/assets/utilitiesinexcess/textures/blocks/upgrade_fortune_1.png new file mode 100644 index 00000000..4ddac83c Binary files /dev/null and b/src/main/resources/assets/utilitiesinexcess/textures/blocks/upgrade_fortune_1.png differ diff --git a/src/main/resources/assets/utilitiesinexcess/textures/blocks/upgrade_fortune_2.png b/src/main/resources/assets/utilitiesinexcess/textures/blocks/upgrade_fortune_2.png new file mode 100644 index 00000000..e689889a Binary files /dev/null and b/src/main/resources/assets/utilitiesinexcess/textures/blocks/upgrade_fortune_2.png differ diff --git a/src/main/resources/assets/utilitiesinexcess/textures/blocks/upgrade_fortune_3.png b/src/main/resources/assets/utilitiesinexcess/textures/blocks/upgrade_fortune_3.png new file mode 100644 index 00000000..344570d6 Binary files /dev/null and b/src/main/resources/assets/utilitiesinexcess/textures/blocks/upgrade_fortune_3.png differ diff --git a/src/main/resources/assets/utilitiesinexcess/textures/blocks/upgrade_pump_fluids.png b/src/main/resources/assets/utilitiesinexcess/textures/blocks/upgrade_pump_fluids.png new file mode 100644 index 00000000..8b6aaaa9 Binary files /dev/null and b/src/main/resources/assets/utilitiesinexcess/textures/blocks/upgrade_pump_fluids.png differ diff --git a/src/main/resources/assets/utilitiesinexcess/textures/blocks/upgrade_silk_touch.png b/src/main/resources/assets/utilitiesinexcess/textures/blocks/upgrade_silk_touch.png new file mode 100644 index 00000000..945e4223 Binary files /dev/null and b/src/main/resources/assets/utilitiesinexcess/textures/blocks/upgrade_silk_touch.png differ diff --git a/src/main/resources/assets/utilitiesinexcess/textures/blocks/upgrade_speed_1.png b/src/main/resources/assets/utilitiesinexcess/textures/blocks/upgrade_speed_1.png new file mode 100644 index 00000000..b5f692e5 Binary files /dev/null and b/src/main/resources/assets/utilitiesinexcess/textures/blocks/upgrade_speed_1.png differ diff --git a/src/main/resources/assets/utilitiesinexcess/textures/blocks/upgrade_speed_2.png b/src/main/resources/assets/utilitiesinexcess/textures/blocks/upgrade_speed_2.png new file mode 100644 index 00000000..221a5818 Binary files /dev/null and b/src/main/resources/assets/utilitiesinexcess/textures/blocks/upgrade_speed_2.png differ diff --git a/src/main/resources/assets/utilitiesinexcess/textures/blocks/upgrade_speed_3.png b/src/main/resources/assets/utilitiesinexcess/textures/blocks/upgrade_speed_3.png new file mode 100644 index 00000000..304df136 Binary files /dev/null and b/src/main/resources/assets/utilitiesinexcess/textures/blocks/upgrade_speed_3.png differ diff --git a/src/main/resources/assets/utilitiesinexcess/textures/blocks/upgrade_world_hole.png b/src/main/resources/assets/utilitiesinexcess/textures/blocks/upgrade_world_hole.png new file mode 100644 index 00000000..7ee6d4de Binary files /dev/null and b/src/main/resources/assets/utilitiesinexcess/textures/blocks/upgrade_world_hole.png differ