From 18f0f833f3006d93800fcc4ecfe902a0c68f60f5 Mon Sep 17 00:00:00 2001 From: YuRaNnNzZZ Date: Thu, 6 Jul 2023 03:14:08 +0300 Subject: [PATCH] =?UTF-8?q?=D0=B1=D0=BB=D0=BE=D0=BA=D1=81=D1=82=D0=B5?= =?UTF-8?q?=D0=B9=D1=82=D1=8B=20+=20=D1=88=D0=B5=D0=B9=D0=BF=D1=8B=20+=20?= =?UTF-8?q?=D0=BC=D0=BE=D0=B4=D0=B5=D0=BB=D1=8C=20=D0=BF=D1=80=D0=B5=D0=B4?= =?UTF-8?q?=D0=BC=D0=B5=D1=82=D0=B0=20=D0=B4=D0=BB=D1=8F=20=D0=B7=D0=B0?= =?UTF-8?q?=D1=80=D1=8F=D0=B4=D0=BD=D0=B8=D0=BA=D0=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../mc/otm/datagen/blocks/BlockStates.kt | 14 + .../mc/otm/shapes/BlockShapes.java | 44 ++ .../mc/otm/block/tech/AndroidChargerBlock.kt | 23 + .../models/block/android_charger_base.json | 6 +- .../models/block/android_charger_middle.json | 6 +- .../models/block/android_charger_top.json | 11 +- .../models/item/android_charger.json | 456 ++++++++++++++++++ 7 files changed, 556 insertions(+), 4 deletions(-) create mode 100644 src/main/resources/assets/overdrive_that_matters/models/item/android_charger.json diff --git a/src/data/kotlin/ru/dbotthepony/mc/otm/datagen/blocks/BlockStates.kt b/src/data/kotlin/ru/dbotthepony/mc/otm/datagen/blocks/BlockStates.kt index 6c0672fec..0c4759b33 100644 --- a/src/data/kotlin/ru/dbotthepony/mc/otm/datagen/blocks/BlockStates.kt +++ b/src/data/kotlin/ru/dbotthepony/mc/otm/datagen/blocks/BlockStates.kt @@ -7,6 +7,7 @@ import ru.dbotthepony.mc.otm.block.CableBlock import ru.dbotthepony.mc.otm.block.decorative.CargoCrateBlock import ru.dbotthepony.mc.otm.block.entity.WorkerState import ru.dbotthepony.mc.otm.block.matter.MatterBottlerBlock +import ru.dbotthepony.mc.otm.block.tech.AndroidChargerBlock import ru.dbotthepony.mc.otm.core.math.BlockRotationFreedom import ru.dbotthepony.mc.otm.core.math.xRotationBlockstateNorth import ru.dbotthepony.mc.otm.core.math.xRotationBlockstateSouth @@ -45,6 +46,19 @@ fun addBlockStates(provider: MatteryBlockStateProvider) { } } + with(provider.getMultipartBuilder(MBlocks.ANDROID_CHARGER)) { + for (dir in BlockRotationFreedom.ONE.possibleValues) { + for (part in AndroidChargerBlock.PART.possibleValues) { + part().modelFile(provider.models().getExistingFile(modLocation("block/${MNames.ANDROID_CHARGER}_${part.serializedName}"))) + .rotationY(dir.front.yRotationBlockstateNorth()) + .addModel() + .condition(AndroidChargerBlock.PART, part) + .condition(BlockRotationFreedom.ONE.property, dir) + .end() + } + } + } + with(provider.getMultipartBuilder(MBlocks.MATTER_BOTTLER)) { for (dir in BlockRotationFreedom.ONE.possibleValues) { for (enum in WorkerState.SEMI_WORKER_STATE.possibleValues) { diff --git a/src/main/java/ru/dbotthepony/mc/otm/shapes/BlockShapes.java b/src/main/java/ru/dbotthepony/mc/otm/shapes/BlockShapes.java index 55402a469..9e09e6691 100644 --- a/src/main/java/ru/dbotthepony/mc/otm/shapes/BlockShapes.java +++ b/src/main/java/ru/dbotthepony/mc/otm/shapes/BlockShapes.java @@ -688,4 +688,48 @@ public class BlockShapes { new SimpleCuboid(0.03125d, 0.8125d, 0.03125d, 0.96875d, 0.875d, 0.96875d), new SimpleCuboid(0d, 0.1875d, 0d, 1d, 0.8125d, 1d) ); + + public static final BlockShape ANDROID_CHARGER_BASE = new BlockShape( + new SimpleCuboid(0d, 0d, 0d, 1d, 0.5d, 1d), + new SimpleCuboid(0.6875d, 0.5d, 0.0625d, 0.9375d, 0.75d, 0.9375d), + new SimpleCuboid(0.3125d, 0.5d, 0.0625d, 0.0625d, 0.75d, 0.9375d), + new SimpleCuboid(0.125d, 0.5d, 0.125d, 0.875d, 0.6875d, 0.875d), + new SimpleCuboid(0.0625d, 0.5d, 0.0625d, 0.3125d, 0.75d, 0.9375d), + new SimpleCuboid(0.9375d, 0.5d, 0.0625d, 0.6875d, 0.75d, 0.9375d), + new SimpleCuboid(0.1875d, 0.6875d, 0.1875d, 0.3125d, 1d, 0.3125d), + new SimpleCuboid(0.25d, 0.6875d, 0.25d, 0.75d, 1d, 0.75d), + new SimpleCuboid(0.6875d, 0.6875d, 0.1875d, 0.8125d, 1d, 0.3125d), + new SimpleCuboid(0.6875d, 0.6875d, 0.6875d, 0.8125d, 1d, 0.8125d), + new SimpleCuboid(0.1875d, 0.6875d, 0.6875d, 0.3125d, 1d, 0.8125d), + new SimpleCuboid(0.3125d, 0.5d, 0.75d, 0.6875d, 1d, 1d) + ); + + public static final BlockShape ANDROID_CHARGER_MIDDLE = new BlockShape( + new SimpleCuboid(0.25d, 0d, 0.25d, 0.75d, 1d, 0.75d), + new SimpleCuboid(0.1875d, 0d, 0.6875d, 0.3125d, 1d, 0.8125d), + new SimpleCuboid(0.6875d, 0d, 0.1875d, 0.8125d, 1d, 0.3125d), + new SimpleCuboid(0.1875d, 0d, 0.1875d, 0.3125d, 1d, 0.3125d), + new SimpleCuboid(0.6875d, 0d, 0.6875d, 0.8125d, 1d, 0.8125d), + new SimpleCuboid(0.3125d, 0d, 0.75d, 0.6875d, 1d, 1d), + new SimpleCuboid(0.125d, -0.0625d, 0.125d, 0.875d, 0.3125d, 0.875d), + new SimpleCuboid(0.125d, -0.0625d, 0.875d, 0.875d, 0.3125d, 0.125d), + new SimpleCuboid(0.125d, 0.6875d, 0.875d, 0.875d, 1.0625d, 0.125d), + new SimpleCuboid(0.125d, 0.6875d, 0.125d, 0.875d, 1.0625d, 0.875d) + ); + + public static final BlockShape ANDROID_CHARGER_TOP = new BlockShape( + new SimpleCuboid(0.1875d, 0.6875d, 0d, 0.8125d, 0.875d, 0d), + new SimpleCuboid(0.1875d, 0d, 0.6875d, 0.3125d, 0.3125d, 0.8125d), + new SimpleCuboid(0.6875d, 0d, 0.1875d, 0.8125d, 0.3125d, 0.3125d), + new SimpleCuboid(0.1875d, 0d, 0.1875d, 0.3125d, 0.3125d, 0.3125d), + new SimpleCuboid(0.6875d, 0d, 0.6875d, 0.8125d, 0.3125d, 0.8125d), + new SimpleCuboid(0.25d, 0d, 0.25d, 0.75d, 0.3125d, 0.75d), + new SimpleCuboid(0.3125d, 0d, 0.75d, 0.6875d, 0.5d, 1d), + new SimpleCuboid(0.0625d, 0.25d, 0.0625d, 0.3125d, 0.5d, 0.9375d), + new SimpleCuboid(0.9375d, 0.25d, 0.0625d, 0.6875d, 0.5d, 0.9375d), + new SimpleCuboid(0.6875d, 0.25d, 0.0625d, 0.9375d, 0.5d, 0.9375d), + new SimpleCuboid(0.3125d, 0.25d, 0.0625d, 0.0625d, 0.5d, 0.9375d), + new SimpleCuboid(0.125d, 0.3125d, 0.125d, 0.875d, 0.5d, 0.875d), + new SimpleCuboid(0d, 0.5d, 0d, 1d, 1d, 1d) + ); } diff --git a/src/main/kotlin/ru/dbotthepony/mc/otm/block/tech/AndroidChargerBlock.kt b/src/main/kotlin/ru/dbotthepony/mc/otm/block/tech/AndroidChargerBlock.kt index d7be418c5..c71cefd83 100644 --- a/src/main/kotlin/ru/dbotthepony/mc/otm/block/tech/AndroidChargerBlock.kt +++ b/src/main/kotlin/ru/dbotthepony/mc/otm/block/tech/AndroidChargerBlock.kt @@ -20,14 +20,18 @@ import net.minecraft.world.level.block.state.BlockState import net.minecraft.world.level.block.state.StateDefinition import net.minecraft.world.level.block.state.properties.EnumProperty import net.minecraft.world.level.material.PushReaction +import net.minecraft.world.phys.shapes.CollisionContext +import net.minecraft.world.phys.shapes.VoxelShape import ru.dbotthepony.mc.otm.block.RotatableMatteryBlock import ru.dbotthepony.mc.otm.block.entity.MatteryPoweredBlockEntity import ru.dbotthepony.mc.otm.block.entity.tech.AndroidChargerBlockEntity +import ru.dbotthepony.mc.otm.block.getShapeForEachState import ru.dbotthepony.mc.otm.capability.energy.WorkerEnergyStorage import ru.dbotthepony.mc.otm.core.get import ru.dbotthepony.mc.otm.core.gracefulBlockBreak import ru.dbotthepony.mc.otm.core.math.plus import ru.dbotthepony.mc.otm.oncePre +import ru.dbotthepony.mc.otm.shapes.BlockShapes class AndroidChargerBlock : RotatableMatteryBlock(Properties.of().destroyTime(2.5f).explosionResistance(40f).pushReaction(PushReaction.BLOCK).requiresCorrectToolForDrops()), EntityBlock { enum class Type : StringRepresentable { @@ -129,6 +133,25 @@ class AndroidChargerBlock : RotatableMatteryBlock(Properties.of().destroyTime(2. MatteryPoweredBlockEntity.appendHoverText(p_49816_, p_49817_, p_49818_, p_49819_) } + private val shapes = getShapeForEachState(listOf(rotationProperty, PART)) { + val shape = when (it[PART]!!) { + Type.BASE -> BlockShapes.ANDROID_CHARGER_BASE + Type.MIDDLE -> BlockShapes.ANDROID_CHARGER_MIDDLE + Type.TOP -> BlockShapes.ANDROID_CHARGER_TOP + } + + shape.rotateFromNorth(it[rotationProperty]).computeShape() + } + + override fun getShape( + p_60555_: BlockState, + p_60556_: BlockGetter, + p_60557_: BlockPos, + p_60558_: CollisionContext + ): VoxelShape { + return shapes[p_60555_]!! + } + companion object { val PART: EnumProperty = EnumProperty.create("part", Type::class.java) } diff --git a/src/main/resources/assets/overdrive_that_matters/models/block/android_charger_base.json b/src/main/resources/assets/overdrive_that_matters/models/block/android_charger_base.json index df420b334..e38c6c3ac 100644 --- a/src/main/resources/assets/overdrive_that_matters/models/block/android_charger_base.json +++ b/src/main/resources/assets/overdrive_that_matters/models/block/android_charger_base.json @@ -1,5 +1,6 @@ { "credit": "Made with Blockbench", + "render_type": "cutout", "texture_size": [32, 64], "textures": { "0": "overdrive_that_matters:block/android_charger", @@ -92,7 +93,10 @@ "east": {"uv": [8, 9, 12, 10.25], "texture": "#0"}, "south": {"uv": [8, 9, 12, 10.25], "texture": "#0"}, "west": {"uv": [8, 9, 12, 10.25], "texture": "#0"} - } + }, + "forge_data": { + "block_light": 15 + } }, { "name": "frame", diff --git a/src/main/resources/assets/overdrive_that_matters/models/block/android_charger_middle.json b/src/main/resources/assets/overdrive_that_matters/models/block/android_charger_middle.json index 26c215bb2..4faec05de 100644 --- a/src/main/resources/assets/overdrive_that_matters/models/block/android_charger_middle.json +++ b/src/main/resources/assets/overdrive_that_matters/models/block/android_charger_middle.json @@ -1,5 +1,6 @@ { "credit": "Made with Blockbench", + "render_type": "cutout", "texture_size": [32, 64], "textures": { "0": "overdrive_that_matters:block/android_charger", @@ -15,7 +16,10 @@ "east": {"uv": [8, 9, 12, 13], "texture": "#0"}, "south": {"uv": [8, 9, 12, 13], "texture": "#0"}, "west": {"uv": [8, 9, 12, 13], "texture": "#0"} - } + }, + "forge_data": { + "block_light": 15 + } }, { "name": "frame", diff --git a/src/main/resources/assets/overdrive_that_matters/models/block/android_charger_top.json b/src/main/resources/assets/overdrive_that_matters/models/block/android_charger_top.json index 2382ec8da..c93c5609f 100644 --- a/src/main/resources/assets/overdrive_that_matters/models/block/android_charger_top.json +++ b/src/main/resources/assets/overdrive_that_matters/models/block/android_charger_top.json @@ -1,5 +1,6 @@ { "credit": "Made with Blockbench", + "render_type": "cutout", "texture_size": [32, 64], "textures": { "0": "overdrive_that_matters:block/android_charger", @@ -12,7 +13,10 @@ "to": [13, 14, 0], "faces": { "north": {"uv": [11, 2.25, 12.5, 4.75], "rotation": 90, "texture": "#0"} - } + }, + "forge_data": { + "block_light": 15 + } }, { "name": "frame", @@ -67,7 +71,10 @@ "east": {"uv": [8, 11.75, 12, 13], "texture": "#0"}, "south": {"uv": [8, 11.75, 12, 13], "texture": "#0"}, "west": {"uv": [8, 11.75, 12, 13], "texture": "#0"} - } + }, + "forge_data": { + "block_light": 15 + } }, { "name": "spine", diff --git a/src/main/resources/assets/overdrive_that_matters/models/item/android_charger.json b/src/main/resources/assets/overdrive_that_matters/models/item/android_charger.json new file mode 100644 index 000000000..fa38f4ae2 --- /dev/null +++ b/src/main/resources/assets/overdrive_that_matters/models/item/android_charger.json @@ -0,0 +1,456 @@ +{ + "credit": "Made with Blockbench", + "render_type": "cutout", + "texture_size": [32, 64], + "textures": { + "0": "overdrive_that_matters:block/android_charger", + "particle": "overdrive_that_matters:block/android_charger" + }, + "elements": [ + { + "name": "body", + "from": [0, -16, 0], + "to": [16, -8, 16], + "faces": { + "north": {"uv": [0, 5, 8, 7], "texture": "#0"}, + "east": {"uv": [0, 8, 8, 10], "texture": "#0"}, + "south": {"uv": [0, 10, 8, 12], "texture": "#0"}, + "west": {"uv": [8, 8, 0, 10], "texture": "#0"}, + "up": {"uv": [0, 12, 8, 16], "texture": "#0"}, + "down": {"uv": [0, 12, 8, 16], "texture": "#0"} + } + }, + { + "name": "frame", + "from": [11, -8, 1], + "to": [15, -4, 15], + "faces": { + "north": {"uv": [2, 7, 0, 8], "texture": "#0"}, + "east": {"uv": [9, 7, 2, 8], "texture": "#0"}, + "south": {"uv": [0, 7, 2, 8], "texture": "#0"} + } + }, + { + "name": "frame", + "from": [5, -8, 1], + "to": [1, -4, 15], + "faces": { + "north": {"uv": [2, 7, 0, 8], "texture": "#0"}, + "east": {"uv": [9, 7, 2, 8], "texture": "#0"}, + "south": {"uv": [0, 7, 2, 8], "texture": "#0"} + } + }, + { + "name": "body", + "from": [2, -8, 2], + "to": [14, -5, 14], + "faces": { + "north": {"uv": [14, 13, 15.5, 16], "rotation": 90, "texture": "#0"}, + "east": {"uv": [14, 13, 15.5, 16], "rotation": 90, "texture": "#0"}, + "south": {"uv": [14, 13, 15.5, 16], "rotation": 90, "texture": "#0"}, + "west": {"uv": [14, 13, 15.5, 16], "rotation": 90, "texture": "#0"}, + "up": {"uv": [8, 13, 14, 16], "texture": "#0"}, + "down": {"uv": [0, 0, 12, 12], "texture": "#missing"} + } + }, + { + "name": "frame", + "from": [1, -8, 1], + "to": [5, -4, 15], + "faces": { + "north": {"uv": [0, 7, 2, 8], "texture": "#0"}, + "south": {"uv": [2, 7, 0, 8], "texture": "#0"}, + "west": {"uv": [2, 7, 9, 8], "texture": "#0"} + } + }, + { + "name": "frame", + "from": [15, -8, 1], + "to": [11, -4, 15], + "faces": { + "north": {"uv": [0, 7, 2, 8], "texture": "#0"}, + "south": {"uv": [2, 7, 0, 8], "texture": "#0"}, + "west": {"uv": [2, 7, 9, 8], "texture": "#0"} + } + }, + { + "name": "frame", + "from": [3, -5, 3], + "to": [5, 0, 5], + "faces": { + "north": {"uv": [7.5, 0, 8.5, 1.25], "texture": "#0"}, + "east": {"uv": [8.5, 0, 9.5, 1.25], "texture": "#0"}, + "south": {"uv": [7.5, 0, 8.5, 1.25], "texture": "#0"}, + "west": {"uv": [8.5, 0, 9.5, 1.25], "texture": "#0"} + } + }, + { + "name": "core", + "from": [4, -5, 4], + "to": [12, 0, 12], + "faces": { + "north": {"uv": [8, 9, 12, 10.25], "texture": "#0"}, + "east": {"uv": [8, 9, 12, 10.25], "texture": "#0"}, + "south": {"uv": [8, 9, 12, 10.25], "texture": "#0"}, + "west": {"uv": [8, 9, 12, 10.25], "texture": "#0"} + }, + "forge_data": { + "block_light": 15 + } + }, + { + "name": "frame", + "from": [11, -5, 3], + "to": [13, 0, 5], + "faces": { + "north": {"uv": [8.5, 0, 9.5, 1.25], "texture": "#0"}, + "east": {"uv": [7.5, 0, 8.5, 1.25], "texture": "#0"}, + "south": {"uv": [8.5, 0, 9.5, 1.25], "texture": "#0"}, + "west": {"uv": [7.5, 0, 8.5, 1.25], "texture": "#0"} + } + }, + { + "name": "frame", + "from": [11, -5, 11], + "to": [13, 0, 13], + "faces": { + "north": {"uv": [7.5, 0, 8.5, 1.25], "texture": "#0"}, + "east": {"uv": [8.5, 0, 9.5, 1.25], "texture": "#0"}, + "south": {"uv": [7.5, 0, 8.5, 1.25], "texture": "#0"}, + "west": {"uv": [8.5, 0, 9.5, 1.25], "texture": "#0"} + } + }, + { + "name": "frame", + "from": [3, -5, 11], + "to": [5, 0, 13], + "faces": { + "north": {"uv": [8.5, 0, 9.5, 1.25], "texture": "#0"}, + "east": {"uv": [7.5, 0, 8.5, 1.25], "texture": "#0"}, + "south": {"uv": [8.5, 0, 9.5, 1.25], "texture": "#0"}, + "west": {"uv": [7.5, 0, 8.5, 1.25], "texture": "#0"} + } + }, + { + "name": "spine", + "from": [5, -8, 12], + "to": [11, 0, 16], + "faces": { + "east": {"uv": [16, 5, 14, 7], "texture": "#0"}, + "south": {"uv": [12, 9, 15, 11], "texture": "#0"}, + "west": {"uv": [14, 5, 16, 7], "texture": "#0"} + } + }, + { + "name": "core", + "from": [4, 0, 4], + "to": [12, 16, 12], + "faces": { + "north": {"uv": [8, 9, 12, 13], "texture": "#0"}, + "east": {"uv": [8, 9, 12, 13], "texture": "#0"}, + "south": {"uv": [8, 9, 12, 13], "texture": "#0"}, + "west": {"uv": [8, 9, 12, 13], "texture": "#0"} + }, + "forge_data": { + "block_light": 15 + } + }, + { + "name": "frame", + "from": [3, 0, 11], + "to": [5, 16, 13], + "faces": { + "north": {"uv": [8.5, 0, 9.5, 4], "texture": "#0"}, + "east": {"uv": [7.5, 0, 8.5, 4], "texture": "#0"}, + "south": {"uv": [8.5, 0, 9.5, 4], "texture": "#0"}, + "west": {"uv": [7.5, 0, 8.5, 4], "texture": "#0"} + } + }, + { + "name": "frame", + "from": [11, 0, 3], + "to": [13, 16, 5], + "faces": { + "north": {"uv": [8.5, 0, 9.5, 4], "texture": "#0"}, + "east": {"uv": [7.5, 0, 8.5, 4], "texture": "#0"}, + "south": {"uv": [8.5, 0, 9.5, 4], "texture": "#0"}, + "west": {"uv": [7.5, 0, 8.5, 4], "texture": "#0"} + } + }, + { + "name": "frame", + "from": [3, 0, 3], + "to": [5, 16, 5], + "faces": { + "north": {"uv": [7.5, 0, 8.5, 4], "texture": "#0"}, + "east": {"uv": [8.5, 0, 9.5, 4], "texture": "#0"}, + "south": {"uv": [7.5, 0, 8.5, 4], "texture": "#0"}, + "west": {"uv": [8.5, 0, 9.5, 4], "texture": "#0"} + } + }, + { + "name": "frame", + "from": [11, 0, 11], + "to": [13, 16, 13], + "faces": { + "north": {"uv": [7.5, 0, 8.5, 4], "texture": "#0"}, + "east": {"uv": [8.5, 0, 9.5, 4], "texture": "#0"}, + "south": {"uv": [7.5, 0, 8.5, 4], "texture": "#0"}, + "west": {"uv": [8.5, 0, 9.5, 4], "texture": "#0"} + } + }, + { + "name": "spine", + "from": [5, 0, 12], + "to": [11, 16, 16], + "faces": { + "east": {"uv": [16, 5, 14, 9], "texture": "#0"}, + "south": {"uv": [12, 9, 15, 13], "texture": "#0"}, + "west": {"uv": [14, 5, 16, 9], "texture": "#0"} + } + }, + { + "name": "grid", + "from": [2, -1, 2], + "to": [14, 5, 14], + "faces": { + "north": {"uv": [0, 0, 6, 1.5], "texture": "#0"}, + "east": {"uv": [0, 1.5, 6, 3], "rotation": 180, "texture": "#0"}, + "south": {"uv": [0, 3, 6, 4.5], "texture": "#0"}, + "west": {"uv": [0, 1.5, 6, 3], "texture": "#0"} + } + }, + { + "name": "grid", + "from": [2, -1, 14], + "to": [14, 5, 2], + "faces": { + "north": {"uv": [0, 3, 6, 4.5], "texture": "#0"}, + "east": {"uv": [6, 1.5, 0, 3], "rotation": 180, "texture": "#0"}, + "south": {"uv": [0, 0, 6, 1.5], "texture": "#0"}, + "west": {"uv": [6, 1.5, 0, 3], "texture": "#0"} + } + }, + { + "name": "grid", + "from": [2, 11, 14], + "to": [14, 17, 2], + "faces": { + "north": {"uv": [0, 3, 6, 4.5], "texture": "#0"}, + "east": {"uv": [6, 1.5, 0, 3], "rotation": 180, "texture": "#0"}, + "south": {"uv": [0, 0, 6, 1.5], "texture": "#0"}, + "west": {"uv": [6, 1.5, 0, 3], "texture": "#0"} + } + }, + { + "name": "grid", + "from": [2, 11, 2], + "to": [14, 17, 14], + "faces": { + "north": {"uv": [0, 0, 6, 1.5], "texture": "#0"}, + "east": {"uv": [0, 1.5, 6, 3], "rotation": 180, "texture": "#0"}, + "south": {"uv": [0, 3, 6, 4.5], "texture": "#0"}, + "west": {"uv": [0, 1.5, 6, 3], "texture": "#0"} + } + }, + { + "name": "screen", + "from": [3, 27, 0], + "to": [13, 30, 0], + "faces": { + "north": {"uv": [11, 2.25, 12.5, 4.75], "rotation": 90, "texture": "#0"} + }, + "forge_data": { + "block_light": 15 + } + }, + { + "name": "frame", + "from": [3, 16, 11], + "to": [5, 21, 13], + "faces": { + "north": {"uv": [8.5, 2.75, 9.5, 4], "texture": "#0"}, + "east": {"uv": [7.5, 2.75, 8.5, 4], "texture": "#0"}, + "south": {"uv": [8.5, 2.75, 9.5, 4], "texture": "#0"}, + "west": {"uv": [7.5, 2.75, 8.5, 4], "texture": "#0"} + } + }, + { + "name": "frame", + "from": [11, 16, 3], + "to": [13, 21, 5], + "faces": { + "north": {"uv": [8.5, 2.75, 9.5, 4], "texture": "#0"}, + "east": {"uv": [7.5, 2.75, 8.5, 4], "texture": "#0"}, + "south": {"uv": [8.5, 2.75, 9.5, 4], "texture": "#0"}, + "west": {"uv": [7.5, 2.75, 8.5, 4], "texture": "#0"} + } + }, + { + "name": "frame", + "from": [3, 16, 3], + "to": [5, 21, 5], + "faces": { + "north": {"uv": [7.5, 2.75, 8.5, 4], "texture": "#0"}, + "east": {"uv": [8.5, 2.75, 9.5, 4], "texture": "#0"}, + "south": {"uv": [7.5, 2.75, 8.5, 4], "texture": "#0"}, + "west": {"uv": [8.5, 2.75, 9.5, 4], "texture": "#0"} + } + }, + { + "name": "frame", + "from": [11, 16, 11], + "to": [13, 21, 13], + "faces": { + "north": {"uv": [7.5, 2.75, 8.5, 4], "texture": "#0"}, + "east": {"uv": [8.5, 2.75, 9.5, 4], "texture": "#0"}, + "south": {"uv": [7.5, 2.75, 8.5, 4], "texture": "#0"}, + "west": {"uv": [8.5, 2.75, 9.5, 4], "texture": "#0"} + } + }, + { + "name": "core", + "from": [4, 16, 4], + "to": [12, 21, 12], + "faces": { + "north": {"uv": [8, 11.75, 12, 13], "texture": "#0"}, + "east": {"uv": [8, 11.75, 12, 13], "texture": "#0"}, + "south": {"uv": [8, 11.75, 12, 13], "texture": "#0"}, + "west": {"uv": [8, 11.75, 12, 13], "texture": "#0"} + }, + "forge_data": { + "block_light": 15 + } + }, + { + "name": "spine", + "from": [5, 16, 12], + "to": [11, 24, 16], + "faces": { + "east": {"uv": [16, 7, 14, 9], "texture": "#0"}, + "south": {"uv": [12, 11, 15, 13], "texture": "#0"}, + "west": {"uv": [14, 7, 16, 9], "texture": "#0"} + } + }, + { + "name": "frame", + "from": [1, 20, 1], + "to": [5, 24, 15], + "faces": { + "north": {"uv": [2, 7, 0, 8], "rotation": 180, "texture": "#0"}, + "south": {"uv": [0, 7, 2, 8], "rotation": 180, "texture": "#0"}, + "west": {"uv": [2, 7, 9, 8], "rotation": 180, "texture": "#0"} + } + }, + { + "name": "frame", + "from": [15, 20, 1], + "to": [11, 24, 15], + "faces": { + "north": {"uv": [2, 7, 0, 8], "rotation": 180, "texture": "#0"}, + "south": {"uv": [0, 7, 2, 8], "rotation": 180, "texture": "#0"}, + "west": {"uv": [2, 7, 9, 8], "rotation": 180, "texture": "#0"} + } + }, + { + "name": "frame", + "from": [11, 20, 1], + "to": [15, 24, 15], + "faces": { + "north": {"uv": [0, 7, 2, 8], "rotation": 180, "texture": "#0"}, + "east": {"uv": [2, 7, 9, 8], "rotation": 180, "texture": "#0"}, + "south": {"uv": [2, 7, 0, 8], "rotation": 180, "texture": "#0"} + } + }, + { + "name": "frame", + "from": [5, 20, 1], + "to": [1, 24, 15], + "faces": { + "north": {"uv": [0, 7, 2, 8], "rotation": 180, "texture": "#0"}, + "east": {"uv": [2, 7, 9, 8], "rotation": 180, "texture": "#0"}, + "south": {"uv": [2, 7, 0, 8], "rotation": 180, "texture": "#0"} + } + }, + { + "name": "body", + "from": [2, 21, 2], + "to": [14, 24, 14], + "faces": { + "north": {"uv": [14, 13, 15.5, 16], "rotation": 270, "texture": "#0"}, + "east": {"uv": [14, 13, 15.5, 16], "rotation": 270, "texture": "#0"}, + "south": {"uv": [14, 13, 15.5, 16], "rotation": 270, "texture": "#0"}, + "west": {"uv": [14, 13, 15.5, 16], "rotation": 270, "texture": "#0"}, + "down": {"uv": [8, 13, 14, 16], "texture": "#0"} + } + }, + { + "name": "body", + "from": [0, 24, 0], + "to": [16, 32, 16], + "faces": { + "north": {"uv": [10, 5, 14, 9], "rotation": 90, "texture": "#0"}, + "east": {"uv": [8, 8, 0, 10], "rotation": 180, "texture": "#0"}, + "south": {"uv": [0, 10, 8, 12], "rotation": 180, "texture": "#0"}, + "west": {"uv": [0, 8, 8, 10], "rotation": 180, "texture": "#0"}, + "up": {"uv": [0, 12, 8, 16], "texture": "#0"}, + "down": {"uv": [0, 12, 8, 16], "texture": "#0"} + } + } + ], + "display": { + "thirdperson_righthand": { + "rotation": [75, 45, 0], + "translation": [0, 2.3, 0], + "scale": [0.375, 0.375, 0.375] + }, + "thirdperson_lefthand": { + "rotation": [75, 45, 0], + "translation": [0, 2.5, 0], + "scale": [0.375, 0.375, 0.375] + }, + "firstperson_righthand": { + "rotation": [0, 45, 0], + "scale": [0.4, 0.4, 0.4] + }, + "firstperson_lefthand": { + "rotation": [0, 45, 0], + "scale": [0.4, 0.4, 0.4] + }, + "ground": { + "translation": [0, 3, 0], + "scale": [0.25, 0.25, 0.25] + }, + "gui": { + "rotation": [30, -135, 0], + "scale": [0.3, 0.3, 0.3] + }, + "head": { + "translation": [0, 30, 0] + }, + "fixed": { + "translation": [0, 0, -2], + "scale": [0.375, 0.375, 0.375] + } + }, + "groups": [ + { + "name": "base", + "origin": [0, 0, 0], + "color": 0, + "children": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11] + }, + { + "name": "middle", + "origin": [0, 0, 0], + "color": 0, + "children": [12, 13, 14, 15, 16, 17, 18, 19, 20, 21] + }, + { + "name": "top", + "origin": [0, 0, 0], + "color": 0, + "children": [22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34] + } + ] +} \ No newline at end of file