блокстейты + шейпы + модель предмета для зарядника

This commit is contained in:
YuRaNnNzZZ 2023-07-06 03:14:08 +03:00
parent 507f0cbe41
commit 18f0f833f3
Signed by: YuRaNnNzZZ
GPG Key ID: 5F71738C85A6006D
7 changed files with 556 additions and 4 deletions

View File

@ -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.decorative.CargoCrateBlock
import ru.dbotthepony.mc.otm.block.entity.WorkerState import ru.dbotthepony.mc.otm.block.entity.WorkerState
import ru.dbotthepony.mc.otm.block.matter.MatterBottlerBlock 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.BlockRotationFreedom
import ru.dbotthepony.mc.otm.core.math.xRotationBlockstateNorth import ru.dbotthepony.mc.otm.core.math.xRotationBlockstateNorth
import ru.dbotthepony.mc.otm.core.math.xRotationBlockstateSouth 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)) { with(provider.getMultipartBuilder(MBlocks.MATTER_BOTTLER)) {
for (dir in BlockRotationFreedom.ONE.possibleValues) { for (dir in BlockRotationFreedom.ONE.possibleValues) {
for (enum in WorkerState.SEMI_WORKER_STATE.possibleValues) { for (enum in WorkerState.SEMI_WORKER_STATE.possibleValues) {

View File

@ -688,4 +688,48 @@ public class BlockShapes {
new SimpleCuboid(0.03125d, 0.8125d, 0.03125d, 0.96875d, 0.875d, 0.96875d), new SimpleCuboid(0.03125d, 0.8125d, 0.03125d, 0.96875d, 0.875d, 0.96875d),
new SimpleCuboid(0d, 0.1875d, 0d, 1d, 0.8125d, 1d) 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)
);
} }

View File

@ -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.StateDefinition
import net.minecraft.world.level.block.state.properties.EnumProperty import net.minecraft.world.level.block.state.properties.EnumProperty
import net.minecraft.world.level.material.PushReaction 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.RotatableMatteryBlock
import ru.dbotthepony.mc.otm.block.entity.MatteryPoweredBlockEntity import ru.dbotthepony.mc.otm.block.entity.MatteryPoweredBlockEntity
import ru.dbotthepony.mc.otm.block.entity.tech.AndroidChargerBlockEntity 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.capability.energy.WorkerEnergyStorage
import ru.dbotthepony.mc.otm.core.get import ru.dbotthepony.mc.otm.core.get
import ru.dbotthepony.mc.otm.core.gracefulBlockBreak import ru.dbotthepony.mc.otm.core.gracefulBlockBreak
import ru.dbotthepony.mc.otm.core.math.plus import ru.dbotthepony.mc.otm.core.math.plus
import ru.dbotthepony.mc.otm.oncePre 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 { class AndroidChargerBlock : RotatableMatteryBlock(Properties.of().destroyTime(2.5f).explosionResistance(40f).pushReaction(PushReaction.BLOCK).requiresCorrectToolForDrops()), EntityBlock {
enum class Type : StringRepresentable { 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_) 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 { companion object {
val PART: EnumProperty<Type> = EnumProperty.create("part", Type::class.java) val PART: EnumProperty<Type> = EnumProperty.create("part", Type::class.java)
} }

View File

@ -1,5 +1,6 @@
{ {
"credit": "Made with Blockbench", "credit": "Made with Blockbench",
"render_type": "cutout",
"texture_size": [32, 64], "texture_size": [32, 64],
"textures": { "textures": {
"0": "overdrive_that_matters:block/android_charger", "0": "overdrive_that_matters:block/android_charger",
@ -92,6 +93,9 @@
"east": {"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"}, "south": {"uv": [8, 9, 12, 10.25], "texture": "#0"},
"west": {"uv": [8, 9, 12, 10.25], "texture": "#0"} "west": {"uv": [8, 9, 12, 10.25], "texture": "#0"}
},
"forge_data": {
"block_light": 15
} }
}, },
{ {

View File

@ -1,5 +1,6 @@
{ {
"credit": "Made with Blockbench", "credit": "Made with Blockbench",
"render_type": "cutout",
"texture_size": [32, 64], "texture_size": [32, 64],
"textures": { "textures": {
"0": "overdrive_that_matters:block/android_charger", "0": "overdrive_that_matters:block/android_charger",
@ -15,6 +16,9 @@
"east": {"uv": [8, 9, 12, 13], "texture": "#0"}, "east": {"uv": [8, 9, 12, 13], "texture": "#0"},
"south": {"uv": [8, 9, 12, 13], "texture": "#0"}, "south": {"uv": [8, 9, 12, 13], "texture": "#0"},
"west": {"uv": [8, 9, 12, 13], "texture": "#0"} "west": {"uv": [8, 9, 12, 13], "texture": "#0"}
},
"forge_data": {
"block_light": 15
} }
}, },
{ {

View File

@ -1,5 +1,6 @@
{ {
"credit": "Made with Blockbench", "credit": "Made with Blockbench",
"render_type": "cutout",
"texture_size": [32, 64], "texture_size": [32, 64],
"textures": { "textures": {
"0": "overdrive_that_matters:block/android_charger", "0": "overdrive_that_matters:block/android_charger",
@ -12,6 +13,9 @@
"to": [13, 14, 0], "to": [13, 14, 0],
"faces": { "faces": {
"north": {"uv": [11, 2.25, 12.5, 4.75], "rotation": 90, "texture": "#0"} "north": {"uv": [11, 2.25, 12.5, 4.75], "rotation": 90, "texture": "#0"}
},
"forge_data": {
"block_light": 15
} }
}, },
{ {
@ -67,6 +71,9 @@
"east": {"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"}, "south": {"uv": [8, 11.75, 12, 13], "texture": "#0"},
"west": {"uv": [8, 11.75, 12, 13], "texture": "#0"} "west": {"uv": [8, 11.75, 12, 13], "texture": "#0"}
},
"forge_data": {
"block_light": 15
} }
}, },
{ {

View File

@ -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]
}
]
}