From cc6efa5aa2d8591fc2ccec5b53cd7dfde07b3cf3 Mon Sep 17 00:00:00 2001 From: simibubi <31564874+simibubi@users.noreply.github.com> Date: Tue, 16 Jun 2020 12:54:24 +0200 Subject: [PATCH] Logistical Mockups Part I - Added blockstates and TER for the Mechanical Arm - Mechanical Arms will start a Grab Rave at random intervals --- src/generated/resources/.cache/cache | 9 +- .../create/blockstates/mechanical_arm.json | 7 + .../create/blockstates/radial_chassis.json | 24 +- .../resources/assets/create/lang/en_ud.json | 1 + .../resources/assets/create/lang/en_us.json | 1 + .../create/models/item/mechanical_arm.json | 3 + .../loot_tables/blocks/mechanical_arm.json | 19 ++ .../com/simibubi/create/AllBlockPartials.java | 8 + .../java/com/simibubi/create/AllBlocks.java | 9 + .../java/com/simibubi/create/AllShapes.java | 2 + .../com/simibubi/create/AllTileEntities.java | 5 + .../block/mechanicalArm/ArmBlock.java | 62 ++++ .../block/mechanicalArm/ArmRenderer.java | 93 ++++++ .../block/mechanicalArm/ArmTileEntity.java | 45 +++ .../models/block/mechanical_arm/base.json | 65 ++++ .../models/block/mechanical_arm/block.json | 58 ++++ .../block/mechanical_arm/claw_base.json | 65 ++++ .../block/mechanical_arm/claw_grip.json | 65 ++++ .../models/block/mechanical_arm/cog.json | 138 ++++++++ .../block/mechanical_arm/compiled.bbmodel | 1 + .../models/block/mechanical_arm/head.json | 77 +++++ .../models/block/mechanical_arm/item.json | 311 ++++++++++++++++++ .../block/mechanical_arm/lower_body.json | 79 +++++ .../block/mechanical_arm/upper_body.json | 91 +++++ .../create/textures/block/mechanical_arm.png | Bin 0 -> 1674 bytes 25 files changed, 1223 insertions(+), 15 deletions(-) create mode 100644 src/generated/resources/assets/create/blockstates/mechanical_arm.json create mode 100644 src/generated/resources/assets/create/models/item/mechanical_arm.json create mode 100644 src/generated/resources/data/create/loot_tables/blocks/mechanical_arm.json create mode 100644 src/main/java/com/simibubi/create/content/logistics/block/mechanicalArm/ArmBlock.java create mode 100644 src/main/java/com/simibubi/create/content/logistics/block/mechanicalArm/ArmRenderer.java create mode 100644 src/main/java/com/simibubi/create/content/logistics/block/mechanicalArm/ArmTileEntity.java create mode 100644 src/main/resources/assets/create/models/block/mechanical_arm/base.json create mode 100644 src/main/resources/assets/create/models/block/mechanical_arm/block.json create mode 100644 src/main/resources/assets/create/models/block/mechanical_arm/claw_base.json create mode 100644 src/main/resources/assets/create/models/block/mechanical_arm/claw_grip.json create mode 100644 src/main/resources/assets/create/models/block/mechanical_arm/cog.json create mode 100644 src/main/resources/assets/create/models/block/mechanical_arm/compiled.bbmodel create mode 100644 src/main/resources/assets/create/models/block/mechanical_arm/head.json create mode 100644 src/main/resources/assets/create/models/block/mechanical_arm/item.json create mode 100644 src/main/resources/assets/create/models/block/mechanical_arm/lower_body.json create mode 100644 src/main/resources/assets/create/models/block/mechanical_arm/upper_body.json create mode 100644 src/main/resources/assets/create/textures/block/mechanical_arm.png diff --git a/src/generated/resources/.cache/cache b/src/generated/resources/.cache/cache index a6146c403..51773d350 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 -4e1fb033316e9230d2f024d67c27940ea731643a assets\create\blockstates\radial_chassis.json +5c1df061eb5efe49beee7219e113206fc31a4733 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 80ab92133..7a1df3438 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": { - "axis": "x", - "sticky_south": "true" + "sticky_south": "true", + "axis": "x" }, "apply": { "model": "create:block/radial_chassis_side_x_sticky", @@ -39,8 +39,8 @@ }, { "when": { - "axis": "y", - "sticky_south": "true" + "sticky_south": "true", + "axis": "y" }, "apply": { "model": "create:block/radial_chassis_side_y_sticky" @@ -48,8 +48,8 @@ }, { "when": { - "axis": "z", - "sticky_south": "true" + "sticky_south": "true", + "axis": "z" }, "apply": { "model": "create:block/radial_chassis_side_x_sticky", @@ -59,8 +59,8 @@ }, { "when": { - "axis": "x", - "sticky_south": "false" + "sticky_south": "false", + "axis": "x" }, "apply": { "model": "create:block/radial_chassis_side_x", @@ -69,8 +69,8 @@ }, { "when": { - "axis": "y", - "sticky_south": "false" + "sticky_south": "false", + "axis": "y" }, "apply": { "model": "create:block/radial_chassis_side_y" @@ -78,8 +78,8 @@ }, { "when": { - "axis": "z", - "sticky_south": "false" + "sticky_south": "false", + "axis": "z" }, "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 e5781e042..c08e57eb4 100644 --- a/src/main/java/com/simibubi/create/AllTileEntities.java +++ b/src/main/java/com/simibubi/create/AllTileEntities.java @@ -78,6 +78,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; @@ -144,6 +146,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 = @@ -286,6 +290,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 0000000000000000000000000000000000000000..113380983db6117ab8a13f29fe9f2195bfb861bb GIT binary patch literal 1674 zcmV;526g#~P)Px#1ZP1_K>z@;j|==^1poj532;bRa{vGi!vFvd!vV){sAK>D1|La8K~z{rrB_RD z8&woOGah@!uh?DkN5{U67mV<7%x%g?vK##ZrS_KYNahn8x!>THUni>K_)FrYY-{N`>O_I5nG1 zDijLTXf&u^ugiKOkswXeWKIlt&bt7XghW37xEcOSuy(V>QylS^50*- zCI*ykmq;U;U;dru9v&5Wd<$eU8FF2hEX$IyG73h(06?@t`JIJznwwwajW%S1;&zq2 z(c+H{Hj0%*po|4dc8%8?(pQQN!;l6gXgE2P1Ih!oZHsZ?PR$m(+H2Fuo}4HL(&;#F z-sCk;JmdM@XrYfY7=}ik*NIUFP=cmH07Q*abAXN*BZg+ekY-owfkKWCj7nK?K5>jT ziopq#Jb+yB*${Y20h>FHBk{#46{1F|28ajTMzBF55fkOQ7C6SKHE4aykz6o&Ev5%? zgFO0j8a};B+UeH>Agaasa1^ac0N$m>7aSfUxMD zK7jsqrA{sONYV_q5fsZcx_xh!4R6xS%uM&A2-@u+oKgj&dynwR*_9|2FK{mmfa?Kx z0R83FyOhty3Gz4Z&T_sSVrBE4a`ouS7q>*&m5)#KE$xcaEn|cdW61$1uq>VYwjU_w z26&v5Qi{Coo}sKHsgg&3Y;>4joj608)Qen>P5S7)!|e~>IV8$as#C{KOPf48MHAyw zVG?6ajU{?;v&SCDWs)Kg?Z?>kY|>u4rLA%Z zYicY8#0@SNR!aOAk9Azn{cPHjDgg9YC({^^2T%>J>q`g#7#T&s(pFGo?Sr?++NoqW ziNaIDIzA~jP;)@N?h)iMH-7Lad*EIe LuY3}~4$W0ucq?Pq;>06wnAgc!}cZ5-~ zw!Bu7vG(oPm%`oQA-z*xLa{wiwTle)`GP|x2K`?Hbi@Nm^xaj23xG8>)?4i2fs94_pD)n9 zT{$WYq-fV*nns565F6oOLuQ^~(K6REo5k-_+P+nJZN#Kf z3+{fW+6d`4O2s%G!UM%1sBD_u%?hjh9V%hHSf^uS$7yMGE?~IMcfD1lstX|lw68vW ztBnnw1qch6@WSbHbYt#Uq2wpgF!AVtURpnLxxx!dR#u1eNm{b|x4~>Tvtyb^L%G0mpmz)?Rs@Qrs^pQPGyh!U_Ke#kTsYu+EfDJuLM1K3^2uu**T@^?Sq{H>b