diff --git a/src/generated/resources/.cache/cache b/src/generated/resources/.cache/cache index b3ab22105..fda4d9596 100644 --- a/src/generated/resources/.cache/cache +++ b/src/generated/resources/.cache/cache @@ -171,6 +171,7 @@ b7506b862d13b3f915c60d38bb7a20afc935f70a assets\create\blockstates\limestone_pil 69790737767e06f000c7824749c46664a123160e assets\create\blockstates\linear_chassis.json c793ab3aa6cf09d8d6d4136757629689f0365771 assets\create\blockstates\linked_extractor.json c5422866667331f1d5cf6753c0889747ee02762b assets\create\blockstates\linked_transposer.json +e82e69ae4c7a784ef89fc5d954b2b01946746d48 assets\create\blockstates\mechanical_arm.json ddcf4bb281e046fbb1026b8f46a2cf12448598df assets\create\blockstates\mechanical_bearing.json 5586beef2d9183dc34d8e8d2723620c0569592ae assets\create\blockstates\mechanical_crafter.json 044db7d50e19008bae8bf3325eac2ed0eb1ea6d2 assets\create\blockstates\mechanical_drill.json @@ -276,7 +277,7 @@ b7829c2ef2c47188713f8cab21b2c9bc7f9c5b79 assets\create\blockstates\portable_stor e8b0a401c10d1ba67ed71ba31bd5f9bc28571b65 assets\create\blockstates\powered_toggle_latch.json 3a739f9d4276828d83f2d2750bf3227c87bcd438 assets\create\blockstates\pulley_magnet.json 469e430d96cb0a5e1aaf6b7cc5d401d488c9e600 assets\create\blockstates\pulse_repeater.json -8d7e653bfd9846e684a0d3725595714a19201017 assets\create\blockstates\radial_chassis.json +5d1b30c2bab556f57c78e7780fd445b08f541a50 assets\create\blockstates\radial_chassis.json 8929677f2cc5354aa19ef182af69f9f0b41eb242 assets\create\blockstates\redstone_contact.json c29213b77ac0c78d8979c5f6188d2b265696f9b9 assets\create\blockstates\redstone_link.json 1eac804cba08aebb5f4646758ae1ef9b32e01365 assets\create\blockstates\reinforced_rail.json @@ -328,8 +329,8 @@ c60c3115fd6eeaa3a696428a87a74d184ab7d62d assets\create\blockstates\weathered_lim c77b46d8b459e5c7cc495393546f3fcca8a1fa1d assets\create\blockstates\weathered_limestone_pillar.json 7f39521b211441f5c3e06d60c5978cebe16cacfb assets\create\blockstates\zinc_block.json b7181bcd8182b2f17088e5aa881f374c9c65470c assets\create\blockstates\zinc_ore.json -05ddd800cd29517673ff1fd9c1a7822fa1dc90b4 assets\create\lang\en_ud.json -11587273ab49f31954226f5230da941c31463460 assets\create\lang\en_us.json +81f8eb319377b9fbe2188304886316120bb29c64 assets\create\lang\en_ud.json +4158ea22d8b9a3e21a47180fbd1ff5040c0b6a06 assets\create\lang\en_us.json 846200eb548d3bfa2e77b41039de159b4b6cfb45 assets\create\models\block\acacia_window.json 1930fa3a3c98d53dd19e4ee7f55bc27fd47aa281 assets\create\models\block\acacia_window_pane_noside.json 1763ea2c9b981d187f5031ba608f3d5d3be3986a assets\create\models\block\acacia_window_pane_noside_alt.json @@ -1117,6 +1118,7 @@ ebdf23b99b7895e347c29057c8070a6e16e56beb assets\create\models\item\limestone_cob d245aa4994ff197b1ffeb7980d05f96bd20cdeb3 assets\create\models\item\linear_chassis.json eb0053df13e362e0a05be65252944f0c94eab3db assets\create\models\item\linked_extractor.json 0242f25a8eb02b25f8b03344a1dfaf9ad0ab192c assets\create\models\item\linked_transposer.json +932facf4bf93b471e8630f4132a4284a9f4d0d39 assets\create\models\item\mechanical_arm.json 49dcc373c33f6fc3760add10eb51bd96cd4fd028 assets\create\models\item\mechanical_bearing.json 65ac4f19973ddeb1bb4d672f57319130e736e116 assets\create\models\item\mechanical_crafter.json b416a3a2545a63d6839f7f2cb958c58e485a7eb6 assets\create\models\item\mechanical_drill.json @@ -1874,6 +1876,7 @@ cb315814960850b5080598b89ee94c833b5048f7 data\create\loot_tables\blocks\limeston aa751d2e8a7889907c08c4bec6f6ca266230b6d7 data\create\loot_tables\blocks\linear_chassis.json dac789cf53b00eed34308848b5e267b7ccec090c data\create\loot_tables\blocks\linked_extractor.json 7af5a13c9e10903b11732fbc01ae3299328216f0 data\create\loot_tables\blocks\linked_transposer.json +e64c32da44b7e92dbef36fcb448c42b9bd9ae47c data\create\loot_tables\blocks\mechanical_arm.json 90ddf7b5c3b61758a4ad12a1e6ef16fe6ebf7794 data\create\loot_tables\blocks\mechanical_bearing.json e93872a90e4f4642a003539e7db28fdacfdcd114 data\create\loot_tables\blocks\mechanical_crafter.json dee1e06d953c0ca4e37799aee9073fdd43a3dc76 data\create\loot_tables\blocks\mechanical_drill.json diff --git a/src/generated/resources/assets/create/blockstates/mechanical_arm.json b/src/generated/resources/assets/create/blockstates/mechanical_arm.json new file mode 100644 index 000000000..c4754cb1a --- /dev/null +++ b/src/generated/resources/assets/create/blockstates/mechanical_arm.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "create:block/mechanical_arm/block" + } + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/create/blockstates/radial_chassis.json b/src/generated/resources/assets/create/blockstates/radial_chassis.json index 9d00ea8b1..04e5c08ae 100644 --- a/src/generated/resources/assets/create/blockstates/radial_chassis.json +++ b/src/generated/resources/assets/create/blockstates/radial_chassis.json @@ -29,8 +29,8 @@ }, { "when": { - "sticky_south": "true", - "axis": "x" + "axis": "x", + "sticky_south": "true" }, "apply": { "model": "create:block/radial_chassis_side_x_sticky", @@ -39,8 +39,8 @@ }, { "when": { - "sticky_south": "true", - "axis": "y" + "axis": "y", + "sticky_south": "true" }, "apply": { "model": "create:block/radial_chassis_side_y_sticky" @@ -48,8 +48,8 @@ }, { "when": { - "sticky_south": "true", - "axis": "z" + "axis": "z", + "sticky_south": "true" }, "apply": { "model": "create:block/radial_chassis_side_x_sticky", @@ -59,8 +59,8 @@ }, { "when": { - "sticky_south": "false", - "axis": "x" + "axis": "x", + "sticky_south": "false" }, "apply": { "model": "create:block/radial_chassis_side_x", @@ -69,8 +69,8 @@ }, { "when": { - "sticky_south": "false", - "axis": "y" + "axis": "y", + "sticky_south": "false" }, "apply": { "model": "create:block/radial_chassis_side_y" @@ -78,8 +78,8 @@ }, { "when": { - "sticky_south": "false", - "axis": "z" + "axis": "z", + "sticky_south": "false" }, "apply": { "model": "create:block/radial_chassis_side_x", @@ -89,8 +89,8 @@ }, { "when": { - "sticky_west": "true", - "axis": "x" + "axis": "x", + "sticky_west": "true" }, "apply": { "model": "create:block/radial_chassis_side_x_sticky", @@ -99,8 +99,8 @@ }, { "when": { - "sticky_west": "true", - "axis": "y" + "axis": "y", + "sticky_west": "true" }, "apply": { "model": "create:block/radial_chassis_side_y_sticky", @@ -109,8 +109,8 @@ }, { "when": { - "sticky_west": "true", - "axis": "z" + "axis": "z", + "sticky_west": "true" }, "apply": { "model": "create:block/radial_chassis_side_z_sticky", @@ -119,8 +119,8 @@ }, { "when": { - "sticky_west": "false", - "axis": "x" + "axis": "x", + "sticky_west": "false" }, "apply": { "model": "create:block/radial_chassis_side_x", @@ -129,8 +129,8 @@ }, { "when": { - "sticky_west": "false", - "axis": "y" + "axis": "y", + "sticky_west": "false" }, "apply": { "model": "create:block/radial_chassis_side_y", @@ -139,8 +139,8 @@ }, { "when": { - "sticky_west": "false", - "axis": "z" + "axis": "z", + "sticky_west": "false" }, "apply": { "model": "create:block/radial_chassis_side_z", @@ -149,8 +149,8 @@ }, { "when": { - "sticky_north": "true", - "axis": "x" + "axis": "x", + "sticky_north": "true" }, "apply": { "model": "create:block/radial_chassis_side_x_sticky" @@ -158,8 +158,8 @@ }, { "when": { - "sticky_north": "true", - "axis": "y" + "axis": "y", + "sticky_north": "true" }, "apply": { "model": "create:block/radial_chassis_side_y_sticky", @@ -168,8 +168,8 @@ }, { "when": { - "sticky_north": "true", - "axis": "z" + "axis": "z", + "sticky_north": "true" }, "apply": { "model": "create:block/radial_chassis_side_x_sticky", @@ -178,8 +178,8 @@ }, { "when": { - "sticky_north": "false", - "axis": "x" + "axis": "x", + "sticky_north": "false" }, "apply": { "model": "create:block/radial_chassis_side_x" @@ -187,8 +187,8 @@ }, { "when": { - "sticky_north": "false", - "axis": "y" + "axis": "y", + "sticky_north": "false" }, "apply": { "model": "create:block/radial_chassis_side_y", @@ -197,8 +197,8 @@ }, { "when": { - "sticky_north": "false", - "axis": "z" + "axis": "z", + "sticky_north": "false" }, "apply": { "model": "create:block/radial_chassis_side_x", diff --git a/src/generated/resources/assets/create/lang/en_ud.json b/src/generated/resources/assets/create/lang/en_ud.json index c84cd4638..6fd3cfafb 100644 --- a/src/generated/resources/assets/create/lang/en_ud.json +++ b/src/generated/resources/assets/create/lang/en_ud.json @@ -172,6 +172,7 @@ "block.create.linear_chassis": "s\u0131ss\u0250\u0265\u0186 \u0279\u0250\u01DDu\u0131\uA780", "block.create.linked_extractor": "\u0279o\u0287\u0254\u0250\u0279\u0287x\u018E p\u01DD\u029Eu\u0131\uA780", "block.create.linked_transposer": "\u0279\u01DDsodsu\u0250\u0279\u27D8 p\u01DD\u029Eu\u0131\uA780", + "block.create.mechanical_arm": "\u026F\u0279\u2C6F \u05DF\u0250\u0254\u0131u\u0250\u0265\u0254\u01DDW", "block.create.mechanical_bearing": "bu\u0131\u0279\u0250\u01DD\u15FA \u05DF\u0250\u0254\u0131u\u0250\u0265\u0254\u01DDW", "block.create.mechanical_crafter": "\u0279\u01DD\u0287\u025F\u0250\u0279\u0186 \u05DF\u0250\u0254\u0131u\u0250\u0265\u0254\u01DDW", "block.create.mechanical_drill": "\u05DF\u05DF\u0131\u0279\u15E1 \u05DF\u0250\u0254\u0131u\u0250\u0265\u0254\u01DDW", diff --git a/src/generated/resources/assets/create/lang/en_us.json b/src/generated/resources/assets/create/lang/en_us.json index f7aa1a98b..06a677af8 100644 --- a/src/generated/resources/assets/create/lang/en_us.json +++ b/src/generated/resources/assets/create/lang/en_us.json @@ -175,6 +175,7 @@ "block.create.linear_chassis": "Linear Chassis", "block.create.linked_extractor": "Linked Extractor", "block.create.linked_transposer": "Linked Transposer", + "block.create.mechanical_arm": "Mechanical Arm", "block.create.mechanical_bearing": "Mechanical Bearing", "block.create.mechanical_crafter": "Mechanical Crafter", "block.create.mechanical_drill": "Mechanical Drill", diff --git a/src/generated/resources/assets/create/models/item/mechanical_arm.json b/src/generated/resources/assets/create/models/item/mechanical_arm.json new file mode 100644 index 000000000..4f8980489 --- /dev/null +++ b/src/generated/resources/assets/create/models/item/mechanical_arm.json @@ -0,0 +1,3 @@ +{ + "parent": "create:block/mechanical_arm/item" +} \ No newline at end of file diff --git a/src/generated/resources/data/create/loot_tables/blocks/mechanical_arm.json b/src/generated/resources/data/create/loot_tables/blocks/mechanical_arm.json new file mode 100644 index 000000000..0a1dfd412 --- /dev/null +++ b/src/generated/resources/data/create/loot_tables/blocks/mechanical_arm.json @@ -0,0 +1,19 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "create:mechanical_arm" + } + ], + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ] + } + ] +} \ No newline at end of file diff --git a/src/main/java/com/simibubi/create/AllBlockPartials.java b/src/main/java/com/simibubi/create/AllBlockPartials.java index 8ca532401..5d5ee020a 100644 --- a/src/main/java/com/simibubi/create/AllBlockPartials.java +++ b/src/main/java/com/simibubi/create/AllBlockPartials.java @@ -82,6 +82,14 @@ public class AllBlockPartials { SYMMETRY_CROSSPLANE = get("symmetry_effect/crossplane"), SYMMETRY_TRIPLEPLANE = get("symmetry_effect/tripleplane"), + ARM_COG = get("mechanical_arm/cog"), + ARM_BASE = get("mechanical_arm/base"), + ARM_LOWER_BODY = get("mechanical_arm/lower_body"), + ARM_UPPER_BODY = get("mechanical_arm/upper_body"), + ARM_HEAD = get("mechanical_arm/head"), + ARM_CLAW_BASE = get("mechanical_arm/claw_base"), + ARM_CLAW_GRIP = get("mechanical_arm/claw_grip"), + MECHANICAL_PUMP_ARROW = get("mechanical_pump/arrow"), MECHANICAL_PUMP_COG = get("mechanical_pump/cog"), FLUID_PIPE_CASING = get("fluid_pipe/casing"); diff --git a/src/main/java/com/simibubi/create/AllBlocks.java b/src/main/java/com/simibubi/create/AllBlocks.java index 4f8b6ac27..885c35b6d 100644 --- a/src/main/java/com/simibubi/create/AllBlocks.java +++ b/src/main/java/com/simibubi/create/AllBlocks.java @@ -91,6 +91,7 @@ import com.simibubi.create.content.logistics.block.funnel.FunnelBlock; import com.simibubi.create.content.logistics.block.funnel.VerticalFunnelGenerator; import com.simibubi.create.content.logistics.block.inventories.AdjustableCrateBlock; import com.simibubi.create.content.logistics.block.inventories.CreativeCrateBlock; +import com.simibubi.create.content.logistics.block.mechanicalArm.ArmBlock; import com.simibubi.create.content.logistics.block.redstone.AnalogLeverBlock; import com.simibubi.create.content.logistics.block.redstone.NixieTubeBlock; import com.simibubi.create.content.logistics.block.redstone.NixieTubeGenerator; @@ -722,6 +723,14 @@ public class AllBlocks { .transform(customItemModel()) .register(); + public static final BlockEntry MECHANICAL_ARM = REGISTRATE.block("mechanical_arm", ArmBlock::new) + .initialProperties(SharedProperties::softMetal) + .blockstate((c, p) -> p.simpleBlock(c.getEntry(), AssetLookup.partialBaseModel(c, p))) + .transform(StressConfigDefaults.setImpact(8.0)) + .item() + .transform(customItemModel()) + .register(); + public static final BlockEntry EXTRACTOR = REGISTRATE.block("extractor", ExtractorBlock::new) .initialProperties(SharedProperties::softMetal) .blockstate((c, p) -> p.horizontalBlock(c.get(), AssetLookup.forPowered(c, p, c.getName() + "/horizontal"))) diff --git a/src/main/java/com/simibubi/create/AllShapes.java b/src/main/java/com/simibubi/create/AllShapes.java index 642565f35..285d7c400 100644 --- a/src/main/java/com/simibubi/create/AllShapes.java +++ b/src/main/java/com/simibubi/create/AllShapes.java @@ -117,6 +117,8 @@ public class AllShapes { CUCKOO_CLOCK = shape(1, 0, 1, 15, 19, 15).build(), GAUGE_SHAPE_UP = shape(1, 0, 0, 15, 2, 16).add(2, 2, 1, 14, 14, 15) .build(), + MECHANICAL_ARM = shape(2, 0, 2, 14, 10, 14).add(3, 0, 3, 13, 14, 13) + .build(), TANK = shape(1, 0, 1, 15, 16, 15).build(), TANK_TOP = shape(TANK_TOP_LID).add(TANK) .build(), TANK_BOTTOM = shape(TANK_BOTTOM_LID).add(TANK) diff --git a/src/main/java/com/simibubi/create/AllTileEntities.java b/src/main/java/com/simibubi/create/AllTileEntities.java index 7f00e144c..1557f2432 100644 --- a/src/main/java/com/simibubi/create/AllTileEntities.java +++ b/src/main/java/com/simibubi/create/AllTileEntities.java @@ -80,6 +80,8 @@ import com.simibubi.create.content.logistics.block.extractor.LinkedExtractorTile import com.simibubi.create.content.logistics.block.funnel.FunnelTileEntity; import com.simibubi.create.content.logistics.block.inventories.AdjustableCrateTileEntity; import com.simibubi.create.content.logistics.block.inventories.CreativeCrateTileEntity; +import com.simibubi.create.content.logistics.block.mechanicalArm.ArmRenderer; +import com.simibubi.create.content.logistics.block.mechanicalArm.ArmTileEntity; import com.simibubi.create.content.logistics.block.redstone.AnalogLeverRenderer; import com.simibubi.create.content.logistics.block.redstone.AnalogLeverTileEntity; import com.simibubi.create.content.logistics.block.redstone.NixieTubeRenderer; @@ -148,6 +150,8 @@ public class AllTileEntities { public static final TileEntityEntry BELT = register("belt", BeltTileEntity::new, AllBlocks.BELT); public static final TileEntityEntry BELT_TUNNEL = register("belt_tunnel", BeltTunnelTileEntity::new, AllBlocks.BELT_TUNNEL); + public static final TileEntityEntry MECHANICAL_ARM = + register("mechanical_arm", ArmTileEntity::new, AllBlocks.MECHANICAL_ARM); public static final TileEntityEntry MECHANICAL_PISTON = register("mechanical_piston", MechanicalPistonTileEntity::new, AllBlocks.MECHANICAL_PISTON, AllBlocks.STICKY_MECHANICAL_PISTON); public static final TileEntityEntry MECHANICAL_BEARING = @@ -291,6 +295,7 @@ public class AllTileEntities { bind(LINKED_TRANSPOSER, SmartTileEntityRenderer::new); bind(FUNNEL, SmartTileEntityRenderer::new); bind(BELT_TUNNEL, BeltTunnelRenderer::new); + bind(MECHANICAL_ARM, ArmRenderer::new); bind(BELT_OBSERVER, BeltObserverRenderer::new); bind(ADJUSTABLE_REPEATER, AdjustableRepeaterRenderer::new); bind(ADJUSTABLE_PULSE_REPEATER, AdjustableRepeaterRenderer::new); diff --git a/src/main/java/com/simibubi/create/content/logistics/block/mechanicalArm/ArmBlock.java b/src/main/java/com/simibubi/create/content/logistics/block/mechanicalArm/ArmBlock.java new file mode 100644 index 000000000..2f840700c --- /dev/null +++ b/src/main/java/com/simibubi/create/content/logistics/block/mechanicalArm/ArmBlock.java @@ -0,0 +1,62 @@ +package com.simibubi.create.content.logistics.block.mechanicalArm; + +import com.simibubi.create.AllShapes; +import com.simibubi.create.AllTileEntities; +import com.simibubi.create.content.contraptions.base.KineticBlock; +import com.simibubi.create.foundation.block.ITE; + +import net.minecraft.block.BlockState; +import net.minecraft.entity.player.PlayerEntity; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.ActionResultType; +import net.minecraft.util.Direction.Axis; +import net.minecraft.util.Hand; +import net.minecraft.util.math.BlockPos; +import net.minecraft.util.math.BlockRayTraceResult; +import net.minecraft.util.math.shapes.ISelectionContext; +import net.minecraft.util.math.shapes.VoxelShape; +import net.minecraft.world.IBlockReader; +import net.minecraft.world.IWorldReader; +import net.minecraft.world.World; + +public class ArmBlock extends KineticBlock implements ITE { + + public ArmBlock(Properties properties) { + super(properties); + } + + @Override + public boolean hasIntegratedCogwheel(IWorldReader world, BlockPos pos, BlockState state) { + return true; + } + + @Override + public ActionResultType onUse(BlockState p_225533_1_, World p_225533_2_, BlockPos p_225533_3_, + PlayerEntity p_225533_4_, Hand p_225533_5_, BlockRayTraceResult p_225533_6_) { + withTileEntityDo(p_225533_2_, p_225533_3_, ArmTileEntity::toggleRave); + return ActionResultType.SUCCESS; + } + + + @Override + public VoxelShape getShape(BlockState p_220053_1_, IBlockReader p_220053_2_, BlockPos p_220053_3_, + ISelectionContext p_220053_4_) { + return AllShapes.MECHANICAL_ARM; + } + + @Override + public Axis getRotationAxis(BlockState state) { + return Axis.Y; + } + + @Override + public TileEntity createTileEntity(BlockState state, IBlockReader world) { + return AllTileEntities.MECHANICAL_ARM.create(); + } + + @Override + public Class getTileEntityClass() { + return ArmTileEntity.class; + } + +} diff --git a/src/main/java/com/simibubi/create/content/logistics/block/mechanicalArm/ArmRenderer.java b/src/main/java/com/simibubi/create/content/logistics/block/mechanicalArm/ArmRenderer.java new file mode 100644 index 000000000..dd281191a --- /dev/null +++ b/src/main/java/com/simibubi/create/content/logistics/block/mechanicalArm/ArmRenderer.java @@ -0,0 +1,93 @@ +package com.simibubi.create.content.logistics.block.mechanicalArm; + +import com.mojang.blaze3d.matrix.MatrixStack; +import com.mojang.blaze3d.vertex.IVertexBuilder; +import com.simibubi.create.AllBlockPartials; +import com.simibubi.create.content.contraptions.base.KineticTileEntity; +import com.simibubi.create.content.contraptions.base.KineticTileEntityRenderer; +import com.simibubi.create.foundation.utility.AnimationTickHolder; +import com.simibubi.create.foundation.utility.ColorHelper; +import com.simibubi.create.foundation.utility.Iterate; +import com.simibubi.create.foundation.utility.MatrixStacker; +import com.simibubi.create.foundation.utility.SuperByteBuffer; + +import net.minecraft.block.BlockState; +import net.minecraft.client.renderer.IRenderTypeBuffer; +import net.minecraft.client.renderer.RenderType; +import net.minecraft.client.renderer.tileentity.TileEntityRendererDispatcher; +import net.minecraft.util.math.MathHelper; + +public class ArmRenderer extends KineticTileEntityRenderer { + + public ArmRenderer(TileEntityRendererDispatcher dispatcher) { + super(dispatcher); + } + + @Override + protected void renderSafe(KineticTileEntity te, float partialTicks, MatrixStack ms, IRenderTypeBuffer buffer, + int light, int overlay) { + super.renderSafe(te, partialTicks, ms, buffer, light, overlay); + IVertexBuilder builder = buffer.getBuffer(RenderType.getSolid()); + BlockState blockState = te.getBlockState(); + MatrixStacker msr = MatrixStacker.of(ms); + + float angle = 0; + float clawAngle = -25; + float otherAngle = 0; + int color = 0xFFFFFF; + + boolean rave = te instanceof ArmTileEntity && ((ArmTileEntity) te).debugRave; + if (rave) { + clawAngle = angle = MathHelper.lerp((MathHelper.sin(AnimationTickHolder.getRenderTick() / 2) + 1) / 2, -45, 15); + otherAngle = MathHelper.lerp((MathHelper.sin(AnimationTickHolder.getRenderTick() / 4) + 1) / 2, -95, 95); + color = ColorHelper.rainbowColor(AnimationTickHolder.ticks * 100); + } + + ms.push(); + + SuperByteBuffer base = AllBlockPartials.ARM_BASE.renderOn(blockState); + SuperByteBuffer lowerBody = AllBlockPartials.ARM_LOWER_BODY.renderOn(blockState); + SuperByteBuffer upperBody = AllBlockPartials.ARM_UPPER_BODY.renderOn(blockState); + SuperByteBuffer head = AllBlockPartials.ARM_HEAD.renderOn(blockState); + SuperByteBuffer claw = AllBlockPartials.ARM_CLAW_BASE.renderOn(blockState); + SuperByteBuffer clawGrip = AllBlockPartials.ARM_CLAW_GRIP.renderOn(blockState); + + msr.centre(); + + ms.translate(0, 4 / 16d, 0); + msr.rotateY(rave ? AnimationTickHolder.getRenderTick() * 10 : 0); + base.renderInto(ms, builder); + + ms.translate(0, 1 / 16d, -2 / 16d); + msr.rotateX(angle); + ms.translate(0, -1 / 16d, 0); + lowerBody.color(color).renderInto(ms, builder); + + ms.translate(0, 12 / 16d, 12 / 16d); + msr.rotateX(-otherAngle / 2f); + upperBody.color(color).renderInto(ms, builder); + + ms.translate(0, 11 / 16d, -11 / 16d); + msr.rotateX(-angle); + head.renderInto(ms, builder); + + ms.translate(0, 0, -4 / 16d); + claw.renderInto(ms, builder); + + for (int flip : Iterate.positiveAndNegative) { + ms.push(); + ms.translate(0, flip * 3 / 16d, -1 / 16d); + msr.rotateX(flip * clawAngle); + clawGrip.renderInto(ms, builder); + ms.pop(); + } + + ms.pop(); + } + + @Override + protected SuperByteBuffer getRotatedModel(KineticTileEntity te) { + return AllBlockPartials.ARM_COG.renderOn(te.getBlockState()); + } + +} diff --git a/src/main/java/com/simibubi/create/content/logistics/block/mechanicalArm/ArmTileEntity.java b/src/main/java/com/simibubi/create/content/logistics/block/mechanicalArm/ArmTileEntity.java new file mode 100644 index 000000000..30ba76250 --- /dev/null +++ b/src/main/java/com/simibubi/create/content/logistics/block/mechanicalArm/ArmTileEntity.java @@ -0,0 +1,45 @@ +package com.simibubi.create.content.logistics.block.mechanicalArm; + +import com.simibubi.create.content.contraptions.base.KineticTileEntity; + +import net.minecraft.nbt.CompoundNBT; +import net.minecraft.tileentity.TileEntityType; + +public class ArmTileEntity extends KineticTileEntity { + + boolean debugRave; + + public ArmTileEntity(TileEntityType typeIn) { + super(typeIn); + } + + @Override + public void lazyTick() { + if (hasWorld()) + if (world.rand.nextInt(100) == 0) + toggleRave(); + super.lazyTick(); + } + + public void toggleRave() { + if (world.isRemote) + return; + debugRave = !debugRave; + markDirty(); + sendData(); + } + + @Override + public CompoundNBT write(CompoundNBT compound) { + super.write(compound); + compound.putBoolean("DebugRave", debugRave); + return compound; + } + + @Override + public void read(CompoundNBT compound) { + super.read(compound); + debugRave = compound.getBoolean("DebugRave"); + } + +} diff --git a/src/main/resources/assets/create/models/block/mechanical_arm/base.json b/src/main/resources/assets/create/models/block/mechanical_arm/base.json new file mode 100644 index 000000000..48be783ef --- /dev/null +++ b/src/main/resources/assets/create/models/block/mechanical_arm/base.json @@ -0,0 +1,65 @@ +{ + "credit": "Made with Blockbench", + "parent": "block/block", + "textures": { + "5": "create:block/mechanical_arm", + "particle": "create:block/crafter_top" + }, + "elements": [ + { + "name": "Base", + "from": [-5, -2, -5], + "to": [5, 2, 5], + "rotation": {"angle": 0, "axis": "y", "origin": [0, 0, 0]}, + "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"} + } + } + ], + "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] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/assets/create/models/block/mechanical_arm/block.json b/src/main/resources/assets/create/models/block/mechanical_arm/block.json new file mode 100644 index 000000000..f815bab53 --- /dev/null +++ b/src/main/resources/assets/create/models/block/mechanical_arm/block.json @@ -0,0 +1,58 @@ +{ + "credit": "Made with Blockbench", + "parent": "block/block", + "textures": { + "6": "create:block/crafter_top", + "7": "create:block/brass_block", + "particle": "create:block/crafter_top" + }, + "elements": [ + { + "name": "Base", + "from": [2, 0, 2], + "to": [14, 6, 14], + "faces": { + "north": {"uv": [2, 0, 14, 6], "texture": "#6"}, + "east": {"uv": [2, 0, 14, 6], "texture": "#6"}, + "south": {"uv": [2, 0, 14, 6], "texture": "#6"}, + "west": {"uv": [2, 0, 14, 6], "texture": "#6"}, + "up": {"uv": [2, 2, 14, 14], "texture": "#7"}, + "down": {"uv": [2, 2, 14, 14], "texture": "#6"} + } + } + ], + "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] + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/create/models/block/mechanical_arm/claw_base.json b/src/main/resources/assets/create/models/block/mechanical_arm/claw_base.json new file mode 100644 index 000000000..8baf4a55d --- /dev/null +++ b/src/main/resources/assets/create/models/block/mechanical_arm/claw_base.json @@ -0,0 +1,65 @@ +{ + "credit": "Made with Blockbench", + "parent": "block/block", + "textures": { + "5": "create:block/mechanical_arm", + "particle": "create:block/crafter_top" + }, + "elements": [ + { + "name": "ClawBase", + "from": [-3, -3, -1], + "to": [3, 3, 1], + "rotation": {"angle": 0, "axis": "y", "origin": [0, 0.5, 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"} + } + } + ], + "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] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/assets/create/models/block/mechanical_arm/claw_grip.json b/src/main/resources/assets/create/models/block/mechanical_arm/claw_grip.json new file mode 100644 index 000000000..151af411b --- /dev/null +++ b/src/main/resources/assets/create/models/block/mechanical_arm/claw_grip.json @@ -0,0 +1,65 @@ +{ + "credit": "Made with Blockbench", + "parent": "block/block", + "textures": { + "5": "create:block/mechanical_arm", + "particle": "create:block/crafter_top" + }, + "elements": [ + { + "name": "ClawTop", + "from": [-2.5, -1, -4], + "to": [2.5, 1, 1], + "rotation": {"angle": 0, "axis": "x", "origin": [-2.5, -3.5, 1]}, + "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"} + } + } + ], + "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] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/assets/create/models/block/mechanical_arm/cog.json b/src/main/resources/assets/create/models/block/mechanical_arm/cog.json new file mode 100644 index 000000000..38d591111 --- /dev/null +++ b/src/main/resources/assets/create/models/block/mechanical_arm/cog.json @@ -0,0 +1,138 @@ +{ + "credit": "Made with Blockbench", + "parent": "block/block", + "textures": { + "5": "create:block/mechanical_arm", + "particle": "create:block/crafter_top" + }, + "elements": [ + { + "name": "GearCaseOuter", + "from": [4, 6, 4], + "to": [12, 10, 12], + "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"} + } + }, + { + "name": "Gear5", + "from": [6.5, 6, -1], + "to": [9.5, 10, 17], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 6, 8]}, + "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"} + } + }, + { + "name": "Gear6", + "from": [6.5, 6, -1], + "to": [9.5, 10, 17], + "rotation": {"angle": 45, "axis": "y", "origin": [8, 6, 8]}, + "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"} + } + }, + { + "name": "Gear7", + "from": [-1, 6, 6.5], + "to": [17, 10, 9.5], + "rotation": {"angle": 45, "axis": "y", "origin": [8, 6, 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": "Gear7", + "from": [-1, 6, 6.5], + "to": [17, 10, 9.5], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 6, 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, 6.5, 2], + "to": [14, 9.5, 14], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 6.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"} + } + } + ], + "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": [ + { + "name": "cogwheel", + "origin": [8, 8, 8], + "children": [0, 1, 2, 3, 4, 5] + } + ] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/assets/create/models/block/mechanical_arm/compiled.bbmodel b/src/main/resources/assets/create/models/block/mechanical_arm/compiled.bbmodel new file mode 100644 index 000000000..45a4e4344 --- /dev/null +++ b/src/main/resources/assets/create/models/block/mechanical_arm/compiled.bbmodel @@ -0,0 +1 @@ +{"meta":{"format_version":"3.2","model_format":"java_block","box_uv":false},"name":"compiled","parent":"block/block","ambientocclusion":true,"front_gui_light":false,"resolution":{"width":16,"height":16},"elements":[{"name":"Base","from":[3,10,3],"to":[13,14,13],"autouv":0,"color":6,"locked":false,"origin":[8,18,5],"faces":{"north":{"uv":[5,9.5,7,14.5],"rotation":270,"texture":0},"east":{"uv":[5,9.5,7,14.5],"rotation":270,"texture":0},"south":{"uv":[5,9.5,7,14.5],"rotation":270,"texture":0},"west":{"uv":[5,9.5,7,14.5],"rotation":270,"texture":0},"up":{"uv":[0,9.5,5,14.5],"texture":0},"down":{"uv":[0,9.5,5,14.5],"texture":0}},"uuid":"6d46d5ed-a06e-dcfb-24b2-50bbccddd037"},{"name":"LowerBody","from":[6,12,3.5],"to":[10,26,6.5],"autouv":0,"color":5,"locked":false,"rotation":[45,0,0],"origin":[8,12,5],"faces":{"north":{"uv":[9,14,16,16],"rotation":90,"texture":0},"east":{"uv":[9,4,10.5,11],"texture":0},"south":{"uv":[9,14,16,16],"rotation":90,"texture":0},"west":{"uv":[9,4,10.5,11],"texture":0},"up":{"uv":[14.5,9,16,11],"rotation":90,"texture":0},"down":{"uv":[14.5,9,16,11],"rotation":90,"texture":0}},"uuid":"0982ba47-6570-8477-51a6-280015787534"},{"name":"ConnectorMid","from":[7,26,4],"to":[9,30,6],"autouv":0,"color":5,"locked":false,"rotation":[45,0,0],"origin":[8,12,5],"faces":{"north":{"uv":[15,0,16,2],"texture":0},"east":{"uv":[15,0,16,2],"texture":0},"south":{"uv":[15,0,16,2],"texture":0},"west":{"uv":[15,0,16,2],"texture":0},"up":{"uv":[15,0,16,1],"texture":0},"down":{"uv":[15,0,16,2],"texture":0}},"uuid":"055dd18c-332b-5f36-7230-982f290f77f5"},{"name":"UpperBody","from":[4.5,27,-10],"to":[11.5,31,1],"autouv":0,"color":5,"locked":false,"rotation":[45,0,0],"origin":[8,12,5],"faces":{"north":{"uv":[11,9,14.5,11],"texture":0},"east":{"uv":[14,3.5,16,9],"rotation":270,"texture":0},"south":{"uv":[11,9,14.5,11],"texture":0},"west":{"uv":[14,3.5,16,9],"rotation":270,"texture":0},"up":{"uv":[10.5,3.5,14,9],"texture":0},"down":{"uv":[10.5,3.5,14,9],"texture":0}},"uuid":"414e9433-b0fc-548a-727e-0e3bee8cb216"},{"name":"Head","from":[4,32.5,4],"to":[12,36.5,8],"autouv":0,"color":2,"locked":false,"origin":[8,18,8],"faces":{"north":{"uv":[7,9.5,9,13.5],"rotation":90,"texture":0},"east":{"uv":[7,13.5,9,15.5],"texture":0},"south":{"uv":[7,9.5,9,13.5],"rotation":90,"texture":0},"west":{"uv":[7,13.5,9,15.5],"texture":0},"up":{"uv":[7,9.5,9,13.5],"rotation":90,"texture":0},"down":{"uv":[7,9.5,9,13.5],"rotation":270,"texture":0}},"uuid":"37122138-cf83-4a9c-72ab-dffccbb57f9d"},{"name":"ClawConnector","from":[6.5,33.5,3],"to":[9.5,35.5,4],"autouv":0,"color":2,"locked":false,"origin":[8,18,8],"faces":{"north":{"uv":[0,0,0,0],"texture":null},"east":{"uv":[10.5,2.5,11,3.5],"texture":0},"south":{"uv":[0,0,0,0],"texture":null},"west":{"uv":[11.5,2.5,12,3.5],"texture":0},"up":{"uv":[10.5,3,12,3.5],"rotation":180,"texture":0},"down":{"uv":[10.5,2.5,12,3],"texture":0}},"uuid":"8d036d0c-e281-7dbd-a93f-3311b05592f9"},{"name":"ClawBase","from":[5,31.5,1],"to":[11,37.5,3],"autouv":0,"color":2,"locked":false,"origin":[8,18,8],"faces":{"north":{"uv":[12,0,15,3],"texture":0},"east":{"uv":[12,0,13,3],"texture":0},"south":{"uv":[12,0,15,3],"texture":0},"west":{"uv":[14,0,15,3],"texture":0},"up":{"uv":[12,0,13,3],"rotation":90,"texture":0},"down":{"uv":[12,0,15,1],"texture":0}},"uuid":"c0c15acc-1e55-0b65-c1db-7588d4d92234"},{"name":"ClawTop","from":[5.5,36.5,-3],"to":[10.5,38.5,2],"autouv":0,"color":2,"locked":false,"rotation":[-22.5,0,0],"origin":[8,37.5,2],"faces":{"north":{"uv":[9.5,1.5,12,2.5],"rotation":180,"texture":0},"east":{"uv":[9.5,0,12,1],"rotation":180,"texture":0},"south":{"uv":[9.5,0,12,1],"rotation":180,"texture":0},"west":{"uv":[9.5,0,12,1],"rotation":180,"texture":0},"up":{"uv":[9.5,0,12,2.5],"rotation":180,"texture":0},"down":{"uv":[9.5,0,12,2.5],"rotation":180,"texture":0}},"uuid":"f2d31269-2cc7-08f8-4565-9333c8551e3a"},{"name":"ClawBottom","from":[5.5,30.5,-3],"to":[10.5,32.5,2],"autouv":0,"color":2,"locked":false,"rotation":[22.5,0,0],"origin":[8,31.5,2],"faces":{"north":{"uv":[9.5,0,12,1],"rotation":180,"texture":0},"east":{"uv":[9.5,1.5,12,2.5],"rotation":180,"texture":0},"south":{"uv":[9.5,1.5,12,2.5],"rotation":180,"texture":0},"west":{"uv":[9.5,1.5,12,2.5],"rotation":180,"texture":0},"up":{"uv":[9.5,0,12,2.5],"rotation":180,"texture":0},"down":{"uv":[9.5,0,12,2.5],"rotation":180,"texture":0}},"uuid":"d12675f3-335e-90be-8583-28dd1ca77646"},{"name":"ConnectorR","from":[5,28,0],"to":[7,30,6],"autouv":0,"color":5,"locked":false,"rotation":[45,0,0],"origin":[8,12,5],"faces":{"north":{"uv":[0,0,0,0],"rotation":90,"texture":null},"east":{"uv":[15,0,16,3],"rotation":90,"texture":0},"south":{"uv":[15,0,16,1],"rotation":90,"texture":0},"west":{"uv":[15,0,16,3],"rotation":90,"texture":0},"up":{"uv":[15,0,16,3],"texture":0},"down":{"uv":[15,0,16,3],"rotation":180,"texture":0}},"uuid":"4baeae8a-26e1-d014-ee79-e4f0adcf95e8"},{"name":"Gear5","from":[6.5,6,-1],"to":[9.5,10,17],"autouv":0,"color":5,"locked":false,"origin":[8,6,8],"faces":{"north":{"uv":[7.5,4,9,6],"texture":0},"east":{"uv":[0,7.5,9,9.5],"texture":0},"south":{"uv":[7.5,4,9,6],"texture":0},"west":{"uv":[0,7.5,9,9.5],"texture":0},"up":{"uv":[0,6,9,7.5],"rotation":270,"texture":0},"down":{"uv":[0,6,9,7.5],"rotation":270,"texture":0}},"uuid":"21e5241b-7965-f57d-4f53-8b47d370fc2f"},{"name":"Gear6","from":[6.5,6,-1],"to":[9.5,10,17],"autouv":0,"color":5,"locked":false,"rotation":[0,45,0],"origin":[8,6,8],"faces":{"north":{"uv":[7.5,4,9,6],"texture":0},"east":{"uv":[0,7.5,9,9.5],"texture":0},"south":{"uv":[7.5,4,9,6],"texture":0},"west":{"uv":[0,7.5,9,9.5],"texture":0},"up":{"uv":[0,6,9,7.5],"rotation":270,"texture":0},"down":{"uv":[0,6,9,7.5],"rotation":270,"texture":0}},"uuid":"9475d70c-face-e6ff-eaaf-2987cd436ecf"},{"name":"Gear7","from":[-1,6,6.5],"to":[17,10,9.5],"autouv":0,"color":4,"locked":false,"rotation":[0,45,0],"origin":[8,6,8],"faces":{"north":{"uv":[0,7.5,9,9.5],"texture":0},"east":{"uv":[7.5,4,9,6],"texture":0},"south":{"uv":[0,7.5,9,9.5],"texture":0},"west":{"uv":[7.5,4,9,6],"texture":0},"up":{"uv":[0,6,9,7.5],"rotation":180,"texture":0},"down":{"uv":[0,6,9,7.5],"rotation":180,"texture":0}},"uuid":"f75c4d49-2da3-9e7e-7af8-a9e10af7a566"},{"name":"Gear7","from":[-1,6,6.5],"to":[17,10,9.5],"autouv":0,"color":7,"locked":false,"origin":[8,6,8],"faces":{"north":{"uv":[0,7.5,9,9.5],"texture":0},"east":{"uv":[7.5,4,9,6],"texture":0},"south":{"uv":[0,7.5,9,9.5],"texture":0},"west":{"uv":[7.5,4,9,6],"texture":0},"up":{"uv":[0,6,9,7.5],"rotation":180,"texture":0},"down":{"uv":[0,6,9,7.5],"rotation":180,"texture":0}},"uuid":"76731245-0f21-d016-a76a-d685a9773cfc"},{"name":"GearCaseInner","from":[2,6.5,2],"to":[14,9.5,14],"autouv":0,"color":0,"locked":false,"origin":[8,6.5,8],"faces":{"north":{"uv":[6,0,7.5,6],"rotation":90,"texture":0},"east":{"uv":[6,0,7.5,6],"rotation":90,"texture":0},"south":{"uv":[6,0,7.5,6],"rotation":90,"texture":0},"west":{"uv":[6,0,7.5,6],"rotation":90,"texture":0},"up":{"uv":[0,0,6,6],"rotation":180,"texture":0},"down":{"uv":[0,0,6,6],"rotation":180,"texture":0}},"uuid":"85179096-a233-0992-bb2d-b7c244a5fa48"},{"name":"GearCaseOuter","from":[4,6,4],"to":[12,10,12],"autouv":0,"color":2,"locked":false,"origin":[8,8,8],"faces":{"north":{"uv":[7.5,0,9.5,4],"rotation":90,"texture":0},"east":{"uv":[7.5,0,9.5,4],"rotation":90,"texture":0},"south":{"uv":[7.5,0,9.5,4],"rotation":90,"texture":0},"west":{"uv":[7.5,0,9.5,4],"rotation":90,"texture":0},"up":{"uv":[0,0,0,0],"rotation":90,"texture":null},"down":{"uv":[0,0,0,0],"rotation":90,"texture":null}},"uuid":"2ca69cc4-e48d-3f93-2564-4993b4270296"},{"name":"ConnectorR","from":[9,28,0],"to":[11,30,6],"autouv":0,"color":5,"locked":false,"rotation":[45,0,0],"origin":[12,12,5],"faces":{"north":{"uv":[0,0,0,0],"rotation":90,"texture":null},"east":{"uv":[15,0,16,3],"rotation":90,"texture":0},"south":{"uv":[15,0,16,1],"rotation":90,"texture":0},"west":{"uv":[15,0,16,3],"rotation":90,"texture":0},"up":{"uv":[15,0,16,3],"texture":0},"down":{"uv":[15,0,16,3],"rotation":180,"texture":0}},"uuid":"66fb07f1-8ea6-0123-5e0e-48ef7475ea2a"},{"name":"Base","from":[2,0,2],"to":[14,6,14],"autouv":0,"color":2,"locked":false,"origin":[8,8,8],"faces":{"north":{"uv":[2,0,14,6],"texture":1},"east":{"uv":[2,0,14,6],"texture":1},"south":{"uv":[2,0,14,6],"texture":1},"west":{"uv":[2,0,14,6],"texture":1},"up":{"uv":[2,2,14,14],"texture":2},"down":{"uv":[2,2,14,14],"texture":1}},"uuid":"88843599-a7d8-79be-470c-8f4be9ed1041"}],"outliner":[{"name":"inserter","uuid":"8ff1d931-e549-0361-38d6-b1e3384c03db","export":true,"isOpen":true,"locked":false,"visibility":true,"autouv":0,"origin":[8,8,8],"children":["6d46d5ed-a06e-dcfb-24b2-50bbccddd037","0982ba47-6570-8477-51a6-280015787534","055dd18c-332b-5f36-7230-982f290f77f5","4baeae8a-26e1-d014-ee79-e4f0adcf95e8","66fb07f1-8ea6-0123-5e0e-48ef7475ea2a","414e9433-b0fc-548a-727e-0e3bee8cb216","37122138-cf83-4a9c-72ab-dffccbb57f9d","88843599-a7d8-79be-470c-8f4be9ed1041","c0c15acc-1e55-0b65-c1db-7588d4d92234","f2d31269-2cc7-08f8-4565-9333c8551e3a","d12675f3-335e-90be-8583-28dd1ca77646","8d036d0c-e281-7dbd-a93f-3311b05592f9",{"name":"cogwheel","uuid":"6c2ae39a-a31c-0a55-d63e-f12ed3a9a470","export":true,"isOpen":true,"locked":false,"visibility":true,"autouv":0,"origin":[8,8,8],"children":["2ca69cc4-e48d-3f93-2564-4993b4270296","21e5241b-7965-f57d-4f53-8b47d370fc2f","9475d70c-face-e6ff-eaaf-2987cd436ecf","f75c4d49-2da3-9e7e-7af8-a9e10af7a566","76731245-0f21-d016-a76a-d685a9773cfc","85179096-a233-0992-bb2d-b7c244a5fa48"]}]}],"textures":[{"path":"C:\\Users\\simon\\Desktop\\Forgespace 1.15\\Create\\src\\main\\resources\\assets\\create\\textures\\block\\mechanical_arm.png","name":"mechanical_arm.png","folder":"block","namespace":"create","id":"5","particle":false,"mode":"bitmap","saved":true,"uuid":"3f34cbe0-5622-4ce1-967c-d632b62ff75d","source":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAGPUlEQVRYR6VXS2wbVRQ9M/Z4bI9duyZNP6Sg/pM2pLRp06oJUIHUIpaskFggPmLFAvYICcQaFlRIILFgwZINSCA2UEFbhYQ2TZrUxE3qpElTkjqOnfFvPJ4ZdO90ppOpnTbt3fh955133j3nPQuffdRjwRM1zYQo2g0hSURdN2Gadr1SbSCVDHE5X6jj5ZOnEAwIqFR1LC6ruDAZhizL3F8qlSBJEnRdRyqVQr1eh6Zp3B8KhSAIArcJBOD5zmOQgvaqlZrBvzRRLWtcTiVjiIYD+O3CBQZA438fvMQAimoNEIDs/DjS/x1y51IhFouhVqshHA6vAUUgCAAFAzje3YfMzF0YlgXTsNCxNYH8agVGw0IyYU9uSyouABpPYAjA7MIKQqEAFnMZjM3t511blk1qJBJhAM6GHFDEQD6f57EugImpRR7oLE7lsByE3jCZnURMwfmhS9iSkkEAfvnzL5w51Y/5pQJovdzKlAuAFqCgnToLeUFRn6qqNoCPP+i2jnT2YuHuKk+iRSu1OnTTQDwSRjQs2UdTaWB8agyJuAQaf354EK8O9GNmYQVa3UCpMsMAnKCPOzunsheUA4CPgAB07T6MfLHCVBqGCcOwoBk6RNh5EQ4FEZVDuPrvVcSUIGj88LXLONPfj8ytHIiC1dIMPvlyjA/21+/es/LFKiamRpFZ6mwJivLMBVCq2glXrtQRCNgJIgqiW65pDcwv3uBkJACXr19BX3cv5heLiMhBLBenXQA/fPGmRYurZR1ffT9pf6xFcA48s+0g9IaFGknF0HmoJAYgBQNcJjVQmQAk4xJo/NiNUXRs3Yd8MXtPrgY+PzfOi7WSdql8X8Ykb6ozA1tT+zjb6Ri8QQxQPpDMOtqTTDsdAY2fnkuzCihB0zeXkJ2f5KmaZqBje5Sl6pe2k8TURxumOgPYsWU/ouEQL1QsVVl+qWSUd67VG5yI8aiMofErnIQ0Pn1zAq+9+AJyhTIms9dQVHWcPHwM6ZujzEgzaQ+O/sM+Qn3kH1RnAM9utw1ECgq8Y0rCuCIDArmcnRuJeIQnEAAaP5a5itPHTyJfrOFOLo27eQ193UcxOXvNBeCXdiZ73QWQvZ0H1YX339hrRSNBl3nDtE0kIAoQAwIbk9PmUEzjqa1r9yHkClNs13Sex5/rZQYomkl7diHDSUx95B9UF3765h33LhAFQBQFtkm2WF842iZTMU26I+xLQonK+GPoEicl+QEBemQAjmab+QCM+wqSQzZLpmVyjkiSrRDKkQO72h8A0Mxbsrf/dWVM61Fd+Pnbd9fchuWKfebNgnbqDe/YiyPD6Nnfgzu5SWaAAPi9JTs36RpZrlAC1VsegbNQg3KA3PHelUzt/iMgG7+1kMGenV1YUad5ajNvmZ27wXcJ9eXUEqgurHcEfituJdOCmuVrfNfTXVhZnXIB5FXbVyiRoxEJ6ekJF0BFq3Nd+PHcW1at3niALprot+LUpmhTmZISSIbde3swt5hmRZCCnMW9KnLUpes2pcLXn75u0QeeJOjMyYhO953CSHqYLXk9O6aXVXub/c4Qzp7YtSYJmwEhhijoVnSC2rz1roMyzg4M4OLIoAuglR0TC85YBtCWjGBkrjkHPTtM3Fkuc6ciC0huUrBcrIEAeOsOgOHxIb4VnUuuWR7Qt8i26cZ0AWTyChRFWSuzchl7EqoLYFsqitVSFSYCDMBbJwDkkGFZZAAfvt1ptcoD7yJrGGgGwMvA9qcUdkqHAW99oznUMEwEA+LGGHgYAGIloYSgRCQUVitIboquweW0las6iuU659ATMeA9AlqJALQlwqjWNMSViPv0dlCQganlKiLhEHJFbS2AR8kBPwPeJHQAJJQglIj8EAY0FMu2ijbEgD8JvfzSedK5ypIA+o+zHgMNE9B0634ObI7LmC7Gm+aRVwV+Gfp9YaOJyEb00pGdDzWiVh/uaI/zxUSqIBk64VhvMCjAMsGPFyrTO8P/wFn3ybzejgi4Nyd6exUMHD3Bi9DFlMuXUG8Y/J9BDgVQqtb5c+2pGCzTgiAK+HvsMt1vjxd+5l45vRmHD/TyS5hBVHVWBYWuG1DpnXGPa/r3LQUlXJ8ee3wAftj+y4cuKCfosev8G/a2L+Vq+B/J62LZxEErigAAAABJRU5ErkJggg=="},{"path":"C:\\Users\\simon\\Desktop\\Forgespace 1.15\\Create\\src\\main\\resources\\assets\\create\\textures\\block\\crafter_top.png","name":"crafter_top.png","folder":"block","namespace":"create","id":"6","particle":true,"mode":"bitmap","saved":true,"uuid":"439b418c-0774-f6c0-685a-89bab4fb8645","source":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAB6UlEQVQ4T31TTUuUURR+7vs1zTulFbY2+jAyTUIRjQQhLHGl5EJwMRI4SOKvcGebNrUwiCBXzqJFIBi0GGaTg4P0QRQILVy6Mpm3eT/uXDn3eu+8o+LZnHPPPfe5z3PuuWwpf0fg2FzX0uG5Po4bZp8VZm6JqbFRkwjqXMZBUIfvX5CerB4lpubq5Ysy3iyXwRZmb4ux4YdYXvkok75nS++4DEkspD9plC/Mj+Pr920FMNI/iJevPqGzw0fEBTybIUoaiLmA61hm7dlK4v5h2ASgHgz1DeD1mw1ca8s0AbhqTZw09RIYWS2KMfnsEf7u/QEjgP7uB3j3/rOkLPVH3Eg5a0256ZmRVoDVt5stDLRuLSndh/1/4WkAYpDzXFOnqRPtdHyuBAKgYq31ZPc1UBAmZzO4kvXMmVrIkcuoJyVLSyEJhfmnqP7aUU28e6MXax++mPenQDdUz0G6wW05B8/nnjQBuq53o7heQpoB3aiN5oIYaWkHtQj5/GP83P2hBunezR4UiyV4lt2qXwg5TGTysBDwHAskgQB2fn9rBdA3arqnZjiVWHwxgXK1ogDud/XCdVy4DkNQj8C5gG0z4+mcn82oIfsfSt9+KYtSZQvyN6oCx+DzhoBtMZCX9I+/eYMLk6N8GHIcAeOKA+EH1HCkAAAAAElFTkSuQmCC"},{"path":"C:\\Users\\simon\\Desktop\\Forgespace 1.15\\Create\\src\\main\\resources\\assets\\create\\textures\\block\\brass_block.png","name":"brass_block.png","folder":"block","namespace":"create","id":"7","particle":false,"mode":"bitmap","saved":true,"uuid":"df481770-d0d0-d9cf-75fc-6c19827d222c","source":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAACM0lEQVQ4T1WTS2/TQBDH/961Y8dJ6iRqKaAKJApVgYqHeHwWPgEnLtw58a24cagQKg+1oaioFIHEQ6oqItEQ196X0ezETpjLrmZ3fzPzn9ng+dNbFRasKB2EYEcr4o3SDs4BSSyaPfnzM4OAAHc27yMK+XJeWL9qrf1aKAsZMLBQxq/DfhdpIvFie5sBD7Ye4vDbCWxVwdkKa6sZxqc5rOXkSmUgggBRKNHPEu9b7nf+B3w8OvYH9WPaT/ISkZDQjrNaGXSgjfPZZt0OXu68QvDsyVZ1d/Mefp2c+ktJHCIvlH9kTeUBUSRZk5ZEmkRcam6wfzRiwPUrtzH+k/sL1jqfemlZA7JeO/F+Mi6LRfn682AO+HtWeuc0V5Az1ajm2qQUDVxrLuPL9wMW8dL5G9CmQqFUE5lSJ1uEaG29BmRZN8HocDQHjCe5P6AupG2uk7oiA06XHtddGmYdiADY/bTLgOX+BuxM6VosWpWxcNZBSAFnnAd4oVsh0rg1BwyW1oGZNv2lBNpwqiRcrlSjQyyjRp+iNPhx/JkzGPTW4SoaYYFFwHSqAAFEkvWoxZ1MS6+NB1AbV4fX/IRR5Fq4k99TOEpZVsjStofQYNGMUBfXzvXx5sM7Blxc2UCatPxBqQ0oMj2OWyGcc0iSCEoxnMaahqmXxtjZf8+AyxduziIHPkL9B3pdnnvquzYaaTtGPpuXrNfG6723CB4/ulql7bARyjpWOoqEb2ltYjZc5Kvv0Nk/rK1Cjidok2MAAAAASUVORK5CYII="}],"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]}}} \ No newline at end of file diff --git a/src/main/resources/assets/create/models/block/mechanical_arm/head.json b/src/main/resources/assets/create/models/block/mechanical_arm/head.json new file mode 100644 index 000000000..0f031f46f --- /dev/null +++ b/src/main/resources/assets/create/models/block/mechanical_arm/head.json @@ -0,0 +1,77 @@ +{ + "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] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/assets/create/models/block/mechanical_arm/item.json b/src/main/resources/assets/create/models/block/mechanical_arm/item.json new file mode 100644 index 000000000..8df140ad6 --- /dev/null +++ b/src/main/resources/assets/create/models/block/mechanical_arm/item.json @@ -0,0 +1,311 @@ +{ + "credit": "Made with Blockbench", + "parent": "block/block", + "textures": { + "5": "create:block/mechanical_arm", + "6": "create:block/crafter_top", + "7": "create:block/brass_block", + "particle": "create:block/crafter_top" + }, + "elements": [ + { + "name": "Base", + "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"} + } + }, + { + "name": "LowerBody", + "from": [6, -4, 3.5], + "to": [10, 10, 6.5], + "rotation": {"angle": 45, "axis": "x", "origin": [8, -4, 5]}, + "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, 12, 0], + "to": [7, 14, 6], + "rotation": {"angle": 45, "axis": "x", "origin": [8, -4, 5]}, + "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, 12, 0], + "to": [11, 14, 6], + "rotation": {"angle": 45, "axis": "x", "origin": [12, -4, 5]}, + "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, 11, -10], + "to": [11.5, 15, 1], + "rotation": {"angle": 45, "axis": "x", "origin": [8, -4, 5]}, + "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, 16.5, 4], + "to": [12, 20.5, 8], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 2, 8]}, + "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": "Base", + "from": [2, -16, 2], + "to": [14, -10, 14], + "rotation": {"angle": 0, "axis": "y", "origin": [8, -8, 8]}, + "faces": { + "north": {"uv": [2, 0, 14, 6], "texture": "#6"}, + "east": {"uv": [2, 0, 14, 6], "texture": "#6"}, + "south": {"uv": [2, 0, 14, 6], "texture": "#6"}, + "west": {"uv": [2, 0, 14, 6], "texture": "#6"}, + "up": {"uv": [2, 2, 14, 14], "texture": "#7"}, + "down": {"uv": [2, 2, 14, 14], "texture": "#6"} + } + }, + { + "name": "ClawBase", + "from": [5, 15.5, 1], + "to": [11, 21.5, 3], + "rotation": {"angle": 0, "axis": "y", "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"} + } + }, + { + "name": "ClawTop", + "from": [5.5, 20.5, -3], + "to": [10.5, 22.5, 2], + "rotation": {"angle": -22.5, "axis": "x", "origin": [8, 21.5, 2]}, + "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"} + } + }, + { + "name": "ClawBottom", + "from": [5.5, 14.5, -3], + "to": [10.5, 16.5, 2], + "rotation": {"angle": 22.5, "axis": "x", "origin": [8, 15.5, 2]}, + "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"} + } + }, + { + "name": "ClawConnector", + "from": [6.5, 17.5, 3], + "to": [9.5, 19.5, 4], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 2, 8]}, + "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"} + } + }, + { + "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": "#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"} + } + }, + { + "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": "#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"} + } + }, + { + "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": "#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"} + } + }, + { + "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": "#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"} + } + } + ], + "display": { + "thirdperson_righthand": { + "rotation": [75, 45, 0], + "translation": [0, 2.5, 6], + "scale": [0.375, 0.375, 0.375] + }, + "thirdperson_lefthand": { + "rotation": [75, 45, 0], + "translation": [0, 2.5, 6], + "scale": [0.375, 0.375, 0.375] + }, + "firstperson_righthand": { + "rotation": [0, 45, 0], + "translation": [0, 3.75, 0], + "scale": [0.4, 0.4, 0.4] + }, + "firstperson_lefthand": { + "rotation": [0, 45, 0], + "translation": [0, 3.75, 0], + "scale": [0.4, 0.4, 0.4] + }, + "ground": { + "rotation": [0, 0, 90], + "translation": [-1.75, -0.5, 0], + "scale": [0.25, 0.25, 0.25] + }, + "gui": { + "rotation": [30, 225, 0], + "translation": [0, 3, 0], + "scale": [0.45, 0.45, 0.45] + }, + "head": { + "translation": [0, 24.75, 0] + }, + "fixed": { + "rotation": [0, 90, 0], + "translation": [0, 2.25, -0.75], + "scale": [0.45, 0.45, 0.45] + } + }, + "groups": [ + { + "name": "inserter", + "origin": [8, 8, 8], + "children": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, + { + "name": "cogwheel", + "origin": [8, 8, 8], + "children": [12, 13, 14, 15, 16, 17] + } + ] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/assets/create/models/block/mechanical_arm/lower_body.json b/src/main/resources/assets/create/models/block/mechanical_arm/lower_body.json new file mode 100644 index 000000000..1617d2317 --- /dev/null +++ b/src/main/resources/assets/create/models/block/mechanical_arm/lower_body.json @@ -0,0 +1,79 @@ +{ + "credit": "Made with Blockbench", + "parent": "block/block", + "textures": { + "5": "create:block/mechanical_arm", + "particle": "create:block/crafter_top" + }, + "elements": [ + { + "name": "LowerBody", + "from": [-2, 0, -1.5], + "to": [2, 14, 1.5], + "rotation": {"angle": 45, "axis": "x", "origin": [0, 0, 0]}, + "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"} + } + } + ], + "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] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/assets/create/models/block/mechanical_arm/upper_body.json b/src/main/resources/assets/create/models/block/mechanical_arm/upper_body.json new file mode 100644 index 000000000..18f907239 --- /dev/null +++ b/src/main/resources/assets/create/models/block/mechanical_arm/upper_body.json @@ -0,0 +1,91 @@ +{ + "credit": "Made with Blockbench", + "parent": "block/block", + "textures": { + "5": "create:block/mechanical_arm", + "particle": "create:block/crafter_top" + }, + "elements": [ + { + "name": "ConnectorR", + "from": [-3, -0.97056, -5], + "to": [-1, 1.02944, 1], + "rotation": {"angle": 45, "axis": "x", "origin": [0, 0, 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": "ConnectorR", + "from": [1, -0.97056, -5], + "to": [3, 1.02944, 1], + "rotation": {"angle": 45, "axis": "x", "origin": [0, 0, 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"} + } + } + ], + "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, 2] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/assets/create/textures/block/mechanical_arm.png b/src/main/resources/assets/create/textures/block/mechanical_arm.png new file mode 100644 index 000000000..113380983 Binary files /dev/null and b/src/main/resources/assets/create/textures/block/mechanical_arm.png differ