From 0034725809b311cfdf44b2d82f281be3ecce7fca Mon Sep 17 00:00:00 2001 From: simibubi <31564874+simibubi@users.noreply.github.com> Date: Sun, 30 Apr 2023 02:06:30 +0200 Subject: [PATCH] More good looks - Implement new roller and smart observer model --- .../actors/HarvesterActorInstance.java | 2 +- .../actors/RollerActorInstance.java | 17 +- .../components/actors/RollerBlock.java | 7 +- .../components/actors/RollerBlockEntity.java | 12 +- .../components/actors/RollerRenderer.java | 32 +- .../redstone/SmartObserverBlockEntity.java | 4 + .../models/block/mechanical_roller/block.json | 77 +--- .../models/block/mechanical_roller/frame.json | 113 +++--- .../models/block/mechanical_roller/item.json | 141 ++----- .../models/block/mechanical_roller/item.mtl | 11 + .../models/block/mechanical_roller/item.obj | 363 ++++++++++++++++++ .../models/block/mechanical_roller/wheel.json | 117 +----- .../models/block/mechanical_roller/wheel.mtl | 5 + .../models/block/mechanical_roller/wheel.obj | 352 +++++++++++++++++ .../create/textures/block/observer_top.png | Bin 0 -> 389 bytes .../create/textures/block/roller_casing.png | Bin 0 -> 7204 bytes .../create/textures/block/roller_metal.png | Bin 0 -> 6325 bytes .../create/textures/block/roller_wheel.png | Bin 0 -> 5729 bytes .../create/textures/block/smart_observer.png | Bin 343 -> 527 bytes .../textures/block/smart_observer_front.png | Bin 335 -> 518 bytes .../textures/block/smart_observer_powered.png | Bin 369 -> 402 bytes .../textures/block/smart_observer_side.png | Bin 328 -> 476 bytes .../block/smart_observer_side_powered.png | Bin 338 -> 371 bytes .../textures/block/smart_observer_top.png | Bin 293 -> 298 bytes 24 files changed, 877 insertions(+), 376 deletions(-) create mode 100644 src/main/resources/assets/create/models/block/mechanical_roller/item.mtl create mode 100644 src/main/resources/assets/create/models/block/mechanical_roller/item.obj create mode 100644 src/main/resources/assets/create/models/block/mechanical_roller/wheel.mtl create mode 100644 src/main/resources/assets/create/models/block/mechanical_roller/wheel.obj create mode 100644 src/main/resources/assets/create/textures/block/observer_top.png create mode 100644 src/main/resources/assets/create/textures/block/roller_casing.png create mode 100644 src/main/resources/assets/create/textures/block/roller_metal.png create mode 100644 src/main/resources/assets/create/textures/block/roller_wheel.png diff --git a/src/main/java/com/simibubi/create/content/contraptions/components/actors/HarvesterActorInstance.java b/src/main/java/com/simibubi/create/content/contraptions/components/actors/HarvesterActorInstance.java index a12d10c22..6f0a0122f 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/components/actors/HarvesterActorInstance.java +++ b/src/main/java/com/simibubi/create/content/contraptions/components/actors/HarvesterActorInstance.java @@ -94,7 +94,7 @@ public class HarvesterActorInstance extends ActorInstance { .translateBack(getRotationOffset()); } - private double getRotation() { + protected double getRotation() { return AngleHelper.angleLerp(AnimationTickHolder.getPartialTicks(), previousRotation, rotation); } } diff --git a/src/main/java/com/simibubi/create/content/contraptions/components/actors/RollerActorInstance.java b/src/main/java/com/simibubi/create/content/contraptions/components/actors/RollerActorInstance.java index aaf8005fd..caafd4936 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/components/actors/RollerActorInstance.java +++ b/src/main/java/com/simibubi/create/content/contraptions/components/actors/RollerActorInstance.java @@ -13,8 +13,6 @@ import net.minecraft.world.phys.Vec3; public class RollerActorInstance extends HarvesterActorInstance { - static Vec3 rotOffset = new Vec3(0.5f, -12 * originOffset + 0.5f, 8 * originOffset + 0.5f); - ModelData frame; public RollerActorInstance(MaterialManager materialManager, VirtualRenderWorld simulationWorld, @@ -30,11 +28,20 @@ public class RollerActorInstance extends HarvesterActorInstance { @Override public void beginFrame() { - super.beginFrame(); - frame.loadIdentity() + harvester.loadIdentity() .translate(context.localPos) .centre() .rotateY(horizontalAngle) + .unCentre() + .translate(0, -.25, 17 / 16f) + .rotateX(getRotation()) + .translate(0, -.5, .5) + .rotateY(90); + + frame.loadIdentity() + .translate(context.localPos) + .centre() + .rotateY(horizontalAngle + 180) .unCentre(); } @@ -45,7 +52,7 @@ public class RollerActorInstance extends HarvesterActorInstance { @Override protected Vec3 getRotationOffset() { - return rotOffset; + return Vec3.ZERO; } @Override diff --git a/src/main/java/com/simibubi/create/content/contraptions/components/actors/RollerBlock.java b/src/main/java/com/simibubi/create/content/contraptions/components/actors/RollerBlock.java index 51d186cbb..9c1426b64 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/components/actors/RollerBlock.java +++ b/src/main/java/com/simibubi/create/content/contraptions/components/actors/RollerBlock.java @@ -4,7 +4,6 @@ import java.util.function.Predicate; import com.simibubi.create.AllBlockEntityTypes; import com.simibubi.create.AllBlocks; -import com.simibubi.create.AllShapes; import com.simibubi.create.foundation.block.IBE; import com.simibubi.create.foundation.utility.placement.IPlacementHelper; import com.simibubi.create.foundation.utility.placement.PlacementHelpers; @@ -27,6 +26,7 @@ import net.minecraft.world.level.block.entity.BlockEntityType; import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.phys.BlockHitResult; import net.minecraft.world.phys.shapes.CollisionContext; +import net.minecraft.world.phys.shapes.Shapes; import net.minecraft.world.phys.shapes.VoxelShape; public class RollerBlock extends AttachedActorBlock implements IBE { @@ -57,15 +57,14 @@ public class RollerBlock extends AttachedActorBlock implements IBE behaviours) { - behaviours.add(filtering = new FilteringBehaviour(this, new RollerValueBox(4))); + behaviours.add(filtering = new FilteringBehaviour(this, new RollerValueBox(3))); behaviours.add(mode = new ScrollOptionBehaviour(RollingMode.class, - Lang.translateDirect("contraptions.roller_mode"), this, new RollerValueBox(-4))); + Lang.translateDirect("contraptions.roller_mode"), this, new RollerValueBox(-3))); filtering.setLabel(Lang.translateDirect("contraptions.mechanical_roller.pave_material")); filtering.withCallback(this::onFilterChanged); @@ -186,6 +186,14 @@ public class RollerBlockEntity extends SmartBlockEntity { .rotateY(yRot) .rotateX(90); } + + @Override + public boolean testHit(BlockState state, Vec3 localHit) { + Vec3 offset = getLocalOffset(state); + if (offset == null) + return false; + return localHit.distanceTo(offset) < scale / 3; + } @Override protected Vec3 getLocalOffset(BlockState state) { diff --git a/src/main/java/com/simibubi/create/content/contraptions/components/actors/RollerRenderer.java b/src/main/java/com/simibubi/create/content/contraptions/components/actors/RollerRenderer.java index 7cfee53e0..a2e56d578 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/components/actors/RollerRenderer.java +++ b/src/main/java/com/simibubi/create/content/contraptions/components/actors/RollerRenderer.java @@ -23,8 +23,6 @@ import net.minecraft.world.phys.Vec3; public class RollerRenderer extends SmartBlockEntityRenderer { - private static final Vec3 PIVOT = new Vec3(0, -4, 16); - public RollerRenderer(Context context) { super(context); } @@ -37,19 +35,22 @@ public class RollerRenderer extends SmartBlockEntityRenderer BlockState blockState = be.getBlockState(); ms.pushPose(); - ms.translate(0, -.25, 0); - SuperByteBuffer superBuffer = CachedBufferer.partial(AllPartialModels.ROLLER_WHEEL, blockState) - .translate(0, .25, 0); + ms.translate(0, -0.25, 0); + SuperByteBuffer superBuffer = CachedBufferer.partial(AllPartialModels.ROLLER_WHEEL, blockState); Direction facing = blockState.getValue(RollerBlock.FACING); - HarvesterRenderer.transform(be.getLevel(), facing, superBuffer, be.getAnimatedSpeed(), PIVOT); - superBuffer.light(light) + superBuffer.translate(Vec3.atLowerCornerOf(facing.getNormal()) + .scale(17 / 16f)); + HarvesterRenderer.transform(be.getLevel(), facing, superBuffer, be.getAnimatedSpeed(), Vec3.ZERO); + superBuffer.translate(0, -.5, .5) + .rotateY(90) + .light(light) .renderInto(ms, buffer.getBuffer(RenderType.cutoutMipped())); ms.popPose(); CachedBufferer.partial(AllPartialModels.ROLLER_FRAME, blockState) - .rotateCentered(Direction.UP, AngleHelper.rad(AngleHelper.horizontalAngle(facing))) + .rotateCentered(Direction.UP, AngleHelper.rad(AngleHelper.horizontalAngle(facing) + 180)) .light(light) - .renderInto(ms, buffer.getBuffer(RenderType.solid())); + .renderInto(ms, buffer.getBuffer(RenderType.cutoutMipped())); } public static void renderInContraption(MovementContext context, VirtualRenderWorld renderWorld, @@ -63,23 +64,26 @@ public class RollerRenderer extends SmartBlockEntityRenderer if (context.contraption.stalled) speed = 0; - superBuffer.translate(0, .25, 0) + superBuffer.translate(Vec3.atLowerCornerOf(facing.getNormal()) + .scale(17 / 16f)) .transform(matrices.getModel()); - HarvesterRenderer.transform(context.world, facing, superBuffer, speed, PIVOT); + HarvesterRenderer.transform(context.world, facing, superBuffer, speed, Vec3.ZERO); PoseStack viewProjection = matrices.getViewProjection(); viewProjection.pushPose(); viewProjection.translate(0, -.25, 0); int contraptionWorldLight = ContraptionRenderDispatcher.getContraptionWorldLight(context, renderWorld); - superBuffer.light(matrices.getWorld(), contraptionWorldLight) + superBuffer.translate(0, -.5, .5) + .rotateY(90) + .light(matrices.getWorld(), contraptionWorldLight) .renderInto(viewProjection, buffers.getBuffer(RenderType.cutoutMipped())); viewProjection.popPose(); CachedBufferer.partial(AllPartialModels.ROLLER_FRAME, blockState) .transform(matrices.getModel()) - .rotateCentered(Direction.UP, AngleHelper.rad(AngleHelper.horizontalAngle(facing))) + .rotateCentered(Direction.UP, AngleHelper.rad(AngleHelper.horizontalAngle(facing) + 180)) .light(matrices.getWorld(), contraptionWorldLight) - .renderInto(viewProjection, buffers.getBuffer(RenderType.solid())); + .renderInto(viewProjection, buffers.getBuffer(RenderType.cutoutMipped())); } } diff --git a/src/main/java/com/simibubi/create/content/logistics/block/redstone/SmartObserverBlockEntity.java b/src/main/java/com/simibubi/create/content/logistics/block/redstone/SmartObserverBlockEntity.java index 382d4fdd6..cff50eb9e 100644 --- a/src/main/java/com/simibubi/create/content/logistics/block/redstone/SmartObserverBlockEntity.java +++ b/src/main/java/com/simibubi/create/content/logistics/block/redstone/SmartObserverBlockEntity.java @@ -50,6 +50,10 @@ public class SmartObserverBlockEntity extends SmartBlockEntity { @Override public void tick() { super.tick(); + + if (level.isClientSide()) + return; + BlockState state = getBlockState(); if (turnOffTicks > 0) { turnOffTicks--; diff --git a/src/main/resources/assets/create/models/block/mechanical_roller/block.json b/src/main/resources/assets/create/models/block/mechanical_roller/block.json index cba9d19ea..50dd9fadc 100644 --- a/src/main/resources/assets/create/models/block/mechanical_roller/block.json +++ b/src/main/resources/assets/create/models/block/mechanical_roller/block.json @@ -1,79 +1,22 @@ { "credit": "Made with Blockbench", - "ambientocclusion": false, "textures": { - "6": "create:block/mechanical_roller", - "7": "create:block/sticker_side", - "particle": "create:block/palettes/stone_types/polished/andesite_cut_polished" + "0": "create:block/roller_casing", + "particle": "create:block/andesite_casing" }, "elements": [ { - "from": [0, 6, 6], + "name": "Casing", + "from": [0, 0, 0], "to": [16, 16, 16], - "rotation": {"angle": 0, "axis": "x", "origin": [16, 0, 16]}, "faces": { - "north": {"uv": [0, 11, 8, 16], "texture": "#6"}, - "east": {"uv": [0, 11, 5, 16], "texture": "#6"}, - "south": {"uv": [0, 11, 8, 16], "texture": "#6"}, - "west": {"uv": [0, 11, 5, 16], "texture": "#6"}, - "up": {"uv": [8, 11, 16, 16], "rotation": 180, "texture": "#6"}, - "down": {"uv": [8, 11, 16, 16], "rotation": 180, "texture": "#6"} + "north": {"uv": [0, 8, 8, 16], "rotation": 180, "texture": "#0"}, + "east": {"uv": [8, 0, 0, 8], "texture": "#0"}, + "south": {"uv": [8, 8, 16, 16], "texture": "#0"}, + "west": {"uv": [0, 0, 8, 8], "texture": "#0"}, + "up": {"uv": [8, 0, 16, 8], "rotation": 90, "texture": "#0"}, + "down": {"uv": [0, 8, 8, 16], "texture": "#0"} } - }, - { - "from": [1, -2, 0], - "to": [15, 6, 16], - "rotation": {"angle": 0, "axis": "x", "origin": [16, 0, 16]}, - "faces": { - "north": {"uv": [1, 9, 15, 1], "texture": "#7"}, - "east": {"uv": [0, 11, 16, 3], "texture": "#7"}, - "south": {"uv": [1, 11, 15, 3], "texture": "#7"}, - "west": {"uv": [0, 11, 16, 3], "texture": "#7"}, - "up": {"uv": [1, 0, 15, 16], "rotation": 180, "texture": "#particle"} - } - } - ], - "display": { - "thirdperson_righthand": { - "rotation": [75, 45, 0], - "translation": [0, 2.5, 0], - "scale": [0.375, 0.375, 0.375] - }, - "thirdperson_lefthand": { - "rotation": [75, 45, 0], - "translation": [0, 2.5, 0], - "scale": [0.375, 0.375, 0.375] - }, - "firstperson_righthand": { - "rotation": [0, 45, 0], - "translation": [8.5, 2.25, 0], - "scale": [0.4, 0.4, 0.4] - }, - "firstperson_lefthand": { - "rotation": [0, 45, 0], - "translation": [8.5, 2.25, 0], - "scale": [0.4, 0.4, 0.4] - }, - "ground": { - "translation": [0, 3, 0], - "scale": [0.25, 0.25, 0.25] - }, - "gui": { - "rotation": [30, 225, 0], - "translation": [-1.5, 3.5, 0], - "scale": [0.45, 0.45, 0.45] - }, - "fixed": { - "translation": [0, 4.75, 0], - "scale": [0.5, 0.5, 0.5] - } - }, - "groups": [ - { - "name": "roller", - "origin": [8, 8, 8], - "color": 0, - "children": [0, 1] } ] } \ No newline at end of file diff --git a/src/main/resources/assets/create/models/block/mechanical_roller/frame.json b/src/main/resources/assets/create/models/block/mechanical_roller/frame.json index 1c913ccd8..489a68f42 100644 --- a/src/main/resources/assets/create/models/block/mechanical_roller/frame.json +++ b/src/main/resources/assets/create/models/block/mechanical_roller/frame.json @@ -1,66 +1,73 @@ { "credit": "Made with Blockbench", - "ambientocclusion": false, "textures": { - "6": "create:block/mechanical_roller", - "particle": "create:block/palettes/stone_types/polished/andesite_cut_polished" + "1": "create:block/roller_metal", + "particle": "create:block/roller_casing" }, "elements": [ { - "from": [-0.95, -8.05, -1.1], - "to": [16.95, 0.05, 25.1], - "rotation": {"angle": 0, "axis": "y", "origin": [8, 0, 8]}, + "name": "Axle left", + "from": [-2, -8, -5], + "to": [2, 0, 3], + "rotation": {"angle": 45, "axis": "x", "origin": [4, -4, -1]}, "faces": { - "north": {"uv": [0, 4, 9, 8], "texture": "#6"}, - "east": {"uv": [0, 0, 13, 4], "texture": "#6"}, - "south": {"uv": [0, 4, 9, 8], "texture": "#6"}, - "west": {"uv": [0, 0, 13, 4], "texture": "#6"}, - "up": {"uv": [0, 0, 13, 4], "rotation": 270, "texture": "#6"}, - "down": {"uv": [0, 0, 13, 4], "rotation": 270, "texture": "#6"} + "north": {"uv": [0, 4, 4, 6], "rotation": 90, "texture": "#1"}, + "east": {"uv": [0, 0, 4, 4], "rotation": 90, "texture": "#1"}, + "south": {"uv": [0, 6, 4, 8], "rotation": 90, "texture": "#1"}, + "west": {"uv": [0, 0, 4, 4], "texture": "#1"}, + "up": {"uv": [0, 4, 4, 6], "rotation": 90, "texture": "#1"}, + "down": {"uv": [4, 6, 0, 8], "rotation": 90, "texture": "#1"} } - } - ], - "display": { - "thirdperson_righthand": { - "rotation": [75, 45, 0], - "translation": [0, 2.5, 0], - "scale": [0.375, 0.375, 0.375] }, - "thirdperson_lefthand": { - "rotation": [75, 45, 0], - "translation": [0, 2.5, 0], - "scale": [0.375, 0.375, 0.375] - }, - "firstperson_righthand": { - "rotation": [0, 45, 0], - "translation": [8.5, 2.25, 0], - "scale": [0.4, 0.4, 0.4] - }, - "firstperson_lefthand": { - "rotation": [0, 45, 0], - "translation": [8.5, 2.25, 0], - "scale": [0.4, 0.4, 0.4] - }, - "ground": { - "translation": [0, 3, 0], - "scale": [0.25, 0.25, 0.25] - }, - "gui": { - "rotation": [30, 225, 0], - "translation": [-1.5, 3.5, 0], - "scale": [0.45, 0.45, 0.45] - }, - "fixed": { - "translation": [0, 4.75, 0], - "scale": [0.5, 0.5, 0.5] - } - }, - "groups": [ { - "name": "roller", - "origin": [8, 8, 8], - "color": 0, - "children": [0] + "name": "Axle right", + "from": [14, -8, -5], + "to": [18, 0, 3], + "rotation": {"angle": 45, "axis": "x", "origin": [4, -4, -1]}, + "faces": { + "north": {"uv": [0, 4, 4, 6], "rotation": 90, "texture": "#1"}, + "east": {"uv": [0, 0, 4, 4], "rotation": 90, "texture": "#1"}, + "south": {"uv": [0, 6, 4, 8], "rotation": 90, "texture": "#1"}, + "west": {"uv": [0, 0, 4, 4], "texture": "#1"}, + "up": {"uv": [0, 4, 4, 6], "rotation": 90, "texture": "#1"}, + "down": {"uv": [4, 6, 0, 8], "rotation": 90, "texture": "#1"} + } + }, + { + "name": "Chute", + "from": [1, -4, -8], + "to": [15, 12, 6], + "rotation": {"angle": 45, "axis": "x", "origin": [4, -4, -1]}, + "faces": { + "north": {"uv": [0.5, 8, 7.5, 16], "texture": "#1"}, + "east": {"uv": [8.5, 8, 15.5, 16], "texture": "#1"}, + "south": {"uv": [0.5, 8, 7.5, 16], "texture": "#1"}, + "west": {"uv": [8.5, 8, 15.5, 16], "texture": "#1"}, + "down": {"uv": [8, 16, 8.5, 8], "texture": "#1"} + } + }, + { + "name": "Chute top", + "from": [1, 5, -14], + "to": [15, 11, -8], + "rotation": {"angle": 45, "axis": "x", "origin": [4, -4, -1]}, + "faces": { + "north": {"uv": [9, 1, 16, 4], "texture": "#1"}, + "east": {"uv": [6, 1, 9, 4], "texture": "#1"}, + "west": {"uv": [9, 1, 6, 4], "texture": "#1"}, + "down": {"uv": [0.5, 13, 7.5, 10], "texture": "#1"} + } + }, + { + "name": "Cage", + "from": [1, -2, -14], + "to": [15, 5, -8], + "rotation": {"angle": 45, "axis": "x", "origin": [4, -4, -1]}, + "faces": { + "north": {"uv": [9, 4, 16, 8], "texture": "#1"}, + "east": {"uv": [6, 4, 9, 8], "texture": "#1"}, + "west": {"uv": [9, 4, 6, 8], "texture": "#1"} + } } ] } \ No newline at end of file diff --git a/src/main/resources/assets/create/models/block/mechanical_roller/item.json b/src/main/resources/assets/create/models/block/mechanical_roller/item.json index 9de894a3e..61be8f20d 100644 --- a/src/main/resources/assets/create/models/block/mechanical_roller/item.json +++ b/src/main/resources/assets/create/models/block/mechanical_roller/item.json @@ -1,119 +1,32 @@ { - "credit": "Made with Blockbench", - "ambientocclusion": false, + "parent": "block/block", + "loader": "forge:obj", + "flip-v": true, + "model": "create:models/block/mechanical_roller/item.obj", "textures": { - "5": "create:block/crushing_wheel", - "6": "create:block/mechanical_roller", - "particle": "create:block/palettes/stone_types/polished/andesite_cut_polished" + "wheel": "create:block/roller_wheel", + "metal": "create:block/roller_metal", + "casing": "create:block/roller_casing" }, - "elements": [ - { - "from": [0, -4, 11], - "to": [16, 6, 21], - "rotation": {"angle": 0, "axis": "x", "origin": [16, 0, 16]}, - "faces": { - "north": {"uv": [0, 11, 8, 16], "texture": "#6"}, - "east": {"uv": [0, 11, 5, 16], "texture": "#6"}, - "south": {"uv": [0, 11, 8, 16], "texture": "#6"}, - "west": {"uv": [0, 11, 5, 16], "texture": "#6"}, - "up": {"uv": [8, 11, 16, 16], "rotation": 180, "texture": "#6"}, - "down": {"uv": [8, 11, 16, 16], "rotation": 180, "texture": "#6"} - } - }, - { - "from": [-1, -8, -9.1], - "to": [17, 0, 17.1], - "rotation": {"angle": 0, "axis": "y", "origin": [16, 0, 14]}, - "faces": { - "north": {"uv": [0, 4, 9, 8], "texture": "#6"}, - "east": {"uv": [0, 0, 13, 4], "texture": "#6"}, - "south": {"uv": [0, 4, 9, 8], "texture": "#6"}, - "west": {"uv": [0, 0, 13, 4], "texture": "#6"}, - "up": {"uv": [0, 0, 13, 4], "rotation": 90, "texture": "#6"}, - "down": {"uv": [0, 0, 13, 4], "rotation": 90, "texture": "#6"} - } - }, - { - "from": [0.15, -16, -5], - "to": [15.85, 8, 5], - "rotation": {"angle": -22.5, "axis": "x", "origin": [8, -4, 0]}, - "faces": { - "north": {"uv": [0, 0, 16, 16], "texture": "#particle"}, - "east": {"uv": [15, 16, 16, 6], "rotation": 270, "texture": "#particle"}, - "south": {"uv": [0, 0, 16, 16], "rotation": 180, "texture": "#particle"}, - "west": {"uv": [15, 16, 16, 6], "rotation": 270, "texture": "#particle"}, - "up": {"uv": [0, 6, 16, 16], "rotation": 180, "texture": "#particle"}, - "down": {"uv": [0, 6, 16, 16], "rotation": 180, "texture": "#particle"} - } - }, - { - "from": [0.1, -9, -12], - "to": [15.9, 1, 12], - "rotation": {"angle": 22.5, "axis": "x", "origin": [8, -4, 0]}, - "faces": { - "north": {"uv": [0, 6, 16, 16], "texture": "#particle"}, - "east": {"uv": [16, 16, 15, 6], "rotation": 180, "texture": "#particle"}, - "south": {"uv": [0, 6, 16, 16], "rotation": 180, "texture": "#particle"}, - "west": {"uv": [16, 16, 15, 6], "rotation": 180, "texture": "#particle"}, - "up": {"uv": [0, 0, 16, 16], "rotation": 180, "texture": "#particle"}, - "down": {"uv": [0, 0, 16, 16], "rotation": 180, "texture": "#particle"} - } - }, - { - "from": [0.15, -9, -12], - "to": [15.85, 1, 12], - "rotation": {"angle": -22.5, "axis": "x", "origin": [8, -4, 0]}, - "faces": { - "north": {"uv": [0, 6, 16, 16], "texture": "#particle"}, - "east": {"uv": [16, 16, 15, 6], "rotation": 180, "texture": "#particle"}, - "south": {"uv": [0, 6, 16, 16], "rotation": 180, "texture": "#particle"}, - "west": {"uv": [16, 16, 15, 6], "rotation": 180, "texture": "#particle"}, - "up": {"uv": [0, 0, 16, 16], "rotation": 180, "texture": "#particle"}, - "down": {"uv": [0, 0, 16, 16], "rotation": 180, "texture": "#particle"} - } - }, - { - "from": [0.1, -16, -5], - "to": [15.9, 8, 5], - "rotation": {"angle": 22.5, "axis": "x", "origin": [8, -4, 0]}, - "faces": { - "north": {"uv": [0, 0, 16, 16], "texture": "#particle"}, - "east": {"uv": [15, 6, 16, 16], "rotation": 270, "texture": "#particle"}, - "south": {"uv": [0, 0, 16, 16], "rotation": 180, "texture": "#particle"}, - "west": {"uv": [15, 6, 16, 16], "rotation": 270, "texture": "#particle"}, - "up": {"uv": [0, 6, 16, 16], "rotation": 180, "texture": "#particle"}, - "down": {"uv": [0, 6, 16, 16], "rotation": 180, "texture": "#particle"} - } - }, - { - "from": [0.05, -15, -11], - "to": [15.95, 7, 11], - "rotation": {"angle": -22.5, "axis": "x", "origin": [8, -4, 0]}, - "faces": { - "east": {"uv": [2, 2, 14, 14], "texture": "#5"}, - "west": {"uv": [2, 2, 14, 14], "texture": "#5"} - } - } - ], "display": { "thirdperson_righthand": { - "rotation": [75, 45, 0], - "translation": [0, 2.5, 0], + "rotation": [-107.22, 0.99, -174.76], + "translation": [0, 2.25, 0], "scale": [0.375, 0.375, 0.375] }, "thirdperson_lefthand": { - "rotation": [75, 45, 0], - "translation": [0, 2.5, 0], + "rotation": [-107.22, 0.99, -174.76], + "translation": [0, 2.25, 0], "scale": [0.375, 0.375, 0.375] }, "firstperson_righthand": { - "rotation": [0, 45, 0], - "translation": [8.5, 2.25, 0], + "rotation": [0, -172, 0], + "translation": [0, 0, 3], "scale": [0.4, 0.4, 0.4] }, "firstperson_lefthand": { - "rotation": [0, 45, 0], - "translation": [8.5, 2.25, 0], + "rotation": [0, -172, 0], + "translation": [0, 0, 3], "scale": [0.4, 0.4, 0.4] }, "ground": { @@ -121,24 +34,14 @@ "scale": [0.25, 0.25, 0.25] }, "gui": { - "rotation": [30, 225, 0], - "translation": [-1.25, 4.75, 0], - "scale": [0.45, 0.45, 0.45] - }, - "head": { - "translation": [0, 11, -5.75] + "rotation": [30, 45, 0], + "translation": [-1.5, 2.25, 0], + "scale": [0.44, 0.44, 0.44] }, "fixed": { - "translation": [0, 4.75, 0], - "scale": [0.5, 0.5, 0.5] + "rotation": [0, 90, 0], + "translation": [-2, 1.75, 0], + "scale": [0.4, 0.4, 0.4] } - }, - "groups": [ - { - "name": "roller", - "origin": [8, 8, 8], - "color": 0, - "children": [0, 1, 2, 3, 4, 5, 6] - } - ] + } } \ No newline at end of file diff --git a/src/main/resources/assets/create/models/block/mechanical_roller/item.mtl b/src/main/resources/assets/create/models/block/mechanical_roller/item.mtl new file mode 100644 index 000000000..92b312fe9 --- /dev/null +++ b/src/main/resources/assets/create/models/block/mechanical_roller/item.mtl @@ -0,0 +1,11 @@ +# Blender 3.5.1 MTL File: 'roller.blend' +# www.blender.org + +newmtl roller_casing +map_Kd #casing + +newmtl roller_metal +map_Kd #metal + +newmtl roller_wheel +map_Kd #wheel diff --git a/src/main/resources/assets/create/models/block/mechanical_roller/item.obj b/src/main/resources/assets/create/models/block/mechanical_roller/item.obj new file mode 100644 index 000000000..95ff1448c --- /dev/null +++ b/src/main/resources/assets/create/models/block/mechanical_roller/item.obj @@ -0,0 +1,363 @@ +# Blender 3.5.1 +# www.blender.org +mtllib item.mtl +o Chute +v 0.125000 -0.000000 0.458947 +v 0.125000 -0.353554 0.812500 +v 0.125000 0.353553 0.812500 +v 0.125000 -0.000000 1.166054 +v 1.125000 -0.000000 1.166054 +v 1.125000 0.353553 0.812500 +v 1.125000 -0.353554 0.812500 +v 1.125000 -0.000000 0.458947 +v 0.875000 -0.353554 0.812500 +v -0.125000 0.353553 0.812500 +v -0.125000 -0.000000 1.166054 +v 0.875000 -0.000000 0.458947 +v -0.125000 -0.000000 0.458947 +v 0.875000 -0.000000 1.166054 +v 0.875000 0.353553 0.812500 +v -0.125000 -0.353554 0.812500 +v 0.875000 0.750000 1.123160 +v 0.875000 -0.000000 0.812500 +v 0.125000 0.310660 1.562500 +v 0.875000 0.310660 1.562500 +v 0.125000 -0.310660 1.562500 +v 0.125000 -0.750000 1.123160 +v 0.875000 -0.750000 1.123160 +v 0.875000 -0.310660 0.062500 +v 0.125000 -0.000000 0.812500 +v 0.875000 0.625000 1.071384 +v 0.875000 0.258883 1.437500 +v 0.875000 -0.258884 1.437500 +v 0.875000 -0.310660 1.562500 +v 0.875000 -0.750000 0.501840 +v 0.875000 -0.625000 0.553616 +v 0.875000 -0.625000 1.071383 +v 0.875000 0.310660 0.062500 +v 0.875000 -0.258884 0.187500 +v 0.875000 0.258883 0.187500 +v 0.875000 0.625000 0.553617 +v 0.875000 0.750000 0.501840 +v 0.125000 0.625000 1.071384 +v 0.125000 0.625000 0.553617 +v 0.125000 0.750000 0.501840 +v 0.125000 0.310660 0.062500 +v 0.125000 0.258883 0.187500 +v 0.125000 -0.258884 0.187500 +v 0.125000 -0.625000 0.553617 +v 0.125000 -0.310660 0.062500 +v 0.125000 -0.750000 0.501840 +v 0.125000 -0.625000 1.071384 +v 0.125000 -0.258884 1.437500 +v 0.125000 0.258883 1.437500 +v 0.125000 0.750000 1.123160 +v 0.062500 0.368718 1.592830 +v 0.062500 0.987437 0.974112 +v 0.062500 0.103553 1.327665 +v 0.062500 0.722272 0.708947 +v 0.937500 0.368718 1.592830 +v 0.937500 0.987437 0.974112 +v 0.937500 0.103553 1.327665 +v 0.937500 0.722272 0.708947 +v 0.062500 0.722272 1.239277 +v 0.062500 0.457107 0.974112 +v 0.937500 0.457107 0.974112 +v 0.937500 0.722272 1.239277 +v 0.000000 0.000000 1.000000 +v -0.000000 1.000000 1.000000 +v 0.000000 0.000000 0.000000 +v -0.000000 1.000000 0.000000 +v 1.000000 0.000000 1.000000 +v 1.000000 1.000000 1.000000 +v 1.000000 0.000000 -0.000000 +v 1.000000 1.000000 0.000000 +v 0.062500 0.059359 1.371859 +v 0.062500 0.766466 0.664752 +v 0.062500 -0.559359 0.753141 +v 0.062500 0.147747 0.046034 +v 0.937500 0.059359 1.371859 +v 0.937500 0.766466 0.664752 +v 0.937500 -0.559359 0.753141 +v 0.937500 0.147747 0.046034 +vn -0.0000 0.7071 -0.7071 +vn -0.0000 -0.7071 -0.7071 +vn 1.0000 -0.0000 -0.0000 +vn -0.0000 -0.7071 0.7071 +vn -1.0000 -0.0000 -0.0000 +vn -0.0000 0.7071 0.7071 +vn -0.0000 1.0000 -0.0000 +vn -0.0000 -0.0000 1.0000 +vn -0.0000 -1.0000 -0.0000 +vn -0.0000 -0.0000 -1.0000 +vt 0.250000 0.625000 +vt 0.000000 0.500000 +vt 0.250000 0.500000 +vt 0.000000 0.625000 +vt 0.000000 0.500000 +vt 0.250000 0.625000 +vt 0.000000 0.750000 +vt 0.000000 0.625000 +vt 0.250000 0.750000 +vt 0.000000 1.000000 +vt 0.000000 0.750000 +vt 0.250000 0.750000 +vt 0.250000 0.625000 +vt 0.000000 0.625000 +vt 0.250000 1.000000 +vt 0.250000 0.750000 +vt 0.250000 0.500000 +vt 0.000000 1.000000 +vt 0.000000 0.750000 +vt 0.000000 0.625000 +vt 0.250000 1.000000 +vt 0.250000 0.750000 +vt 0.000000 0.500000 +vt 0.250000 0.625000 +vt 0.250000 0.750000 +vt 0.000000 0.750000 +vt 0.000000 0.625000 +vt 0.000000 0.500000 +vt 0.250000 0.625000 +vt 0.000000 0.625000 +vt 0.250000 0.750000 +vt 0.250000 0.625000 +vt 0.000000 0.625000 +vt 0.312500 0.625000 +vt 0.312500 0.687500 +vt 0.312500 1.000000 +vt 0.687500 0.687500 +vt 0.000000 1.000000 +vt 0.312500 1.000000 +vt 0.312500 0.687500 +vt 0.000000 0.625000 +vt 0.312500 0.625000 +vt 0.312500 0.687500 +vt 0.312500 1.000000 +vt 0.000000 1.000000 +vt 0.312500 1.000000 +vt 0.312500 0.687500 +vt 0.000000 1.000000 +vt 0.312500 1.000000 +vt 0.312500 0.687500 +vt 0.000000 0.625000 +vt 0.312500 0.625000 +vt 0.312500 0.687500 +vt 0.312500 1.000000 +vt 0.000000 0.625000 +vt 0.312500 0.625000 +vt 0.312500 0.687500 +vt 0.312500 1.000000 +vt 0.687500 0.687500 +vt 0.375000 0.713542 +vt 0.375000 0.973958 +vt 0.562500 1.000000 +vt 0.375000 0.713542 +vt 0.375000 0.973958 +vt 0.375000 0.812500 +vt 0.375000 0.713542 +vt 0.375000 0.973958 +vt 0.375000 0.562500 +vt 0.000000 0.625000 +vt 0.312500 0.625000 +vt 0.312500 0.687500 +vt 0.312500 1.000000 +vt 0.000000 0.625000 +vt 0.312500 0.625000 +vt 0.312500 0.687500 +vt 0.312500 1.000000 +vt 0.375000 0.713542 +vt 0.375000 0.973958 +vt 0.812500 0.375000 +vt 0.375000 0.713542 +vt 0.375000 0.973958 +vt 0.562500 0.375000 +vt 0.000000 0.625000 +vt 0.312500 0.625000 +vt 0.312500 0.687500 +vt 0.312500 1.000000 +vt 0.375000 0.713542 +vt 0.375000 0.973958 +vt 1.000000 0.562500 +vt 0.375000 0.713542 +vt 0.375000 0.973958 +vt 1.000000 0.812500 +vt 0.375000 0.973958 +vt 0.375000 0.713542 +vt 0.812500 1.000000 +vt 0.312500 0.625000 +vt 0.312500 1.000000 +vt 0.000000 0.625000 +vt 0.312500 0.687500 +vt 0.375000 0.713542 +vt 0.812500 1.000000 +vt 0.375000 0.973958 +vt 0.562500 1.000000 +vt 0.375000 0.973958 +vt 0.375000 0.713542 +vt 0.000000 1.000000 +vt 0.312500 1.000000 +vt 0.312500 0.687500 +vt 0.000000 1.000000 +vt 0.312500 1.000000 +vt 0.312500 0.687500 +vt 0.375000 0.812500 +vt 0.375000 0.973958 +vt 0.375000 0.713542 +vt 0.375000 0.562500 +vt 0.375000 0.973958 +vt 0.375000 0.713542 +vt 0.562500 0.375000 +vt 0.375000 0.713542 +vt 0.375000 0.973958 +vt 0.000000 1.000000 +vt 0.312500 1.000000 +vt 0.312500 0.687500 +vt 0.000000 1.000000 +vt 0.312500 0.687500 +vt 0.312500 1.000000 +vt 0.812500 0.375000 +vt 0.375000 0.973958 +vt 0.375000 0.713542 +vt 1.000000 0.562500 +vt 0.375000 0.973958 +vt 0.375000 0.713542 +vt 0.375000 0.973958 +vt 1.000000 0.812500 +vt 0.375000 0.713542 +vt 0.000000 1.000000 +vt 0.312500 0.687500 +vt 0.312500 1.000000 +vt 0.562500 0.500000 +vt 0.562500 0.937500 +vt 0.375000 0.500000 +vt 0.375000 0.937500 +vt 1.000000 0.500000 +vt 0.562500 0.500000 +vt 1.000000 0.937500 +vt 0.562500 0.937500 +vt 0.375000 0.500000 +vt 0.375000 0.937500 +vt 0.031250 0.406250 +vt 0.562500 0.750000 +vt 0.031250 0.187500 +vt 0.375000 0.750000 +vt 0.468750 0.187500 +vt 0.375000 0.750000 +vt 0.468750 0.406250 +vt 1.000000 0.750000 +vt 0.562500 0.750000 +vt 0.000000 0.500000 +vt 0.500000 -0.000000 +vt 0.500000 0.500000 +vt 0.000000 1.000000 +vt 0.500000 1.000000 +vt 0.500000 0.000000 +vt 1.000000 0.000000 +vt 0.500000 0.500000 +vt 1.000000 0.500000 +vt 0.500000 1.000000 +vt 1.000000 1.000000 +vt 0.000000 -0.000000 +vt 0.000000 0.500000 +vt 0.500000 0.500000 +vt 0.000000 1.000000 +vt 0.000000 0.000000 +vt 0.500000 0.000000 +vt 0.000000 0.500000 +vt 0.500000 0.500000 +vt 0.500000 0.500000 +vt 1.000000 0.500000 +vt 0.500000 1.000000 +vt 0.968750 0.000000 +vt 0.031250 -0.000000 +vt 0.500000 0.500000 +vt 0.968750 0.500000 +vt 0.031250 0.500000 +vt 0.531250 -0.000000 +vt 0.468750 -0.000000 +vt 0.500000 0.000000 +vt 0.531250 0.500000 +vt 0.468750 0.500000 +vt 0.531250 -0.000000 +vt 0.468750 -0.000000 +vt 0.531250 0.500000 +vt 0.531250 0.500000 +vt 0.468750 0.500000 +vt 0.031250 -0.000000 +vt 0.968750 0.000000 +vt 0.531250 -0.000000 +vt 0.031250 0.500000 +vt 0.968750 0.500000 +s 0 +usemtl roller_metal +f 10/19/1 3/4/1 1/1/1 13/25/1 +f 9/17/2 12/23/2 8/14/2 7/13/2 +f 7/12/3 8/15/3 6/10/3 5/7/3 +f 4/5/4 11/20/4 16/32/4 2/3/4 +f 9/17/4 7/13/4 5/8/4 14/28/4 +f 11/21/5 10/18/5 13/26/5 16/31/5 +f 8/16/1 12/24/1 15/30/1 6/11/1 +f 16/32/2 13/27/2 1/2/2 2/3/2 +f 5/9/6 6/11/6 15/30/6 14/29/6 +f 4/6/6 3/4/6 10/19/6 11/22/6 +f 60/151/4 61/153/4 62/155/4 59/149/4 +f 55/143/6 62/156/6 59/150/6 51/139/6 +f 62/156/6 56/145/6 52/140/6 59/150/6 +f 57/147/3 61/154/3 62/157/3 55/144/3 +f 61/154/3 58/148/3 56/146/3 62/157/3 +f 51/139/5 59/150/5 60/152/5 53/141/5 +f 59/150/5 52/140/5 54/142/5 60/152/5 +f 71/180/5 72/183/5 74/188/5 73/185/5 +f 73/186/2 74/189/2 78/198/2 77/195/2 +f 77/196/3 78/199/3 76/193/3 75/190/3 +f 75/191/6 76/194/6 72/184/6 71/181/6 +f 73/187/4 77/197/4 75/192/4 71/182/4 +usemtl roller_wheel +f 40/107/7 50/136/7 17/33/7 37/96/7 +f 50/138/6 19/38/6 20/41/6 17/34/6 +f 36/93/3 37/97/3 17/35/3 26/60/3 +f 19/39/8 21/45/8 29/69/8 20/42/8 +f 26/61/3 17/36/3 20/43/3 27/63/3 +f 21/46/4 22/48/4 23/51/4 29/70/4 +f 27/64/3 20/44/3 29/71/3 28/66/3 +f 22/49/9 46/124/9 30/73/9 23/52/9 +f 28/67/3 29/72/3 23/53/3 32/80/3 +f 46/126/2 45/121/2 24/55/2 30/74/2 +f 32/81/3 23/54/3 30/75/3 31/77/3 +f 45/122/10 41/109/10 33/83/10 24/56/10 +f 31/78/3 30/76/3 24/57/3 34/87/3 +f 41/110/1 40/106/1 37/98/1 33/84/1 +f 34/88/3 24/58/3 33/85/3 35/90/3 +f 35/91/3 33/86/3 37/99/3 36/94/3 +f 18/37/3 35/92/3 36/95/3 +f 18/37/3 34/89/3 35/92/3 +f 18/37/3 31/79/3 34/89/3 +f 18/37/3 32/82/3 31/79/3 +f 25/59/5 38/101/5 39/103/5 +f 25/59/5 39/103/5 42/112/5 +f 25/59/5 42/112/5 43/115/5 +f 18/37/3 28/68/3 32/82/3 +f 25/59/5 44/118/5 47/127/5 +f 25/59/5 43/115/5 44/118/5 +f 25/59/5 47/127/5 48/130/5 +f 25/59/5 48/130/5 49/134/5 +f 18/37/3 27/65/3 28/68/3 +f 49/133/5 19/39/5 50/137/5 38/100/5 +f 25/59/5 49/134/5 38/101/5 +f 48/131/5 21/46/5 19/40/5 49/135/5 +f 47/128/5 22/49/5 21/47/5 48/132/5 +f 18/37/3 26/62/3 27/65/3 +f 43/116/5 45/122/5 46/125/5 44/119/5 +f 44/120/5 46/126/5 22/50/5 47/129/5 +f 42/113/5 41/110/5 45/123/5 43/117/5 +f 39/104/5 40/107/5 41/111/5 42/114/5 +f 18/37/3 36/95/3 26/62/3 +f 38/102/5 50/138/5 40/108/5 39/105/5 +usemtl roller_casing +f 65/164/10 66/166/10 70/177/10 69/174/10 +f 64/161/5 66/167/5 65/165/5 63/158/5 +f 69/175/9 67/169/9 63/159/9 65/165/9 +f 70/178/7 66/168/7 64/162/7 68/171/7 +f 69/176/3 70/179/3 68/172/3 67/170/3 +f 64/163/8 63/160/8 67/170/8 68/173/8 diff --git a/src/main/resources/assets/create/models/block/mechanical_roller/wheel.json b/src/main/resources/assets/create/models/block/mechanical_roller/wheel.json index 15a5e8002..b9c0451a5 100644 --- a/src/main/resources/assets/create/models/block/mechanical_roller/wheel.json +++ b/src/main/resources/assets/create/models/block/mechanical_roller/wheel.json @@ -1,114 +1,9 @@ { - "credit": "Made with Blockbench", - "ambientocclusion": false, + "parent": "block/block", + "loader": "forge:obj", + "flip-v": true, + "model": "create:models/block/mechanical_roller/wheel.obj", "textures": { - "5": "create:block/crushing_wheel", - "particle": "create:block/palettes/stone_types/polished/andesite_cut_polished" - }, - "elements": [ - { - "from": [0.15, -16, 11], - "to": [15.85, 8, 21], - "rotation": {"angle": 22.5, "axis": "x", "origin": [8, -4, 16]}, - "faces": { - "north": {"uv": [0, 0, 16, 16], "rotation": 180, "texture": "#particle"}, - "east": {"uv": [15, 16, 16, 6], "rotation": 270, "texture": "#particle"}, - "south": {"uv": [0, 0, 16, 16], "texture": "#particle"}, - "west": {"uv": [15, 16, 16, 6], "rotation": 270, "texture": "#particle"}, - "up": {"uv": [0, 6, 16, 16], "texture": "#particle"}, - "down": {"uv": [0, 6, 16, 16], "texture": "#particle"} - } - }, - { - "from": [0.1, -9, 4], - "to": [15.9, 1, 28], - "rotation": {"angle": -22.5, "axis": "x", "origin": [8, -4, 16]}, - "faces": { - "north": {"uv": [0, 6, 16, 16], "rotation": 180, "texture": "#particle"}, - "east": {"uv": [16, 16, 15, 6], "rotation": 180, "texture": "#particle"}, - "south": {"uv": [0, 6, 16, 16], "texture": "#particle"}, - "west": {"uv": [16, 16, 15, 6], "rotation": 180, "texture": "#particle"}, - "up": {"uv": [0, 0, 16, 16], "texture": "#particle"}, - "down": {"uv": [0, 0, 16, 16], "texture": "#particle"} - } - }, - { - "from": [0.15, -9, 4], - "to": [15.85, 1, 28], - "rotation": {"angle": 22.5, "axis": "x", "origin": [8, -4, 16]}, - "faces": { - "north": {"uv": [0, 6, 16, 16], "rotation": 180, "texture": "#particle"}, - "east": {"uv": [16, 16, 15, 6], "rotation": 180, "texture": "#particle"}, - "south": {"uv": [0, 6, 16, 16], "texture": "#particle"}, - "west": {"uv": [16, 16, 15, 6], "rotation": 180, "texture": "#particle"}, - "up": {"uv": [0, 0, 16, 16], "texture": "#particle"}, - "down": {"uv": [0, 0, 16, 16], "texture": "#particle"} - } - }, - { - "from": [0.1, -16, 11], - "to": [15.9, 8, 21], - "rotation": {"angle": -22.5, "axis": "x", "origin": [8, -4, 16]}, - "faces": { - "north": {"uv": [0, 0, 16, 16], "rotation": 180, "texture": "#particle"}, - "east": {"uv": [15, 6, 16, 16], "rotation": 270, "texture": "#particle"}, - "south": {"uv": [0, 0, 16, 16], "texture": "#particle"}, - "west": {"uv": [15, 6, 16, 16], "rotation": 270, "texture": "#particle"}, - "up": {"uv": [0, 6, 16, 16], "texture": "#particle"}, - "down": {"uv": [0, 6, 16, 16], "texture": "#particle"} - } - }, - { - "from": [0.05, -15, 5], - "to": [15.95, 7, 27], - "rotation": {"angle": 22.5, "axis": "x", "origin": [8, -4, 16]}, - "faces": { - "east": {"uv": [2, 2, 14, 14], "texture": "#5"}, - "west": {"uv": [2, 2, 14, 14], "texture": "#5"} - } - } - ], - "display": { - "thirdperson_righthand": { - "rotation": [75, 45, 0], - "translation": [0, 2.5, 0], - "scale": [0.375, 0.375, 0.375] - }, - "thirdperson_lefthand": { - "rotation": [75, 45, 0], - "translation": [0, 2.5, 0], - "scale": [0.375, 0.375, 0.375] - }, - "firstperson_righthand": { - "rotation": [0, 45, 0], - "translation": [8.5, 2.25, 0], - "scale": [0.4, 0.4, 0.4] - }, - "firstperson_lefthand": { - "rotation": [0, 45, 0], - "translation": [8.5, 2.25, 0], - "scale": [0.4, 0.4, 0.4] - }, - "ground": { - "translation": [0, 3, 0], - "scale": [0.25, 0.25, 0.25] - }, - "gui": { - "rotation": [30, 225, 0], - "translation": [-1.5, 3.5, 0], - "scale": [0.45, 0.45, 0.45] - }, - "fixed": { - "translation": [0, 4.75, 0], - "scale": [0.5, 0.5, 0.5] - } - }, - "groups": [ - { - "name": "roller", - "origin": [8, 8, 8], - "color": 0, - "children": [0, 1, 2, 3, 4] - } - ] + "wheel": "create:block/roller_wheel" + } } \ No newline at end of file diff --git a/src/main/resources/assets/create/models/block/mechanical_roller/wheel.mtl b/src/main/resources/assets/create/models/block/mechanical_roller/wheel.mtl new file mode 100644 index 000000000..077f9f144 --- /dev/null +++ b/src/main/resources/assets/create/models/block/mechanical_roller/wheel.mtl @@ -0,0 +1,5 @@ +# Blender 3.5.1 MTL File: 'roller.blend' +# www.blender.org + +newmtl roller_wheel +map_Kd #wheel diff --git a/src/main/resources/assets/create/models/block/mechanical_roller/wheel.obj b/src/main/resources/assets/create/models/block/mechanical_roller/wheel.obj new file mode 100644 index 000000000..bad435ef7 --- /dev/null +++ b/src/main/resources/assets/create/models/block/mechanical_roller/wheel.obj @@ -0,0 +1,352 @@ +# Blender 3.5.1 +# www.blender.org +mtllib wheel.mtl +o Bounding.001 +v 7.999996 -16.000000 -0.000004 +v 7.999996 0.000000 -0.000004 +v 8.000006 -16.000000 15.999996 +v 8.000006 0.000000 15.999996 +v -8.000004 -16.000000 0.000005 +v -8.000004 0.000000 0.000005 +v -7.999995 -16.000000 16.000006 +v -7.999995 0.000000 16.000006 +v 8.000006 -16.000000 15.999996 +v 8.000006 0.000000 15.999996 +v 8.000014 -16.000000 31.999996 +v 8.000014 0.000000 31.999996 +v -7.999995 -16.000000 16.000006 +v -7.999995 0.000000 16.000006 +v -7.999986 -16.000000 32.000004 +v -7.999986 0.000000 32.000004 +v 7.999996 -32.000000 -0.000004 +v 7.999996 -16.000000 -0.000004 +v 8.000006 -32.000000 15.999996 +v 8.000006 -16.000000 15.999996 +v -8.000004 -32.000000 0.000005 +v -8.000004 -16.000000 0.000005 +v -7.999995 -32.000000 16.000006 +v -7.999995 -16.000000 16.000006 +v 8.000006 -32.000000 15.999996 +v 8.000006 -16.000000 15.999996 +v 8.000014 -32.000000 31.999996 +v 8.000014 -16.000000 31.999996 +v -7.999995 -32.000000 16.000006 +v -7.999995 -16.000000 16.000006 +v -7.999986 -32.000000 32.000004 +v -7.999986 -16.000000 32.000004 +vn 1.0000 -0.0000 -0.0000 +vn -0.0000 -0.0000 1.0000 +vn -1.0000 -0.0000 -0.0000 +vn -0.0000 -0.0000 -1.0000 +vn -0.0000 -1.0000 -0.0000 +vn -0.0000 1.0000 -0.0000 +vt 0.375000 0.000000 +vt 0.375000 1.000000 +vt 0.125000 0.750000 +vt 0.625000 0.000000 +vt 0.625000 1.000000 +vt 0.875000 0.750000 +vt 0.375000 0.250000 +vt 0.125000 0.500000 +vt 0.625000 0.250000 +vt 0.875000 0.500000 +vt 0.375000 0.750000 +vt 0.625000 0.750000 +vt 0.375000 0.500000 +vt 0.625000 0.500000 +vt 0.375000 0.000000 +vt 0.375000 1.000000 +vt 0.125000 0.750000 +vt 0.625000 0.000000 +vt 0.625000 1.000000 +vt 0.875000 0.750000 +vt 0.375000 0.250000 +vt 0.125000 0.500000 +vt 0.625000 0.250000 +vt 0.875000 0.500000 +vt 0.375000 0.750000 +vt 0.625000 0.750000 +vt 0.375000 0.500000 +vt 0.625000 0.500000 +vt 0.375000 0.000000 +vt 0.375000 1.000000 +vt 0.125000 0.750000 +vt 0.625000 0.000000 +vt 0.625000 1.000000 +vt 0.875000 0.750000 +vt 0.375000 0.250000 +vt 0.125000 0.500000 +vt 0.625000 0.250000 +vt 0.875000 0.500000 +vt 0.375000 0.750000 +vt 0.625000 0.750000 +vt 0.375000 0.500000 +vt 0.625000 0.500000 +vt 0.375000 0.000000 +vt 0.375000 1.000000 +vt 0.125000 0.750000 +vt 0.625000 0.000000 +vt 0.625000 1.000000 +vt 0.875000 0.750000 +vt 0.375000 0.250000 +vt 0.125000 0.500000 +vt 0.625000 0.250000 +vt 0.875000 0.500000 +vt 0.375000 0.750000 +vt 0.625000 0.750000 +vt 0.375000 0.500000 +vt 0.625000 0.500000 +s 0 +f 1/1/1 2/4/1 4/9/1 3/7/1 +f 3/7/2 4/9/2 8/14/2 7/13/2 +f 7/13/3 8/14/3 6/12/3 5/11/3 +f 5/11/4 6/12/4 2/5/4 1/2/4 +f 3/8/5 7/13/5 5/11/5 1/3/5 +f 8/14/6 4/10/6 2/6/6 6/12/6 +f 9/15/1 10/18/1 12/23/1 11/21/1 +f 11/21/2 12/23/2 16/28/2 15/27/2 +f 15/27/3 16/28/3 14/26/3 13/25/3 +f 13/25/4 14/26/4 10/19/4 9/16/4 +f 11/22/5 15/27/5 13/25/5 9/17/5 +f 16/28/6 12/24/6 10/20/6 14/26/6 +f 17/29/1 18/32/1 20/37/1 19/35/1 +f 19/35/2 20/37/2 24/42/2 23/41/2 +f 23/41/3 24/42/3 22/40/3 21/39/3 +f 21/39/4 22/40/4 18/33/4 17/30/4 +f 19/36/5 23/41/5 21/39/5 17/31/5 +f 24/42/6 20/38/6 18/34/6 22/40/6 +f 25/43/1 26/46/1 28/51/1 27/49/1 +f 27/49/2 28/51/2 32/56/2 31/55/2 +f 31/55/3 32/56/3 30/54/3 29/53/3 +f 29/53/4 30/54/4 26/47/4 25/44/4 +f 27/50/5 31/55/5 29/53/5 25/45/5 +f 32/56/6 28/52/6 26/48/6 30/54/6 +o Bounding_2.001 +v -6.062201 -31.869280 75.933762 +v -6.062201 -7.869280 75.933762 +v -6.062201 -31.869280 51.933758 +v -6.062201 -7.869280 51.933758 +v 5.937799 -31.869280 75.933762 +v 5.937799 -7.869280 75.933762 +v 5.937799 -31.869280 51.933758 +v 5.937799 -7.869280 51.933758 +vn -1.0000 -0.0000 -0.0000 +vn -0.0000 -0.0000 -1.0000 +vn 1.0000 -0.0000 -0.0000 +vn -0.0000 -0.0000 1.0000 +vn -0.0000 -1.0000 -0.0000 +vn -0.0000 1.0000 -0.0000 +vt 0.375000 0.000000 +vt 0.375000 1.000000 +vt 0.125000 0.750000 +vt 0.625000 0.000000 +vt 0.625000 1.000000 +vt 0.875000 0.750000 +vt 0.375000 0.250000 +vt 0.125000 0.500000 +vt 0.625000 0.250000 +vt 0.875000 0.500000 +vt 0.375000 0.750000 +vt 0.625000 0.750000 +vt 0.375000 0.500000 +vt 0.625000 0.500000 +s 0 +f 33/57/7 34/60/7 36/65/7 35/63/7 +f 35/63/8 36/65/8 40/70/8 39/69/8 +f 39/69/9 40/70/9 38/68/9 37/67/9 +f 37/67/10 38/68/10 34/61/10 33/58/10 +f 35/64/11 39/69/11 37/67/11 33/59/11 +f 40/70/12 36/66/12 34/62/12 38/68/12 +o Wheel.003 +v 0.810660 1.250000 0.125000 +v 0.500000 0.500000 0.125000 +v 1.250000 0.810660 0.875000 +v 1.250000 0.810660 0.125000 +v 1.250000 0.189340 0.875000 +v 0.810660 -0.250000 0.875000 +v 0.810660 -0.250000 0.125000 +v -0.250000 0.189340 0.125000 +v 0.500000 0.500000 0.875000 +v 0.758883 1.125000 0.125000 +v 1.125000 0.758883 0.125000 +v 1.125000 0.241116 0.125000 +v 1.250000 0.189340 0.125000 +v 0.189340 -0.250000 0.125000 +v 0.241116 -0.125000 0.125000 +v 0.758883 -0.125000 0.125000 +v -0.250000 0.810660 0.125000 +v -0.125000 0.241117 0.125000 +v -0.125000 0.758884 0.125000 +v 0.241116 1.125000 0.125000 +v 0.189340 1.250000 0.125000 +v 0.758884 1.125000 0.875000 +v 0.241117 1.125000 0.875000 +v 0.189340 1.250000 0.875000 +v -0.250000 0.810660 0.875000 +v -0.125000 0.758883 0.875000 +v -0.125000 0.241116 0.875000 +v 0.241117 -0.125000 0.875000 +v -0.250000 0.189340 0.875000 +v 0.189340 -0.250000 0.875000 +v 0.758884 -0.125000 0.875000 +v 1.125000 0.241116 0.875000 +v 1.125000 0.758883 0.875000 +v 0.810660 1.250000 0.875000 +vn -0.0000 1.0000 -0.0000 +vn 0.7071 0.7071 -0.0000 +vn -0.0000 -0.0000 -1.0000 +vn 1.0000 -0.0000 -0.0000 +vn 0.7071 -0.7071 -0.0000 +vn -0.0000 -1.0000 -0.0000 +vn -0.7071 -0.7071 -0.0000 +vn -1.0000 -0.0000 -0.0000 +vn -0.7071 0.7071 -0.0000 +vn -0.0000 -0.0000 1.0000 +vt 0.000000 0.625000 +vt 0.312500 0.625000 +vt 0.312500 0.687500 +vt 0.312500 1.000000 +vt 0.687500 0.687500 +vt 0.000000 1.000000 +vt 0.312500 1.000000 +vt 0.312500 0.687500 +vt 0.000000 0.625000 +vt 0.312500 0.625000 +vt 0.312500 0.687500 +vt 0.312500 1.000000 +vt 0.000000 1.000000 +vt 0.312500 1.000000 +vt 0.312500 0.687500 +vt 0.000000 1.000000 +vt 0.312500 1.000000 +vt 0.312500 0.687500 +vt 0.000000 0.625000 +vt 0.312500 0.625000 +vt 0.312500 0.687500 +vt 0.312500 1.000000 +vt 0.000000 0.625000 +vt 0.312500 0.625000 +vt 0.312500 0.687500 +vt 0.312500 1.000000 +vt 0.687500 0.687500 +vt 0.375000 0.713542 +vt 0.375000 0.973958 +vt 0.562500 1.000000 +vt 0.375000 0.713542 +vt 0.375000 0.973958 +vt 0.375000 0.812500 +vt 0.375000 0.713542 +vt 0.375000 0.973958 +vt 0.375000 0.562500 +vt 0.000000 0.625000 +vt 0.312500 0.625000 +vt 0.312500 0.687500 +vt 0.312500 1.000000 +vt 0.000000 0.625000 +vt 0.312500 0.625000 +vt 0.312500 0.687500 +vt 0.312500 1.000000 +vt 0.375000 0.713542 +vt 0.375000 0.973958 +vt 0.812500 0.375000 +vt 0.375000 0.713542 +vt 0.375000 0.973958 +vt 0.562500 0.375000 +vt 0.000000 0.625000 +vt 0.312500 0.625000 +vt 0.312500 0.687500 +vt 0.312500 1.000000 +vt 0.375000 0.713542 +vt 0.375000 0.973958 +vt 1.000000 0.562500 +vt 0.375000 0.713542 +vt 0.375000 0.973958 +vt 1.000000 0.812500 +vt 0.375000 0.973958 +vt 0.375000 0.713542 +vt 0.812500 1.000000 +vt 0.312500 0.625000 +vt 0.312500 1.000000 +vt 0.000000 0.625000 +vt 0.312500 0.687500 +vt 0.375000 0.713542 +vt 0.812500 1.000000 +vt 0.375000 0.973958 +vt 0.562500 1.000000 +vt 0.375000 0.973958 +vt 0.375000 0.713542 +vt 0.000000 1.000000 +vt 0.312500 1.000000 +vt 0.312500 0.687500 +vt 0.000000 1.000000 +vt 0.312500 1.000000 +vt 0.312500 0.687500 +vt 0.375000 0.812500 +vt 0.375000 0.973958 +vt 0.375000 0.713542 +vt 0.375000 0.562500 +vt 0.375000 0.973958 +vt 0.375000 0.713542 +vt 0.562500 0.375000 +vt 0.375000 0.713542 +vt 0.375000 0.973958 +vt 0.000000 1.000000 +vt 0.312500 1.000000 +vt 0.312500 0.687500 +vt 0.000000 1.000000 +vt 0.312500 0.687500 +vt 0.312500 1.000000 +vt 0.812500 0.375000 +vt 0.375000 0.973958 +vt 0.375000 0.713542 +vt 1.000000 0.562500 +vt 0.375000 0.973958 +vt 0.375000 0.713542 +vt 0.375000 0.973958 +vt 1.000000 0.812500 +vt 0.375000 0.713542 +vt 0.000000 1.000000 +vt 0.312500 0.687500 +vt 0.312500 1.000000 +s 0 +usemtl roller_wheel +f 64/145/13 74/174/13 41/71/13 61/134/13 +f 74/176/14 43/76/14 44/79/14 41/72/14 +f 60/131/15 61/135/15 41/73/15 50/98/15 +f 43/77/16 45/83/16 53/107/16 44/80/16 +f 50/99/15 41/74/15 44/81/15 51/101/15 +f 45/84/17 46/86/17 47/89/17 53/108/17 +f 51/102/15 44/82/15 53/109/15 52/104/15 +f 46/87/18 70/162/18 54/111/18 47/90/18 +f 52/105/15 53/110/15 47/91/15 56/118/15 +f 70/164/19 69/159/19 48/93/19 54/112/19 +f 56/119/15 47/92/15 54/113/15 55/115/15 +f 69/160/20 65/147/20 57/121/20 48/94/20 +f 55/116/15 54/114/15 48/95/15 58/125/15 +f 65/148/21 64/144/21 61/136/21 57/122/21 +f 58/126/15 48/96/15 57/123/15 59/128/15 +f 59/129/15 57/124/15 61/137/15 60/132/15 +f 42/75/15 59/130/15 60/133/15 +f 42/75/15 58/127/15 59/130/15 +f 42/75/15 55/117/15 58/127/15 +f 42/75/15 56/120/15 55/117/15 +f 49/97/22 62/139/22 63/141/22 +f 49/97/22 63/141/22 66/150/22 +f 49/97/22 66/150/22 67/153/22 +f 42/75/15 52/106/15 56/120/15 +f 49/97/22 68/156/22 71/165/22 +f 49/97/22 67/153/22 68/156/22 +f 49/97/22 71/165/22 72/168/22 +f 49/97/22 72/168/22 73/172/22 +f 42/75/15 51/103/15 52/106/15 +f 73/171/22 43/77/22 74/175/22 62/138/22 +f 49/97/22 73/172/22 62/139/22 +f 72/169/22 45/84/22 43/78/22 73/173/22 +f 71/166/22 46/87/22 45/85/22 72/170/22 +f 42/75/15 50/100/15 51/103/15 +f 67/154/22 69/160/22 70/163/22 68/157/22 +f 68/158/22 70/164/22 46/88/22 71/167/22 +f 66/151/22 65/148/22 69/161/22 67/155/22 +f 63/142/22 64/145/22 65/149/22 66/152/22 +f 42/75/15 60/133/15 50/100/15 +f 62/140/22 74/176/22 64/146/22 63/143/22 diff --git a/src/main/resources/assets/create/textures/block/observer_top.png b/src/main/resources/assets/create/textures/block/observer_top.png new file mode 100644 index 0000000000000000000000000000000000000000..6d313c5394277b9765dda6f3005843727cd8debb GIT binary patch literal 389 zcmV;00eb$4P)Px$KS@MER49>+QB6z3KoET`IW%r}Ypa1a5e30Q4x&dtE+P_gkcwA-pjYvSh#*R# zMN!+NLP2G>oAl^mWSb^IoWrv7cHVn4JC*&T1J`Nce=&R=S+3LCa@$_V$-POX0SL~_ zUCoks`e_01I*#A;Sqpk(CeGqKbpC^yjUVgr2y1zo6=qw^auU> zrvV`=cFi!WSs8lhg#o3^u1&wbO*OOaJR$1_pzW*`!91ZC22x3rt~VQR@kh3x3P36? zI0ulVbE8x=DRDSCJ|y{u5WFsOCOS=j34*h%@P_NrDL50Hb+o`c|_zd46_UETvAQQsX#UI6S{cYL=L>Opv4jbvg%7 j+1cA=jFom$46XGKj`4WPFQQ6h00000NkvXXu0mjf>7S!& literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/create/textures/block/roller_casing.png b/src/main/resources/assets/create/textures/block/roller_casing.png new file mode 100644 index 0000000000000000000000000000000000000000..a3feaa939c3c4a5c5684a375929cbbad591dff72 GIT binary patch literal 7204 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 aQNvA>8lFFd{vWWQ^QBjIe7b%AasLDvg`3_0 literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/create/textures/block/roller_metal.png b/src/main/resources/assets/create/textures/block/roller_metal.png new file mode 100644 index 0000000000000000000000000000000000000000..37ddf2921c173bfeef78fffb11aabf1c7a8cfaa0 GIT binary patch literal 6325 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 Hp2>d$%a3WG literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/create/textures/block/roller_wheel.png b/src/main/resources/assets/create/textures/block/roller_wheel.png new file mode 100644 index 0000000000000000000000000000000000000000..13a1cb42f30badb225ca8453c48dbfa9c5a057ef GIT binary patch literal 5729 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 UgR*}Bts5hTjy&$Z!ROBY7ahhjng9R* literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/create/textures/block/smart_observer.png b/src/main/resources/assets/create/textures/block/smart_observer.png index b4c7a86c79e23f9b497a38b562ec933ca3f99f6f..1177e6582026188fb7bae230766e0df71c042b53 100644 GIT binary patch delta 512 zcmV+b0{{Kj0*?fc8Gix*005AYXf^-<00DDSM?wIu&K&6g00GHKL_t(2k&TdDZ_-d4 z#($k1<(xWRDj)^a?!`C)PKidmneonK#+djiy!L~6W0v> zg-sJLO6p9^vj4@&InPVZ^M90APb%ew3>TY?+JRbL$lR@7DSws>HJMc7@vZe*<;Bw} zKk06**NP=0YFT63-mUj{zVuXJzu~6RA`QO=gFrX7Z6In{fpKixhdqD4;R0#^wHi*V z;lz#EkOtD&z;3-i?4O3IriO>BSEH7NW(Ln|D>;Bkr*ez%&$qAJfbz0hmWkO5F6|wi zs_!pdUNPr4KY!E#DWvCnOH1>iqS^c!fWUHjar;MeCYLsJA)Ylp-uSd5r3A8uA%y^@ zr<4J^cs;M{`V5da)7!t5JrpS;faCj~?@J+KQ$r+RV{`g+>AYDuy!Rj{Wkl0}m=Fci z3{yok?P&FJ!t?TG;crVoA~}~ejE?yEZeue9rI1;}0C_ym`=?gmXfQgNOj4-?BmmDl z3G#gFc7uB`%G&ca5!HZ;3^iF|Dt=!%Ln30000uX#_uj#byHUhctYH8eCbGBQ0pJSizD zMnXc5kB@qKdUyl@N&y08Wo1`aS0w=hJ3Bk7*siev000SaNPk�ic000ic0Tn1p zfB*mhm`OxIR47wbjoS{xAPhs(QZ6kdffbhj|I;~DUuFr*IZ6!C_NSe;aKw~iOfenl z2w2Fugi!EcIRlh(p4W9gRtnKhf7+=wuG|D_t#YlzRavF?K7_S0leW*@WXv_ilLFk| zCYXmH8GtrZ89=xZPfCo6w^T9n10Xl_1DJ`}D+HnEypJ*G9B?C>Yk9&yYfT5fD!%Q( Z><8+g45f5&S)~8~002ovPDHLkV1hO1e?b5M diff --git a/src/main/resources/assets/create/textures/block/smart_observer_front.png b/src/main/resources/assets/create/textures/block/smart_observer_front.png index 6d395e0d7a4c18587faa86a0dc2ffb0978a4182b..7ad3f7bc11045756c94415e41bdbda29eae315b0 100644 GIT binary patch delta 503 zcmVBL_t(2k&Tf-PZLoT zg}>qui_>`{)k21$W~`y@q!sN7H?B=^Vd8Hv(YSEI)?dS3gbjo=F{B$XO>CnPvC*0# zWf%iVao#Xcf(sW98`2olvwHWObMJlcyu`wzN;x;daHuzYt$&=GxIcHpEv2>bam_TF ztBuOj#~1op&|Gb}rF7D9dY-ql-TnOIKm&GL@y*Ow27VtMDPPa?fTZK7#-8UL9-QvB zVn9<=yCvH#X{JZ}GLXRocDB1=_q>0ri-rdeCzFoDRZErG*(rdt{YruU&h@t)An{_Z zeC_(^kdHq3b$_nCzml4@ZmT*z?Om4jvE%^%>F0NCDwEFVZpkQClrVH)pj41i-0lP; zfNf1LS8L1Fnwu{eDWQC}W!aWxq=b*E&<`1-9K t9m~sU{xjm}_ykDI+`FsmI>RB3<3F>=wa@K7HS(b8bP@_tQDQ@6`T(-Lt;Ze}7--^;L224rbWe*tj`4nVOg!J$iKg`t@_? z&h6{#OHEA$8c=&RAXMsn3WHAE+-yslY6xHx*0E$lVba4#P z2oCLy<~yvw!!lPuu9I1!{m|e1Tc$rV*&j}It5Cf4??z^EJO9Do4-O0RwX++lJr~k* z>k-hL`@D2+_7ayZm*uTL)*3(m!^ZbCDP&GiBWH`w1YP0HOzS?W31?T&yX7)#Y0}c` z{nNA}ES$fot~saWCD?IsZA?gbzPvz2{JDKEColUZFT&Jg*#1bP0l+XkK9btQs diff --git a/src/main/resources/assets/create/textures/block/smart_observer_powered.png b/src/main/resources/assets/create/textures/block/smart_observer_powered.png index d01c13374ede8bc15d7b40005e782b07b138b50d..bf6dda9cebdfd5278f2aa5d6af13957450f81569 100644 GIT binary patch delta 346 zcmV-g0j2)&0+IueL4SBqOjJd3M=_phM`$-J&Y)WN%WV7HegEr>|MI1;c~9cCW5147 z|M|Z#IyhcnSw1BwH8eOYD=tq@Pg7S>B`+;XPfBTNV$A>mt^fc}HaTZuVOdyMc6Dro zf_Iky0A>IHSUx_Vo0CQ?Fm-WpKR!Z9NJx>6g}k<|t*D^(vVRe%00009a7bBm000id z000id0mpBsWB>pFqe(D7vmayGEfzrv6je8{Yp9xiEI9VgLXD07*qoM6N<$g7!3!rvLx| delta 313 zcmV-90mlB41MvcoL4Q|JOjJd3M=_phM`$-J&Y)WN%WV7HegEr>uX#_uj#byHUhctY zH8eCbGBQ0pJSizDS~ojJLPC#^k9vA~M=dZuEH2Fe0ImQ4S65eMWo1S!FqZ%TW&i*? zJ39dhrCR_1010qNS#tmY4#EHc4#EKyC`y0;005&&L_t(2Q-4*BQ4WM43`DC4qR>)U z6j1Je&Mof#ID}^MGMxfUFU>HiMH{2F(PlA=lEAuJrL24z>ngz7ZQJ+l8P)>K@X`#< zqeD+3?;Sb^=t5wMF($(BK?KgnnJJcfNhJbt<` zzqIrxjJ^mEout`Dj`Q|)2hd(N8%ANe@xKVX3-NyL>PF?x?#{j;jakw#s5Mshz8;Ci zl4VK>c)L4Kw0~dU#@fc*c<<+5=OJ45Zhhr;)$X`gfNG@_+fP+5Xk);TM(&!KEM2YK z0#-MlXLS7l@=~@T6NYUm^Du%{&pSQ!Vwp%&W_A6hW#tNmOX-#81z~u(R>12I&!Y&} zO|}fq0mI0qJchRQVoT2JK-ntJXsO%l19rz1z_aF~dPZ%1s&1eZkk91?N_{ywwmWYG z@afPVo+&^L{YiCPOZqrG3jl5H{yoz)XM~xA@B6<20b8T%=pn=iGv*@27Kq->Loox@Uc*|Ng$v>#O449n3H_F)=bSvbC{sb8=E;WcFfY zs$gNXwzk&P)U2wi>hJGQO-&6C59egd6akvaS>RD0S$G|Nko@rO$&VE!!#Ma+}vW_n6iDxu4HP=kszYx+E)ca56gf zXv(@r2`OLnGkaSsrv)5b8gTac<4WIk9RJ=03xtSl<$D;U{qF*!-Rd<7 za}}}`3@^>9VZ6NJtN4ZA5{sQ%Q_if+^O>=*F>Lm>s~vk77XFVdQ I&MBb@0Og8wp8x;= diff --git a/src/main/resources/assets/create/textures/block/smart_observer_side_powered.png b/src/main/resources/assets/create/textures/block/smart_observer_side_powered.png index 13b48a147f44793b0ed181dae92ed5f9ac30a7d9..5ba59ebb00b024b90b5e1f7a605f69e7bc71f506 100644 GIT binary patch delta 315 zcmV-B0mS~&0`mfpL4R^kOjJd3M=_phM`$-J&Y)WN%WV7HegE>M|Lcsec~9cCW5147 z|M|Z#IyhcnSt~0pMk*~+S5YM|ElN*HX=!3UA|;mq0L=gZc6Drof_I;rlQlFrRysOc zKtN+hM^8^rXJKJ=adAIBLPNK+zGY3sM2miVG@L?|;P(gpm5!k{<>jdmxbI^i`Ba z;ZI3({7}_2sVg5C%Ol1@pnjlf{1nAN;DG>tw<2k!f=>6tC$6C%Idn!0sR)B%nwNF8 z7PnpIDTHl5f;4@L!F`d#+l3&dPNc+eUeSGD_lZFpGkW3C92Eb@)epnC4_)g%Oqu`y N002ovPDHLkV1fzZfsz0K delta 282 zcmV+#0puX#_uj#byHUhctY zH8eCbGBQ0pJVru7MlCRA005T&0L=gZt^fd9H#<8!J1HqCdU|?~kB?<#Wmi{Myz7wZ z00009a7bBm000id000id0mpBsWB>pFib+I4R47wbObZr+Ab$+2@~bjHHw(l2A9ShC zx0%v3%}XH~ZWw7W)_L!ociwty5D0;dVKgWN7|hc&&(lH7L?hiWQhcNs@vccJmp`OL zxh(7Rs#nP{e*3y?FmSSIT4~D}e`o>cNQZH(=%|KBt?~s#rP|&=YrXdd7Lva2s`?Jm g)zE0wvb%707*qoM6N<$g8$TYsQ>@~ diff --git a/src/main/resources/assets/create/textures/block/smart_observer_top.png b/src/main/resources/assets/create/textures/block/smart_observer_top.png index c83df0bcd5327c8dec37afd0f40430e3e12428ba..6f4de3c9752b90fb7bd4a0338d0afd77d75dea1e 100644 GIT binary patch delta 160 zcmV;R0AK&50;&R#K>;d}LLw04w`1A)an zwbjMNd+`DWv033A9i=mXQkLPNE+rNVfQ)qKuIkA^spj+*CM7F@BF*70q17P8ogl@N z9T-HKO=NbTvc$!JL4g4T7?=Prvnv7;1o;pE O0000;L@LLwvX!D!^SV}=LkMF0Q*32;bRa{vGi!vFvd!vV){sAK>D z0E&@~B7A2W&)n(2AZ8UBmYTA81B2M?@Q#ks89*t^@KBc$iw!_Vx^s8+WS~@Y`VNzl zoj{T1aF@_(km63D;*!Y@3?h~plV`P9fV4+g?ryOFip