No arm, no foul

- Implement repolished assets for the Mechanical Arm
This commit is contained in:
simibubi 2023-04-20 22:29:41 +02:00
parent ce108ad786
commit 5416162d0f
18 changed files with 575 additions and 468 deletions

View File

@ -89,8 +89,10 @@ public class AllPartialModels {
ARM_COG = block("mechanical_arm/cog"), ARM_BASE = block("mechanical_arm/base"),
ARM_LOWER_BODY = block("mechanical_arm/lower_body"), ARM_UPPER_BODY = block("mechanical_arm/upper_body"),
ARM_HEAD = block("mechanical_arm/head"), ARM_CLAW_BASE = block("mechanical_arm/claw_base"),
ARM_CLAW_GRIP = block("mechanical_arm/claw_grip"),
ARM_CLAW_BASE = block("mechanical_arm/claw_base"),
ARM_CLAW_BASE_GOGGLES = block("mechanical_arm/claw_base_goggles"),
ARM_CLAW_GRIP_UPPER = block("mechanical_arm/upper_claw_grip"),
ARM_CLAW_GRIP_LOWER = block("mechanical_arm/lower_claw_grip"),
MECHANICAL_PUMP_COG = block("mechanical_pump/cog"),
FLUID_PIPE_CASING = block("fluid_pipe/casing"), FLUID_VALVE_POINTER = block("fluid_valve/pointer"),

View File

@ -21,16 +21,13 @@ public class ArmAngleTarget {
private ArmAngleTarget() {
lowerArmAngle = 155;
upperArmAngle = 60;
headAngle = -15;
headAngle = 0;
}
public ArmAngleTarget(BlockPos armPos, Vec3 pointTarget, Direction clawFacing, boolean ceiling) {
// if (ceiling)
// clawFacing = clawFacing.getOpposite();
Vec3 target = pointTarget;
Vec3 origin = VecHelper.getCenterOf(armPos)
.add(0, ceiling ? -4 / 16f : 4 / 16f, 0);
.add(0, ceiling ? -6 / 16f : 6 / 16f, 0);
Vec3 clawTarget = target;
target = target.add(Vec3.atLowerCornerOf(clawFacing.getOpposite()
.getNormal())
@ -48,9 +45,9 @@ public class ArmAngleTarget {
float alphaOffset = AngleHelper.deg(Mth.atan2(diff.y, horizontalDistance));
float a = 18 / 16f; // lower arm length
float a = 14 / 16f; // lower arm length
float a2 = a * a;
float b = 17 / 16f; // upper arm length
float b = 15 / 16f; // upper arm length
float b2 = b * b;
float diffLength =
Mth.clamp(Mth.sqrt((float) (diff.y * diff.y + horizontalDistance * horizontalDistance)), 1 / 8f, a + b);

View File

@ -3,6 +3,7 @@ package com.simibubi.create.content.logistics.block.mechanicalArm;
import org.apache.commons.lang3.mutable.MutableBoolean;
import com.simibubi.create.AllBlockEntityTypes;
import com.simibubi.create.AllItems;
import com.simibubi.create.AllShapes;
import com.simibubi.create.content.contraptions.base.KineticBlock;
import com.simibubi.create.content.contraptions.relays.elementary.ICogWheel;
@ -82,7 +83,21 @@ public class ArmBlock extends KineticBlock implements IBE<ArmBlockEntity>, ICogW
@Override
public InteractionResult use(BlockState p_225533_1_, Level world, BlockPos pos, Player player,
InteractionHand p_225533_5_, BlockHitResult p_225533_6_) {
InteractionHand hand, BlockHitResult p_225533_6_) {
ItemStack heldItem = player.getItemInHand(hand);
if (AllItems.GOGGLES.isIn(heldItem)) {
InteractionResult gogglesResult = onBlockEntityUse(world, pos, ate -> {
if (ate.goggles)
return InteractionResult.PASS;
ate.goggles = true;
ate.notifyUpdate();
return InteractionResult.SUCCESS;
});
if (gogglesResult.consumesAction())
return gogglesResult;
}
MutableBoolean success = new MutableBoolean(false);
withBlockEntityDo(world, pos, be -> {
if (be.heldItem.isEmpty())

View File

@ -5,6 +5,7 @@ import java.util.List;
import javax.annotation.Nullable;
import com.jozufozu.flywheel.backend.instancing.InstancedRenderDispatcher;
import com.simibubi.create.Create;
import com.simibubi.create.content.contraptions.base.KineticBlockEntity;
import com.simibubi.create.content.contraptions.components.structureMovement.ITransformableBlockEntity;
@ -44,6 +45,8 @@ import net.minecraft.world.level.block.state.BlockState;
import net.minecraft.world.level.chunk.ChunkSource;
import net.minecraft.world.phys.AABB;
import net.minecraft.world.phys.Vec3;
import net.minecraftforge.api.distmarker.Dist;
import net.minecraftforge.fml.DistExecutor;
public class ArmBlockEntity extends KineticBlockEntity implements ITransformableBlockEntity {
@ -57,6 +60,7 @@ public class ArmBlockEntity extends KineticBlockEntity implements ITransformable
int chasedPointIndex;
ItemStack heldItem;
Phase phase;
boolean goggles;
// Client
ArmAngleTarget previousTarget;
@ -98,6 +102,7 @@ public class ArmBlockEntity extends KineticBlockEntity implements ITransformable
previousBaseAngle = previousTarget.baseAngle;
updateInteractionPoints = true;
redstoneLocked = false;
goggles = false;
}
@Override
@ -509,6 +514,7 @@ public class ArmBlockEntity extends KineticBlockEntity implements ITransformable
NBTHelper.writeEnum(compound, "Phase", phase);
compound.putBoolean("Powered", redstoneLocked);
compound.putBoolean("Goggles", goggles);
compound.put("HeldItem", heldItem.serializeNBT());
compound.putInt("TargetPointIndex", chasedPointIndex);
compound.putFloat("MovementProgress", chasedPointProgress);
@ -534,10 +540,16 @@ public class ArmBlockEntity extends KineticBlockEntity implements ITransformable
chasedPointProgress = compound.getFloat("MovementProgress");
interactionPointTag = compound.getList("InteractionPoints", Tag.TAG_COMPOUND);
redstoneLocked = compound.getBoolean("Powered");
boolean hadGoggles = goggles;
goggles = compound.getBoolean("Goggles");
if (!clientPacket)
return;
if (hadGoggles != goggles)
DistExecutor.unsafeRunWhenOn(Dist.CLIENT, () -> () -> InstancedRenderDispatcher.enqueueUpdate(this));
boolean ceiling = isOnCeiling();
if (interactionPointTagBefore == null || interactionPointTagBefore.size() != interactionPointTag.size())
updateInteractionPoints = true;

View File

@ -29,8 +29,8 @@ public class ArmInstance extends SingleRotatingInstance<ArmBlockEntity> implemen
final ModelData base;
final ModelData lowerBody;
final ModelData upperBody;
final ModelData head;
final ModelData claw;
ModelData claw;
private final ArrayList<ModelData> clawGrips;
private final ArrayList<ModelData> models;
@ -54,17 +54,18 @@ public class ArmInstance extends SingleRotatingInstance<ArmBlockEntity> implemen
.createInstance();
upperBody = mat.getModel(AllPartialModels.ARM_UPPER_BODY, blockState)
.createInstance();
head = mat.getModel(AllPartialModels.ARM_HEAD, blockState)
.createInstance();
claw = mat.getModel(AllPartialModels.ARM_CLAW_BASE, blockState)
claw = mat
.getModel(blockEntity.goggles ? AllPartialModels.ARM_CLAW_BASE_GOGGLES : AllPartialModels.ARM_CLAW_BASE,
blockState)
.createInstance();
Instancer<ModelData> clawHalfModel = mat.getModel(AllPartialModels.ARM_CLAW_GRIP, blockState);
ModelData clawGrip1 = clawHalfModel.createInstance();
ModelData clawGrip2 = clawHalfModel.createInstance();
ModelData clawGrip1 = mat.getModel(AllPartialModels.ARM_CLAW_GRIP_UPPER, blockState)
.createInstance();
ModelData clawGrip2 = mat.getModel(AllPartialModels.ARM_CLAW_GRIP_LOWER, blockState)
.createInstance();
clawGrips = Lists.newArrayList(clawGrip1, clawGrip2);
models = Lists.newArrayList(base, lowerBody, upperBody, head, claw, clawGrip1, clawGrip2);
models = Lists.newArrayList(base, lowerBody, upperBody, claw, clawGrip1, clawGrip2);
ceiling = blockState.getValue(ArmBlock.CEILING);
animateArm(false);
@ -108,7 +109,8 @@ public class ArmInstance extends SingleRotatingInstance<ArmBlockEntity> implemen
int color;
if (rave) {
float renderTick = AnimationTickHolder.getRenderTime(blockEntity.getLevel()) + (blockEntity.hashCode() % 64);
float renderTick =
AnimationTickHolder.getRenderTime(blockEntity.getLevel()) + (blockEntity.hashCode() % 64);
baseAngle = (renderTick * 10) % 360;
lowerArmAngle = Mth.lerp((Mth.sin(renderTick / 4) + 1) / 2, -45, 15);
upperArmAngle = Mth.lerp((Mth.sin(renderTick / 8) + 1) / 4, -45, 95);
@ -143,10 +145,14 @@ public class ArmInstance extends SingleRotatingInstance<ArmBlockEntity> implemen
.setColor(color);
ArmRenderer.transformHead(msr, headAngle);
head.setTransform(msLocal);
ArmRenderer.transformClaw(msr);
if (ceiling && blockEntity.goggles)
msr.rotateZ(180);
claw.setTransform(msLocal);
if (ceiling && blockEntity.goggles)
msr.rotateZ(180);
ItemStack item = blockEntity.heldItem;
ItemRenderer itemRenderer = Minecraft.getInstance()
@ -166,6 +172,20 @@ public class ArmInstance extends SingleRotatingInstance<ArmBlockEntity> implemen
}
}
@Override
public void update() {
super.update();
models.remove(claw);
claw.delete();
claw = getTransformMaterial()
.getModel(blockEntity.goggles ? AllPartialModels.ARM_CLAW_BASE_GOGGLES : AllPartialModels.ARM_CLAW_BASE,
blockState)
.createInstance();
models.add(claw);
updateLight();
animateArm(false);
}
@Override
public void updateLight() {
super.updateLight();

View File

@ -49,7 +49,7 @@ public class ArmRenderer extends KineticBlockEntityRenderer<ArmBlockEntity> {
hasItem && (item.getItem() instanceof BlockItem) && itemRenderer.getModel(item, be.getLevel(), null, 0)
.isGui3d();
VertexConsumer builder = buffer.getBuffer(RenderType.solid());
VertexConsumer builder = buffer.getBuffer(be.goggles ? RenderType.cutout() : RenderType.solid());
BlockState blockState = be.getBlockState();
PoseStack msLocal = new PoseStack();
@ -60,6 +60,7 @@ public class ArmRenderer extends KineticBlockEntityRenderer<ArmBlockEntity> {
float upperArmAngle;
float headAngle;
int color;
boolean inverted = blockState.getValue(ArmBlock.CEILING);
boolean rave = be.phase == Phase.DANCING && be.getSpeed() != 0;
if (rave) {
@ -80,20 +81,20 @@ public class ArmRenderer extends KineticBlockEntityRenderer<ArmBlockEntity> {
msr.centre();
if (blockState.getValue(ArmBlock.CEILING))
if (inverted)
msr.rotateX(180);
if (usingFlywheel)
doItemTransforms(msr, baseAngle, lowerArmAngle, upperArmAngle, headAngle);
else
renderArm(builder, ms, msLocal, msr, blockState, color, baseAngle, lowerArmAngle, upperArmAngle, headAngle,
hasItem, isBlockItem, light);
be.goggles, inverted && be.goggles, hasItem, isBlockItem, light);
if (hasItem) {
ms.pushPose();
float itemScale = isBlockItem ? .5f : .625f;
msr.rotateX(90);
msLocal.translate(0, -4 / 16f, 0);
msLocal.translate(0, isBlockItem ? -9 / 16f : -10 / 16f, 0);
msLocal.scale(itemScale, itemScale, itemScale);
ms.last()
@ -109,18 +110,21 @@ public class ArmRenderer extends KineticBlockEntityRenderer<ArmBlockEntity> {
private void renderArm(VertexConsumer builder, PoseStack ms, PoseStack msLocal, TransformStack msr,
BlockState blockState, int color, float baseAngle, float lowerArmAngle, float upperArmAngle, float headAngle,
boolean hasItem, boolean isBlockItem, int light) {
boolean goggles, boolean inverted, boolean hasItem, boolean isBlockItem, int light) {
SuperByteBuffer base = CachedBufferer.partial(AllPartialModels.ARM_BASE, blockState)
.light(light);
SuperByteBuffer lowerBody = CachedBufferer.partial(AllPartialModels.ARM_LOWER_BODY, blockState)
.light(light);
SuperByteBuffer upperBody = CachedBufferer.partial(AllPartialModels.ARM_UPPER_BODY, blockState)
.light(light);
SuperByteBuffer head = CachedBufferer.partial(AllPartialModels.ARM_HEAD, blockState)
SuperByteBuffer claw = CachedBufferer
.partial(goggles ? AllPartialModels.ARM_CLAW_BASE_GOGGLES : AllPartialModels.ARM_CLAW_BASE, blockState)
.light(light);
SuperByteBuffer claw = CachedBufferer.partial(AllPartialModels.ARM_CLAW_BASE, blockState)
SuperByteBuffer upperClawGrip = CachedBufferer.partial(AllPartialModels.ARM_CLAW_GRIP_UPPER,
blockState)
.light(light);
SuperByteBuffer lowerClawGrip = CachedBufferer.partial(AllPartialModels.ARM_CLAW_GRIP_LOWER, blockState)
.light(light);
SuperByteBuffer clawGrip = CachedBufferer.partial(AllPartialModels.ARM_CLAW_GRIP, blockState);
transformBase(msr, baseAngle);
base.transform(msLocal)
@ -137,18 +141,20 @@ public class ArmRenderer extends KineticBlockEntityRenderer<ArmBlockEntity> {
.renderInto(ms, builder);
transformHead(msr, headAngle);
head.transform(msLocal)
.renderInto(ms, builder);
transformClaw(msr);
if (inverted)
msr.rotateZ(180);
claw.transform(msLocal)
.renderInto(ms, builder);
if (inverted)
msr.rotateZ(180);
for (int flip : Iterate.positiveAndNegative) {
msLocal.pushPose();
transformClawHalf(msr, hasItem, isBlockItem, flip);
clawGrip.light(light)
.transform(msLocal)
(flip > 0 ? lowerClawGrip : upperClawGrip).transform(msLocal)
.renderInto(ms, builder);
msLocal.popPose();
}
@ -161,32 +167,25 @@ public class ArmRenderer extends KineticBlockEntityRenderer<ArmBlockEntity> {
transformLowerArm(msr, lowerArmAngle);
transformUpperArm(msr, upperArmAngle);
transformHead(msr, headAngle);
transformClaw(msr);
}
public static void transformClawHalf(TransformStack msr, boolean hasItem, boolean isBlockItem, int flip) {
msr.translate(0, flip * 3 / 16d, -1 / 16d);
msr.rotateX(flip * (hasItem ? isBlockItem ? 0 : -35 : 0));
}
public static void transformClaw(TransformStack msr) {
msr.translate(0, 0, -4 / 16d);
msr.translate(0, -flip * (hasItem ? isBlockItem ? 3 / 16f : 5 / 64f : 1 / 16f), -6 / 16d);
}
public static void transformHead(TransformStack msr, float headAngle) {
msr.translate(0, 11 / 16d, -11 / 16d);
msr.rotateX(headAngle);
msr.translate(0, 0, -15 / 16d);
msr.rotateX(headAngle - 45f);
}
public static void transformUpperArm(TransformStack msr, float upperArmAngle) {
msr.translate(0, 12 / 16d, 12 / 16d);
msr.rotateX(upperArmAngle);
msr.translate(0, 0, -14 / 16d);
msr.rotateX(upperArmAngle - 90);
}
public static void transformLowerArm(TransformStack msr, float lowerArmAngle) {
msr.translate(0, 1 / 16d, -2 / 16d);
msr.rotateX(lowerArmAngle);
msr.translate(0, -1 / 16d, 0);
msr.translate(0, 2 / 16d, 0);
msr.rotateX(lowerArmAngle + 135);
}
public static void transformBase(TransformStack msr, float baseAngle) {

View File

@ -2,22 +2,34 @@
"credit": "Made with Blockbench",
"parent": "block/block",
"textures": {
"5": "create:block/mechanical_arm",
"particle": "create:block/crafter_top"
"2": "create:block/elevator_pulley",
"3": "create:block/brass_block",
"5": "create:block/mechanical_arm"
},
"elements": [
{
"name": "Base",
"name": "Joint 1",
"from": [-5, -2, -5],
"to": [5, 2, 5],
"rotation": {"angle": 0, "axis": "y", "origin": [0, 0, 0]},
"rotation": {"angle": 0, "axis": "y", "origin": [8, 2, 5]},
"faces": {
"north": {"uv": [5, 9.5, 7, 14.5], "rotation": 270, "texture": "#5"},
"east": {"uv": [5, 9.5, 7, 14.5], "rotation": 270, "texture": "#5"},
"south": {"uv": [5, 9.5, 7, 14.5], "rotation": 270, "texture": "#5"},
"west": {"uv": [5, 9.5, 7, 14.5], "rotation": 270, "texture": "#5"},
"up": {"uv": [0, 9.5, 5, 14.5], "texture": "#5"},
"down": {"uv": [0, 9.5, 5, 14.5], "texture": "#5"}
"north": {"uv": [5, 11, 7, 16], "rotation": 90, "texture": "#5"},
"east": {"uv": [7, 11, 9, 16], "rotation": 90, "texture": "#5"},
"south": {"uv": [5, 11, 7, 16], "rotation": 90, "texture": "#5"},
"west": {"uv": [7, 11, 9, 16], "rotation": 90, "texture": "#5"},
"up": {"uv": [0, 11, 5, 16], "rotation": 90, "texture": "#5"},
"down": {"uv": [3, 3, 13, 13], "texture": "#3"}
}
},
{
"from": [-3, 2, -4],
"to": [3, 5, 4],
"faces": {
"north": {"uv": [12, 9, 15, 10.5], "texture": "#2"},
"east": {"uv": [10, 13, 14, 14.5], "texture": "#2"},
"south": {"uv": [12, 9, 15, 10.5], "texture": "#2"},
"west": {"uv": [10, 13, 14, 14.5], "texture": "#2"},
"up": {"uv": [6, 13, 10, 16], "rotation": 90, "texture": "#2"}
}
}
],
@ -54,12 +66,5 @@
"translation": [0, 1.75, -4.5],
"scale": [0.5, 0.5, 0.5]
}
},
"groups": [
{
"name": "inserter",
"origin": [8, 8, 8],
"children": [0]
}
]
}
}

View File

@ -17,7 +17,7 @@
"south": {"uv": [0, 0, 16, 6], "texture": "#3"},
"west": {"uv": [0, 0, 16, 6], "texture": "#3"},
"up": {"uv": [0, 0, 16, 16], "texture": "#7"},
"down": {"uv": [0, 0, 16, 16], "texture": "#7"}
"down": {"uv": [0, 0, 16, 16], "texture": "#particle"}
}
}
],

View File

@ -2,22 +2,47 @@
"credit": "Made with Blockbench",
"parent": "block/block",
"textures": {
"5": "create:block/mechanical_arm",
"particle": "create:block/crafter_top"
"5": "create:block/mechanical_arm"
},
"elements": [
{
"name": "ClawBase",
"from": [-3, -3, -1],
"to": [3, 3, 1],
"rotation": {"angle": 0, "axis": "y", "origin": [0, 0.5, 4]},
"name": "Joint 4",
"from": [-2.5, -3, -3],
"to": [2.5, 3, 3],
"rotation": {"angle": 0, "axis": "x", "origin": [8, 9, 4]},
"faces": {
"north": {"uv": [12, 0, 15, 3], "texture": "#5"},
"east": {"uv": [12, 0, 13, 3], "texture": "#5"},
"south": {"uv": [12, 0, 15, 3], "texture": "#5"},
"west": {"uv": [14, 0, 15, 3], "texture": "#5"},
"up": {"uv": [12, 0, 13, 3], "rotation": 90, "texture": "#5"},
"down": {"uv": [12, 0, 15, 1], "texture": "#5"}
"north": {"uv": [4, 3, 7, 5.5], "rotation": 90, "texture": "#5"},
"east": {"uv": [4, 0, 7, 3], "texture": "#5"},
"south": {"uv": [7, 3, 4, 5.5], "rotation": 90, "texture": "#5"},
"west": {"uv": [4, 0, 7, 3], "texture": "#5"},
"up": {"uv": [7, 3, 4, 5.5], "rotation": 90, "texture": "#5"},
"down": {"uv": [4, 3, 7, 5.5], "rotation": 90, "texture": "#5"}
}
},
{
"from": [-3, -3, -5],
"to": [3, 3, -3],
"rotation": {"angle": 0, "axis": "x", "origin": [8, 9, 4]},
"faces": {
"north": {"uv": [7, 0, 10, 3], "texture": "#5"},
"east": {"uv": [10, 0, 11, 3], "texture": "#5"},
"south": {"uv": [7, 0, 10, 3], "texture": "#5"},
"west": {"uv": [11, 0, 10, 3], "texture": "#5"},
"up": {"uv": [11, 0, 10, 3], "rotation": 90, "texture": "#5"},
"down": {"uv": [10, 0, 11, 3], "rotation": 90, "texture": "#5"}
}
},
{
"from": [-1, -4.5, -6],
"to": [1, 4.5, -4],
"rotation": {"angle": 0, "axis": "x", "origin": [8, 9, 4]},
"faces": {
"north": {"uv": [0, 9, 4.5, 10], "rotation": 90, "texture": "#5"},
"east": {"uv": [0, 9, 4.5, 10], "rotation": 90, "texture": "#5"},
"south": {"uv": [0, 9, 4.5, 10], "rotation": 90, "texture": "#5"},
"west": {"uv": [0, 9, 4.5, 10], "rotation": 90, "texture": "#5"},
"up": {"uv": [4.5, 9, 5.5, 10], "texture": "#5"},
"down": {"uv": [4.5, 9, 5.5, 10], "texture": "#5"}
}
}
],
@ -54,12 +79,5 @@
"translation": [0, 1.75, -4.5],
"scale": [0.5, 0.5, 0.5]
}
},
"groups": [
{
"name": "inserter",
"origin": [8, 8, 8],
"children": [0]
}
]
}
}

View File

@ -0,0 +1,118 @@
{
"credit": "Made with Blockbench",
"parent": "block/block",
"textures": {
"1": "create:block/hat_test",
"5": "create:block/mechanical_arm",
"particle": "create:block/hat_test"
},
"elements": [
{
"name": "Joint 4",
"from": [-2.5, -3, -3],
"to": [2.5, 3, 3],
"rotation": {"angle": 0, "axis": "x", "origin": [8, 9, 4]},
"faces": {
"north": {"uv": [4, 3, 7, 5.5], "rotation": 90, "texture": "#5"},
"east": {"uv": [4, 0, 7, 3], "texture": "#5"},
"south": {"uv": [7, 3, 4, 5.5], "rotation": 90, "texture": "#5"},
"west": {"uv": [4, 0, 7, 3], "texture": "#5"},
"up": {"uv": [7, 3, 4, 5.5], "rotation": 90, "texture": "#5"},
"down": {"uv": [4, 3, 7, 5.5], "rotation": 90, "texture": "#5"}
}
},
{
"from": [-3, -3, -5],
"to": [3, 3, -3],
"rotation": {"angle": 0, "axis": "x", "origin": [8, 9, 4]},
"faces": {
"north": {"uv": [7, 0, 10, 3], "texture": "#5"},
"east": {"uv": [10, 0, 11, 3], "texture": "#5"},
"south": {"uv": [7, 0, 10, 3], "texture": "#5"},
"west": {"uv": [11, 0, 10, 3], "texture": "#5"},
"up": {"uv": [11, 0, 10, 3], "rotation": 90, "texture": "#5"},
"down": {"uv": [10, 0, 11, 3], "rotation": 90, "texture": "#5"}
}
},
{
"from": [-1, -4.5, -6],
"to": [1, 4.5, -4],
"rotation": {"angle": 0, "axis": "x", "origin": [8, 9, 4]},
"faces": {
"north": {"uv": [0, 9, 4.5, 10], "rotation": 90, "texture": "#5"},
"east": {"uv": [0, 9, 4.5, 10], "rotation": 90, "texture": "#5"},
"south": {"uv": [0, 9, 4.5, 10], "rotation": 90, "texture": "#5"},
"west": {"uv": [0, 9, 4.5, 10], "rotation": 90, "texture": "#5"},
"up": {"uv": [4.5, 9, 5.5, 10], "texture": "#5"},
"down": {"uv": [4.5, 9, 5.5, 10], "texture": "#5"}
}
},
{
"from": [-4, 0.5, -4.25],
"to": [4, 4.5, 3.75],
"rotation": {"angle": 22.5, "axis": "x", "origin": [0, 3, 1]},
"faces": {
"north": {"uv": [8, 2, 16, 6], "texture": "#1"},
"east": {"uv": [0, 2, 8, 6], "texture": "#1"},
"south": {"uv": [8, 10, 16, 14], "texture": "#1"},
"west": {"uv": [8, 2, 0, 6], "texture": "#1"}
}
},
{
"from": [-4, 0.5, 3.75],
"to": [4, 4.5, -4.25],
"rotation": {"angle": 22.5, "axis": "x", "origin": [0, 3, 1]},
"faces": {
"north": {"uv": [8, 10, 16, 14], "texture": "#1"},
"east": {"uv": [8, 2, 0, 6], "texture": "#1"},
"south": {"uv": [8, 2, 16, 6], "texture": "#1"},
"west": {"uv": [0, 2, 8, 6], "texture": "#1"}
}
}
],
"display": {
"thirdperson_righthand": {
"rotation": [75, -149, 0],
"translation": [0, 2.5, 0],
"scale": [0.375, 0.375, 0.375]
},
"thirdperson_lefthand": {
"rotation": [75, -149, 0],
"translation": [0, 2.5, 0],
"scale": [0.375, 0.375, 0.375]
},
"firstperson_righthand": {
"rotation": [0, -55, 0],
"scale": [0.4, 0.4, 0.4]
},
"firstperson_lefthand": {
"rotation": [0, -55, 0],
"scale": [0.4, 0.4, 0.4]
},
"ground": {
"translation": [0, 1, 1.25],
"scale": [0.25, 0.25, 0.25]
},
"gui": {
"rotation": [30, 45, 0],
"translation": [2.5, -0.5, 0],
"scale": [0.625, 0.625, 0.625]
},
"fixed": {
"rotation": [0, 180, 0],
"translation": [0, 1.75, -4.5],
"scale": [0.5, 0.5, 0.5]
}
},
"groups": [
0,
1,
2,
{
"name": "Goggles",
"origin": [8, 8, 8],
"color": 0,
"children": [3, 4]
}
]
}

File diff suppressed because one or more lines are too long

View File

@ -1,77 +0,0 @@
{
"credit": "Made with Blockbench",
"parent": "block/block",
"textures": {
"5": "create:block/mechanical_arm",
"particle": "create:block/crafter_top"
},
"elements": [
{
"name": "Head",
"from": [-4, -2, -2],
"to": [4, 2, 2],
"rotation": {"angle": 0, "axis": "y", "origin": [0, 0.5, 0]},
"faces": {
"north": {"uv": [7, 9.5, 9, 13.5], "rotation": 90, "texture": "#5"},
"east": {"uv": [7, 13.5, 9, 15.5], "texture": "#5"},
"south": {"uv": [7, 9.5, 9, 13.5], "rotation": 90, "texture": "#5"},
"west": {"uv": [7, 13.5, 9, 15.5], "texture": "#5"},
"up": {"uv": [7, 9.5, 9, 13.5], "rotation": 90, "texture": "#5"},
"down": {"uv": [7, 9.5, 9, 13.5], "rotation": 270, "texture": "#5"}
}
},
{
"name": "ClawConnector",
"from": [-1.5, -1, -3],
"to": [1.5, 1, -2],
"rotation": {"angle": 0, "axis": "y", "origin": [0, 0.5, 0]},
"faces": {
"east": {"uv": [10.5, 2.5, 11, 3.5], "texture": "#5"},
"west": {"uv": [11.5, 2.5, 12, 3.5], "texture": "#5"},
"up": {"uv": [10.5, 3, 12, 3.5], "rotation": 180, "texture": "#5"},
"down": {"uv": [10.5, 2.5, 12, 3], "texture": "#5"}
}
}
],
"display": {
"thirdperson_righthand": {
"rotation": [75, -149, 0],
"translation": [0, 2.5, 0],
"scale": [0.375, 0.375, 0.375]
},
"thirdperson_lefthand": {
"rotation": [75, -149, 0],
"translation": [0, 2.5, 0],
"scale": [0.375, 0.375, 0.375]
},
"firstperson_righthand": {
"rotation": [0, -55, 0],
"scale": [0.4, 0.4, 0.4]
},
"firstperson_lefthand": {
"rotation": [0, -55, 0],
"scale": [0.4, 0.4, 0.4]
},
"ground": {
"translation": [0, 1, 1.25],
"scale": [0.25, 0.25, 0.25]
},
"gui": {
"rotation": [30, 45, 0],
"translation": [2.5, -0.5, 0],
"scale": [0.625, 0.625, 0.625]
},
"fixed": {
"rotation": [0, 180, 0],
"translation": [0, 1.75, -4.5],
"scale": [0.5, 0.5, 0.5]
}
},
"groups": [
{
"name": "inserter",
"origin": [8, 8, 8],
"children": [0, 1]
}
]
}

View File

@ -4,104 +4,116 @@
"textures": {
"4": "create:block/mechanical_arm_side",
"5": "create:block/mechanical_arm",
"6": "create:block/elevator_pulley",
"7": "create:block/brass_block",
"particle": "create:block/crafter_top"
},
"elements": [
{
"name": "Base",
"name": "GearCaseOuter",
"from": [4, -10, 4],
"to": [12, -6, 12],
"rotation": {"angle": 0, "axis": "y", "origin": [8, -8, 8]},
"faces": {
"north": {"uv": [7.5, 0, 9.5, 4], "rotation": 90, "texture": "#missing"},
"east": {"uv": [7.5, 0, 9.5, 4], "rotation": 90, "texture": "#missing"},
"south": {"uv": [7.5, 0, 9.5, 4], "rotation": 90, "texture": "#missing"},
"west": {"uv": [7.5, 0, 9.5, 4], "rotation": 90, "texture": "#missing"}
}
},
{
"name": "Gear5",
"from": [6.5, -10, -1],
"to": [9.5, -6, 17],
"rotation": {"angle": 0, "axis": "y", "origin": [8, -10, 8]},
"faces": {
"north": {"uv": [7.5, 4, 9, 6], "texture": "#missing"},
"east": {"uv": [0, 7.5, 9, 9.5], "texture": "#missing"},
"south": {"uv": [7.5, 4, 9, 6], "texture": "#missing"},
"west": {"uv": [0, 7.5, 9, 9.5], "texture": "#missing"},
"up": {"uv": [0, 6, 9, 7.5], "rotation": 270, "texture": "#missing"},
"down": {"uv": [0, 6, 9, 7.5], "rotation": 270, "texture": "#missing"}
}
},
{
"name": "Gear6",
"from": [6.5, -10, -1],
"to": [9.5, -6, 17],
"rotation": {"angle": 45, "axis": "y", "origin": [8, -10, 8]},
"faces": {
"north": {"uv": [7.5, 4, 9, 6], "texture": "#missing"},
"east": {"uv": [0, 7.5, 9, 9.5], "texture": "#missing"},
"south": {"uv": [7.5, 4, 9, 6], "texture": "#missing"},
"west": {"uv": [0, 7.5, 9, 9.5], "texture": "#missing"},
"up": {"uv": [0, 6, 9, 7.5], "rotation": 270, "texture": "#missing"},
"down": {"uv": [0, 6, 9, 7.5], "rotation": 270, "texture": "#missing"}
}
},
{
"name": "Gear7",
"from": [-1, -10, 6.5],
"to": [17, -6, 9.5],
"rotation": {"angle": 45, "axis": "y", "origin": [8, -10, 8]},
"faces": {
"north": {"uv": [0, 7.5, 9, 9.5], "texture": "#missing"},
"east": {"uv": [7.5, 4, 9, 6], "texture": "#missing"},
"south": {"uv": [0, 7.5, 9, 9.5], "texture": "#missing"},
"west": {"uv": [7.5, 4, 9, 6], "texture": "#missing"},
"up": {"uv": [0, 6, 9, 7.5], "rotation": 180, "texture": "#missing"},
"down": {"uv": [0, 6, 9, 7.5], "rotation": 180, "texture": "#missing"}
}
},
{
"name": "Gear7",
"from": [-1, -10, 6.5],
"to": [17, -6, 9.5],
"rotation": {"angle": 0, "axis": "y", "origin": [8, -10, 8]},
"faces": {
"north": {"uv": [0, 7.5, 9, 9.5], "texture": "#missing"},
"east": {"uv": [7.5, 4, 9, 6], "texture": "#missing"},
"south": {"uv": [0, 7.5, 9, 9.5], "texture": "#missing"},
"west": {"uv": [7.5, 4, 9, 6], "texture": "#missing"},
"up": {"uv": [0, 6, 9, 7.5], "rotation": 180, "texture": "#missing"},
"down": {"uv": [0, 6, 9, 7.5], "rotation": 180, "texture": "#missing"}
}
},
{
"name": "GearCaseInner",
"from": [2, -9.5, 2],
"to": [14, -6.5, 14],
"rotation": {"angle": 0, "axis": "y", "origin": [8, -9.5, 8]},
"faces": {
"north": {"uv": [6, 0, 7.5, 6], "rotation": 90, "texture": "#missing"},
"east": {"uv": [6, 0, 7.5, 6], "rotation": 90, "texture": "#missing"},
"south": {"uv": [6, 0, 7.5, 6], "rotation": 90, "texture": "#missing"},
"west": {"uv": [6, 0, 7.5, 6], "rotation": 90, "texture": "#missing"},
"up": {"uv": [0, 0, 6, 6], "rotation": 180, "texture": "#missing"},
"down": {"uv": [0, 0, 6, 6], "rotation": 180, "texture": "#missing"}
}
},
{
"name": "Joint 1",
"from": [3, -6, 3],
"to": [13, -2, 13],
"rotation": {"angle": 0, "axis": "y", "origin": [8, 2, 5]},
"faces": {
"north": {"uv": [5, 9.5, 7, 14.5], "rotation": 270, "texture": "#5"},
"east": {"uv": [5, 9.5, 7, 14.5], "rotation": 270, "texture": "#5"},
"south": {"uv": [5, 9.5, 7, 14.5], "rotation": 270, "texture": "#5"},
"west": {"uv": [5, 9.5, 7, 14.5], "rotation": 270, "texture": "#5"},
"up": {"uv": [0, 9.5, 5, 14.5], "texture": "#5"},
"down": {"uv": [0, 9.5, 5, 14.5], "texture": "#5"}
"north": {"uv": [5, 11, 7, 16], "rotation": 90, "texture": "#5"},
"east": {"uv": [7, 11, 9, 16], "rotation": 90, "texture": "#5"},
"south": {"uv": [5, 11, 7, 16], "rotation": 90, "texture": "#5"},
"west": {"uv": [7, 11, 9, 16], "rotation": 90, "texture": "#5"},
"up": {"uv": [0, 11, 5, 16], "rotation": 90, "texture": "#5"},
"down": {"uv": [4, 4, 12, 12], "texture": "#7"}
}
},
{
"name": "LowerBody",
"from": [6, -4, 3.5],
"to": [10, 10, 6.5],
"rotation": {"angle": 45, "axis": "x", "origin": [8, -4, 5]},
"from": [5, -2, 4],
"to": [11, 1, 12],
"faces": {
"north": {"uv": [9, 14, 16, 16], "rotation": 90, "texture": "#5"},
"east": {"uv": [9, 4, 10.5, 11], "texture": "#5"},
"south": {"uv": [9, 14, 16, 16], "rotation": 90, "texture": "#5"},
"west": {"uv": [9, 4, 10.5, 11], "texture": "#5"},
"up": {"uv": [14.5, 9, 16, 11], "rotation": 90, "texture": "#5"},
"down": {"uv": [14.5, 9, 16, 11], "rotation": 90, "texture": "#5"}
}
},
{
"name": "ConnectorMid",
"from": [7, 10, 4],
"to": [9, 14, 6],
"rotation": {"angle": 45, "axis": "x", "origin": [8, -4, 5]},
"faces": {
"north": {"uv": [15, 0, 16, 2], "texture": "#5"},
"east": {"uv": [15, 0, 16, 2], "texture": "#5"},
"south": {"uv": [15, 0, 16, 2], "texture": "#5"},
"west": {"uv": [15, 0, 16, 2], "texture": "#5"},
"up": {"uv": [15, 0, 16, 1], "texture": "#5"},
"down": {"uv": [15, 0, 16, 2], "texture": "#5"}
}
},
{
"name": "ConnectorR",
"from": [5, 7.02944, 12],
"to": [7, 9.02944, 18],
"rotation": {"angle": 22.5, "axis": "x", "origin": [8, 8, 17]},
"faces": {
"east": {"uv": [15, 0, 16, 3], "rotation": 90, "texture": "#5"},
"south": {"uv": [15, 0, 16, 1], "rotation": 90, "texture": "#5"},
"west": {"uv": [15, 0, 16, 3], "rotation": 90, "texture": "#5"},
"up": {"uv": [15, 0, 16, 3], "texture": "#5"},
"down": {"uv": [15, 0, 16, 3], "rotation": 180, "texture": "#5"}
}
},
{
"name": "ConnectorR",
"from": [9, 7.02944, 12],
"to": [11, 9.02944, 18],
"rotation": {"angle": 22.5, "axis": "x", "origin": [8, 8, 17]},
"faces": {
"east": {"uv": [15, 0, 16, 3], "rotation": 90, "texture": "#5"},
"south": {"uv": [15, 0, 16, 1], "rotation": 90, "texture": "#5"},
"west": {"uv": [15, 0, 16, 3], "rotation": 90, "texture": "#5"},
"up": {"uv": [15, 0, 16, 3], "texture": "#5"},
"down": {"uv": [15, 0, 16, 3], "rotation": 180, "texture": "#5"}
}
},
{
"name": "UpperBody",
"from": [4.5, 6.02944, 2],
"to": [11.5, 10.02944, 13],
"rotation": {"angle": 22.5, "axis": "x", "origin": [8, 8, 17]},
"faces": {
"north": {"uv": [11, 9, 14.5, 11], "texture": "#5"},
"east": {"uv": [14, 3.5, 16, 9], "rotation": 270, "texture": "#5"},
"south": {"uv": [11, 9, 14.5, 11], "texture": "#5"},
"west": {"uv": [14, 3.5, 16, 9], "rotation": 270, "texture": "#5"},
"up": {"uv": [10.5, 3.5, 14, 9], "texture": "#5"},
"down": {"uv": [10.5, 3.5, 14, 9], "texture": "#5"}
}
},
{
"name": "Head",
"from": [4, 11.59915, 0.63821],
"to": [12, 15.59915, 4.63821],
"rotation": {"angle": -22.5, "axis": "x", "origin": [8, 14, 3]},
"faces": {
"north": {"uv": [7, 9.5, 9, 13.5], "rotation": 90, "texture": "#5"},
"east": {"uv": [7, 13.5, 9, 15.5], "texture": "#5"},
"south": {"uv": [7, 9.5, 9, 13.5], "rotation": 90, "texture": "#5"},
"west": {"uv": [7, 13.5, 9, 15.5], "texture": "#5"},
"up": {"uv": [7, 9.5, 9, 13.5], "rotation": 90, "texture": "#5"},
"down": {"uv": [7, 9.5, 9, 13.5], "rotation": 270, "texture": "#5"}
"north": {"uv": [12, 9, 15, 10.5], "texture": "#6"},
"east": {"uv": [10, 13, 14, 14.5], "texture": "#6"},
"south": {"uv": [12, 9, 15, 10.5], "texture": "#6"},
"west": {"uv": [10, 13, 14, 14.5], "texture": "#6"},
"up": {"uv": [6, 13, 10, 16], "rotation": 90, "texture": "#6"}
}
},
{
@ -115,143 +127,112 @@
"south": {"uv": [0, 0, 16, 6], "texture": "#4"},
"west": {"uv": [0, 0, 16, 6], "texture": "#4"},
"up": {"uv": [0, 0, 16, 16], "texture": "#7"},
"down": {"uv": [0, 0, 16, 16], "texture": "#7"}
"down": {"uv": [0, 0, 16, 16], "texture": "#particle"}
}
},
{
"name": "ClawBase",
"from": [5, 10.59915, -2.36179],
"to": [11, 16.59915, -0.36179],
"rotation": {"angle": -22.5, "axis": "x", "origin": [8, 14, 3]},
"name": "Arm 1",
"from": [6.5, -3, 5.5],
"to": [9.5, 13, 10.5],
"rotation": {"angle": 45, "axis": "x", "origin": [8, -2, 8]},
"faces": {
"north": {"uv": [12, 0, 15, 3], "texture": "#5"},
"east": {"uv": [12, 0, 13, 3], "texture": "#5"},
"south": {"uv": [12, 0, 15, 3], "texture": "#5"},
"west": {"uv": [14, 0, 15, 3], "texture": "#5"},
"up": {"uv": [12, 0, 13, 3], "rotation": 90, "texture": "#5"},
"down": {"uv": [12, 0, 15, 1], "texture": "#5"}
"north": {"uv": [0, 0, 1.5, 8], "texture": "#5"},
"east": {"uv": [4, 0, 1.5, 8], "texture": "#5"},
"south": {"uv": [0, 0, 1.5, 8], "texture": "#5"},
"west": {"uv": [1.5, 0, 4, 8], "texture": "#5"}
}
},
{
"name": "ClawTop",
"from": [5.5, 5.96489, -2.07049],
"to": [10.5, 10.96489, -0.07049],
"rotation": {"angle": 45, "axis": "x", "origin": [8, 14, 3]},
"name": "Joint 2",
"from": [5.5, 6, 16],
"to": [10.5, 12, 22],
"rotation": {"angle": 0, "axis": "y", "origin": [8, 14, 8]},
"faces": {
"north": {"uv": [9.5, 0, 12, 2.5], "texture": "#5"},
"east": {"uv": [9.5, 0, 12, 1], "rotation": 270, "texture": "#5"},
"south": {"uv": [9.5, 0, 12, 2.5], "rotation": 180, "texture": "#5"},
"west": {"uv": [9.5, 0, 12, 1], "rotation": 90, "texture": "#5"},
"up": {"uv": [9.5, 0, 12, 1], "rotation": 180, "texture": "#5"},
"down": {"uv": [9.5, 1.5, 12, 2.5], "texture": "#5"}
"north": {"uv": [4, 3, 7, 5.5], "rotation": 90, "texture": "#5"},
"east": {"uv": [4, 0, 7, 3], "texture": "#5"},
"south": {"uv": [7, 3, 4, 5.5], "rotation": 90, "texture": "#5"},
"west": {"uv": [4, 0, 7, 3], "texture": "#5"},
"up": {"uv": [7, 3, 4, 5.5], "rotation": 90, "texture": "#5"},
"down": {"uv": [4, 3, 7, 5.5], "rotation": 90, "texture": "#5"}
}
},
{
"name": "ClawBottom",
"from": [5.5, 8.18885, -4.72832],
"to": [10.5, 10.18885, 0.27168],
"rotation": {"angle": 0, "axis": "x", "origin": [8, 14, 3]},
"name": "Arm 2",
"from": [4.5, 7, 4],
"to": [11.5, 11, 19],
"faces": {
"north": {"uv": [9.5, 0, 12, 1], "rotation": 180, "texture": "#5"},
"east": {"uv": [9.5, 1.5, 12, 2.5], "rotation": 180, "texture": "#5"},
"south": {"uv": [9.5, 1.5, 12, 2.5], "rotation": 180, "texture": "#5"},
"west": {"uv": [9.5, 1.5, 12, 2.5], "rotation": 180, "texture": "#5"},
"up": {"uv": [9.5, 0, 12, 2.5], "rotation": 180, "texture": "#5"},
"down": {"uv": [9.5, 0, 12, 2.5], "rotation": 180, "texture": "#5"}
"north": {"uv": [12.5, 6.5, 16, 8.5], "texture": "#5"},
"east": {"uv": [10.5, 8.5, 12.5, 16], "rotation": 90, "texture": "#5"},
"south": {"uv": [12.5, 6.5, 16, 8.5], "texture": "#5"},
"west": {"uv": [10.5, 8.5, 12.5, 16], "rotation": 270, "texture": "#5"},
"up": {"uv": [12.5, 8.5, 16, 16], "texture": "#5"},
"down": {"uv": [12.5, 8.5, 16, 16], "texture": "#5"}
}
},
{
"name": "ClawConnector",
"from": [6.5, 12.59915, -0.36179],
"to": [9.5, 14.59915, 0.63821],
"rotation": {"angle": -22.5, "axis": "x", "origin": [8, 14, 3]},
"name": "Joint 3",
"from": [5.5, 6, 1],
"to": [10.5, 12, 7],
"rotation": {"angle": 0, "axis": "x", "origin": [8, 9, 4]},
"faces": {
"east": {"uv": [10.5, 2.5, 11, 3.5], "texture": "#5"},
"west": {"uv": [11.5, 2.5, 12, 3.5], "texture": "#5"},
"up": {"uv": [10.5, 3, 12, 3.5], "rotation": 180, "texture": "#5"},
"down": {"uv": [10.5, 2.5, 12, 3], "texture": "#5"}
"north": {"uv": [4, 3, 7, 5.5], "rotation": 90, "texture": "#5"},
"east": {"uv": [4, 0, 7, 3], "texture": "#5"},
"south": {"uv": [7, 3, 4, 5.5], "rotation": 90, "texture": "#5"},
"west": {"uv": [4, 0, 7, 3], "texture": "#5"},
"up": {"uv": [7, 3, 4, 5.5], "rotation": 90, "texture": "#5"},
"down": {"uv": [4, 3, 7, 5.5], "rotation": 90, "texture": "#5"}
}
},
{
"name": "GearCaseOuter",
"from": [4, -10, 4],
"to": [12, -6, 12],
"rotation": {"angle": 0, "axis": "y", "origin": [8, -8, 8]},
"from": [5, 6, -1],
"to": [11, 12, 1],
"rotation": {"angle": 0, "axis": "x", "origin": [8, 9, 4]},
"faces": {
"north": {"uv": [7.5, 0, 9.5, 4], "rotation": 90, "texture": "#5"},
"east": {"uv": [7.5, 0, 9.5, 4], "rotation": 90, "texture": "#5"},
"south": {"uv": [7.5, 0, 9.5, 4], "rotation": 90, "texture": "#5"},
"west": {"uv": [7.5, 0, 9.5, 4], "rotation": 90, "texture": "#5"}
"north": {"uv": [7, 0, 10, 3], "texture": "#5"},
"east": {"uv": [10, 0, 11, 3], "texture": "#5"},
"south": {"uv": [7, 0, 10, 3], "texture": "#5"},
"west": {"uv": [11, 0, 10, 3], "texture": "#5"},
"up": {"uv": [11, 0, 10, 3], "rotation": 90, "texture": "#5"},
"down": {"uv": [10, 0, 11, 3], "rotation": 90, "texture": "#5"}
}
},
{
"name": "Gear5",
"from": [6.5, -10, -1],
"to": [9.5, -6, 17],
"rotation": {"angle": 0, "axis": "y", "origin": [8, -10, 8]},
"from": [7, 4.5, -2],
"to": [9, 13.5, 0],
"rotation": {"angle": 0, "axis": "x", "origin": [8, 9, 4]},
"faces": {
"north": {"uv": [7.5, 4, 9, 6], "texture": "#5"},
"east": {"uv": [0, 7.5, 9, 9.5], "texture": "#5"},
"south": {"uv": [7.5, 4, 9, 6], "texture": "#5"},
"west": {"uv": [0, 7.5, 9, 9.5], "texture": "#5"},
"up": {"uv": [0, 6, 9, 7.5], "rotation": 270, "texture": "#5"},
"down": {"uv": [0, 6, 9, 7.5], "rotation": 270, "texture": "#5"}
"north": {"uv": [0, 9, 4.5, 10], "rotation": 90, "texture": "#5"},
"east": {"uv": [0, 9, 4.5, 10], "rotation": 90, "texture": "#5"},
"south": {"uv": [0, 9, 4.5, 10], "rotation": 90, "texture": "#5"},
"west": {"uv": [0, 9, 4.5, 10], "rotation": 90, "texture": "#5"},
"up": {"uv": [4.5, 9, 5.5, 10], "texture": "#5"},
"down": {"uv": [4.5, 9, 5.5, 10], "texture": "#5"}
}
},
{
"name": "Gear6",
"from": [6.5, -10, -1],
"to": [9.5, -6, 17],
"rotation": {"angle": 45, "axis": "y", "origin": [8, -10, 8]},
"from": [5.5, 10.5, -6],
"to": [10.5, 12.5, -1],
"rotation": {"angle": 0, "axis": "x", "origin": [8, 9, 4]},
"faces": {
"north": {"uv": [7.5, 4, 9, 6], "texture": "#5"},
"east": {"uv": [0, 7.5, 9, 9.5], "texture": "#5"},
"south": {"uv": [7.5, 4, 9, 6], "texture": "#5"},
"west": {"uv": [0, 7.5, 9, 9.5], "texture": "#5"},
"up": {"uv": [0, 6, 9, 7.5], "rotation": 270, "texture": "#5"},
"down": {"uv": [0, 6, 9, 7.5], "rotation": 270, "texture": "#5"}
"north": {"uv": [10.5, 5.5, 9.5, 3], "rotation": 90, "texture": "#5"},
"east": {"uv": [10.5, 5.5, 9.5, 3], "rotation": 90, "texture": "#5"},
"south": {"uv": [10.5, 5.5, 9.5, 3], "rotation": 90, "texture": "#5"},
"west": {"uv": [10.5, 5.5, 9.5, 3], "rotation": 90, "texture": "#5"},
"up": {"uv": [7, 3, 9.5, 5.5], "rotation": 180, "texture": "#5"},
"down": {"uv": [7, 8, 9.5, 5.5], "rotation": 180, "texture": "#5"}
}
},
{
"name": "Gear7",
"from": [-1, -10, 6.5],
"to": [17, -6, 9.5],
"rotation": {"angle": 45, "axis": "y", "origin": [8, -10, 8]},
"from": [5.5, 5.5, -6],
"to": [10.5, 7.5, -1],
"rotation": {"angle": 0, "axis": "x", "origin": [8, 9, 4]},
"faces": {
"north": {"uv": [0, 7.5, 9, 9.5], "texture": "#5"},
"east": {"uv": [7.5, 4, 9, 6], "texture": "#5"},
"south": {"uv": [0, 7.5, 9, 9.5], "texture": "#5"},
"west": {"uv": [7.5, 4, 9, 6], "texture": "#5"},
"up": {"uv": [0, 6, 9, 7.5], "rotation": 180, "texture": "#5"},
"down": {"uv": [0, 6, 9, 7.5], "rotation": 180, "texture": "#5"}
}
},
{
"name": "Gear7",
"from": [-1, -10, 6.5],
"to": [17, -6, 9.5],
"rotation": {"angle": 0, "axis": "y", "origin": [8, -10, 8]},
"faces": {
"north": {"uv": [0, 7.5, 9, 9.5], "texture": "#5"},
"east": {"uv": [7.5, 4, 9, 6], "texture": "#5"},
"south": {"uv": [0, 7.5, 9, 9.5], "texture": "#5"},
"west": {"uv": [7.5, 4, 9, 6], "texture": "#5"},
"up": {"uv": [0, 6, 9, 7.5], "rotation": 180, "texture": "#5"},
"down": {"uv": [0, 6, 9, 7.5], "rotation": 180, "texture": "#5"}
}
},
{
"name": "GearCaseInner",
"from": [2, -9.5, 2],
"to": [14, -6.5, 14],
"rotation": {"angle": 0, "axis": "y", "origin": [8, -9.5, 8]},
"faces": {
"north": {"uv": [6, 0, 7.5, 6], "rotation": 90, "texture": "#5"},
"east": {"uv": [6, 0, 7.5, 6], "rotation": 90, "texture": "#5"},
"south": {"uv": [6, 0, 7.5, 6], "rotation": 90, "texture": "#5"},
"west": {"uv": [6, 0, 7.5, 6], "rotation": 90, "texture": "#5"},
"up": {"uv": [0, 0, 6, 6], "rotation": 180, "texture": "#5"},
"down": {"uv": [0, 0, 6, 6], "rotation": 180, "texture": "#5"}
"north": {"uv": [11.5, 5.5, 10.5, 3], "rotation": 270, "texture": "#5"},
"east": {"uv": [11.5, 5.5, 10.5, 3], "rotation": 270, "texture": "#5"},
"south": {"uv": [11.5, 5.5, 10.5, 3], "rotation": 270, "texture": "#5"},
"west": {"uv": [11.5, 5.5, 10.5, 3], "rotation": 270, "texture": "#5"},
"up": {"uv": [7, 8, 9.5, 5.5], "texture": "#5"},
"down": {"uv": [7, 3, 9.5, 5.5], "texture": "#5"}
}
}
],
@ -283,8 +264,8 @@
},
"gui": {
"rotation": [30, 135, 0],
"translation": [0, 4.25, 0],
"scale": [0.45, 0.45, 0.45]
"translation": [0, 3.75, 0],
"scale": [0.44, 0.44, 0.44]
},
"head": {
"translation": [0, 24.75, 0]
@ -297,27 +278,45 @@
},
"groups": [
{
"name": "inserter",
"name": "Base",
"origin": [8, 8, 8],
"color": 0,
"children": [
0,
1,
2,
3,
4,
5,
6,
7,
8,
9,
10,
11,
{
"name": "cogwheel",
"origin": [8, 8, 8],
"color": 0,
"children": [12, 13, 14, 15, 16, 17]
"children": [0, 1, 2, 3, 4, 5]
},
{
"name": "Base Pivot",
"origin": [8, 2, 5],
"color": 0,
"children": [6, 7]
},
8
]
},
{
"name": "Arm 1",
"origin": [8, 8, 8],
"color": 0,
"children": [
9,
{
"name": "Arm 2",
"origin": [8, 8, 8],
"color": 0,
"children": [
10,
11,
{
"name": "Hand",
"origin": [8, 8, 8],
"color": 0,
"children": [12, 13, 14, 15, 16]
}
]
}
]
}

View File

@ -2,36 +2,18 @@
"credit": "Made with Blockbench",
"parent": "block/block",
"textures": {
"5": "create:block/mechanical_arm",
"particle": "create:block/crafter_top"
"5": "create:block/mechanical_arm"
},
"elements": [
{
"name": "LowerBody",
"from": [-2, 0, -1.5],
"to": [2, 14, 1.5],
"rotation": {"angle": 45, "axis": "x", "origin": [0, 0, 0]},
"name": "Arm 1",
"from": [-1.5, -2.5, -15],
"to": [1.5, 2.5, 1],
"faces": {
"north": {"uv": [9, 14, 16, 16], "rotation": 90, "texture": "#5"},
"east": {"uv": [9, 4, 10.5, 11], "texture": "#5"},
"south": {"uv": [9, 14, 16, 16], "rotation": 90, "texture": "#5"},
"west": {"uv": [9, 4, 10.5, 11], "texture": "#5"},
"up": {"uv": [14.5, 9, 16, 11], "rotation": 90, "texture": "#5"},
"down": {"uv": [14.5, 9, 16, 11], "rotation": 90, "texture": "#5"}
}
},
{
"name": "ConnectorMid",
"from": [-1, 14, -1],
"to": [1, 18, 1],
"rotation": {"angle": 45, "axis": "x", "origin": [0, 0, 0]},
"faces": {
"north": {"uv": [15, 0, 16, 2], "texture": "#5"},
"east": {"uv": [15, 0, 16, 2], "texture": "#5"},
"south": {"uv": [15, 0, 16, 2], "texture": "#5"},
"west": {"uv": [15, 0, 16, 2], "texture": "#5"},
"up": {"uv": [15, 0, 16, 1], "texture": "#5"},
"down": {"uv": [15, 0, 16, 2], "texture": "#5"}
"east": {"uv": [4, 0, 1.5, 8], "rotation": 90, "texture": "#5"},
"west": {"uv": [1.5, 0, 4, 8], "rotation": 270, "texture": "#5"},
"up": {"uv": [0, 0, 1.5, 8], "texture": "#5"},
"down": {"uv": [0, 0, 1.5, 8], "rotation": 180, "texture": "#5"}
}
}
],
@ -68,12 +50,5 @@
"translation": [0, 1.75, -4.5],
"scale": [0.5, 0.5, 0.5]
}
},
"groups": [
{
"name": "inserter",
"origin": [8, 8, 8],
"children": [0, 1]
}
]
}
}

View File

@ -2,22 +2,20 @@
"credit": "Made with Blockbench",
"parent": "block/block",
"textures": {
"5": "create:block/mechanical_arm",
"particle": "create:block/crafter_top"
"5": "create:block/mechanical_arm"
},
"elements": [
{
"name": "ClawTop",
"from": [-2.5, -1, -4],
"to": [2.5, 1, 1],
"rotation": {"angle": 0, "axis": "x", "origin": [-2.5, -3.5, 1]},
"rotation": {"angle": 0, "axis": "x", "origin": [8, 9, 4]},
"faces": {
"north": {"uv": [9.5, 1.5, 12, 2.5], "rotation": 180, "texture": "#5"},
"east": {"uv": [9.5, 0, 12, 1], "rotation": 180, "texture": "#5"},
"south": {"uv": [9.5, 0, 12, 1], "rotation": 180, "texture": "#5"},
"west": {"uv": [9.5, 0, 12, 1], "rotation": 180, "texture": "#5"},
"up": {"uv": [9.5, 0, 12, 2.5], "rotation": 180, "texture": "#5"},
"down": {"uv": [9.5, 0, 12, 2.5], "rotation": 180, "texture": "#5"}
"north": {"uv": [10.5, 5.5, 11.5, 3], "rotation": 90, "texture": "#5"},
"east": {"uv": [10.5, 5.5, 11.5, 3], "rotation": 90, "texture": "#5"},
"south": {"uv": [10.5, 5.5, 11.5, 3], "rotation": 90, "texture": "#5"},
"west": {"uv": [10.5, 5.5, 11.5, 3], "rotation": 90, "texture": "#5"},
"up": {"uv": [7, 8, 9.5, 5.5], "texture": "#5"},
"down": {"uv": [7, 5.5, 9.5, 3], "rotation": 180, "texture": "#5"}
}
}
],
@ -54,12 +52,5 @@
"translation": [0, 1.75, -4.5],
"scale": [0.5, 0.5, 0.5]
}
},
"groups": [
{
"name": "inserter",
"origin": [8, 8, 8],
"children": [0]
}
]
}
}

View File

@ -2,48 +2,33 @@
"credit": "Made with Blockbench",
"parent": "block/block",
"textures": {
"5": "create:block/mechanical_arm",
"particle": "create:block/crafter_top"
"5": "create:block/mechanical_arm"
},
"elements": [
{
"name": "ConnectorR",
"from": [-3, -0.97056, -5],
"to": [-1, 1.02944, 1],
"rotation": {"angle": 45, "axis": "x", "origin": [0, 0, 0]},
"name": "Joint 2",
"from": [-2.5, -3, -3],
"to": [2.5, 3, 3],
"faces": {
"east": {"uv": [15, 0, 16, 3], "rotation": 90, "texture": "#5"},
"south": {"uv": [15, 0, 16, 1], "rotation": 90, "texture": "#5"},
"west": {"uv": [15, 0, 16, 3], "rotation": 90, "texture": "#5"},
"up": {"uv": [15, 0, 16, 3], "texture": "#5"},
"down": {"uv": [15, 0, 16, 3], "rotation": 180, "texture": "#5"}
"north": {"uv": [4, 3, 7, 5.5], "rotation": 90, "texture": "#5"},
"east": {"uv": [4, 0, 7, 3], "texture": "#5"},
"south": {"uv": [7, 3, 4, 5.5], "rotation": 90, "texture": "#5"},
"west": {"uv": [4, 0, 7, 3], "texture": "#5"},
"up": {"uv": [7, 3, 4, 5.5], "rotation": 90, "texture": "#5"},
"down": {"uv": [4, 3, 7, 5.5], "rotation": 90, "texture": "#5"}
}
},
{
"name": "ConnectorR",
"from": [1, -0.97056, -5],
"to": [3, 1.02944, 1],
"rotation": {"angle": 45, "axis": "x", "origin": [0, 0, 0]},
"name": "Arm 2",
"from": [-3.5, -2, -15],
"to": [3.5, 2, 0],
"faces": {
"east": {"uv": [15, 0, 16, 3], "rotation": 90, "texture": "#5"},
"south": {"uv": [15, 0, 16, 1], "rotation": 90, "texture": "#5"},
"west": {"uv": [15, 0, 16, 3], "rotation": 90, "texture": "#5"},
"up": {"uv": [15, 0, 16, 3], "texture": "#5"},
"down": {"uv": [15, 0, 16, 3], "rotation": 180, "texture": "#5"}
}
},
{
"name": "UpperBody",
"from": [-3.5, -1.97056, -15],
"to": [3.5, 2.02944, -4],
"rotation": {"angle": 45, "axis": "x", "origin": [0, 0, 0]},
"faces": {
"north": {"uv": [11, 9, 14.5, 11], "texture": "#5"},
"east": {"uv": [14, 3.5, 16, 9], "rotation": 270, "texture": "#5"},
"south": {"uv": [11, 9, 14.5, 11], "texture": "#5"},
"west": {"uv": [14, 3.5, 16, 9], "rotation": 270, "texture": "#5"},
"up": {"uv": [10.5, 3.5, 14, 9], "texture": "#5"},
"down": {"uv": [10.5, 3.5, 14, 9], "texture": "#5"}
"north": {"uv": [12.5, 6.5, 16, 8.5], "texture": "#5"},
"east": {"uv": [10.5, 8.5, 12.5, 16], "rotation": 90, "texture": "#5"},
"south": {"uv": [12.5, 6.5, 16, 8.5], "texture": "#5"},
"west": {"uv": [10.5, 8.5, 12.5, 16], "rotation": 270, "texture": "#5"},
"up": {"uv": [12.5, 8.5, 16, 16], "texture": "#5"},
"down": {"uv": [12.5, 8.5, 16, 16], "texture": "#5"}
}
}
],
@ -80,12 +65,5 @@
"translation": [0, 1.75, -4.5],
"scale": [0.5, 0.5, 0.5]
}
},
"groups": [
{
"name": "inserter",
"origin": [8, 8, 8],
"children": [0, 1, 2]
}
]
}
}

View File

@ -0,0 +1,56 @@
{
"credit": "Made with Blockbench",
"parent": "block/block",
"textures": {
"5": "create:block/mechanical_arm"
},
"elements": [
{
"from": [-2.5, -1, -4],
"to": [2.5, 1, 1],
"rotation": {"angle": 0, "axis": "x", "origin": [8, 9, 4]},
"faces": {
"north": {"uv": [10.5, 5.5, 9.5, 3], "rotation": 90, "texture": "#5"},
"east": {"uv": [10.5, 5.5, 9.5, 3], "rotation": 90, "texture": "#5"},
"south": {"uv": [10.5, 5.5, 9.5, 3], "rotation": 90, "texture": "#5"},
"west": {"uv": [10.5, 5.5, 9.5, 3], "rotation": 90, "texture": "#5"},
"up": {"uv": [7, 3, 9.5, 5.5], "rotation": 180, "texture": "#5"},
"down": {"uv": [7, 8, 9.5, 5.5], "rotation": 180, "texture": "#5"}
}
}
],
"display": {
"thirdperson_righthand": {
"rotation": [75, -149, 0],
"translation": [0, 2.5, 0],
"scale": [0.375, 0.375, 0.375]
},
"thirdperson_lefthand": {
"rotation": [75, -149, 0],
"translation": [0, 2.5, 0],
"scale": [0.375, 0.375, 0.375]
},
"firstperson_righthand": {
"rotation": [0, -55, 0],
"scale": [0.4, 0.4, 0.4]
},
"firstperson_lefthand": {
"rotation": [0, -55, 0],
"scale": [0.4, 0.4, 0.4]
},
"ground": {
"translation": [0, 1, 1.25],
"scale": [0.25, 0.25, 0.25]
},
"gui": {
"rotation": [30, 45, 0],
"translation": [2.5, -0.5, 0],
"scale": [0.625, 0.625, 0.625]
},
"fixed": {
"rotation": [0, 180, 0],
"translation": [0, 1.75, -4.5],
"scale": [0.5, 0.5, 0.5]
}
}
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 615 B

After

Width:  |  Height:  |  Size: 1.4 KiB