From a0ff70a1bb459b74c418005320a80166d96fc80c Mon Sep 17 00:00:00 2001
From: simibubi <31564874+simibubi@users.noreply.github.com>
Date: Sun, 12 Jul 2020 02:05:29 +0200
Subject: [PATCH] Not enough polish

- Reworked belt assets and renderer once again
---
 src/generated/resources/.cache/cache          |   2 +-
 .../assets/create/blockstates/belt.json       | 184 +++++++++---------
 .../com/simibubi/create/AllBlockPartials.java |  12 +-
 .../com/simibubi/create/AllSpriteShifts.java  |   2 +
 .../relays/belt/BeltGenerator.java            |  11 +-
 .../relays/belt/BeltRenderer.java             | 108 ++++++----
 .../foundation/utility/MatrixStacker.java     |   2 +
 .../models/block/belt/diagonal_end.json       | 123 ++++++++++++
 .../models/block/belt/diagonal_middle.json    | 118 +++++++++++
 .../models/block/belt/diagonal_start.json     | 123 ++++++++++++
 .../models/block/belt/downward_end.json       | 128 ------------
 .../models/block/belt/downward_middle.json    | 108 ----------
 .../models/block/belt/downward_start.json     | 125 ------------
 .../assets/create/models/block/belt/end.json  |  54 +++++
 .../create/models/block/belt/end_bottom.json  |  31 +++
 .../models/block/belt/horizontal_end.json     |  77 --------
 .../models/block/belt/horizontal_middle.json  |  52 -----
 .../models/block/belt/horizontal_start.json   |  78 --------
 .../create/models/block/belt/middle.json      |  30 +++
 .../models/block/belt/middle_bottom.json      |  30 +++
 .../create/models/block/belt/particle.json    |   7 +
 .../models/block/belt/sideways_end.json       |  77 --------
 .../models/block/belt/sideways_middle.json    |  52 -----
 .../models/block/belt/sideways_start.json     |  78 --------
 .../create/models/block/belt/start.json       |  54 +++++
 .../models/block/belt/start_bottom.json       |  31 +++
 .../create/models/block/belt/upward_end.json  | 125 ------------
 .../models/block/belt/upward_middle.json      | 110 -----------
 .../models/block/belt/upward_start.json       | 125 ------------
 .../assets/create/textures/block/belt.png     | Bin 232 -> 1986 bytes
 .../create/textures/block/belt_animated.png   | Bin 283 -> 9546 bytes
 .../create/textures/block/belt_diagonal.png   | Bin 0 -> 1869 bytes
 .../textures/block/belt_diagonal_animated.png | Bin 0 -> 5680 bytes
 .../create/textures/block/belt_offset.png     | Bin 0 -> 508 bytes
 34 files changed, 789 insertions(+), 1268 deletions(-)
 create mode 100644 src/main/resources/assets/create/models/block/belt/diagonal_end.json
 create mode 100644 src/main/resources/assets/create/models/block/belt/diagonal_middle.json
 create mode 100644 src/main/resources/assets/create/models/block/belt/diagonal_start.json
 delete mode 100644 src/main/resources/assets/create/models/block/belt/downward_end.json
 delete mode 100644 src/main/resources/assets/create/models/block/belt/downward_middle.json
 delete mode 100644 src/main/resources/assets/create/models/block/belt/downward_start.json
 create mode 100644 src/main/resources/assets/create/models/block/belt/end.json
 create mode 100644 src/main/resources/assets/create/models/block/belt/end_bottom.json
 delete mode 100644 src/main/resources/assets/create/models/block/belt/horizontal_end.json
 delete mode 100644 src/main/resources/assets/create/models/block/belt/horizontal_middle.json
 delete mode 100644 src/main/resources/assets/create/models/block/belt/horizontal_start.json
 create mode 100644 src/main/resources/assets/create/models/block/belt/middle.json
 create mode 100644 src/main/resources/assets/create/models/block/belt/middle_bottom.json
 create mode 100644 src/main/resources/assets/create/models/block/belt/particle.json
 delete mode 100644 src/main/resources/assets/create/models/block/belt/sideways_end.json
 delete mode 100644 src/main/resources/assets/create/models/block/belt/sideways_middle.json
 delete mode 100644 src/main/resources/assets/create/models/block/belt/sideways_start.json
 create mode 100644 src/main/resources/assets/create/models/block/belt/start.json
 create mode 100644 src/main/resources/assets/create/models/block/belt/start_bottom.json
 delete mode 100644 src/main/resources/assets/create/models/block/belt/upward_end.json
 delete mode 100644 src/main/resources/assets/create/models/block/belt/upward_middle.json
 delete mode 100644 src/main/resources/assets/create/models/block/belt/upward_start.json
 create mode 100644 src/main/resources/assets/create/textures/block/belt_diagonal.png
 create mode 100644 src/main/resources/assets/create/textures/block/belt_diagonal_animated.png
 create mode 100644 src/main/resources/assets/create/textures/block/belt_offset.png

diff --git a/src/generated/resources/.cache/cache b/src/generated/resources/.cache/cache
index 9b2149026..0030dcfb4 100644
--- a/src/generated/resources/.cache/cache
+++ b/src/generated/resources/.cache/cache
@@ -20,7 +20,7 @@ a579c40c43dc2174afb66f42d00d0c4a0efaaeee assets\create\blockstates\andesite_bric
 398922758a6219544e5b85c91c9cf8a543b437e5 assets\create\blockstates\andesite_pillar.json
 a9f73f228f2cde7f707fab3467e57a9080233433 assets\create\blockstates\andesite_tunnel.json
 f9fa6aa530eb0891a74eadfbebc663172a57147a assets\create\blockstates\basin.json
-39dc813be2049a42475f93d12f9f2e356139cf1b assets\create\blockstates\belt.json
+f25693a9429f6337149ff24f27900dc4eb82a7c2 assets\create\blockstates\belt.json
 40d10934934ea142d71fc6ce598b1455c3ad47b4 assets\create\blockstates\belt_observer.json
 cf9045eb16e5299a1d917c4cb536289f49411276 assets\create\blockstates\birch_window.json
 94a1a91403eb4b035fec48071e7fcae57a8a6abd assets\create\blockstates\birch_window_pane.json
diff --git a/src/generated/resources/assets/create/blockstates/belt.json b/src/generated/resources/assets/create/blockstates/belt.json
index 2c9de12cc..c09a0cb21 100644
--- a/src/generated/resources/assets/create/blockstates/belt.json
+++ b/src/generated/resources/assets/create/blockstates/belt.json
@@ -1,7 +1,7 @@
 {
   "variants": {
     "casing=false,facing=north,part=start,slope=horizontal": {
-      "model": "create:block/belt/horizontal_start",
+      "model": "create:block/belt/particle",
       "y": 180
     },
     "casing=true,facing=north,part=start,slope=horizontal": {
@@ -9,13 +9,13 @@
       "y": 180
     },
     "casing=false,facing=south,part=start,slope=horizontal": {
-      "model": "create:block/belt/horizontal_start"
+      "model": "create:block/belt/particle"
     },
     "casing=true,facing=south,part=start,slope=horizontal": {
       "model": "create:block/belt_casing/horizontal_start"
     },
     "casing=false,facing=west,part=start,slope=horizontal": {
-      "model": "create:block/belt/horizontal_start",
+      "model": "create:block/belt/particle",
       "y": 90
     },
     "casing=true,facing=west,part=start,slope=horizontal": {
@@ -23,7 +23,7 @@
       "y": 90
     },
     "casing=false,facing=east,part=start,slope=horizontal": {
-      "model": "create:block/belt/horizontal_start",
+      "model": "create:block/belt/particle",
       "y": 270
     },
     "casing=true,facing=east,part=start,slope=horizontal": {
@@ -31,7 +31,7 @@
       "y": 270
     },
     "casing=false,facing=north,part=middle,slope=horizontal": {
-      "model": "create:block/belt/horizontal_middle",
+      "model": "create:block/belt/particle",
       "y": 180
     },
     "casing=true,facing=north,part=middle,slope=horizontal": {
@@ -39,13 +39,13 @@
       "y": 180
     },
     "casing=false,facing=south,part=middle,slope=horizontal": {
-      "model": "create:block/belt/horizontal_middle"
+      "model": "create:block/belt/particle"
     },
     "casing=true,facing=south,part=middle,slope=horizontal": {
       "model": "create:block/belt_casing/horizontal_middle"
     },
     "casing=false,facing=west,part=middle,slope=horizontal": {
-      "model": "create:block/belt/horizontal_middle",
+      "model": "create:block/belt/particle",
       "y": 90
     },
     "casing=true,facing=west,part=middle,slope=horizontal": {
@@ -53,7 +53,7 @@
       "y": 90
     },
     "casing=false,facing=east,part=middle,slope=horizontal": {
-      "model": "create:block/belt/horizontal_middle",
+      "model": "create:block/belt/particle",
       "y": 270
     },
     "casing=true,facing=east,part=middle,slope=horizontal": {
@@ -61,7 +61,7 @@
       "y": 270
     },
     "casing=false,facing=north,part=end,slope=horizontal": {
-      "model": "create:block/belt/horizontal_end",
+      "model": "create:block/belt/particle",
       "y": 180
     },
     "casing=true,facing=north,part=end,slope=horizontal": {
@@ -69,13 +69,13 @@
       "y": 180
     },
     "casing=false,facing=south,part=end,slope=horizontal": {
-      "model": "create:block/belt/horizontal_end"
+      "model": "create:block/belt/particle"
     },
     "casing=true,facing=south,part=end,slope=horizontal": {
       "model": "create:block/belt_casing/horizontal_end"
     },
     "casing=false,facing=west,part=end,slope=horizontal": {
-      "model": "create:block/belt/horizontal_end",
+      "model": "create:block/belt/particle",
       "y": 90
     },
     "casing=true,facing=west,part=end,slope=horizontal": {
@@ -83,7 +83,7 @@
       "y": 90
     },
     "casing=false,facing=east,part=end,slope=horizontal": {
-      "model": "create:block/belt/horizontal_end",
+      "model": "create:block/belt/particle",
       "y": 270
     },
     "casing=true,facing=east,part=end,slope=horizontal": {
@@ -91,7 +91,7 @@
       "y": 270
     },
     "casing=false,facing=north,part=pulley,slope=horizontal": {
-      "model": "create:block/belt/horizontal_middle",
+      "model": "create:block/belt/particle",
       "y": 180
     },
     "casing=true,facing=north,part=pulley,slope=horizontal": {
@@ -99,13 +99,13 @@
       "y": 180
     },
     "casing=false,facing=south,part=pulley,slope=horizontal": {
-      "model": "create:block/belt/horizontal_middle"
+      "model": "create:block/belt/particle"
     },
     "casing=true,facing=south,part=pulley,slope=horizontal": {
       "model": "create:block/belt_casing/horizontal_pulley"
     },
     "casing=false,facing=west,part=pulley,slope=horizontal": {
-      "model": "create:block/belt/horizontal_middle",
+      "model": "create:block/belt/particle",
       "y": 90
     },
     "casing=true,facing=west,part=pulley,slope=horizontal": {
@@ -113,7 +113,7 @@
       "y": 90
     },
     "casing=false,facing=east,part=pulley,slope=horizontal": {
-      "model": "create:block/belt/horizontal_middle",
+      "model": "create:block/belt/particle",
       "y": 270
     },
     "casing=true,facing=east,part=pulley,slope=horizontal": {
@@ -121,127 +121,127 @@
       "y": 270
     },
     "casing=false,facing=north,part=start,slope=upward": {
-      "model": "create:block/belt/upward_start",
-      "y": 180
+      "model": "create:block/belt/particle"
     },
     "casing=true,facing=north,part=start,slope=upward": {
       "model": "create:block/belt_casing/diagonal_start"
     },
     "casing=false,facing=south,part=start,slope=upward": {
-      "model": "create:block/belt/upward_start"
+      "model": "create:block/belt/particle",
+      "y": 180
     },
     "casing=true,facing=south,part=start,slope=upward": {
       "model": "create:block/belt_casing/diagonal_start",
       "y": 180
     },
     "casing=false,facing=west,part=start,slope=upward": {
-      "model": "create:block/belt/upward_start",
-      "y": 90
+      "model": "create:block/belt/particle",
+      "y": 270
     },
     "casing=true,facing=west,part=start,slope=upward": {
       "model": "create:block/belt_casing/diagonal_start",
       "y": 270
     },
     "casing=false,facing=east,part=start,slope=upward": {
-      "model": "create:block/belt/upward_start",
-      "y": 270
+      "model": "create:block/belt/particle",
+      "y": 90
     },
     "casing=true,facing=east,part=start,slope=upward": {
       "model": "create:block/belt_casing/diagonal_start",
       "y": 90
     },
     "casing=false,facing=north,part=middle,slope=upward": {
-      "model": "create:block/belt/upward_middle",
-      "y": 180
+      "model": "create:block/belt/particle"
     },
     "casing=true,facing=north,part=middle,slope=upward": {
       "model": "create:block/belt_casing/diagonal_middle"
     },
     "casing=false,facing=south,part=middle,slope=upward": {
-      "model": "create:block/belt/upward_middle"
+      "model": "create:block/belt/particle",
+      "y": 180
     },
     "casing=true,facing=south,part=middle,slope=upward": {
       "model": "create:block/belt_casing/diagonal_middle",
       "y": 180
     },
     "casing=false,facing=west,part=middle,slope=upward": {
-      "model": "create:block/belt/upward_middle",
-      "y": 90
+      "model": "create:block/belt/particle",
+      "y": 270
     },
     "casing=true,facing=west,part=middle,slope=upward": {
       "model": "create:block/belt_casing/diagonal_middle",
       "y": 270
     },
     "casing=false,facing=east,part=middle,slope=upward": {
-      "model": "create:block/belt/upward_middle",
-      "y": 270
+      "model": "create:block/belt/particle",
+      "y": 90
     },
     "casing=true,facing=east,part=middle,slope=upward": {
       "model": "create:block/belt_casing/diagonal_middle",
       "y": 90
     },
     "casing=false,facing=north,part=end,slope=upward": {
-      "model": "create:block/belt/upward_end",
-      "y": 180
+      "model": "create:block/belt/particle"
     },
     "casing=true,facing=north,part=end,slope=upward": {
       "model": "create:block/belt_casing/diagonal_end"
     },
     "casing=false,facing=south,part=end,slope=upward": {
-      "model": "create:block/belt/upward_end"
+      "model": "create:block/belt/particle",
+      "y": 180
     },
     "casing=true,facing=south,part=end,slope=upward": {
       "model": "create:block/belt_casing/diagonal_end",
       "y": 180
     },
     "casing=false,facing=west,part=end,slope=upward": {
-      "model": "create:block/belt/upward_end",
-      "y": 90
+      "model": "create:block/belt/particle",
+      "y": 270
     },
     "casing=true,facing=west,part=end,slope=upward": {
       "model": "create:block/belt_casing/diagonal_end",
       "y": 270
     },
     "casing=false,facing=east,part=end,slope=upward": {
-      "model": "create:block/belt/upward_end",
-      "y": 270
+      "model": "create:block/belt/particle",
+      "y": 90
     },
     "casing=true,facing=east,part=end,slope=upward": {
       "model": "create:block/belt_casing/diagonal_end",
       "y": 90
     },
     "casing=false,facing=north,part=pulley,slope=upward": {
-      "model": "create:block/belt/upward_middle",
-      "y": 180
+      "model": "create:block/belt/particle"
     },
     "casing=true,facing=north,part=pulley,slope=upward": {
       "model": "create:block/belt_casing/diagonal_pulley"
     },
     "casing=false,facing=south,part=pulley,slope=upward": {
-      "model": "create:block/belt/upward_middle"
+      "model": "create:block/belt/particle",
+      "y": 180
     },
     "casing=true,facing=south,part=pulley,slope=upward": {
       "model": "create:block/belt_casing/diagonal_pulley",
       "y": 180
     },
     "casing=false,facing=west,part=pulley,slope=upward": {
-      "model": "create:block/belt/upward_middle",
-      "y": 90
+      "model": "create:block/belt/particle",
+      "y": 270
     },
     "casing=true,facing=west,part=pulley,slope=upward": {
       "model": "create:block/belt_casing/diagonal_pulley",
       "y": 270
     },
     "casing=false,facing=east,part=pulley,slope=upward": {
-      "model": "create:block/belt/upward_middle",
-      "y": 270
+      "model": "create:block/belt/particle",
+      "y": 90
     },
     "casing=true,facing=east,part=pulley,slope=upward": {
       "model": "create:block/belt_casing/diagonal_pulley",
       "y": 90
     },
     "casing=false,facing=north,part=start,slope=downward": {
-      "model": "create:block/belt/downward_start",
+      "model": "create:block/belt/particle",
       "y": 180
     },
     "casing=true,facing=north,part=start,slope=downward": {
@@ -249,13 +249,13 @@
       "y": 180
     },
     "casing=false,facing=south,part=start,slope=downward": {
-      "model": "create:block/belt/downward_start"
+      "model": "create:block/belt/particle"
     },
     "casing=true,facing=south,part=start,slope=downward": {
       "model": "create:block/belt_casing/diagonal_end"
     },
     "casing=false,facing=west,part=start,slope=downward": {
-      "model": "create:block/belt/downward_start",
+      "model": "create:block/belt/particle",
       "y": 90
     },
     "casing=true,facing=west,part=start,slope=downward": {
@@ -263,7 +263,7 @@
       "y": 90
     },
     "casing=false,facing=east,part=start,slope=downward": {
-      "model": "create:block/belt/downward_start",
+      "model": "create:block/belt/particle",
       "y": 270
     },
     "casing=true,facing=east,part=start,slope=downward": {
@@ -271,7 +271,7 @@
       "y": 270
     },
     "casing=false,facing=north,part=middle,slope=downward": {
-      "model": "create:block/belt/downward_middle",
+      "model": "create:block/belt/particle",
       "y": 180
     },
     "casing=true,facing=north,part=middle,slope=downward": {
@@ -279,13 +279,13 @@
       "y": 180
     },
     "casing=false,facing=south,part=middle,slope=downward": {
-      "model": "create:block/belt/downward_middle"
+      "model": "create:block/belt/particle"
     },
     "casing=true,facing=south,part=middle,slope=downward": {
       "model": "create:block/belt_casing/diagonal_middle"
     },
     "casing=false,facing=west,part=middle,slope=downward": {
-      "model": "create:block/belt/downward_middle",
+      "model": "create:block/belt/particle",
       "y": 90
     },
     "casing=true,facing=west,part=middle,slope=downward": {
@@ -293,7 +293,7 @@
       "y": 90
     },
     "casing=false,facing=east,part=middle,slope=downward": {
-      "model": "create:block/belt/downward_middle",
+      "model": "create:block/belt/particle",
       "y": 270
     },
     "casing=true,facing=east,part=middle,slope=downward": {
@@ -301,7 +301,7 @@
       "y": 270
     },
     "casing=false,facing=north,part=end,slope=downward": {
-      "model": "create:block/belt/downward_end",
+      "model": "create:block/belt/particle",
       "y": 180
     },
     "casing=true,facing=north,part=end,slope=downward": {
@@ -309,13 +309,13 @@
       "y": 180
     },
     "casing=false,facing=south,part=end,slope=downward": {
-      "model": "create:block/belt/downward_end"
+      "model": "create:block/belt/particle"
     },
     "casing=true,facing=south,part=end,slope=downward": {
       "model": "create:block/belt_casing/diagonal_start"
     },
     "casing=false,facing=west,part=end,slope=downward": {
-      "model": "create:block/belt/downward_end",
+      "model": "create:block/belt/particle",
       "y": 90
     },
     "casing=true,facing=west,part=end,slope=downward": {
@@ -323,7 +323,7 @@
       "y": 90
     },
     "casing=false,facing=east,part=end,slope=downward": {
-      "model": "create:block/belt/downward_end",
+      "model": "create:block/belt/particle",
       "y": 270
     },
     "casing=true,facing=east,part=end,slope=downward": {
@@ -331,7 +331,7 @@
       "y": 270
     },
     "casing=false,facing=north,part=pulley,slope=downward": {
-      "model": "create:block/belt/downward_middle",
+      "model": "create:block/belt/particle",
       "y": 180
     },
     "casing=true,facing=north,part=pulley,slope=downward": {
@@ -339,13 +339,13 @@
       "y": 180
     },
     "casing=false,facing=south,part=pulley,slope=downward": {
-      "model": "create:block/belt/downward_middle"
+      "model": "create:block/belt/particle"
     },
     "casing=true,facing=south,part=pulley,slope=downward": {
       "model": "create:block/belt_casing/diagonal_pulley"
     },
     "casing=false,facing=west,part=pulley,slope=downward": {
-      "model": "create:block/belt/downward_middle",
+      "model": "create:block/belt/particle",
       "y": 90
     },
     "casing=true,facing=west,part=pulley,slope=downward": {
@@ -353,7 +353,7 @@
       "y": 90
     },
     "casing=false,facing=east,part=pulley,slope=downward": {
-      "model": "create:block/belt/downward_middle",
+      "model": "create:block/belt/particle",
       "y": 270
     },
     "casing=true,facing=east,part=pulley,slope=downward": {
@@ -361,7 +361,7 @@
       "y": 270
     },
     "casing=false,facing=north,part=start,slope=vertical": {
-      "model": "create:block/belt/horizontal_end",
+      "model": "create:block/belt/particle",
       "x": 90,
       "y": 180
     },
@@ -371,7 +371,7 @@
       "y": 270
     },
     "casing=false,facing=south,part=start,slope=vertical": {
-      "model": "create:block/belt/horizontal_start",
+      "model": "create:block/belt/particle",
       "x": 90
     },
     "casing=true,facing=south,part=start,slope=vertical": {
@@ -380,7 +380,7 @@
       "y": 90
     },
     "casing=false,facing=west,part=start,slope=vertical": {
-      "model": "create:block/belt/horizontal_end",
+      "model": "create:block/belt/particle",
       "x": 90,
       "y": 90
     },
@@ -390,7 +390,7 @@
       "y": 180
     },
     "casing=false,facing=east,part=start,slope=vertical": {
-      "model": "create:block/belt/horizontal_start",
+      "model": "create:block/belt/particle",
       "x": 90,
       "y": 270
     },
@@ -399,7 +399,7 @@
       "x": 90
     },
     "casing=false,facing=north,part=middle,slope=vertical": {
-      "model": "create:block/belt/horizontal_middle",
+      "model": "create:block/belt/particle",
       "x": 90,
       "y": 180
     },
@@ -409,7 +409,7 @@
       "y": 270
     },
     "casing=false,facing=south,part=middle,slope=vertical": {
-      "model": "create:block/belt/horizontal_middle",
+      "model": "create:block/belt/particle",
       "x": 90
     },
     "casing=true,facing=south,part=middle,slope=vertical": {
@@ -418,7 +418,7 @@
       "y": 90
     },
     "casing=false,facing=west,part=middle,slope=vertical": {
-      "model": "create:block/belt/horizontal_middle",
+      "model": "create:block/belt/particle",
       "x": 90,
       "y": 90
     },
@@ -428,7 +428,7 @@
       "y": 180
     },
     "casing=false,facing=east,part=middle,slope=vertical": {
-      "model": "create:block/belt/horizontal_middle",
+      "model": "create:block/belt/particle",
       "x": 90,
       "y": 270
     },
@@ -437,7 +437,7 @@
       "x": 90
     },
     "casing=false,facing=north,part=end,slope=vertical": {
-      "model": "create:block/belt/horizontal_start",
+      "model": "create:block/belt/particle",
       "x": 90,
       "y": 180
     },
@@ -447,7 +447,7 @@
       "y": 270
     },
     "casing=false,facing=south,part=end,slope=vertical": {
-      "model": "create:block/belt/horizontal_end",
+      "model": "create:block/belt/particle",
       "x": 90
     },
     "casing=true,facing=south,part=end,slope=vertical": {
@@ -456,7 +456,7 @@
       "y": 90
     },
     "casing=false,facing=west,part=end,slope=vertical": {
-      "model": "create:block/belt/horizontal_start",
+      "model": "create:block/belt/particle",
       "x": 90,
       "y": 90
     },
@@ -466,7 +466,7 @@
       "y": 180
     },
     "casing=false,facing=east,part=end,slope=vertical": {
-      "model": "create:block/belt/horizontal_end",
+      "model": "create:block/belt/particle",
       "x": 90,
       "y": 270
     },
@@ -475,7 +475,7 @@
       "x": 90
     },
     "casing=false,facing=north,part=pulley,slope=vertical": {
-      "model": "create:block/belt/horizontal_middle",
+      "model": "create:block/belt/particle",
       "x": 90,
       "y": 180
     },
@@ -485,7 +485,7 @@
       "y": 270
     },
     "casing=false,facing=south,part=pulley,slope=vertical": {
-      "model": "create:block/belt/horizontal_middle",
+      "model": "create:block/belt/particle",
       "x": 90
     },
     "casing=true,facing=south,part=pulley,slope=vertical": {
@@ -494,7 +494,7 @@
       "y": 90
     },
     "casing=false,facing=west,part=pulley,slope=vertical": {
-      "model": "create:block/belt/horizontal_middle",
+      "model": "create:block/belt/particle",
       "x": 90,
       "y": 90
     },
@@ -504,7 +504,7 @@
       "y": 180
     },
     "casing=false,facing=east,part=pulley,slope=vertical": {
-      "model": "create:block/belt/horizontal_middle",
+      "model": "create:block/belt/particle",
       "x": 90,
       "y": 270
     },
@@ -513,7 +513,7 @@
       "x": 90
     },
     "casing=false,facing=north,part=start,slope=sideways": {
-      "model": "create:block/belt/sideways_end",
+      "model": "create:block/belt/particle",
       "x": 180,
       "y": 180
     },
@@ -523,13 +523,13 @@
       "y": 180
     },
     "casing=false,facing=south,part=start,slope=sideways": {
-      "model": "create:block/belt/sideways_start"
+      "model": "create:block/belt/particle"
     },
     "casing=true,facing=south,part=start,slope=sideways": {
       "model": "create:block/belt_casing/sideways_start"
     },
     "casing=false,facing=west,part=start,slope=sideways": {
-      "model": "create:block/belt/sideways_end",
+      "model": "create:block/belt/particle",
       "x": 180,
       "y": 90
     },
@@ -539,7 +539,7 @@
       "y": 90
     },
     "casing=false,facing=east,part=start,slope=sideways": {
-      "model": "create:block/belt/sideways_start",
+      "model": "create:block/belt/particle",
       "y": 270
     },
     "casing=true,facing=east,part=start,slope=sideways": {
@@ -547,7 +547,7 @@
       "y": 270
     },
     "casing=false,facing=north,part=middle,slope=sideways": {
-      "model": "create:block/belt/sideways_middle",
+      "model": "create:block/belt/particle",
       "x": 180,
       "y": 180
     },
@@ -557,13 +557,13 @@
       "y": 180
     },
     "casing=false,facing=south,part=middle,slope=sideways": {
-      "model": "create:block/belt/sideways_middle"
+      "model": "create:block/belt/particle"
     },
     "casing=true,facing=south,part=middle,slope=sideways": {
       "model": "create:block/belt_casing/sideways_middle"
     },
     "casing=false,facing=west,part=middle,slope=sideways": {
-      "model": "create:block/belt/sideways_middle",
+      "model": "create:block/belt/particle",
       "x": 180,
       "y": 90
     },
@@ -573,7 +573,7 @@
       "y": 90
     },
     "casing=false,facing=east,part=middle,slope=sideways": {
-      "model": "create:block/belt/sideways_middle",
+      "model": "create:block/belt/particle",
       "y": 270
     },
     "casing=true,facing=east,part=middle,slope=sideways": {
@@ -581,7 +581,7 @@
       "y": 270
     },
     "casing=false,facing=north,part=end,slope=sideways": {
-      "model": "create:block/belt/sideways_start",
+      "model": "create:block/belt/particle",
       "x": 180,
       "y": 180
     },
@@ -591,13 +591,13 @@
       "y": 180
     },
     "casing=false,facing=south,part=end,slope=sideways": {
-      "model": "create:block/belt/sideways_end"
+      "model": "create:block/belt/particle"
     },
     "casing=true,facing=south,part=end,slope=sideways": {
       "model": "create:block/belt_casing/sideways_end"
     },
     "casing=false,facing=west,part=end,slope=sideways": {
-      "model": "create:block/belt/sideways_start",
+      "model": "create:block/belt/particle",
       "x": 180,
       "y": 90
     },
@@ -607,7 +607,7 @@
       "y": 90
     },
     "casing=false,facing=east,part=end,slope=sideways": {
-      "model": "create:block/belt/sideways_end",
+      "model": "create:block/belt/particle",
       "y": 270
     },
     "casing=true,facing=east,part=end,slope=sideways": {
@@ -615,7 +615,7 @@
       "y": 270
     },
     "casing=false,facing=north,part=pulley,slope=sideways": {
-      "model": "create:block/belt/sideways_middle",
+      "model": "create:block/belt/particle",
       "x": 180,
       "y": 180
     },
@@ -625,13 +625,13 @@
       "y": 180
     },
     "casing=false,facing=south,part=pulley,slope=sideways": {
-      "model": "create:block/belt/sideways_middle"
+      "model": "create:block/belt/particle"
     },
     "casing=true,facing=south,part=pulley,slope=sideways": {
       "model": "create:block/belt_casing/sideways_pulley"
     },
     "casing=false,facing=west,part=pulley,slope=sideways": {
-      "model": "create:block/belt/sideways_middle",
+      "model": "create:block/belt/particle",
       "x": 180,
       "y": 90
     },
@@ -641,7 +641,7 @@
       "y": 90
     },
     "casing=false,facing=east,part=pulley,slope=sideways": {
-      "model": "create:block/belt/sideways_middle",
+      "model": "create:block/belt/particle",
       "y": 270
     },
     "casing=true,facing=east,part=pulley,slope=sideways": {
diff --git a/src/main/java/com/simibubi/create/AllBlockPartials.java b/src/main/java/com/simibubi/create/AllBlockPartials.java
index b2ccfbad5..04818d7a5 100644
--- a/src/main/java/com/simibubi/create/AllBlockPartials.java
+++ b/src/main/java/com/simibubi/create/AllBlockPartials.java
@@ -33,8 +33,18 @@ public class AllBlockPartials {
 		SCHEMATICANNON_PIPE = get("schematicannon/pipe"),
 
 		SHAFTLESS_COGWHEEL = get("cogwheel_shaftless"), 
-		BELT_PULLEY = get("belt_pulley"),
 		SHAFT_HALF = get("shaft_half"),
+		
+		BELT_PULLEY = get("belt_pulley"),
+		BELT_START = get("belt/start"),
+		BELT_MIDDLE = get("belt/middle"),
+		BELT_END = get("belt/end"),
+		BELT_START_BOTTOM = get("belt/start_bottom"),
+		BELT_MIDDLE_BOTTOM = get("belt/middle_bottom"),
+		BELT_END_BOTTOM = get("belt/end_bottom"),
+		BELT_DIAGONAL_START = get("belt/diagonal_start"),
+		BELT_DIAGONAL_MIDDLE = get("belt/diagonal_middle"),
+		BELT_DIAGONAL_END = get("belt/diagonal_end"),
 
 		ENCASED_FAN_INNER = get("encased_fan/propeller"), 
 		HAND_CRANK_HANDLE = get("hand_crank/handle"),
diff --git a/src/main/java/com/simibubi/create/AllSpriteShifts.java b/src/main/java/com/simibubi/create/AllSpriteShifts.java
index beeb4fa4e..c2ea18237 100644
--- a/src/main/java/com/simibubi/create/AllSpriteShifts.java
+++ b/src/main/java/com/simibubi/create/AllSpriteShifts.java
@@ -52,6 +52,8 @@ public class AllSpriteShifts {
 
 	public static final SpriteShiftEntry 
 		BELT = SpriteShifter.get("block/belt", "block/belt_animated"),
+		BELT_OFFSET = SpriteShifter.get("block/belt_offset", "block/belt_animated"),
+		BELT_DIAGONAL = SpriteShifter.get("block/belt_diagonal", "block/belt_diagonal_animated"),
 		ANDESIDE_BELT_CASING = SpriteShifter.get("block/brass_casing_belt", "block/andesite_casing_belt"),
 		CRAFTER_THINGIES = SpriteShifter.get("block/crafter_thingies", "block/crafter_thingies");
 
diff --git a/src/main/java/com/simibubi/create/content/contraptions/relays/belt/BeltGenerator.java b/src/main/java/com/simibubi/create/content/contraptions/relays/belt/BeltGenerator.java
index 7b5164156..7a9dd7708 100644
--- a/src/main/java/com/simibubi/create/content/contraptions/relays/belt/BeltGenerator.java
+++ b/src/main/java/com/simibubi/create/content/contraptions/relays/belt/BeltGenerator.java
@@ -26,7 +26,7 @@ public class BeltGenerator extends SpecialBlockStateGen {
 		Boolean casing = state.get(BeltBlock.CASING);
 		BeltSlope slope = state.get(BeltBlock.SLOPE);
 
-		boolean flip = casing && slope == BeltSlope.UPWARD;
+		boolean flip = slope == BeltSlope.UPWARD;
 		boolean rotate = casing && slope == BeltSlope.VERTICAL;
 		Direction direction = state.get(BeltBlock.HORIZONTAL_FACING);
 		return horizontalAngle(direction) + (flip ? 180 : 0) + (rotate ? 90 : 0);
@@ -36,6 +36,11 @@ public class BeltGenerator extends SpecialBlockStateGen {
 	public <T extends Block> ModelFile getModel(DataGenContext<Block, T> ctx, RegistrateBlockstateProvider prov,
 		BlockState state) {
 		Boolean casing = state.get(BeltBlock.CASING);
+
+		if (!casing)
+			return prov.models()
+				.getExistingFile(prov.modLoc("block/belt/particle"));
+		
 		BeltPart part = state.get(BeltBlock.PART);
 		Direction direction = state.get(BeltBlock.HORIZONTAL_FACING);
 		BeltSlope slope = state.get(BeltBlock.SLOPE);
@@ -49,7 +54,7 @@ public class BeltGenerator extends SpecialBlockStateGen {
 		if (!casing && pulley)
 			part = BeltPart.MIDDLE;
 
-		if ((vertical && negative || casing && downward || sideways && negative) && part != BeltPart.MIDDLE && !pulley)
+		if ((vertical && negative || downward || sideways && negative) && part != BeltPart.MIDDLE && !pulley)
 			part = part == BeltPart.END ? BeltPart.START : BeltPart.END;
 
 		if (!casing && vertical)
@@ -61,7 +66,7 @@ public class BeltGenerator extends SpecialBlockStateGen {
 		String slopeName = slope.getName();
 		String partName = part.getName();
 
-		if (casing && diagonal)
+		if (diagonal)
 			slopeName = "diagonal";
 
 		ResourceLocation location = prov.modLoc(path + slopeName + "_" + partName);
diff --git a/src/main/java/com/simibubi/create/content/contraptions/relays/belt/BeltRenderer.java b/src/main/java/com/simibubi/create/content/contraptions/relays/belt/BeltRenderer.java
index fc42ce225..c8ddacd8d 100644
--- a/src/main/java/com/simibubi/create/content/contraptions/relays/belt/BeltRenderer.java
+++ b/src/main/java/com/simibubi/create/content/contraptions/relays/belt/BeltRenderer.java
@@ -1,7 +1,5 @@
 package com.simibubi.create.content.contraptions.relays.belt;
 
-import static net.minecraft.state.properties.BlockStateProperties.HORIZONTAL_FACING;
-
 import java.util.Random;
 
 import com.mojang.blaze3d.matrix.MatrixStack;
@@ -10,11 +8,13 @@ import com.simibubi.create.AllBlockPartials;
 import com.simibubi.create.AllBlocks;
 import com.simibubi.create.AllSpriteShifts;
 import com.simibubi.create.CreateClient;
-import com.simibubi.create.content.contraptions.base.KineticTileEntity;
 import com.simibubi.create.content.contraptions.base.KineticTileEntityRenderer;
 import com.simibubi.create.content.contraptions.relays.belt.transport.TransportedItemStack;
+import com.simibubi.create.foundation.block.render.SpriteShiftEntry;
 import com.simibubi.create.foundation.tileEntity.renderer.SafeTileEntityRenderer;
+import com.simibubi.create.foundation.utility.AngleHelper;
 import com.simibubi.create.foundation.utility.AnimationTickHolder;
+import com.simibubi.create.foundation.utility.Iterate;
 import com.simibubi.create.foundation.utility.MatrixStacker;
 import com.simibubi.create.foundation.utility.ShadowRenderHelper;
 import com.simibubi.create.foundation.utility.SuperByteBuffer;
@@ -25,7 +25,6 @@ import net.minecraft.client.renderer.IRenderTypeBuffer;
 import net.minecraft.client.renderer.ItemRenderer;
 import net.minecraft.client.renderer.RenderType;
 import net.minecraft.client.renderer.Vector3f;
-import net.minecraft.client.renderer.WorldRenderer;
 import net.minecraft.client.renderer.model.ItemCameraTransforms.TransformType;
 import net.minecraft.client.renderer.tileentity.TileEntityRendererDispatcher;
 import net.minecraft.util.Direction;
@@ -49,45 +48,86 @@ public class BeltRenderer extends SafeTileEntityRenderer<BeltTileEntity> {
 		if (!AllBlocks.BELT.has(blockState))
 			return;
 
-		BlockState renderedState = getBeltState(te);
-		SuperByteBuffer beltBuffer =
-			CreateClient.bufferCache.renderBlockIn(KineticTileEntityRenderer.KINETIC_TILE, renderedState);
+		BeltSlope beltSlope = blockState.get(BeltBlock.SLOPE);
+		BeltPart part = blockState.get(BeltBlock.PART);
+		Direction facing = blockState.get(BeltBlock.HORIZONTAL_FACING);
+		AxisDirection axisDirection = facing.getAxisDirection();
+		
+		boolean downward = beltSlope == BeltSlope.DOWNWARD;
+		boolean upward = beltSlope == BeltSlope.UPWARD;
+		boolean diagonal = downward || upward;
+		boolean start = part == BeltPart.START;
+		boolean end = part == BeltPart.END;
+		boolean sideways = beltSlope == BeltSlope.SIDEWAYS;
+		boolean alongX = facing.getAxis() == Axis.X;
 
-		beltBuffer.color(te.color == -1 ? 0x808080 : te.color);
+		MatrixStacker msr = MatrixStacker.of(ms);
+		IVertexBuilder vb = buffer.getBuffer(RenderType.getSolid());
+		float renderTick = AnimationTickHolder.getRenderTick();
 
-		// UV shift
-		float speed = te.getSpeed();
-		if (speed != 0) {
-			float time = AnimationTickHolder.getRenderTick() * blockState.get(HORIZONTAL_FACING)
-				.getAxisDirection()
-				.getOffset();
-			Direction facing = renderedState.get(BeltBlock.HORIZONTAL_FACING);
-			if (facing.getAxis() == Axis.X && renderedState.get(BeltBlock.SLOPE) != BeltSlope.SIDEWAYS)
-				speed = -speed;
-			int textureIndex = (int) ((speed * time / 36) % 16);
-			if (textureIndex < 0)
-				textureIndex += 16;
+		ms.push();
+		msr.centre();
+		msr.rotateY(AngleHelper.horizontalAngle(facing) + (upward ? 180 : 0) + (sideways ? 270 : 0));
+		msr.rotateZ(sideways ? 90 : 0);
+		msr.rotateX(!diagonal && beltSlope != BeltSlope.HORIZONTAL ? 90 : 0);
+		msr.unCentre();
 
-			beltBuffer.shiftUVtoSheet(AllSpriteShifts.BELT, (textureIndex % 4) / 4f, (textureIndex / 4) / 4f, 4);
-		} else {
-			beltBuffer.dontShiftUV();
+		if (downward || beltSlope == BeltSlope.VERTICAL && axisDirection == AxisDirection.POSITIVE) {
+			boolean b = start;
+			start = end;
+			end = b;
 		}
 
-		IVertexBuilder vb = buffer.getBuffer(RenderType.getSolid());
+		for (boolean bottom : Iterate.trueAndFalse) {
 
-		int packedLightmapCoords = WorldRenderer.getLightmapCoordinates(te.getWorld(), blockState, te.getPos());
-		beltBuffer.light(packedLightmapCoords)
-			.renderInto(ms, vb);
+			AllBlockPartials beltPartial = diagonal
+				? start ? AllBlockPartials.BELT_DIAGONAL_START
+					: end ? AllBlockPartials.BELT_DIAGONAL_END : AllBlockPartials.BELT_DIAGONAL_MIDDLE
+				: bottom
+					? start ? AllBlockPartials.BELT_START_BOTTOM
+						: end ? AllBlockPartials.BELT_END_BOTTOM : AllBlockPartials.BELT_MIDDLE_BOTTOM
+					: start ? AllBlockPartials.BELT_START
+						: end ? AllBlockPartials.BELT_END : AllBlockPartials.BELT_MIDDLE;
+
+			SuperByteBuffer beltBuffer = beltPartial.renderOn(blockState)
+				.light(light);
+			SpriteShiftEntry spriteShift =
+				diagonal ? AllSpriteShifts.BELT_DIAGONAL : bottom ? AllSpriteShifts.BELT_OFFSET : AllSpriteShifts.BELT;
+			int cycleLength = diagonal ? 12 : 16;
+			int cycleOffset = bottom ? 8 : 0;
+
+			// UV shift
+			float speed = te.getSpeed();
+			if (speed != 0) {
+				float time = renderTick * axisDirection.getOffset();
+				if (diagonal && (downward ^ alongX) || !sideways && !diagonal && alongX
+					|| sideways && axisDirection == AxisDirection.NEGATIVE)
+					speed = -speed;
+				int textureIndex = (int) (((speed * time / 36) + cycleOffset) % cycleLength);
+				if (textureIndex < 0)
+					textureIndex += cycleLength;
+
+				beltBuffer.shiftUVtoSheet(spriteShift, (textureIndex % 4) / 4f, (textureIndex / 4) / 4f, 4);
+			} else {
+				beltBuffer.dontShiftUV();
+			}
+
+			beltBuffer.renderInto(ms, vb);
+
+			// Diagonal belt do not have a separate bottom model
+			if (diagonal)
+				break;
+		}
+		ms.pop();
 
 		if (te.hasPulley()) {
 			// TODO 1.15 find a way to cache this model matrix computation
 			MatrixStack modelTransform = new MatrixStack();
 			Direction dir = blockState.get(BeltBlock.HORIZONTAL_FACING)
 				.rotateY();
-			if (blockState.get(BeltBlock.SLOPE) == BeltSlope.SIDEWAYS)
+			if (sideways)
 				dir = Direction.UP;
-			MatrixStacker msr = MatrixStacker.of(modelTransform);
-
+			msr = MatrixStacker.of(modelTransform);
 			msr.centre();
 			if (dir.getAxis() == Axis.X)
 				msr.rotateY(90);
@@ -144,7 +184,8 @@ public class BeltRenderer extends SafeTileEntityRenderer<BeltTileEntity> {
 			verticalMovement = verticalMovement * (Math.min(offset, te.beltLength - .5f) - .5f);
 			Vec3d offsetVec = new Vec3d(directionVec).scale(offset)
 				.add(0, verticalMovement, 0);
-			boolean onSlope = slope != BeltSlope.HORIZONTAL && MathHelper.clamp(offset, .5f, te.beltLength - .5f) == offset;
+			boolean onSlope =
+				slope != BeltSlope.HORIZONTAL && MathHelper.clamp(offset, .5f, te.beltLength - .5f) == offset;
 			boolean tiltForward = (slope == BeltSlope.DOWNWARD ^ te.getBeltFacing()
 				.getAxisDirection() == AxisDirection.POSITIVE) == (te.getBeltFacing()
 					.getAxis() == Axis.Z);
@@ -204,9 +245,4 @@ public class BeltRenderer extends SafeTileEntityRenderer<BeltTileEntity> {
 		ms.pop();
 	}
 
-	protected BlockState getBeltState(KineticTileEntity te) {
-		return te.getBlockState()
-			.with(BeltBlock.CASING, false);
-	}
-
 }
diff --git a/src/main/java/com/simibubi/create/foundation/utility/MatrixStacker.java b/src/main/java/com/simibubi/create/foundation/utility/MatrixStacker.java
index ed4bf8f40..545d41a50 100644
--- a/src/main/java/com/simibubi/create/foundation/utility/MatrixStacker.java
+++ b/src/main/java/com/simibubi/create/foundation/utility/MatrixStacker.java
@@ -74,6 +74,8 @@ public class MatrixStacker {
 	}
 
 	private MatrixStacker multiply(Vector3f axis, double angle) {
+		if (angle == 0)
+			return this;
 		ms.multiply(axis.getDegreesQuaternion((float) angle));
 		return this;
 	}
diff --git a/src/main/resources/assets/create/models/block/belt/diagonal_end.json b/src/main/resources/assets/create/models/block/belt/diagonal_end.json
new file mode 100644
index 000000000..5a73025f5
--- /dev/null
+++ b/src/main/resources/assets/create/models/block/belt/diagonal_end.json
@@ -0,0 +1,123 @@
+{
+	"credit": "Made with Blockbench",
+	"parent": "block/block",
+	"textures": {
+		"0": "create:block/belt_diagonal",
+		"particle": "create:block/belt_diagonal"
+	},
+	"elements": [
+		{
+			"name": "Bottom",
+			"from": [0.9, 3, 1],
+			"to": [15.1, 5, 6.8],
+			"faces": {
+				"north": {"uv": [1, 6, 15, 7], "rotation": 180, "texture": "#0"},
+				"east": {"uv": [14, 0, 16, 6], "rotation": 270, "texture": "#0"},
+				"west": {"uv": [0, 0, 2, 6], "rotation": 90, "texture": "#0"},
+				"up": {"uv": [1, 0, 15, 6], "rotation": 180, "texture": "#0"},
+				"down": {"uv": [1, 0, 15, 6], "texture": "#0"}
+			}
+		},
+		{
+			"name": "Bottom",
+			"from": [2.9, 5, 2],
+			"to": [13.1, 6, 6.8],
+			"faces": {
+				"east": {"uv": [3, 0, 4, 5], "rotation": 270, "texture": "#0"},
+				"west": {"uv": [12, 0, 13, 5], "rotation": 90, "texture": "#0"},
+				"up": {"uv": [3, 0, 13, 5], "rotation": 180, "texture": "#0"}
+			}
+		},
+		{
+			"name": "Top",
+			"from": [0.9, 11, 1],
+			"to": [15.1, 13, 10.1],
+			"faces": {
+				"north": {"uv": [1, 6, 15, 5], "rotation": 180, "texture": "#0"},
+				"east": {"uv": [14, 6, 16, 15], "rotation": 90, "texture": "#0"},
+				"west": {"uv": [0, 6, 2, 15], "rotation": 270, "texture": "#0"},
+				"up": {"uv": [1, 6, 15, 15], "texture": "#0"},
+				"down": {"uv": [1, 6, 15, 15], "rotation": 180, "texture": "#0"}
+			}
+		},
+		{
+			"name": "Top",
+			"from": [2.9, 10, 2],
+			"to": [13.1, 11, 10.1],
+			"faces": {
+				"east": {"uv": [3, 7, 4, 15], "rotation": 90, "texture": "#0"},
+				"west": {"uv": [12, 7, 13, 15], "rotation": 270, "texture": "#0"},
+				"down": {"uv": [3, 7, 13, 15], "rotation": 180, "texture": "#0"}
+			}
+		},
+		{
+			"name": "Side",
+			"from": [1, 4, 0],
+			"to": [15, 12, 2],
+			"faces": {
+				"north": {"uv": [1, 8, 15, 16], "rotation": 180, "texture": "#0"},
+				"east": {"uv": [14, 8, 16, 16], "rotation": 180, "texture": "#0"},
+				"south": {"uv": [1, 8, 15, 16], "rotation": 180, "texture": "#0"},
+				"west": {"uv": [0, 8, 2, 16], "rotation": 180, "texture": "#0"},
+				"up": {"uv": [1, 4, 15, 5], "rotation": 180, "texture": "#0"},
+				"down": {"uv": [1, 7, 15, 8], "rotation": 180, "texture": "#0"}
+			}
+		},
+		{
+			"name": "Side",
+			"from": [2.9, 6, 2],
+			"to": [13.1, 10, 3],
+			"faces": {
+				"east": {"uv": [3, 10, 4, 14], "rotation": 180, "texture": "#0"},
+				"south": {"uv": [3, 10, 13, 14], "rotation": 180, "texture": "#0"},
+				"west": {"uv": [12, 10, 13, 14], "rotation": 180, "texture": "#0"}
+			}
+		},
+		{
+			"name": "Bottom Diagonal",
+			"from": [1, 3, 9.25],
+			"to": [15, 5, 19.328],
+			"rotation": {"angle": 45, "axis": "x", "origin": [8, 8, 8]},
+			"faces": {
+				"east": {"uv": [14, 5, 16, 15], "rotation": 270, "texture": "#0"},
+				"west": {"uv": [0, 4, 2, 14], "rotation": 90, "texture": "#0"},
+				"up": {"uv": [1, 4, 15, 14], "rotation": 180, "texture": "#0"},
+				"down": {"uv": [1, 4, 15, 14], "texture": "#0"}
+			}
+		},
+		{
+			"name": "Bottom Diagonal",
+			"from": [3, 5, 9.25],
+			"to": [13, 6, 19.328],
+			"rotation": {"angle": 45, "axis": "x", "origin": [8, 8, 8]},
+			"faces": {
+				"east": {"uv": [3, 4, 4, 14], "rotation": 270, "texture": "#0"},
+				"west": {"uv": [12, 4, 13, 14], "rotation": 90, "texture": "#0"},
+				"up": {"uv": [3, 4, 13, 14], "rotation": 180, "texture": "#0"}
+			}
+		},
+		{
+			"name": "Top Diagonal",
+			"from": [1, 11, 5.9],
+			"to": [15, 13, 19.328],
+			"rotation": {"angle": 45, "axis": "x", "origin": [8, 8, 8]},
+			"faces": {
+				"east": {"uv": [14, 3, 16, 16], "rotation": 90, "texture": "#0"},
+				"west": {"uv": [0, 3, 2, 16], "rotation": 270, "texture": "#0"},
+				"up": {"uv": [1, 3, 15, 16], "texture": "#0"},
+				"down": {"uv": [1, 3, 15, 16], "rotation": 180, "texture": "#0"}
+			}
+		},
+		{
+			"name": "Top Diagonal",
+			"from": [3, 10, 6.9],
+			"to": [13, 11, 19.328],
+			"rotation": {"angle": 45, "axis": "x", "origin": [8, 8, 8]},
+			"faces": {
+				"east": {"uv": [3, 4, 4, 16], "rotation": 90, "texture": "#0"},
+				"west": {"uv": [12, 4, 13, 16], "rotation": 270, "texture": "#0"},
+				"down": {"uv": [3, 4, 13, 16], "rotation": 180, "texture": "#0"}
+			}
+		}
+	]
+}
\ No newline at end of file
diff --git a/src/main/resources/assets/create/models/block/belt/diagonal_middle.json b/src/main/resources/assets/create/models/block/belt/diagonal_middle.json
new file mode 100644
index 000000000..2855a73c1
--- /dev/null
+++ b/src/main/resources/assets/create/models/block/belt/diagonal_middle.json
@@ -0,0 +1,118 @@
+{
+	"credit": "Made with Blockbench",
+	"parent": "block/block",
+	"textures": {
+		"0": "create:block/belt_diagonal",
+		"particle": "create:block/belt_diagonal"
+	},
+	"elements": [
+		{
+			"name": "Top Diagonal First",
+			"from": [3, 10, -3.305],
+			"to": [13, 11, 8.02],
+			"rotation": {"angle": 45, "axis": "x", "origin": [8, 8, 8]},
+			"faces": {
+				"east": {"uv": [3, 4, 4, 16], "rotation": 90, "texture": "#0"},
+				"west": {"uv": [12, 4, 13, 16], "rotation": 270, "texture": "#0"},
+				"up": {"uv": [1, 0, 15, 10], "texture": "#0"},
+				"down": {"uv": [3, 4, 13, 16], "rotation": 180, "texture": "#0"}
+			}
+		},
+		{
+			"name": "Top Diagonal First",
+			"from": [1, 11, -3.3],
+			"to": [15, 13, 8.02],
+			"rotation": {"angle": 45, "axis": "x", "origin": [8, 8, 8]},
+			"faces": {
+				"east": {"uv": [14, 4, 16, 16], "rotation": 90, "texture": "#0"},
+				"west": {"uv": [0, 4, 2, 16], "rotation": 270, "texture": "#0"},
+				"up": {"uv": [1, 4, 15, 16], "texture": "#0"},
+				"down": {"uv": [1, 4, 15, 16], "rotation": 180, "texture": "#0"}
+			}
+		},
+		{
+			"name": "Top Diagonal",
+			"from": [3, 10, 8],
+			"to": [13, 11, 19.325],
+			"rotation": {"angle": 45, "axis": "x", "origin": [8, 8, 8]},
+			"faces": {
+				"east": {"uv": [3, 4, 4, 16], "rotation": 90, "texture": "#0"},
+				"west": {"uv": [12, 4, 13, 16], "rotation": 270, "texture": "#0"},
+				"up": {"uv": [1, 3, 15, 16], "texture": "#0"},
+				"down": {"uv": [3, 4, 13, 16], "rotation": 180, "texture": "#0"}
+			}
+		},
+		{
+			"name": "Top Diagonal",
+			"from": [1, 11, 8],
+			"to": [15, 13, 19.325],
+			"rotation": {"angle": 45, "axis": "x", "origin": [8, 8, 8]},
+			"faces": {
+				"east": {"uv": [14, 4, 16, 16], "rotation": 90, "texture": "#0"},
+				"west": {"uv": [0, 4, 2, 16], "rotation": 270, "texture": "#0"},
+				"up": {"uv": [1, 4, 15, 16], "texture": "#0"},
+				"down": {"uv": [1, 4, 15, 16], "rotation": 180, "texture": "#0"}
+			}
+		},
+		{
+			"name": "Bottom Diagonal First",
+			"from": [3, -3.305, 5],
+			"to": [13, 8.02, 6],
+			"rotation": {"angle": -45, "axis": "x", "origin": [8, 8, 8]},
+			"faces": {
+				"north": {"uv": [1, 0, 15, 10], "rotation": 180, "texture": "#0"},
+				"east": {"uv": [3, 4, 4, 16], "rotation": 180, "texture": "#0"},
+				"south": {"uv": [3, 4, 13, 16], "rotation": 180, "texture": "#0"},
+				"west": {"uv": [12, 4, 13, 16], "rotation": 180, "texture": "#0"}
+			}
+		},
+		{
+			"name": "Bottom Diagonal First",
+			"from": [1, -3.3, 3],
+			"to": [15, 8.02, 5],
+			"rotation": {"angle": -45, "axis": "x", "origin": [8, 8, 8]},
+			"faces": {
+				"north": {"uv": [1, 4, 15, 16], "rotation": 180, "texture": "#0"},
+				"east": {"uv": [14, 4, 16, 16], "rotation": 180, "texture": "#0"},
+				"south": {"uv": [1, 4, 15, 16], "rotation": 180, "texture": "#0"},
+				"west": {"uv": [0, 4, 2, 16], "rotation": 180, "texture": "#0"}
+			}
+		},
+		{
+			"name": "Bottom Diagonal",
+			"from": [3, 8, 5],
+			"to": [13, 19.325, 6],
+			"rotation": {"angle": -45, "axis": "x", "origin": [8, 8, 8]},
+			"faces": {
+				"north": {"uv": [1, 3, 15, 16], "rotation": 180, "texture": "#0"},
+				"east": {"uv": [3, 4, 4, 16], "rotation": 180, "texture": "#0"},
+				"south": {"uv": [3, 4, 13, 16], "rotation": 180, "texture": "#0"},
+				"west": {"uv": [12, 4, 13, 16], "rotation": 180, "texture": "#0"}
+			}
+		},
+		{
+			"name": "Bottom Diagonal",
+			"from": [1, 8, 3],
+			"to": [15, 19.325, 5],
+			"rotation": {"angle": -45, "axis": "x", "origin": [8, 8, 8]},
+			"faces": {
+				"north": {"uv": [1, 4, 15, 16], "rotation": 180, "texture": "#0"},
+				"east": {"uv": [14, 4, 16, 16], "rotation": 180, "texture": "#0"},
+				"south": {"uv": [1, 4, 15, 16], "rotation": 180, "texture": "#0"},
+				"west": {"uv": [0, 4, 2, 16], "rotation": 180, "texture": "#0"}
+			}
+		}
+	],
+	"groups": [
+		{
+			"name": "Top",
+			"origin": [8, 8, 8],
+			"children": [0, 1, 2, 3]
+		},
+		{
+			"name": "Bottom",
+			"origin": [8, 8, 8],
+			"children": [4, 5, 6, 7]
+		}
+	]
+}
\ No newline at end of file
diff --git a/src/main/resources/assets/create/models/block/belt/diagonal_start.json b/src/main/resources/assets/create/models/block/belt/diagonal_start.json
new file mode 100644
index 000000000..0ae5d7615
--- /dev/null
+++ b/src/main/resources/assets/create/models/block/belt/diagonal_start.json
@@ -0,0 +1,123 @@
+{
+	"credit": "Made with Blockbench",
+	"parent": "block/block",
+	"textures": {
+		"0": "create:block/belt_diagonal",
+		"particle": "create:block/belt_diagonal"
+	},
+	"elements": [
+		{
+			"name": "Top",
+			"from": [0.9, 11, 9.2],
+			"to": [15.1, 13, 15],
+			"faces": {
+				"east": {"uv": [14, 0, 16, 6], "rotation": 90, "texture": "#0"},
+				"south": {"uv": [1, 6, 15, 7], "texture": "#0"},
+				"west": {"uv": [0, 0, 2, 6], "rotation": 270, "texture": "#0"},
+				"up": {"uv": [1, 0, 15, 6], "texture": "#0"},
+				"down": {"uv": [1, 0, 15, 6], "rotation": 180, "texture": "#0"}
+			}
+		},
+		{
+			"name": "Top",
+			"from": [2.9, 10, 9.2],
+			"to": [13.1, 11, 14],
+			"faces": {
+				"east": {"uv": [3, 0, 4, 5], "rotation": 90, "texture": "#0"},
+				"west": {"uv": [12, 0, 13, 5], "rotation": 270, "texture": "#0"},
+				"down": {"uv": [3, 0, 13, 4.8], "rotation": 180, "texture": "#0"}
+			}
+		},
+		{
+			"name": "Bottom",
+			"from": [0.9, 3, 5.9],
+			"to": [15.1, 5, 15],
+			"faces": {
+				"east": {"uv": [14, 6, 16, 15], "rotation": 270, "texture": "#0"},
+				"south": {"uv": [1, 5, 15, 6], "texture": "#0"},
+				"west": {"uv": [0, 6, 2, 15], "rotation": 90, "texture": "#0"},
+				"up": {"uv": [1, 6, 15, 15], "rotation": 180, "texture": "#0"},
+				"down": {"uv": [1, 6, 15, 15], "texture": "#0"}
+			}
+		},
+		{
+			"name": "Bottom",
+			"from": [2.9, 5, 5.9],
+			"to": [13.1, 6, 14],
+			"faces": {
+				"east": {"uv": [3, 7, 4, 15], "rotation": 270, "texture": "#0"},
+				"west": {"uv": [12, 7, 13, 15], "rotation": 90, "texture": "#0"},
+				"up": {"uv": [3, 7, 13, 15], "rotation": 180, "texture": "#0"}
+			}
+		},
+		{
+			"name": "Side",
+			"from": [1, 4, 14],
+			"to": [15, 12, 16],
+			"faces": {
+				"north": {"uv": [1, 8, 15, 16], "texture": "#0"},
+				"east": {"uv": [14, 8, 16, 16], "texture": "#0"},
+				"south": {"uv": [1, 8, 15, 16], "texture": "#0"},
+				"west": {"uv": [0, 8, 2, 16], "texture": "#0"},
+				"up": {"uv": [1, 7, 15, 8], "texture": "#0"},
+				"down": {"uv": [1, 4, 15, 5], "texture": "#0"}
+			}
+		},
+		{
+			"name": "Side",
+			"from": [2.9, 6, 13],
+			"to": [13.1, 10, 14],
+			"faces": {
+				"north": {"uv": [3, 10, 13, 14], "texture": "#0"},
+				"east": {"uv": [3, 10, 4, 14], "texture": "#0"},
+				"west": {"uv": [12, 10, 13, 14], "texture": "#0"}
+			}
+		},
+		{
+			"name": "Top Diagonal",
+			"from": [1, 11, -3.325],
+			"to": [15, 13, 6.8],
+			"rotation": {"angle": 45, "axis": "x", "origin": [8, 8, 8]},
+			"faces": {
+				"east": {"uv": [14, 4, 16, 14], "rotation": 90, "texture": "#0"},
+				"west": {"uv": [0, 4, 2, 14], "rotation": 270, "texture": "#0"},
+				"up": {"uv": [1, 4, 15, 14], "texture": "#0"},
+				"down": {"uv": [1, 4, 15, 14], "rotation": 180, "texture": "#0"}
+			}
+		},
+		{
+			"name": "Top Diagonal",
+			"from": [3, 10, -3.325],
+			"to": [13, 11, 6.8],
+			"rotation": {"angle": 45, "axis": "x", "origin": [8, 8, 8]},
+			"faces": {
+				"east": {"uv": [3, 4, 4, 14], "rotation": 90, "texture": "#0"},
+				"west": {"uv": [12, 4, 13, 14], "rotation": 270, "texture": "#0"},
+				"down": {"uv": [3, 4, 13, 14], "rotation": 180, "texture": "#0"}
+			}
+		},
+		{
+			"name": "Bottom Diagonal",
+			"from": [1, 3, -3.325],
+			"to": [15, 5, 10.1],
+			"rotation": {"angle": 45, "axis": "x", "origin": [8, 8, 8]},
+			"faces": {
+				"east": {"uv": [14, 3, 16, 16], "rotation": 270, "texture": "#0"},
+				"west": {"uv": [0, 3, 2, 16], "rotation": 90, "texture": "#0"},
+				"up": {"uv": [1, 3, 15, 16], "rotation": 180, "texture": "#0"},
+				"down": {"uv": [1, 3, 15, 16], "texture": "#0"}
+			}
+		},
+		{
+			"name": "Bottom Diagonal",
+			"from": [3, 5, -3.325],
+			"to": [13, 6, 10.1],
+			"rotation": {"angle": 45, "axis": "x", "origin": [8, 8, 8]},
+			"faces": {
+				"east": {"uv": [2, 3, 3, 16], "rotation": 270, "texture": "#0"},
+				"west": {"uv": [13, 3, 14, 16], "rotation": 90, "texture": "#0"},
+				"up": {"uv": [3, 3, 13, 16], "rotation": 180, "texture": "#0"}
+			}
+		}
+	]
+}
\ No newline at end of file
diff --git a/src/main/resources/assets/create/models/block/belt/downward_end.json b/src/main/resources/assets/create/models/block/belt/downward_end.json
deleted file mode 100644
index af1981e69..000000000
--- a/src/main/resources/assets/create/models/block/belt/downward_end.json
+++ /dev/null
@@ -1,128 +0,0 @@
-{
-	"credit": "Made with Blockbench",
-	"parent": "block/block",
-	"textures": {
-		"0": "create:block/belt",
-		"particle": "create:block/belt"
-	},
-	"elements": [
-		{
-			"name": "Top",
-			"from": [0.9, 11, 9.2],
-			"to": [15.1, 13, 15],
-			"faces": {
-				"east": {"uv": [0, 1, 2, 7], "rotation": 270, "texture": "#0"},
-				"south": {"uv": [1, 11, 15, 13], "rotation": 180, "texture": "#0"},
-				"west": {"uv": [14, 1, 16, 7], "rotation": 90, "texture": "#0"},
-				"up": {"uv": [1, 1, 15, 6.8], "rotation": 180, "texture": "#0"},
-				"down": {"uv": [1, 1, 15, 6.8], "texture": "#0"}
-			}
-		},
-		{
-			"name": "Top",
-			"from": [2.9, 10, 9.2],
-			"to": [13.1, 11, 14],
-			"faces": {
-				"east": {"uv": [2, 2, 3, 7], "rotation": 270, "texture": "#0"},
-				"south": {"uv": [1, 11, 15, 13], "rotation": 180, "texture": "#0"},
-				"west": {"uv": [13, 2, 14, 7], "rotation": 90, "texture": "#0"},
-				"up": {"uv": [1, 1, 15, 6.8], "rotation": 180, "texture": "#0"},
-				"down": {"uv": [3, 2, 13, 7], "texture": "#0"}
-			}
-		},
-		{
-			"name": "Bottom",
-			"from": [0.9, 3, 5.9],
-			"to": [15.1, 5, 15],
-			"faces": {
-				"east": {"uv": [0, 6, 2, 15], "rotation": 90, "texture": "#0"},
-				"south": {"uv": [1, 5, 15, 3], "rotation": 180, "texture": "#0"},
-				"west": {"uv": [14, 6, 16, 15], "rotation": 270, "texture": "#0"},
-				"up": {"uv": [1, 6, 15, 15], "texture": "#0"},
-				"down": {"uv": [1, 6, 15, 15], "rotation": 180, "texture": "#0"}
-			}
-		},
-		{
-			"name": "Bottom",
-			"from": [2.9, 5, 5.9],
-			"to": [13.1, 6, 14],
-			"faces": {
-				"east": {"uv": [2, 6, 3, 14], "rotation": 90, "texture": "#0"},
-				"south": {"uv": [1, 5, 15, 3], "rotation": 180, "texture": "#0"},
-				"west": {"uv": [13, 6, 14, 14], "rotation": 270, "texture": "#0"},
-				"up": {"uv": [3, 7, 13, 15], "texture": "#0"}
-			}
-		},
-		{
-			"name": "Side",
-			"from": [1, 4, 14],
-			"to": [15, 12, 16],
-			"faces": {
-				"north": {"uv": [1, 4, 15, 12], "rotation": 180, "texture": "#0"},
-				"east": {"uv": [0, 4, 2, 12], "rotation": 180, "texture": "#0"},
-				"south": {"uv": [1, 4, 15, 12], "rotation": 180, "texture": "#0"},
-				"west": {"uv": [14, 4, 16, 12], "rotation": 180, "texture": "#0"},
-				"up": {"uv": [1, 3, 15, 5], "texture": "#0"},
-				"down": {"uv": [1, 11, 15, 13], "texture": "#0"}
-			}
-		},
-		{
-			"name": "Side",
-			"from": [2.9, 6, 13],
-			"to": [13.1, 10, 14],
-			"faces": {
-				"north": {"uv": [3, 6, 13, 10], "rotation": 180, "texture": "#0"},
-				"east": {"uv": [2, 6, 3, 10], "rotation": 180, "texture": "#0"},
-				"west": {"uv": [13, 6, 14, 10], "rotation": 180, "texture": "#0"}
-			}
-		},
-		{
-			"name": "Top Diagonal",
-			"from": [1, 11, -3.325],
-			"to": [15, 13, 6.7],
-			"rotation": {"angle": 45, "axis": "x", "origin": [8, 8, 8]},
-			"faces": {
-				"north": {"uv": [1, 7, 15, 9], "texture": "#0"},
-				"east": {"uv": [0, 6, 2, 16], "rotation": 270, "texture": "#0"},
-				"west": {"uv": [14, 6, 16, 16], "rotation": 90, "texture": "#0"},
-				"up": {"uv": [1, 6, 15, 16], "rotation": 180, "texture": "#0"},
-				"down": {"uv": [1, 5.8, 15, 16], "texture": "#0"}
-			}
-		},
-		{
-			"name": "Top Diagonal",
-			"from": [3, 10, -3.325],
-			"to": [13, 11, 6.7],
-			"rotation": {"angle": 45, "axis": "x", "origin": [8, 8, 8]},
-			"faces": {
-				"east": {"uv": [2, 6, 3, 16], "rotation": 270, "texture": "#0"},
-				"west": {"uv": [13, 6, 14, 16], "rotation": 90, "texture": "#0"},
-				"down": {"uv": [3, 5.8, 13, 16], "texture": "#0"}
-			}
-		},
-		{
-			"name": "Bottom Diagonal",
-			"from": [1, 3, -3.325],
-			"to": [15, 5, 10.1],
-			"rotation": {"angle": 45, "axis": "x", "origin": [8, 8, 8]},
-			"faces": {
-				"north": {"uv": [1, 7, 15, 9], "texture": "#0"},
-				"east": {"uv": [0, 0, 2, 13], "rotation": 90, "texture": "#0"},
-				"west": {"uv": [14, 0, 16, 13], "rotation": 270, "texture": "#0"},
-				"up": {"uv": [1, 0, 15, 13], "texture": "#0"},
-				"down": {"uv": [1, 0, 15, 13], "rotation": 180, "texture": "#0"}
-			}
-		},
-		{
-			"name": "Bottom Diagonal",
-			"from": [3, 5, -3.325],
-			"to": [13, 6, 9.1],
-			"rotation": {"angle": 45, "axis": "x", "origin": [8, 8, 8]},
-			"faces": {
-				"east": {"uv": [2, 0, 3, 12], "rotation": 90, "texture": "#0"},
-				"west": {"uv": [13, 0, 14, 12], "rotation": 270, "texture": "#0"},
-				"up": {"uv": [3, 0, 13, 12], "texture": "#0"}
-			}
-		}
-	]
-}
\ No newline at end of file
diff --git a/src/main/resources/assets/create/models/block/belt/downward_middle.json b/src/main/resources/assets/create/models/block/belt/downward_middle.json
deleted file mode 100644
index 1b81b5db9..000000000
--- a/src/main/resources/assets/create/models/block/belt/downward_middle.json
+++ /dev/null
@@ -1,108 +0,0 @@
-{
-	"credit": "Made with Blockbench",
-	"parent": "block/block",
-	"textures": {
-		"0": "create:block/belt",
-		"particle": "create:block/belt"
-	},
-	"elements": [
-		{
-			"name": "Bottom Diagonal",
-			"from": [1, 3, -3.325],
-			"to": [15, 5, 6.6],
-			"rotation": {"angle": 45, "axis": "x", "origin": [8, 8, 8]},
-			"faces": {
-				"north": {"uv": [1, 11, 15, 13], "rotation": 180, "texture": "#0"},
-				"east": {"uv": [0, 0, 2, 10], "rotation": 90, "texture": "#0"},
-				"west": {"uv": [14, 0, 16, 10], "rotation": 270, "texture": "#0"},
-				"up": {"uv": [1, 0, 15, 10], "texture": "#0"},
-				"down": {"uv": [1, 0, 15, 10], "rotation": 180, "texture": "#0"}
-			}
-		},
-		{
-			"name": "Bottom Diagonal",
-			"from": [3, 5, -3.325],
-			"to": [13, 6, 6.6],
-			"rotation": {"angle": 45, "axis": "x", "origin": [8, 8, 8]},
-			"faces": {
-				"east": {"uv": [13, 0, 14, 10], "rotation": 90, "texture": "#0"},
-				"west": {"uv": [2, 0, 3, 10], "rotation": 270, "texture": "#0"},
-				"up": {"uv": [3, 0, 13, 10], "texture": "#0"},
-				"down": {"uv": [1, 0, 15, 10], "rotation": 180, "texture": "#0"}
-			}
-		},
-		{
-			"name": "Top Diagonal",
-			"from": [1, 11, -3.325],
-			"to": [15, 13, 10],
-			"rotation": {"angle": 45, "axis": "x", "origin": [8, 8, 8]},
-			"faces": {
-				"north": {"uv": [1, 3, 15, 5], "texture": "#0"},
-				"east": {"uv": [0, 3, 2, 16], "rotation": 270, "texture": "#0"},
-				"west": {"uv": [14, 3, 16, 16], "rotation": 90, "texture": "#0"},
-				"up": {"uv": [1, 3, 15, 16], "rotation": 180, "texture": "#0"},
-				"down": {"uv": [1, 3, 15, 16], "texture": "#0"}
-			}
-		},
-		{
-			"name": "Top Diagonal",
-			"from": [3, 10, -3.325],
-			"to": [13, 11, 10],
-			"rotation": {"angle": 45, "axis": "x", "origin": [8, 8, 8]},
-			"faces": {
-				"east": {"uv": [13, 3, 14, 16], "rotation": 270, "texture": "#0"},
-				"west": {"uv": [2, 3, 3, 16], "rotation": 90, "texture": "#0"},
-				"down": {"uv": [3, 3, 13, 16], "texture": "#0"}
-			}
-		},
-		{
-			"name": "Top Diagonal First",
-			"from": [1, 11, 10],
-			"to": [15, 13, 19.3],
-			"rotation": {"angle": 45, "axis": "x", "origin": [8, 8, 8]},
-			"faces": {
-				"north": {"uv": [1, 11, 15, 13], "texture": "#0"},
-				"east": {"uv": [0, 0, 2, 10], "rotation": 270, "texture": "#0"},
-				"west": {"uv": [14, 0, 16, 10], "rotation": 90, "texture": "#0"},
-				"up": {"uv": [1, 0, 15, 10], "rotation": 180, "texture": "#0"},
-				"down": {"uv": [1, 0, 15, 10.2], "texture": "#0"}
-			}
-		},
-		{
-			"name": "Top Diagonal First",
-			"from": [3, 10, 10],
-			"to": [13, 11, 19.3],
-			"rotation": {"angle": 45, "axis": "x", "origin": [8, 8, 8]},
-			"faces": {
-				"east": {"uv": [13, 0, 14, 10], "rotation": 270, "texture": "#0"},
-				"west": {"uv": [2, 0, 3, 10], "rotation": 90, "texture": "#0"},
-				"down": {"uv": [3, 0, 13, 10], "texture": "#0"}
-			}
-		},
-		{
-			"name": "Bottom Diagonal First",
-			"from": [1, 3, 6.6],
-			"to": [15, 5, 19.3],
-			"rotation": {"angle": 45, "axis": "x", "origin": [8, 8, 8]},
-			"faces": {
-				"north": {"uv": [1, 3, 15, 5], "texture": "#0"},
-				"east": {"uv": [0, 3, 2, 16], "rotation": 90, "texture": "#0"},
-				"west": {"uv": [14, 3, 16, 16], "rotation": 270, "texture": "#0"},
-				"up": {"uv": [1, 3, 15, 16], "texture": "#0"},
-				"down": {"uv": [1, 3, 15, 16], "rotation": 180, "texture": "#0"}
-			}
-		},
-		{
-			"name": "Bottom Diagonal First",
-			"from": [3, 5, 6.6],
-			"to": [13, 6, 19.3],
-			"rotation": {"angle": 45, "axis": "x", "origin": [8, 8, 8]},
-			"faces": {
-				"east": {"uv": [13, 3, 14, 16], "rotation": 90, "texture": "#0"},
-				"west": {"uv": [2, 3, 3, 16], "rotation": 270, "texture": "#0"},
-				"up": {"uv": [3, 3, 13, 16], "texture": "#0"},
-				"down": {"uv": [1, 3, 15, 16], "rotation": 180, "texture": "#0"}
-			}
-		}
-	]
-}
\ No newline at end of file
diff --git a/src/main/resources/assets/create/models/block/belt/downward_start.json b/src/main/resources/assets/create/models/block/belt/downward_start.json
deleted file mode 100644
index d2654a350..000000000
--- a/src/main/resources/assets/create/models/block/belt/downward_start.json
+++ /dev/null
@@ -1,125 +0,0 @@
-{
-	"credit": "Made with Blockbench",
-	"parent": "block/block",
-	"textures": {
-		"0": "create:block/belt",
-		"particle": "create:block/belt"
-	},
-	"elements": [
-		{
-			"name": "Bottom",
-			"from": [0.9, 3, 1],
-			"to": [15.1, 5, 6.8],
-			"faces": {
-				"north": {"uv": [1, 11, 15, 13], "rotation": 180, "texture": "#0"},
-				"east": {"uv": [0, 1, 2, 7], "rotation": 90, "texture": "#0"},
-				"west": {"uv": [14, 1, 16, 7], "rotation": 270, "texture": "#0"},
-				"up": {"uv": [1, 1, 15, 6.8], "texture": "#0"},
-				"down": {"uv": [1, 1, 15, 6.8], "rotation": 180, "texture": "#0"}
-			}
-		},
-		{
-			"name": "Bottom",
-			"from": [2.9, 5, 2],
-			"to": [13.1, 6, 6.8],
-			"faces": {
-				"east": {"uv": [2, 2, 3, 7], "rotation": 90, "texture": "#0"},
-				"west": {"uv": [13, 2, 14, 7], "rotation": 270, "texture": "#0"},
-				"up": {"uv": [3, 2, 13, 7], "texture": "#0"}
-			}
-		},
-		{
-			"name": "Top",
-			"from": [0.9, 11, 1],
-			"to": [15.1, 13, 10.1],
-			"faces": {
-				"north": {"uv": [1, 3, 15, 5], "texture": "#0"},
-				"east": {"uv": [0, 6, 2, 15], "rotation": 270, "texture": "#0"},
-				"west": {"uv": [14, 6, 16, 15], "rotation": 90, "texture": "#0"},
-				"up": {"uv": [1, 6, 15, 15], "rotation": 180, "texture": "#0"},
-				"down": {"uv": [1, 6, 15, 15], "texture": "#0"}
-			}
-		},
-		{
-			"name": "Top",
-			"from": [2.9, 10, 2],
-			"to": [13.1, 11, 10.1],
-			"faces": {
-				"east": {"uv": [13, 6, 14, 14], "rotation": 270, "texture": "#0"},
-				"west": {"uv": [2, 6, 3, 14], "rotation": 90, "texture": "#0"},
-				"down": {"uv": [3, 6, 13, 14], "texture": "#0"}
-			}
-		},
-		{
-			"name": "Side",
-			"from": [1, 4, 0],
-			"to": [15, 12, 2],
-			"faces": {
-				"north": {"uv": [1, 4, 15, 12], "texture": "#0"},
-				"east": {"uv": [0, 4, 2, 12], "texture": "#0"},
-				"south": {"uv": [1, 4, 15, 12], "texture": "#0"},
-				"west": {"uv": [14, 4, 16, 12], "texture": "#0"},
-				"up": {"uv": [1, 3, 15, 5], "rotation": 180, "texture": "#0"},
-				"down": {"uv": [1, 11, 15, 13], "rotation": 180, "texture": "#0"}
-			}
-		},
-		{
-			"name": "Side",
-			"from": [2.9, 6, 2],
-			"to": [13.1, 10, 3],
-			"faces": {
-				"east": {"uv": [2, 6, 3, 10], "texture": "#0"},
-				"south": {"uv": [3, 6, 13, 10], "texture": "#0"},
-				"west": {"uv": [13, 6, 14, 10], "texture": "#0"}
-			}
-		},
-		{
-			"name": "Bottom Diagonal",
-			"from": [1, 3, 9.2],
-			"to": [15, 5, 19.3],
-			"rotation": {"angle": 45, "axis": "x", "origin": [8, 8, 8]},
-			"faces": {
-				"north": {"uv": [1, 11, 15, 13], "rotation": 180, "texture": "#0"},
-				"east": {"uv": [0, 1, 2, 11], "rotation": 90, "texture": "#0"},
-				"west": {"uv": [14, 1, 16, 11], "rotation": 270, "texture": "#0"},
-				"up": {"uv": [1, 1, 15, 11.1], "texture": "#0"},
-				"down": {"uv": [1, 1, 15, 11], "rotation": 180, "texture": "#0"}
-			}
-		},
-		{
-			"name": "Bottom Diagonal",
-			"from": [3, 5, 9.2],
-			"to": [13, 6, 19.3],
-			"rotation": {"angle": 45, "axis": "x", "origin": [8, 8, 8]},
-			"faces": {
-				"east": {"uv": [13, 1, 14, 11], "rotation": 90, "texture": "#0"},
-				"west": {"uv": [2, 1, 3, 11], "rotation": 270, "texture": "#0"},
-				"up": {"uv": [3, 1, 13, 11.1], "texture": "#0"}
-			}
-		},
-		{
-			"name": "Top Diagonal",
-			"from": [1, 11, 5.9],
-			"to": [15, 13, 19.3],
-			"rotation": {"angle": 45, "axis": "x", "origin": [8, 8, 8]},
-			"faces": {
-				"north": {"uv": [1, 3, 15, 5], "texture": "#0"},
-				"east": {"uv": [0, 0, 2, 13], "rotation": 270, "texture": "#0"},
-				"west": {"uv": [14, 0, 16, 13], "rotation": 90, "texture": "#0"},
-				"up": {"uv": [1, 0, 15, 13], "rotation": 180, "texture": "#0"},
-				"down": {"uv": [1, 0, 15, 13], "texture": "#0"}
-			}
-		},
-		{
-			"name": "Top Diagonal",
-			"from": [3, 10, 6.9],
-			"to": [13, 11, 19.3],
-			"rotation": {"angle": 45, "axis": "x", "origin": [8, 8, 8]},
-			"faces": {
-				"east": {"uv": [13, 0, 14, 12], "rotation": 270, "texture": "#0"},
-				"west": {"uv": [2, 0, 3, 12], "rotation": 90, "texture": "#0"},
-				"down": {"uv": [3, 0, 13, 12], "texture": "#0"}
-			}
-		}
-	]
-}
\ No newline at end of file
diff --git a/src/main/resources/assets/create/models/block/belt/end.json b/src/main/resources/assets/create/models/block/belt/end.json
new file mode 100644
index 000000000..142f58c71
--- /dev/null
+++ b/src/main/resources/assets/create/models/block/belt/end.json
@@ -0,0 +1,54 @@
+{
+	"credit": "Made with Blockbench",
+	"parent": "block/block",
+	"textures": {
+		"0": "create:block/belt"
+	},
+	"elements": [
+		{
+			"name": "Top",
+			"from": [1, 11, 0],
+			"to": [15, 13, 15],
+			"faces": {
+				"east": {"uv": [0, 1, 2, 16], "rotation": 270, "texture": "#0"},
+				"south": {"uv": [1, 1, 15, 0], "texture": "#0"},
+				"west": {"uv": [14, 1, 16, 16], "rotation": 90, "texture": "#0"},
+				"up": {"uv": [1, 1, 15, 16], "rotation": 180, "texture": "#0"},
+				"down": {"uv": [1, 1, 15, 16], "texture": "#0"}
+			}
+		},
+		{
+			"name": "Top",
+			"from": [3, 10, 0],
+			"to": [13, 11, 14],
+			"faces": {
+				"east": {"uv": [3, 2, 4, 16], "rotation": 270, "texture": "#0"},
+				"west": {"uv": [12, 2, 13, 16], "rotation": 90, "texture": "#0"},
+				"down": {"uv": [3, 2, 13, 16], "texture": "#0"}
+			}
+		},
+		{
+			"name": "Side",
+			"from": [1.1, 4, 14],
+			"to": [14.9, 12, 16],
+			"faces": {
+				"north": {"uv": [1, 8, 15, 16], "rotation": 180, "texture": "#0"},
+				"east": {"uv": [0, 8, 2, 16], "rotation": 180, "texture": "#0"},
+				"south": {"uv": [1, 8, 15, 16], "rotation": 180, "texture": "#0"},
+				"west": {"uv": [14, 8, 16, 16], "rotation": 180, "texture": "#0"},
+				"up": {"uv": [1, 15, 15, 16], "rotation": 180, "texture": "#0"},
+				"down": {"uv": [1, 8, 15, 9], "rotation": 180, "texture": "#0"}
+			}
+		},
+		{
+			"name": "Side",
+			"from": [3, 6, 13],
+			"to": [13, 10, 14],
+			"faces": {
+				"north": {"uv": [3, 10, 13, 14], "rotation": 180, "texture": "#0"},
+				"east": {"uv": [12, 10, 13, 14], "rotation": 180, "texture": "#0"},
+				"west": {"uv": [3, 10, 4, 14], "rotation": 180, "texture": "#0"}
+			}
+		}
+	]
+}
\ No newline at end of file
diff --git a/src/main/resources/assets/create/models/block/belt/end_bottom.json b/src/main/resources/assets/create/models/block/belt/end_bottom.json
new file mode 100644
index 000000000..1947f8302
--- /dev/null
+++ b/src/main/resources/assets/create/models/block/belt/end_bottom.json
@@ -0,0 +1,31 @@
+{
+	"credit": "Made with Blockbench",
+	"parent": "block/block",
+	"textures": {
+		"1": "create:block/belt_offset"
+	},
+	"elements": [
+		{
+			"name": "Bottom",
+			"from": [1, 3, 0],
+			"to": [15, 5, 15],
+			"faces": {
+				"east": {"uv": [0, 0, 2, 15], "rotation": 90, "texture": "#1"},
+				"south": {"uv": [1, 15, 15, 16], "rotation": 180, "texture": "#1"},
+				"west": {"uv": [14, 0, 16, 15], "rotation": 270, "texture": "#1"},
+				"up": {"uv": [1, 0, 15, 15], "texture": "#1"},
+				"down": {"uv": [1, 0, 15, 15], "rotation": 180, "texture": "#1"}
+			}
+		},
+		{
+			"name": "Bottom",
+			"from": [3, 5, 0],
+			"to": [13, 6, 14],
+			"faces": {
+				"east": {"uv": [3, 0, 4, 14], "rotation": 90, "texture": "#1"},
+				"west": {"uv": [12, 0, 13, 14], "rotation": 270, "texture": "#1"},
+				"up": {"uv": [3, 0, 13, 14], "texture": "#1"}
+			}
+		}
+	]
+}
\ No newline at end of file
diff --git a/src/main/resources/assets/create/models/block/belt/horizontal_end.json b/src/main/resources/assets/create/models/block/belt/horizontal_end.json
deleted file mode 100644
index 180675f62..000000000
--- a/src/main/resources/assets/create/models/block/belt/horizontal_end.json
+++ /dev/null
@@ -1,77 +0,0 @@
-{
-	"credit": "Made with Blockbench",
-	"parent": "block/block",
-	"textures": {
-		"0": "create:block/belt",
-		"particle": "create:block/belt"
-	},
-	"elements": [
-		{
-			"name": "Bottom",
-			"from": [1, 3, 0],
-			"to": [15, 5, 15],
-			"faces": {
-				"east": {"uv": [0, 0, 2, 15], "rotation": 90, "texture": "#0"},
-				"south": {"uv": [1, 3, 15, 5], "rotation": 180, "texture": "#0"},
-				"west": {"uv": [14, 0, 16, 15], "rotation": 270, "texture": "#0"},
-				"up": {"uv": [1, 0, 15, 15], "texture": "#0"},
-				"down": {"uv": [1, 0, 15, 15], "rotation": 180, "texture": "#0"}
-			}
-		},
-		{
-			"name": "Bottom",
-			"from": [3, 5, 0],
-			"to": [13, 6, 14],
-			"faces": {
-				"east": {"uv": [2, 0, 3, 14], "rotation": 90, "texture": "#0"},
-				"west": {"uv": [13, 0, 14, 14], "rotation": 270, "texture": "#0"},
-				"up": {"uv": [3, 0, 13, 14], "texture": "#0"}
-			}
-		},
-		{
-			"name": "Top",
-			"from": [1, 11, 0],
-			"to": [15, 13, 15],
-			"faces": {
-				"east": {"uv": [0, 1, 2, 16], "rotation": 270, "texture": "#0"},
-				"south": {"uv": [1, 5, 15, 3], "texture": "#0"},
-				"west": {"uv": [14, 1, 16, 16], "rotation": 90, "texture": "#0"},
-				"up": {"uv": [1, 1, 15, 16], "rotation": 180, "texture": "#0"},
-				"down": {"uv": [1, 1, 15, 16], "texture": "#0"}
-			}
-		},
-		{
-			"name": "Top",
-			"from": [3, 10, 0],
-			"to": [13, 11, 14],
-			"faces": {
-				"east": {"uv": [2, 2, 3, 16], "rotation": 270, "texture": "#0"},
-				"west": {"uv": [13, 2, 14, 16], "rotation": 90, "texture": "#0"},
-				"down": {"uv": [3, 2, 13, 16], "texture": "#0"}
-			}
-		},
-		{
-			"name": "Side",
-			"from": [1.1, 4, 14],
-			"to": [14.9, 12, 16],
-			"faces": {
-				"north": {"uv": [1, 4, 15, 12], "rotation": 180, "texture": "#0"},
-				"east": {"uv": [0, 4, 2, 12], "rotation": 180, "texture": "#0"},
-				"south": {"uv": [1, 4, 15, 12], "rotation": 180, "texture": "#0"},
-				"west": {"uv": [14, 4, 16, 12], "rotation": 180, "texture": "#0"},
-				"up": {"uv": [1, 3, 15, 5], "rotation": 180, "texture": "#0"},
-				"down": {"uv": [1, 11, 15, 13], "rotation": 180, "texture": "#0"}
-			}
-		},
-		{
-			"name": "Side",
-			"from": [3, 6, 13],
-			"to": [13, 10, 14],
-			"faces": {
-				"north": {"uv": [3, 6, 13, 10], "rotation": 180, "texture": "#0"},
-				"east": {"uv": [2, 6, 3, 10], "rotation": 180, "texture": "#0"},
-				"west": {"uv": [13, 6, 14, 10], "rotation": 180, "texture": "#0"}
-			}
-		}
-	]
-}
\ No newline at end of file
diff --git a/src/main/resources/assets/create/models/block/belt/horizontal_middle.json b/src/main/resources/assets/create/models/block/belt/horizontal_middle.json
deleted file mode 100644
index 2c2a87512..000000000
--- a/src/main/resources/assets/create/models/block/belt/horizontal_middle.json
+++ /dev/null
@@ -1,52 +0,0 @@
-{
-	"credit": "Made with Blockbench",
-	"parent": "block/block",
-	"textures": {
-		"0": "create:block/belt",
-		"particle": "create:block/belt"
-	},
-	"elements": [
-		{
-			"name": "Bottom",
-			"from": [1, 3, 0],
-			"to": [15, 5, 16],
-			"faces": {
-				"east": {"uv": [0, 0, 2, 16], "rotation": 90, "texture": "#0"},
-				"west": {"uv": [14, 0, 16, 16], "rotation": 270, "texture": "#0"},
-				"up": {"uv": [1, 0, 15, 16], "texture": "#0"},
-				"down": {"uv": [1, 0, 15, 16], "rotation": 180, "texture": "#0"}
-			}
-		},
-		{
-			"name": "Bottom",
-			"from": [3, 5, 0],
-			"to": [13, 6, 16],
-			"faces": {
-				"east": {"uv": [13, 0, 14, 16], "rotation": 90, "texture": "#0"},
-				"west": {"uv": [2, 0, 3, 16], "rotation": 270, "texture": "#0"},
-				"up": {"uv": [3, 0, 13, 16], "texture": "#0"}
-			}
-		},
-		{
-			"name": "Top",
-			"from": [1, 11, 0],
-			"to": [15, 13, 16],
-			"faces": {
-				"east": {"uv": [0, 0, 2, 16], "rotation": 270, "texture": "#0"},
-				"west": {"uv": [14, 0, 16, 16], "rotation": 90, "texture": "#0"},
-				"up": {"uv": [1, 0, 15, 16], "rotation": 180, "texture": "#0"},
-				"down": {"uv": [1, 0, 15, 16], "texture": "#0"}
-			}
-		},
-		{
-			"name": "Top",
-			"from": [3, 10, 0],
-			"to": [13, 11, 16],
-			"faces": {
-				"east": {"uv": [13, 0, 14, 16], "rotation": 270, "texture": "#0"},
-				"west": {"uv": [13, 0, 14, 16], "rotation": 90, "texture": "#0"},
-				"down": {"uv": [3, 0, 13, 16], "texture": "#0"}
-			}
-		}
-	]
-}
\ No newline at end of file
diff --git a/src/main/resources/assets/create/models/block/belt/horizontal_start.json b/src/main/resources/assets/create/models/block/belt/horizontal_start.json
deleted file mode 100644
index e58a1b2f9..000000000
--- a/src/main/resources/assets/create/models/block/belt/horizontal_start.json
+++ /dev/null
@@ -1,78 +0,0 @@
-{
-	"credit": "Made with Blockbench",
-	"parent": "block/block",
-	"textures": {
-		"0": "create:block/belt",
-		"particle": "create:block/belt"
-	},
-	"elements": [
-		{
-			"name": "Bottom",
-			"from": [1, 3, 1],
-			"to": [15, 5, 16],
-			"faces": {
-				"north": {"uv": [1, 11, 15, 13], "rotation": 180, "texture": "#0"},
-				"east": {"uv": [0, 1, 2, 16], "rotation": 90, "texture": "#0"},
-				"west": {"uv": [14, 1, 16, 16], "rotation": 270, "texture": "#0"},
-				"up": {"uv": [1, 1, 15, 16], "texture": "#0"},
-				"down": {"uv": [1, 1, 15, 16], "rotation": 180, "texture": "#0"}
-			}
-		},
-		{
-			"name": "Bottom",
-			"from": [3, 5, 2],
-			"to": [13, 6, 16],
-			"faces": {
-				"north": {"uv": [1, 11, 15, 13], "rotation": 180, "texture": "#0"},
-				"east": {"uv": [13, 2, 14, 16], "rotation": 90, "texture": "#0"},
-				"west": {"uv": [2, 2, 3, 16], "rotation": 90, "texture": "#0"},
-				"up": {"uv": [3, 2, 13, 16], "texture": "#0"}
-			}
-		},
-		{
-			"name": "Top",
-			"from": [3, 10, 2],
-			"to": [13, 11, 16],
-			"faces": {
-				"east": {"uv": [2, 2, 3, 16], "rotation": 270, "texture": "#0"},
-				"west": {"uv": [13, 2, 14, 16], "rotation": 90, "texture": "#0"},
-				"down": {"uv": [3, 2, 13, 16], "texture": "#0"}
-			}
-		},
-		{
-			"name": "Top",
-			"from": [1, 11, 1],
-			"to": [15, 13, 16],
-			"faces": {
-				"north": {"uv": [1, 3, 15, 5], "texture": "#0"},
-				"east": {"uv": [0, 0, 2, 15], "rotation": 270, "texture": "#0"},
-				"west": {"uv": [14, 0, 16, 15], "rotation": 90, "texture": "#0"},
-				"up": {"uv": [1, 0, 15, 15], "rotation": 180, "texture": "#0"},
-				"down": {"uv": [1, 1, 15, 16], "texture": "#0"}
-			}
-		},
-		{
-			"name": "Side",
-			"from": [1.1, 4, 0],
-			"to": [14.9, 12, 2],
-			"faces": {
-				"north": {"uv": [1, 4, 15, 12], "texture": "#0"},
-				"east": {"uv": [0, 4, 2, 12], "texture": "#0"},
-				"south": {"uv": [1, 4, 15, 12], "texture": "#0"},
-				"west": {"uv": [14, 4, 16, 12], "texture": "#0"},
-				"up": {"uv": [1, 3, 15, 5], "rotation": 180, "texture": "#0"},
-				"down": {"uv": [1, 11, 15, 13], "rotation": 180, "texture": "#0"}
-			}
-		},
-		{
-			"name": "Side",
-			"from": [3, 6, 2],
-			"to": [13, 10, 3],
-			"faces": {
-				"east": {"uv": [2, 6, 3, 10], "texture": "#0"},
-				"south": {"uv": [3, 6, 13, 10], "texture": "#0"},
-				"west": {"uv": [13, 6, 14, 10], "texture": "#0"}
-			}
-		}
-	]
-}
\ No newline at end of file
diff --git a/src/main/resources/assets/create/models/block/belt/middle.json b/src/main/resources/assets/create/models/block/belt/middle.json
new file mode 100644
index 000000000..3db35509a
--- /dev/null
+++ b/src/main/resources/assets/create/models/block/belt/middle.json
@@ -0,0 +1,30 @@
+{
+	"credit": "Made with Blockbench",
+	"parent": "block/block",
+	"textures": {
+		"0": "create:block/belt"
+	},
+	"elements": [
+		{
+			"name": "Top",
+			"from": [1, 11, 0],
+			"to": [15, 13, 16],
+			"faces": {
+				"east": {"uv": [0, 0, 2, 16], "rotation": 270, "texture": "#0"},
+				"west": {"uv": [14, 0, 16, 16], "rotation": 90, "texture": "#0"},
+				"up": {"uv": [1, 0, 15, 16], "rotation": 180, "texture": "#0"},
+				"down": {"uv": [1, 0, 15, 16], "texture": "#0"}
+			}
+		},
+		{
+			"name": "Top",
+			"from": [3, 10, 0],
+			"to": [13, 11, 16],
+			"faces": {
+				"east": {"uv": [12, 0, 13, 16], "rotation": 270, "texture": "#0"},
+				"west": {"uv": [3, 0, 4, 16], "rotation": 90, "texture": "#0"},
+				"down": {"uv": [3, 0, 13, 16], "texture": "#0"}
+			}
+		}
+	]
+}
\ No newline at end of file
diff --git a/src/main/resources/assets/create/models/block/belt/middle_bottom.json b/src/main/resources/assets/create/models/block/belt/middle_bottom.json
new file mode 100644
index 000000000..64454f09c
--- /dev/null
+++ b/src/main/resources/assets/create/models/block/belt/middle_bottom.json
@@ -0,0 +1,30 @@
+{
+	"credit": "Made with Blockbench",
+	"parent": "block/block",
+	"textures": {
+		"1": "create:block/belt_offset"
+	},
+	"elements": [
+		{
+			"name": "Bottom",
+			"from": [1, 3, 0],
+			"to": [15, 5, 16],
+			"faces": {
+				"east": {"uv": [0, 0, 2, 16], "rotation": 90, "texture": "#1"},
+				"west": {"uv": [14, 0, 16, 16], "rotation": 270, "texture": "#1"},
+				"up": {"uv": [1, 0, 15, 16], "texture": "#1"},
+				"down": {"uv": [1, 0, 15, 16], "rotation": 180, "texture": "#1"}
+			}
+		},
+		{
+			"name": "Bottom",
+			"from": [3, 5, 0],
+			"to": [13, 6, 16],
+			"faces": {
+				"east": {"uv": [12, 0, 13, 16], "rotation": 90, "texture": "#1"},
+				"west": {"uv": [3, 0, 4, 16], "rotation": 270, "texture": "#1"},
+				"up": {"uv": [3, 0, 13, 16], "texture": "#1"}
+			}
+		}
+	]
+}
\ No newline at end of file
diff --git a/src/main/resources/assets/create/models/block/belt/particle.json b/src/main/resources/assets/create/models/block/belt/particle.json
new file mode 100644
index 000000000..abb3be97e
--- /dev/null
+++ b/src/main/resources/assets/create/models/block/belt/particle.json
@@ -0,0 +1,7 @@
+{
+	"textures": {
+		"particle": "create:block/belt"
+	},
+	"elements": [
+	]
+}
\ No newline at end of file
diff --git a/src/main/resources/assets/create/models/block/belt/sideways_end.json b/src/main/resources/assets/create/models/block/belt/sideways_end.json
deleted file mode 100644
index b4a5bd46d..000000000
--- a/src/main/resources/assets/create/models/block/belt/sideways_end.json
+++ /dev/null
@@ -1,77 +0,0 @@
-{
-	"credit": "Made with Blockbench",
-	"parent": "block/block",
-	"textures": {
-		"0": "create:block/belt",
-		"particle": "create:block/belt"
-	},
-	"elements": [
-		{
-			"name": "Bottom",
-			"from": [11, 1, 0],
-			"to": [13, 15, 15],
-			"faces": {
-				"east": {"uv": [1, 0, 15, 15], "rotation": 90, "texture": "#0"},
-				"south": {"uv": [1, 3, 15, 5], "rotation": 90, "texture": "#0"},
-				"west": {"uv": [1, 0, 15, 15], "rotation": 270, "texture": "#0"},
-				"up": {"uv": [0, 0, 2, 15], "texture": "#0"},
-				"down": {"uv": [14, 0, 16, 15], "rotation": 180, "texture": "#0"}
-			}
-		},
-		{
-			"name": "Bottom",
-			"from": [10, 3, 0],
-			"to": [11, 13, 14],
-			"faces": {
-				"west": {"uv": [3, 0, 13, 14], "rotation": 270, "texture": "#0"},
-				"up": {"uv": [2, 0, 3, 14], "texture": "#0"},
-				"down": {"uv": [13, 0, 14, 14], "rotation": 180, "texture": "#0"}
-			}
-		},
-		{
-			"name": "Top",
-			"from": [3, 1, 0],
-			"to": [5, 15, 15],
-			"faces": {
-				"east": {"uv": [1, 1, 15, 16], "rotation": 270, "texture": "#0"},
-				"south": {"uv": [1, 5, 15, 3], "rotation": 270, "texture": "#0"},
-				"west": {"uv": [1, 1, 15, 16], "rotation": 90, "texture": "#0"},
-				"up": {"uv": [0, 1, 2, 16], "rotation": 180, "texture": "#0"},
-				"down": {"uv": [14, 1, 16, 16], "texture": "#0"}
-			}
-		},
-		{
-			"name": "Top",
-			"from": [5, 3, 0],
-			"to": [6, 13, 14],
-			"faces": {
-				"east": {"uv": [3, 2, 13, 16], "rotation": 270, "texture": "#0"},
-				"up": {"uv": [2, 2, 3, 16], "rotation": 180, "texture": "#0"},
-				"down": {"uv": [13, 2, 14, 16], "texture": "#0"}
-			}
-		},
-		{
-			"name": "Side",
-			"from": [4, 1.1, 14],
-			"to": [12, 14.9, 16],
-			"faces": {
-				"north": {"uv": [1, 4, 15, 12], "rotation": 270, "texture": "#0"},
-				"east": {"uv": [1, 11, 15, 13], "rotation": 90, "texture": "#0"},
-				"south": {"uv": [1, 4, 15, 12], "rotation": 90, "texture": "#0"},
-				"west": {"uv": [1, 3, 15, 5], "rotation": 90, "texture": "#0"},
-				"up": {"uv": [0, 4, 2, 12], "rotation": 90, "texture": "#0"},
-				"down": {"uv": [14, 4, 16, 12], "rotation": 90, "texture": "#0"}
-			}
-		},
-		{
-			"name": "Side",
-			"from": [6, 3, 13],
-			"to": [10, 13, 14],
-			"faces": {
-				"north": {"uv": [3, 6, 13, 10], "rotation": 270, "texture": "#0"},
-				"up": {"uv": [2, 6, 3, 10], "rotation": 90, "texture": "#0"},
-				"down": {"uv": [13, 6, 14, 10], "rotation": 90, "texture": "#0"}
-			}
-		}
-	]
-}
\ No newline at end of file
diff --git a/src/main/resources/assets/create/models/block/belt/sideways_middle.json b/src/main/resources/assets/create/models/block/belt/sideways_middle.json
deleted file mode 100644
index ed352bba5..000000000
--- a/src/main/resources/assets/create/models/block/belt/sideways_middle.json
+++ /dev/null
@@ -1,52 +0,0 @@
-{
-	"credit": "Made with Blockbench",
-	"parent": "block/block",
-	"textures": {
-		"0": "create:block/belt",
-		"particle": "create:block/belt"
-	},
-	"elements": [
-		{
-			"name": "Bottom",
-			"from": [11, 1, 0],
-			"to": [13, 15, 16],
-			"faces": {
-				"east": {"uv": [1, 0, 15, 16], "rotation": 90, "texture": "#0"},
-				"west": {"uv": [1, 0, 15, 16], "rotation": 270, "texture": "#0"},
-				"up": {"uv": [0, 0, 2, 16], "texture": "#0"},
-				"down": {"uv": [14, 0, 16, 16], "rotation": 180, "texture": "#0"}
-			}
-		},
-		{
-			"name": "Bottom",
-			"from": [10, 3, 0],
-			"to": [11, 13, 16],
-			"faces": {
-				"west": {"uv": [3, 0, 13, 16], "rotation": 270, "texture": "#0"},
-				"up": {"uv": [13, 0, 14, 16], "texture": "#0"},
-				"down": {"uv": [2, 0, 3, 16], "rotation": 180, "texture": "#0"}
-			}
-		},
-		{
-			"name": "Top",
-			"from": [3, 1, 0],
-			"to": [5, 15, 16],
-			"faces": {
-				"east": {"uv": [1, 0, 15, 16], "rotation": 270, "texture": "#0"},
-				"west": {"uv": [1, 0, 15, 16], "rotation": 90, "texture": "#0"},
-				"up": {"uv": [0, 0, 2, 16], "rotation": 180, "texture": "#0"},
-				"down": {"uv": [14, 0, 16, 16], "texture": "#0"}
-			}
-		},
-		{
-			"name": "Top",
-			"from": [5, 3, 0],
-			"to": [6, 13, 16],
-			"faces": {
-				"east": {"uv": [3, 0, 13, 16], "rotation": 270, "texture": "#0"},
-				"up": {"uv": [13, 0, 14, 16], "rotation": 180, "texture": "#0"},
-				"down": {"uv": [13, 0, 14, 16], "texture": "#0"}
-			}
-		}
-	]
-}
\ No newline at end of file
diff --git a/src/main/resources/assets/create/models/block/belt/sideways_start.json b/src/main/resources/assets/create/models/block/belt/sideways_start.json
deleted file mode 100644
index 6ab8c2414..000000000
--- a/src/main/resources/assets/create/models/block/belt/sideways_start.json
+++ /dev/null
@@ -1,78 +0,0 @@
-{
-	"credit": "Made with Blockbench",
-	"parent": "block/block",
-	"textures": {
-		"0": "create:block/belt",
-		"particle": "create:block/belt"
-	},
-	"elements": [
-		{
-			"name": "Bottom",
-			"from": [11, 1, 1],
-			"to": [13, 15, 16],
-			"faces": {
-				"north": {"uv": [1, 11, 15, 13], "rotation": 270, "texture": "#0"},
-				"east": {"uv": [1, 1, 15, 16], "rotation": 90, "texture": "#0"},
-				"west": {"uv": [1, 1, 15, 16], "rotation": 270, "texture": "#0"},
-				"up": {"uv": [0, 1, 2, 16], "texture": "#0"},
-				"down": {"uv": [14, 1, 16, 16], "rotation": 180, "texture": "#0"}
-			}
-		},
-		{
-			"name": "Bottom",
-			"from": [10, 3, 2],
-			"to": [11, 13, 16],
-			"faces": {
-				"north": {"uv": [1, 11, 15, 13], "rotation": 270, "texture": "#0"},
-				"west": {"uv": [3, 2, 13, 16], "rotation": 270, "texture": "#0"},
-				"up": {"uv": [13, 2, 14, 16], "texture": "#0"},
-				"down": {"uv": [2, 2, 3, 16], "texture": "#0"}
-			}
-		},
-		{
-			"name": "Top",
-			"from": [5, 3, 2],
-			"to": [6, 13, 16],
-			"faces": {
-				"east": {"uv": [3, 2, 13, 16], "rotation": 270, "texture": "#0"},
-				"up": {"uv": [2, 2, 3, 16], "rotation": 180, "texture": "#0"},
-				"down": {"uv": [13, 2, 14, 16], "texture": "#0"}
-			}
-		},
-		{
-			"name": "Top",
-			"from": [3, 1, 1],
-			"to": [5, 15, 16],
-			"faces": {
-				"north": {"uv": [1, 3, 15, 5], "rotation": 90, "texture": "#0"},
-				"east": {"uv": [1, 1, 15, 16], "rotation": 270, "texture": "#0"},
-				"west": {"uv": [1, 0, 15, 15], "rotation": 90, "texture": "#0"},
-				"up": {"uv": [0, 0, 2, 15], "rotation": 180, "texture": "#0"},
-				"down": {"uv": [14, 0, 16, 15], "texture": "#0"}
-			}
-		},
-		{
-			"name": "Side",
-			"from": [4, 1.1, 0],
-			"to": [12, 14.9, 2],
-			"faces": {
-				"north": {"uv": [1, 4, 15, 12], "rotation": 90, "texture": "#0"},
-				"east": {"uv": [1, 11, 15, 13], "rotation": 90, "texture": "#0"},
-				"south": {"uv": [1, 4, 15, 12], "rotation": 270, "texture": "#0"},
-				"west": {"uv": [1, 3, 15, 5], "rotation": 90, "texture": "#0"},
-				"up": {"uv": [0, 4, 2, 12], "rotation": 270, "texture": "#0"},
-				"down": {"uv": [14, 4, 16, 12], "rotation": 270, "texture": "#0"}
-			}
-		},
-		{
-			"name": "Side",
-			"from": [6, 3, 2],
-			"to": [10, 13, 3],
-			"faces": {
-				"south": {"uv": [3, 6, 13, 10], "rotation": 270, "texture": "#0"},
-				"up": {"uv": [2, 6, 3, 10], "rotation": 270, "texture": "#0"},
-				"down": {"uv": [13, 6, 14, 10], "rotation": 270, "texture": "#0"}
-			}
-		}
-	]
-}
\ No newline at end of file
diff --git a/src/main/resources/assets/create/models/block/belt/start.json b/src/main/resources/assets/create/models/block/belt/start.json
new file mode 100644
index 000000000..ff4a6eed9
--- /dev/null
+++ b/src/main/resources/assets/create/models/block/belt/start.json
@@ -0,0 +1,54 @@
+{
+	"credit": "Made with Blockbench",
+	"parent": "block/block",
+	"textures": {
+		"0": "create:block/belt"
+	},
+	"elements": [
+		{
+			"name": "Top",
+			"from": [3, 10, 2],
+			"to": [13, 11, 16],
+			"faces": {
+				"east": {"uv": [3, 0, 4, 14], "rotation": 270, "texture": "#0"},
+				"west": {"uv": [12, 0, 13, 14], "rotation": 90, "texture": "#0"},
+				"down": {"uv": [3, 0, 13, 14], "texture": "#0"}
+			}
+		},
+		{
+			"name": "Top",
+			"from": [1, 11, 1],
+			"to": [15, 13, 16],
+			"faces": {
+				"north": {"uv": [1, 15, 15, 16], "texture": "#0"},
+				"east": {"uv": [0, 0, 2, 15], "rotation": 270, "texture": "#0"},
+				"west": {"uv": [14, 0, 16, 15], "rotation": 90, "texture": "#0"},
+				"up": {"uv": [1, 0, 15, 15], "rotation": 180, "texture": "#0"},
+				"down": {"uv": [1, 0, 15, 15], "texture": "#0"}
+			}
+		},
+		{
+			"name": "Side",
+			"from": [1.1, 4, 0],
+			"to": [14.9, 12, 2],
+			"faces": {
+				"north": {"uv": [1, 0, 15, 8], "texture": "#0"},
+				"east": {"uv": [0, 0, 2, 8], "texture": "#0"},
+				"south": {"uv": [1, 0, 15, 8], "texture": "#0"},
+				"west": {"uv": [14, 0, 16, 8], "texture": "#0"},
+				"up": {"uv": [1, 0, 15, 1], "rotation": 180, "texture": "#0"},
+				"down": {"uv": [1, 7, 15, 8], "rotation": 180, "texture": "#0"}
+			}
+		},
+		{
+			"name": "Side",
+			"from": [3, 6, 2],
+			"to": [13, 10, 3],
+			"faces": {
+				"east": {"uv": [3, 6, 4, 10], "rotation": 180, "texture": "#0"},
+				"south": {"uv": [3, 2, 13, 6], "texture": "#0"},
+				"west": {"uv": [12, 6, 13, 10], "rotation": 180, "texture": "#0"}
+			}
+		}
+	]
+}
\ No newline at end of file
diff --git a/src/main/resources/assets/create/models/block/belt/start_bottom.json b/src/main/resources/assets/create/models/block/belt/start_bottom.json
new file mode 100644
index 000000000..cecb17d1d
--- /dev/null
+++ b/src/main/resources/assets/create/models/block/belt/start_bottom.json
@@ -0,0 +1,31 @@
+{
+	"credit": "Made with Blockbench",
+	"parent": "block/block",
+	"textures": {
+		"1": "create:block/belt_offset"
+	},
+	"elements": [
+		{
+			"name": "Bottom",
+			"from": [1, 3, 1],
+			"to": [15, 5, 16],
+			"faces": {
+				"north": {"uv": [1, 0, 15, 1], "rotation": 180, "texture": "#1"},
+				"east": {"uv": [0, 1, 2, 16], "rotation": 90, "texture": "#1"},
+				"west": {"uv": [14, 1, 16, 16], "rotation": 270, "texture": "#1"},
+				"up": {"uv": [1, 1, 15, 16], "texture": "#1"},
+				"down": {"uv": [1, 1, 15, 16], "rotation": 180, "texture": "#1"}
+			}
+		},
+		{
+			"name": "Bottom",
+			"from": [3, 5, 2],
+			"to": [13, 6, 16],
+			"faces": {
+				"east": {"uv": [12, 2, 13, 16], "rotation": 90, "texture": "#1"},
+				"west": {"uv": [3, 2, 4, 16], "rotation": 270, "texture": "#1"},
+				"up": {"uv": [3, 2, 13, 16], "texture": "#1"}
+			}
+		}
+	]
+}
\ No newline at end of file
diff --git a/src/main/resources/assets/create/models/block/belt/upward_end.json b/src/main/resources/assets/create/models/block/belt/upward_end.json
deleted file mode 100644
index 3e7cc8f0d..000000000
--- a/src/main/resources/assets/create/models/block/belt/upward_end.json
+++ /dev/null
@@ -1,125 +0,0 @@
-{
-	"credit": "Made with Blockbench",
-	"parent": "block/block",
-	"textures": {
-		"0": "create:block/belt",
-		"particle": "create:block/belt"
-	},
-	"elements": [
-		{
-			"name": "Bottom",
-			"from": [0.9, 3, 9.2],
-			"to": [15.1, 5, 15],
-			"faces": {
-				"east": {"uv": [0, 9, 2, 15], "rotation": 90, "texture": "#0"},
-				"south": {"uv": [1, 3, 15, 5], "rotation": 180, "texture": "#0"},
-				"west": {"uv": [14, 9, 16, 15], "rotation": 270, "texture": "#0"},
-				"up": {"uv": [1, 9, 15, 15], "texture": "#0"},
-				"down": {"uv": [1, 9, 15, 14.8], "rotation": 180, "texture": "#0"}
-			}
-		},
-		{
-			"name": "Bottom",
-			"from": [2.9, 5, 9.2],
-			"to": [13.1, 6, 14],
-			"faces": {
-				"east": {"uv": [13, 9, 14, 14], "rotation": 90, "texture": "#0"},
-				"west": {"uv": [2, 9, 3, 14], "rotation": 270, "texture": "#0"},
-				"up": {"uv": [3, 9, 13, 14], "texture": "#0"}
-			}
-		},
-		{
-			"name": "Top",
-			"from": [0.9, 11, 5.9],
-			"to": [15.1, 13, 15],
-			"faces": {
-				"east": {"uv": [0, 1, 2, 10], "rotation": 270, "texture": "#0"},
-				"south": {"uv": [1, 13, 15, 11], "rotation": 180, "texture": "#0"},
-				"west": {"uv": [14, 1, 16, 10], "rotation": 90, "texture": "#0"},
-				"up": {"uv": [1, 1, 15, 10], "rotation": 180, "texture": "#0"},
-				"down": {"uv": [1, 1, 15, 10], "texture": "#0"}
-			}
-		},
-		{
-			"name": "Top",
-			"from": [2.9, 10, 5.9],
-			"to": [13.1, 11, 14],
-			"faces": {
-				"east": {"uv": [13, 2, 14, 10], "rotation": 270, "texture": "#0"},
-				"west": {"uv": [2, 2, 3, 10], "rotation": 90, "texture": "#0"},
-				"down": {"uv": [3, 2, 13, 10], "texture": "#0"}
-			}
-		},
-		{
-			"name": "Side",
-			"from": [1, 4, 14],
-			"to": [15, 12, 16],
-			"faces": {
-				"north": {"uv": [1, 4, 15, 12], "rotation": 180, "texture": "#0"},
-				"east": {"uv": [0, 4, 2, 12], "rotation": 180, "texture": "#0"},
-				"south": {"uv": [1, 4, 15, 12], "rotation": 180, "texture": "#0"},
-				"west": {"uv": [14, 4, 16, 12], "rotation": 180, "texture": "#0"},
-				"up": {"uv": [1, 3, 15, 5], "texture": "#0"},
-				"down": {"uv": [1, 11, 15, 13], "texture": "#0"}
-			}
-		},
-		{
-			"name": "Side",
-			"from": [2.9, 6, 13],
-			"to": [13.1, 10, 14],
-			"faces": {
-				"north": {"uv": [3, 6, 13, 10], "rotation": 180, "texture": "#0"},
-				"east": {"uv": [13, 6, 14, 10], "rotation": 180, "texture": "#0"},
-				"west": {"uv": [2, 6, 3, 10], "rotation": 180, "texture": "#0"}
-			}
-		},
-		{
-			"name": "Bottom Diagonal",
-			"from": [1, 3, -3.328],
-			"to": [15, 5, 6.75],
-			"rotation": {"angle": -45, "axis": "x", "origin": [8, 8, 8]},
-			"faces": {
-				"north": {"uv": [1, 11, 15, 13], "rotation": 180, "texture": "#0"},
-				"east": {"uv": [0, 0, 2, 10], "rotation": 90, "texture": "#0"},
-				"west": {"uv": [14, 0, 16, 10], "rotation": 270, "texture": "#0"},
-				"up": {"uv": [1, 0, 15, 10], "texture": "#0"},
-				"down": {"uv": [1, 0, 15, 10.2], "rotation": 180, "texture": "#0"}
-			}
-		},
-		{
-			"name": "Bottom Diagonal",
-			"from": [3, 5, -3.328],
-			"to": [13, 6, 6.75],
-			"rotation": {"angle": -45, "axis": "x", "origin": [8, 8, 8]},
-			"faces": {
-				"east": {"uv": [13, 0, 14, 10], "rotation": 90, "texture": "#0"},
-				"west": {"uv": [2, 0, 3, 10], "rotation": 270, "texture": "#0"},
-				"up": {"uv": [3, 0, 13, 10], "texture": "#0"}
-			}
-		},
-		{
-			"name": "Top Diagonal",
-			"from": [1, 11, -3.328],
-			"to": [15, 13, 10.1],
-			"rotation": {"angle": -45, "axis": "x", "origin": [8, 8, 8]},
-			"faces": {
-				"north": {"uv": [1, 3, 15, 5], "texture": "#0"},
-				"east": {"uv": [0, 3, 2, 16], "rotation": 270, "texture": "#0"},
-				"west": {"uv": [14, 3, 16, 16], "rotation": 90, "texture": "#0"},
-				"up": {"uv": [1, 3, 15, 16], "rotation": 180, "texture": "#0"},
-				"down": {"uv": [1, 3, 15, 16], "texture": "#0"}
-			}
-		},
-		{
-			"name": "Top Diagonal",
-			"from": [3, 10, -3.328],
-			"to": [13, 11, 9.1],
-			"rotation": {"angle": -45, "axis": "x", "origin": [8, 8, 8]},
-			"faces": {
-				"east": {"uv": [13, 4, 14, 16], "rotation": 270, "texture": "#0"},
-				"west": {"uv": [2, 4, 3, 16], "rotation": 90, "texture": "#0"},
-				"down": {"uv": [3, 4, 13, 16], "texture": "#0"}
-			}
-		}
-	]
-}
\ No newline at end of file
diff --git a/src/main/resources/assets/create/models/block/belt/upward_middle.json b/src/main/resources/assets/create/models/block/belt/upward_middle.json
deleted file mode 100644
index 19fbdcb55..000000000
--- a/src/main/resources/assets/create/models/block/belt/upward_middle.json
+++ /dev/null
@@ -1,110 +0,0 @@
-{
-	"credit": "Made with Blockbench",
-	"parent": "block/block",
-	"textures": {
-		"0": "create:block/belt",
-		"particle": "create:block/belt"
-	},
-	"elements": [
-		{
-			"name": "Bottom Diagonal",
-			"from": [1, 3, -3.325],
-			"to": [15, 5, 6.6],
-			"rotation": {"angle": -45, "axis": "x", "origin": [8, 8, 8]},
-			"faces": {
-				"north": {"uv": [1, 11, 15, 13], "rotation": 180, "texture": "#0"},
-				"east": {"uv": [0, 0, 2, 10], "rotation": 90, "texture": "#0"},
-				"west": {"uv": [14, 0, 16, 10], "rotation": 270, "texture": "#0"},
-				"up": {"uv": [1, 0, 15, 10], "texture": "#0"},
-				"down": {"uv": [1, 0, 15, 10], "rotation": 180, "texture": "#0"}
-			}
-		},
-		{
-			"name": "Bottom Diagonal",
-			"from": [3, 5, -3.325],
-			"to": [13, 6, 6.6],
-			"rotation": {"angle": -45, "axis": "x", "origin": [8, 8, 8]},
-			"faces": {
-				"east": {"uv": [13, 0, 14, 10], "rotation": 90, "texture": "#0"},
-				"west": {"uv": [2, 0, 3, 10], "rotation": 270, "texture": "#0"},
-				"up": {"uv": [3, 0, 13, 10], "texture": "#0"},
-				"down": {"uv": [1, 0, 15, 10], "rotation": 180, "texture": "#0"}
-			}
-		},
-		{
-			"name": "Top Diagonal",
-			"from": [1, 11, -3.325],
-			"to": [15, 13, 10],
-			"rotation": {"angle": -45, "axis": "x", "origin": [8, 8, 8]},
-			"faces": {
-				"north": {"uv": [1, 3, 15, 5], "texture": "#0"},
-				"east": {"uv": [0, 3, 2, 16], "rotation": 270, "texture": "#0"},
-				"west": {"uv": [14, 3, 16, 16], "rotation": 90, "texture": "#0"},
-				"up": {"uv": [1, 3, 15, 16], "rotation": 180, "texture": "#0"},
-				"down": {"uv": [1, 3, 15, 16], "texture": "#0"}
-			}
-		},
-		{
-			"name": "Top Diagonal",
-			"from": [3, 10, -3.325],
-			"to": [13, 11, 10],
-			"rotation": {"angle": -45, "axis": "x", "origin": [8, 8, 8]},
-			"faces": {
-				"east": {"uv": [13, 3, 14, 16], "rotation": 270, "texture": "#0"},
-				"west": {"uv": [2, 3, 3, 16], "rotation": 90, "texture": "#0"},
-				"up": {"uv": [1, 3, 15, 16], "rotation": 180, "texture": "#0"},
-				"down": {"uv": [3, 3, 13, 16], "texture": "#0"}
-			}
-		},
-		{
-			"name": "Top Diagonal First",
-			"from": [1, 11, 9.98],
-			"to": [15, 13, 19.3],
-			"rotation": {"angle": -45, "axis": "x", "origin": [8, 8, 8]},
-			"faces": {
-				"north": {"uv": [1, 11, 15, 13], "texture": "#0"},
-				"east": {"uv": [0, 0, 2, 10], "rotation": 270, "texture": "#0"},
-				"west": {"uv": [14, 0, 16, 10], "rotation": 90, "texture": "#0"},
-				"up": {"uv": [1, 0, 15, 10], "rotation": 180, "texture": "#0"},
-				"down": {"uv": [1, 0, 15, 10], "texture": "#0"}
-			}
-		},
-		{
-			"name": "Top Diagonal First",
-			"from": [3, 10, 9.98],
-			"to": [13, 11, 19.3],
-			"rotation": {"angle": -45, "axis": "x", "origin": [8, 8, 8]},
-			"faces": {
-				"east": {"uv": [13, 0, 14, 10], "rotation": 270, "texture": "#0"},
-				"west": {"uv": [2, 0, 3, 10], "rotation": 90, "texture": "#0"},
-				"up": {"uv": [1, 0, 15, 10], "rotation": 180, "texture": "#0"},
-				"down": {"uv": [3, 0, 13, 10], "texture": "#0"}
-			}
-		},
-		{
-			"name": "Bottom Diagonal First",
-			"from": [1, 3, 6.58],
-			"to": [15, 5, 19.3],
-			"rotation": {"angle": -45, "axis": "x", "origin": [8, 8, 8]},
-			"faces": {
-				"north": {"uv": [1, 3, 15, 5], "texture": "#0"},
-				"east": {"uv": [0, 3, 2, 16], "rotation": 90, "texture": "#0"},
-				"west": {"uv": [14, 3, 16, 16], "rotation": 270, "texture": "#0"},
-				"up": {"uv": [1, 3, 15, 16], "texture": "#0"},
-				"down": {"uv": [1, 3, 15, 16], "rotation": 180, "texture": "#0"}
-			}
-		},
-		{
-			"name": "Bottom Diagonal First",
-			"from": [3, 5, 6.58],
-			"to": [13, 6, 19.3],
-			"rotation": {"angle": -45, "axis": "x", "origin": [8, 8, 8]},
-			"faces": {
-				"east": {"uv": [13, 3, 14, 16], "rotation": 90, "texture": "#0"},
-				"west": {"uv": [2, 3, 3, 16], "rotation": 270, "texture": "#0"},
-				"up": {"uv": [3, 3, 13, 16], "texture": "#0"},
-				"down": {"uv": [1, 3, 15, 16], "rotation": 180, "texture": "#0"}
-			}
-		}
-	]
-}
\ No newline at end of file
diff --git a/src/main/resources/assets/create/models/block/belt/upward_start.json b/src/main/resources/assets/create/models/block/belt/upward_start.json
deleted file mode 100644
index 84dddff12..000000000
--- a/src/main/resources/assets/create/models/block/belt/upward_start.json
+++ /dev/null
@@ -1,125 +0,0 @@
-{
-	"credit": "Made with Blockbench",
-	"parent": "block/block",
-	"textures": {
-		"0": "create:block/belt",
-		"particle": "create:block/belt"
-	},
-	"elements": [
-		{
-			"name": "Top",
-			"from": [0.9, 11, 1],
-			"to": [15.1, 13, 6.8],
-			"faces": {
-				"north": {"uv": [1, 11, 15, 13], "texture": "#0"},
-				"east": {"uv": [0, 1, 2, 7], "rotation": 270, "texture": "#0"},
-				"west": {"uv": [14, 1, 16, 7], "rotation": 90, "texture": "#0"},
-				"up": {"uv": [1, 1, 15, 7], "rotation": 180, "texture": "#0"},
-				"down": {"uv": [1, 1, 15, 6.8], "texture": "#0"}
-			}
-		},
-		{
-			"name": "Top",
-			"from": [2.9, 10, 2],
-			"to": [13.1, 11, 6.8],
-			"faces": {
-				"east": {"uv": [13, 2, 14, 7], "rotation": 270, "texture": "#0"},
-				"west": {"uv": [2, 2, 3, 7], "rotation": 90, "texture": "#0"},
-				"down": {"uv": [3, 2, 13, 6.8], "texture": "#0"}
-			}
-		},
-		{
-			"name": "Bottom",
-			"from": [0.9, 3, 1],
-			"to": [15.1, 5, 10.1],
-			"faces": {
-				"north": {"uv": [1, 3, 15, 5], "texture": "#0"},
-				"east": {"uv": [0, 1, 2, 10], "rotation": 90, "texture": "#0"},
-				"west": {"uv": [14, 1, 16, 10], "rotation": 270, "texture": "#0"},
-				"up": {"uv": [1, 1, 15, 10], "texture": "#0"},
-				"down": {"uv": [1, 1, 15, 10], "rotation": 180, "texture": "#0"}
-			}
-		},
-		{
-			"name": "Bottom",
-			"from": [2.9, 5, 2],
-			"to": [13.1, 6, 10.1],
-			"faces": {
-				"east": {"uv": [13, 2, 14, 10], "rotation": 90, "texture": "#0"},
-				"west": {"uv": [2, 2, 3, 10], "rotation": 270, "texture": "#0"},
-				"up": {"uv": [3, 2, 13, 10], "texture": "#0"}
-			}
-		},
-		{
-			"name": "Side",
-			"from": [1, 4, 0],
-			"to": [15, 12, 2],
-			"faces": {
-				"north": {"uv": [1, 4, 15, 12], "texture": "#0"},
-				"east": {"uv": [0, 4, 2, 12], "texture": "#0"},
-				"south": {"uv": [1, 4, 15, 12], "texture": "#0"},
-				"west": {"uv": [14, 4, 16, 12], "texture": "#0"},
-				"up": {"uv": [1, 3, 15, 5], "rotation": 180, "texture": "#0"},
-				"down": {"uv": [1, 11, 15, 13], "rotation": 180, "texture": "#0"}
-			}
-		},
-		{
-			"name": "Side",
-			"from": [2.9, 6, 2],
-			"to": [13.1, 10, 3],
-			"faces": {
-				"east": {"uv": [13, 6, 14, 10], "texture": "#0"},
-				"south": {"uv": [3, 6, 13, 10], "texture": "#0"},
-				"west": {"uv": [2, 6, 3, 10], "texture": "#0"}
-			}
-		},
-		{
-			"name": "Top Diagonal",
-			"from": [1, 11, 9.2],
-			"to": [15, 13, 19.325],
-			"rotation": {"angle": -45, "axis": "x", "origin": [8, 8, 8]},
-			"faces": {
-				"north": {"uv": [1, 11, 15, 13], "rotation": 180, "texture": "#0"},
-				"east": {"uv": [0, 0, 2, 10], "rotation": 270, "texture": "#0"},
-				"west": {"uv": [14, 0, 16, 10], "rotation": 90, "texture": "#0"},
-				"up": {"uv": [1, 0, 15, 10], "rotation": 180, "texture": "#0"},
-				"down": {"uv": [1, 0, 15, 10], "texture": "#0"}
-			}
-		},
-		{
-			"name": "Top Diagonal",
-			"from": [3, 10, 9.2],
-			"to": [13, 11, 19.325],
-			"rotation": {"angle": -45, "axis": "x", "origin": [8, 8, 8]},
-			"faces": {
-				"east": {"uv": [13, 0, 14, 10], "rotation": 270, "texture": "#0"},
-				"west": {"uv": [2, 0, 3, 10], "rotation": 90, "texture": "#0"},
-				"down": {"uv": [3, 0, 13, 10], "texture": "#0"}
-			}
-		},
-		{
-			"name": "Bottom Diagonal",
-			"from": [1, 3, 5.9],
-			"to": [15, 5, 19.325],
-			"rotation": {"angle": -45, "axis": "x", "origin": [8, 8, 8]},
-			"faces": {
-				"north": {"uv": [1, 3, 15, 5], "texture": "#0"},
-				"east": {"uv": [0, 3, 2, 16], "rotation": 90, "texture": "#0"},
-				"west": {"uv": [14, 3, 16, 16], "rotation": 270, "texture": "#0"},
-				"up": {"uv": [1, 3, 15, 16], "texture": "#0"},
-				"down": {"uv": [1, 3, 15, 16], "rotation": 180, "texture": "#0"}
-			}
-		},
-		{
-			"name": "Bottom Diagonal",
-			"from": [3, 5, 5.9],
-			"to": [13, 6, 19.325],
-			"rotation": {"angle": -45, "axis": "x", "origin": [8, 8, 8]},
-			"faces": {
-				"east": {"uv": [13, 3, 14, 16], "rotation": 90, "texture": "#0"},
-				"west": {"uv": [2, 3, 3, 16], "rotation": 270, "texture": "#0"},
-				"up": {"uv": [3, 3, 13, 16], "texture": "#0"}
-			}
-		}
-	]
-}
\ No newline at end of file
diff --git a/src/main/resources/assets/create/textures/block/belt.png b/src/main/resources/assets/create/textures/block/belt.png
index 68b626dd1e819863909783bfd99068f161ded6f9..80df740f2451537fe29e33da6b2c09820bec27a6 100644
GIT binary patch
delta 1984
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
SKy{-40000<MNUMnLSTaWuCTcP

delta 216
zcmX@a|AKLXL_G^L0|Ud`yN`l^6k~CayA#8@b22Z19F}xPUq=Rpjs4tz5?O(Kg8-ip
zSABhbXJ=<`Z|{hRh_tk{va+)3>guMZrq<Thwzjs8j*hObE}&XC;JRJo4dieZctjR6
zF!1dMVMYtqU=^UCqo<2wNT9^!WPwb5_NK_b05{7C7el8_n-<5IGNqk~u_I6{bmMN*
zyAvBNOR6g?OII*9U+|l7OSUT@R<!Sm;qpU*49p2eqTNpECqedky85}Sb4q9e0Gt#=
A6aWAK

diff --git a/src/main/resources/assets/create/textures/block/belt_animated.png b/src/main/resources/assets/create/textures/block/belt_animated.png
index 28b236d4bf0291af83093be3de38e42c594c38d1..527b162fa7bac935285f4b8269c4f33e875f0fb6 100644
GIT binary patch
literal 9546
zcmV-QCAHd#P)<h;3K|Lk000e1NJLTq002M$002M;0ssI2B@5<>000)TdQ@0+Qek%>
zaB^>EX>4U6ba`-PAZ2)IW&i+q+O2z8a>Tlh>_1o0OAu#rIUFP24tn{W2~sLaRX*qT
zi?+jdS)~EQkVt?iHU9hmP4!>+iXk}Vd`uySaNx^jmrcQobgZxSS07G(%a_}4;s3{R
zb-iJ5$l|YE|Aw*8FF5W$7sP#muFvBtwtb(pZ?xYyZ)o{sgBSa}v~Oh1I<EKsD(~xx
zyDew`*eJKSPJaLIB9zfR4qBtku-YE@ZTJ+sehPjfe)AoOCP$3TawPoLow{DWly|*)
z>Fy}|xP7WZ9bumkUOL*xwg0U<(a>EY{dw}^jb3y+?q4_E&DqnOW38^Z08It87j-U0
zUg5+FRa&_$;5*{S<8_qpjPHacHYmNrnibzo>8uTOI<?bX7d`cmzfCuY=*%z?e~oFz
z%CTgl$)-X5+B$ygX(G(fl})fmgVih!n@big&&~3@rW2mrHO@2|H`BP{>s$Rg`2X{L
z-DpngR_h~Ox`JGW4hS)5IsV33Fo>R8r(X0c-|FT!$IY-77WAU#gawwPu3J>EKfYzf
z&KBqS!>Jw4I`(}7s0h#Y5Jp>A;0W4!9rO{6iCROC3HB+F+*oHSETFwNU8@P(SQ}uR
zWcX}c6SbUcyjh0<Eii<)0b!FEC@_|D9{v+uf)5pMy;I)%;G<7I`x0z$!G{oHAV!sF
zql-R<7-Nb#mSmGlK7|xhN;#EmvIT_s9CB1S<(x~wLkn(QaCN~MrBqXGb=B8UV@);J
z(%?SLHQz#uEw$WAH{EuGe-AyXo_g+O=mA$6Zuk*K9BJfHCVXw$>877y#+hcG<+9qg
z>eFiaWx0R0n%-8U#hjcMKUTxx7|&a1!ilHNU@_w~EFNhAIJBY7j-;J4v>a`AWP_ma
z23FIa#_5_Cg9Y8t#!r3O?qj)sw43toe`PoGm*o^q_kUqIMbmA|ecSDa)q0VPV#Pp=
zLhAIe6TpVkyB=+}K5d;4uZ2GP^ab}fK&LqZ-osH_V-FRJ4RdDvFm&}C)s1Yc^1;n$
zX3@FzW7wJMbi73zM~gl4E@Q?p3p8hED509s$Mnuvk7Nm;i@n$p)EonnmmaKXy4H20
ztbK&}+?Wn2720x;rj?ni&27qEEmj`l@G;w2TN?`Y;2S={lV%O3m=17lG3#mLj1|i<
zxNg{3wFxP8+;Kv3JhO+=dx3aJ1yLl5W3)JRusX@g5j-$I6m(t#JymaKpEERn%y^9C
zZ5-W)>2-H_HP!IARc*Cr=)<%DkAv)?lmr8%XdzE>zIKb~nDvM_t(HD3BC&Z|z%G?3
zoPl#=EE+G67OUqQy~GCDVZC1SfZ<&!x(o;D8vFoC=#VmdTxm0Wz6OPpUDOj7^LWKe
zr)z<FT8&(0I%Ki90Ai*pTE~qiDaDMD9#Q<PS>bU-54g)w0tCsW0bmQ4Wjf4-FfLdw
z4A}?%?Wsgq1x{IWhD`WBRgY&j^)in`f^!|pp2H`I1^mFl(&1AF<Uu^yL20?{38#f(
zDIJ!Em~$@linp;qnrF#_;EDi?iUk=ry0dv?ms(BYjIc0#j5)R-=zDiX)jra}%p8kD
z+|>vX8zqD!;FGxTw|p}t2pE6>M}Wp4QLc(!QsE_r;>6amvLJ8C@413$2Flc%E!x5K
z$Qtl*huFqZx(dKf0p_5|hTA(T)o5IYEJtUs(PxIImhdz%tD{~b?UN$(Q#CA3eZi>}
zBg@x>sI{K}urMs*4?zs<L$q6nMM4DU4hXh33>FFm7A4vQisV&;^FTWHG4`PCrc1Q7
z$AW_BP%mvcJRpgG=?EF%b{PZ)xUNQp#w^{n(p~GvErAY59W{KrrFH)8232W*A8vW7
zvRtON07=-<HxI5RUZ`zq-5{iKaas@)5$~~%P_&|l3uqWVGZGz42|O)eEetKjf1evn
zMp|ZlAS8{dz%&vNDFdAeh708!AlCwUpC(U(nx?aYo6{?q*$`C?;gb|}5l%Ue+0O8(
z$%<_|ZQE&D@nt$^o(2y+{6|RVi&3qLFkS$T!VGE=`1J*c@RE9>nh{?_+5rZM0|ZrV
zfF0aXD!w|hDBd!F-0TIPe5JI2vKj^?Nz4S0@AOxQP?mU#^2O$s79D=ks$DRR!5wX-
zvOL770=<H28+#*6e`2p%;42{mC<S*|_7<O9Ug$j{Fh`NExvi*s6x*t+RqJt;>)n>_
zAFMQ?YdvXG0)j*htcFB$AnQGGQo)T#-r-bt2ntl)w)Mh)@SU_`2b?r-gkKUiN~rE4
zo@mG91|OR*2awo4Iw}m`P9Y_`L3pc}6cZKzNcdo+%O8xS_Kw2T0z^aH1JytAje}#M
zvjQ9YsM6T5BIobG$!|~CAf)t2`2(02UIGmyMz9dRGkm22sBYv8Ukw(5XzL@i4jAvb
zsZ+_;i1q7s1LRiFx*@rh>2O+j2}lwMA+js=#sut^@?)t{l^BqqaCgFD1<h(u;sMl!
z%_{Hc1cDKXgva<7&46cjfE4HiC<=~)O~6+JgM0eCk^t9c<{j{$N{Bd9+qSVW6jdrX
zO~duJ4hIeqBy>Y(D&*;)Ky3=>?}XeW5_*7k99S!E)hw=1p#j$|>{#vG2?27DGib0{
z!nPj_x^jR);1*)Y<v)OG+zyJMRABza5tz>8c%>dlP~b9klBrS06cv<wl#WQAEyJ!l
z^)sSW)U~IofAEi*Lk(cG@NN1#+^|~Rh5Rvff<40#BY@V%hP;+1Zo8bPB8xRXtRtmB
z1aiW@kPOuy`~qweG@iE!$H!HdTd2z~fIIML+{SYSE!25H+0@(>ZP42RX8|qad5xqB
zF=4^oY*r+DAX(kJejp8l#-p&o!UHp%-c$-0A2e2^BT^K3ZuDHV1AWGl5e^{i4ao{l
z27N%!1~yo*&dR|_dhrthh)hS3z>)$=2B;sP4b5yyO#Y-mJVEtb|KUpG=1L=Kf!BO<
zN1nON5(BJODWce=QpinK&5ppMHPU}gw+Yq*hN9F1zy@(SNZEuZtBWZA$&)qcnLF|%
z#k8Ni6)ez#B2my{8MH_!Feif+l~I@{cSq0yrdEXSLV_v$?VfeHrxO3%he5>si(^wb
zz7<E!$W%{~UB#QdqyqKk%<kl5VF(YJ20n99tS3tiNT)@PW~~T02QUhWPSWf_LcMcD
zzjDMQMd+O~Q6)$c6Cu@C8msp-CWr~yU{=%TQ?iTug+=|C<_WSEen+xGQoqUHF)j-5
zM~a1>h4|5r{vdwycRiv(dLo(M>>uXG_f$@Ck)mCYfaERsKhDa8luEeNqNpGtQcY2E
z6xAnJRu8f)*qEtvjr29X(--qBj9J8<6x4&uz_B&hNc@r2W^b$lZnYxH5ad@+B9M3`
zi65R7>uGC6kvEsVICH4^OLMzeA-NO(de%+TsV~Ny>q#a4y>1Hi*o6O3NaP~v;Wt@X
z#1Gj*^qJ_NEH&?yCW{v^+zNbx1i&$r0jm~)Z$Xjm;!n>iQw;Ni?Mra2><i3(*LRV1
zNloM}@?0_crhjDqH|KolOVK~iG63oGo6Kw~O=KK`j07a+-I<#Q!`9SdLz(rb)y=Yc
zd{uZWZrDi?C)K-pQm|?mPv8eTiGTaSil8r*DaJ{zo3Y#so=>_ztA9FXtzn0`Zk-SW
zH1k%G^?evCY0w95><4ZZ+E@nJ#~ISCY*JWeJQa4=SBOF<;Vj?fA7m0%P(Q2yDVzDW
z-3TBnmoBvw;7PhMFmuyPAFu>@0kTt*&JMhdNycleN>TR(-a88wyfXU0GZIfH1H|d<
z-Q?9D&>tv!BALR<LHJ6mqk*=}h~rq)Vx8XGzrxhNL0L)26(;Q-{*nLfq`iyE6j;g|
zEd;Q`4-}rg8hp?RNl3gI$r%ghlMX{?S#`^|?E|t6bz4O`5-JJml%A&D9i?I=!M^z)
zNLTb1|Km}$R*fWYT1Z%a{#4H%)diIY>#{$If{E=#Vc<Mxalf>=A2aQT`?2ove{etQ
zvc{4I`Mof|5AVad>g0VuHL?d#GIGh;G`Mh^H*Sw?9J|Hy!7V0Rb{#iklT&0IDt6X{
zg^>Ig?L&x@OduE%!pbaPiKnk@kyMiuSVqa?oBScEqR#&!e{Bl+!;K)yt_l^>RUaq|
z9LO)yU5t(IT4DA9Hv^gCgAIw702&N``Xb2Ac7f^@Th)__I?3OJ-%-&>gX83Xy@a;8
znJ5sUJtP-yl|z1I&+5#w^SRuyh#IkW()?jz(?VUR$)3kmkN}K#NzzcJsJLDGcs5a`
z&|_1YgdY4HkzLFoZL=o{>`?^L3e>x@HR<4{xMnfc4iULb7uqilh<Y8YU;#_K^XyzK
zC@)fMWcBy-Ph0Eq&wg*Pzq*3R4(e<RGA)FEZ?L=F;zH>MpKB7q(soj-yI$JqbHy=t
zZvd}Vn(Ow}To2FYx)c(M&2`xP&;HZ$GnD&h<uEVbiFemgkHW!9HfJBRn6D01f4232
z6i%X;1P>BzkML5cqmW`SAdn&pbr|=gRR*x$*>z8ru-<`h6wWXU5baR+3$6>Z-qaAD
zftm!i-#sS;KNB5b0fKh2m8a<w!rcV$qunFat7E*u-GM8{2UomW>|b3k=rj}9o(*<D
z`MM^Y-8UrPK7?;0BO_h6WQ)`VHya^AzFHH`|KL7%uK1HG##e{^FXABG*5!@>5Vp6@
zZ3`rp-epTioy}`~^@U)Fc(n-aj}FN&BsPdEck>YSa1rFBM-MYCUj3nm5+SQ^9jx@V
z(o$hlY_31|DPBZ&bC-<8dU7&xTGKvV*44#S+@1e!V_vLMhgV}RY+Kz-O`mm2ES;AQ
zZDtQabmJWa{g7>njS7cM>A3aRH|ccn2jx(!yg>?v&K0&~-u<JKd1K<Mjj6)DO(+@^
zcXV;r1MJ1-?T|<QY@#d%OKruo>HD9M*!lwvp8aa|F!r^L;-w5oo=iz9vegS?HyA|#
zkI|ScTaYruJr#8s0sUKN-zwv}V1n>t|IFB~4S@kBS09@n4B}PrHz`>q(%wBxzzn;X
zS-P0G!|YyGp#b}az7TdrBbfK<T1le=F9%6gr2eqRlJ-W?1ow5wB2XarbR&~R_|eU@
ztDA{P|D%~%9SMq>H-^G8;<GdA&F}rX_>RcTtgn0kP7bmc5GMe3jeijlW{!JLljSlC
zY}tpI>IbRSn_(bm0<uoP;tG;KK>VB5lGJJo99%boDfHUqxez?{E^I4$mq}9m<m^=5
zy@7_J66?Tmi*@k0+D(I%2Yu>V9C)`=%IJ_5ZV%0Z6@<`FV=O&##30R(k+oH(L!q=<
zd@%s^5+77?8N?C~yD8@HDo0&qj#Nnc>}SrDz)Pzr?Fu~P$vPel%}@EG9`%pt^V-6P
zt(ViINC4=rXK+-`KYQTftZInkAPp|Zd8Hu^SO5{)geZYkmq?aoX~>w_lb+4RY}JQx
zyqWD;w19S*!Gwi4sTbqL*^hpQLd5|=z`Geln_$MU*`vSe2Zs=4a|mRL{oq$89sZ!&
zZT}y{!Ac5^Yzk8;3~&wEgpi=>(QG1A_M7s#r<IzCa0;~>n<b80Uz3%=o6;_(0&s&j
zL6Nu@-&~Y7davG;mhLH}_9w9c8>hp*dtgwqBCm_!4!>D#aPN+L_|@nffZ9`^fy`&|
zQ3So8$s#(*YTHRCrA>U|II48nnE+p9Az)F{eu^o3jg5GYjclzz(S{8MXhpzPunbyZ
z>1Zm8(P?w<N<54%dhM*i9p-OpTc6aHMbRR*U?H;Kf9r>HyywNGqz%)K{z&;O)@7sW
zEQQqXS_rOS)9N(==aCTL9r_=;-inFt$k#4+0Xib%BafVgR19P$RE(XzJ#EibZ<3}q
zON)ODj+~4Z<WF|JSNHS2qqjD4L2DL|&!mkqgR!=3Gxu9$GgQ~L?F}{-^*I3)?Yr5c
z?u4N%mhr{OR=X~ONc4AEk(LcySKo!MkGGMGy4%RoPi`>2>?*S-%Ql_NDJ{;UuEyfm
zcBhw9>laV^^gp%v>>sO(cpaZ!Smd7VMImgy({9jQaKLv@5!8=k4l?_r7k|8(pV9uP
z0PfAt=T5G=cR%a*HYHggavg40zhoTdHbbC>RAfx#waU(hKkS|o(q2X${N7fk>wZ@P
zY`V~J>YN|?p6(jSP8Zi@tTxYjI%<D}uQ3AUk!NLG>|QD8dTk!8M)LT~5lA2OY9zO?
znYQ{t8=FwE_YBcyM{BnQ4lBPmM0OL^WAN%m!?|&H+dl{=u@yy|%j}FAiF<YLB~N(@
zs5AL((<12AKv=^?bWm{zf7{Vzs4J<wH2VjSQI>KniM|J5d}NZ0Y~hIq?IxbOckvz@
z_LSbA4cp^i8@9?z`N%SeIJk-N-n3_Vd^Y3GUfgQ^Tr3yiJA~z``<{LOqARjx5B^q5
zVN;CgIDhwS)uW6;F%B=OwxI&BNHQzCBc*#dzU7LfPZ3{R)0+KkaPm%Wv3F48Z3p#q
zEW}MiyzXLEnv95q*A}TNt*3RDbXe!<vHFcn{rHPIa1e1Z2lb&2H)cEMeJrE@C~0=v
zT)ev=n*(b9<FV7Lmso!daj5qc2fMb%XSaTEx8DBh+Hz3h?ApRPmEF4s*JeH33UznV
z$Y6_STr?y9+N!sEt6stDdOiF5k78&sS}gU+X!|##z4dAh9mxJi4#c_C*C-#5F(`5o
zPz)g+y`SAKu|_?M2Rw#X{OZ*LNSCuIMw3pfcTPHbwsJiK?cdt9XR{VarI=zp|Knsf
zcm5IML3aMzs~v|s$rL6kj31?!`qW-=*Isq?m4O}wQQCJP03r!ce{R{UwP$~oT|cX?
zxT>yl(b{j+Msa*@m;wtMJa~6&GrP5CnPty<TAJTTZL)j*=QMO__C5_Ay&?UgPONvS
z{%Zc;CO<yY&~PEPOq~CP`)dp4Yv+m6f6ITsYM%}ygCVOilm6_|Ud{dEYVLQH-(`?L
z_vrT&^!&F5{^}&E-CeSts-m^2+W&~lnon^LCr}?&W5Q}?yv8z63*4F6dvE$=@JgtH
zkD9$izCQBWGv%hUu+!TB2S~%&pPg?C!+A(2%qK2pmZdv>n-VkTyN4L}{oH5MM#WX0
zJgDrvHb$kalBo#NEtwwp5ZQ~zQduhh7~uS)I}2v$zxH$CAC)9Q{k6~WkWYq6t^vLz
zl@8!@>rN8B(*HPMvN`PWa~kosfsdu#IV?vWglF3)&#oU1YvaAGs6o0}wtyZgeVBAN
z^x6G9>ymaKl4Azyw+Z-{`7a8KzwNPIkfCbG@%0&m@Zzs1!qjIFb`9=cqp%_(Ypm1I
zcFm|hCmychP4)Nm=8?b3zxfw+omJff#z{d1T#sR0rPr8KDCZ3E?ZXb>*c-uO0p(ER
zYxKqDUHyI6e*WAr_+XW|1JFuw#~=aM?)y~k)<(Y6#}77e>Z!OfWU8dpOmmY|f`h5G
zb-vo&{2am8hXx4Tx9OMf@(+mwD65{E2D3wNYu8|n^X|O6Hx7W@_m7^i9N@=FGEP<e
z9HZV7FuVHi2QiBU^%`IO?6f>SJg_=*=f?*W#LzDoJwHD1W3%P=_5rI{bsvLXAHa~w
zr>_|pmQ~l#j))0W--gE3IRrC=aD7i-JlYfPy@7BVUpw_4d6#*S6N?53N+(L7x&jQz
zh`#J*eFA+C!Kl|1jDJmzTk#WOY5tyop0j85KVgGfU^Ov_XaE2J32;bRa{vGf6951U
z69E94oEQKA00(qQO+^Rf2MHG)5dxf<wEzGPEJ;K`RA}CfT5EF?M;7hwd8lWshh-<W
zH(;pL)+P|hE+lLq|NjG!-9S<a$p({3ZKW#M0xV0GXL=q|?}sBFU-y{Q>Vs=6&Ew8}
zo_p@qd%GWeyuYWEx^aE?+wTvQQV;HZ@~`K=;Naiiy;Ms5^Zuv*{rylW_1o`<8(H??
z-Y1iz*MI%=&a-DfH0|=y!~0L3K37UTdU*fwlV?dBefj0zfBogf?%qeZ&*!&q&Q6Y9
zW2(As+NDy;d#{wzS}UdE$c%<rT`xxi`~1ak{XD;W>&ARGb&YXV)3nPZj_RgWN~KBM
zw97a$nN4l7`fz9O+wTudKhJOO@7ZKE*xVZQGi%fSXq@LZ&+TAyE6aML;YNQnw#n+o
z_1%7+E2XNcQcAt}@n^{K_{lTxz4sokp_F=caNrs<o6QR6C@B7V@8ihev?PvjhpK9O
z@p3d8ZDiS^D5|P*jY-q>ukz!)$9*7%_uhE#tE$pkzxeTIt+m$r$<yajAn*OJuU@&v
zoSvSZm1XyiX%bVH__D5-Hd&2EqukoFvUJW>Z6pQa%ixLl#yO{y+Q_ouaM+8Nb-lz-
zFq+o7Zd$FiKmXubLxb{@CNVX1e(T02tHEH9TU$5>4fT34e#Pyirg3)|Y9q@=qmfNk
zRn_9Q5QqmjIZ!RW$0vy+oIt_&+TMF}R+e>LQ=q^>`O#X}b*;6Q0^z>xa)momL%cgK
zgspi`$f31{3*i#g`A8|{X<F-EFD`5CoGY9&8(B6O3}7;xEj7f;<X`6;?vDGyP}C4@
zA|;R-p=x<@uNS+<R8<wYD9&k@D=C=wzN%WAtcJtkMwS_xjMjw7qzhg7ms*jc;6BzS
z6i7;sWBPQ{F7XXwW-u7^^ZcwVtExiG;BIkbD3A2Fx~{$VrW=%j)x7uCCNSBeC}a#t
zf#6H{2^ty<1{+xhf#9OB3G^a^?K~HSF%tw8O)AxGy6z5>DW%}kN+|^KXf*2QIf9rP
zlCBKX@u|>IKhH;_Q7>LP*8~YeiX~0t&Xe!jKIfrTH!UycfkB!>-evL$qD|)A+*+hL
zYDjtrJxWUHE>{D_7@b=R1O=6~W>TS{kgwqpt}%68FN(tS^L#iQ+GNGN8~Be*2>4sq
zwG^5zgrJviqP3PTgfA%v3t5^*j2YB{EcMPc@^11atE$aX4;Nh*GHFxk)4}!Ldl_W-
zo<7Y3Ym=&t>bj;t(x<y=ky)jm=iYlLD3C{*PR5L3VS)<<l@$jFVyPjf-N2ivp<cX1
z;lq=pJyAEL3rWNBbLZ}D96Wk>AE!NfcprDTbN4o1-cUmnNEZC_sA{s*Bk!`r@|>Wu
z28ECJp+FD6x<|?I+MnII#b=$B<<XlH*O<j@IzKJSvN}CEcCO~Z{IpoirmiuQx3jad
zyi^Cm^xRxZWY7>D;Ilios2H5q)ev0na58m`IXyX^pBB#5i`ld&90V!~2Z733AH6w&
zg>PKnwaKbK8jpq>S=Jklx2;WiFdXEA%`Ka(_OI>a)?U;Bs6i?9^`kE!^w*ERkh0>-
z!nw)YSy^jn$hjJFK%la$P8a3r$+2t9(VLUPISMo!Z;yr>K)YGivo;-UZsoZh^fRE{
zoBMmYwLo>=`=4I?2P$~{<Qbm+_{lR!c<}P2Ys`E;KP$_qXVabS;i70y=d-G6S1W&b
zI9aW{QtIe%vRe5lGSlN}Y<$mVM{iEjB)Rps8&!GwZh98Su{Qec@jQ;BB#9?)Pm(0g
zY+4k~CadkO@$}?ODfPkDz`64E;k$OZTCP?{M{m4WTI<8Z$;x|U^z`^Rj(n1&leaUa
z)b59y&Xw&_x9!q<6yS9lT`pIVF_}%<c9q%m^<-+0*O9hZS&3tVOn(kVDw)@VEF{y5
z^vs}y$;{a6#Z?>0N-xhufrm@WthG*~G#Rg9dd7iF>Q~~#E*POeXlQ~)1j$EheNpo3
zB^nxFp}MZCHX`(pSV$IZBsU|K6r>>jM1juAQkp_G98xl*(cy52{y|oH2!zW6un0W@
z9iwgphLX9MGME6qODq&<2!&=*6wW!8dg($?6>9=C1aOw6UJ4{3T7a&*1p%JSek14^
zOn?^I8Or9BCWD4pS-Z%r3$}oTx-Nu+paP-}01H{0K*ThO*_z2pUsctjDAo-PH6&d;
z@OXY$p#sp#Ad^>7L1`KVu1rm(X+(jf3w8S;ys&c(W5!UmQlOx+Qhxwva3N?Yz(VWh
zHI2|epfE`n3bN3-vt4vptn|{Q2|Z*Y0mwCsdYX)}#a^+Cg>16w;(Ot2E&7LzEDI{V
z?8w*v$?Pn#5Pp65)jb>l6cHvtS!+1WhNIhAv!Q{8C=eTw_hBKPMtp&PAAWTYUlN1d
z{rodt1uRsx5ugVPJP&5`GYLJ6?10EJ$RMLk)DWIZd;tgq=s|&aVF1pG!U1|XSI?*K
zfQ1M>7DbU;dvkxU7cU2!Tf;$~Wj!E{EbH}0V_>2FXq=_~#`WEGQ%^_;IbbrtMhJB0
z?rp{p!5IZw%%;!~1OgVS+URgHJuA!H+8ft*d-1YA8cTtQg$T}W?(Z=MNVF-XNccT@
z`W&LZIyfk6J)6zW$}(OQ#o=VClwQoHr;E~i4}p|YfQ?#fz}Hfs#mUj@{%AbtXHB~V
zIMZ4W$J=>s<H!s)w|a+v?Ckyp*aoHpI0N$+NcQUBplTyfk!T^j_gWhQ0yrlR>Ux=_
z9x-M%vh3#mUY2@jD9<gqQ5;Z1U2c?ABzzB?Bn6t!=fydLBzs>;0<ZyM&<C_i(Dlpo
z4SMP#je@N8-aq~3JDl<KoA2<{gO@MMS_8hyJF>^cX)JscD7O}s+ck!1H>h+$?;q5G
zfN1MtK@+^0%$`J1Fd48-P?);JAYV+9wX!hD9`{PBr;B!3iMvqE1Z4$pOk6G7d3Dt%
zzye(?9WaVP;d>u3EK43MJ=3FPU`;@K5R;Lpk{qqpI=5D$#o#r%G^0{p(lD}@r$AC2
z<f#H)NXCrhQVn^SfMp19>?NwKt}lVd=906@*U(xoiVJ~=?}=X5a4n5MR0Wkjpr?Yu
z3NG~`i1}1Pj)16=%$c+pU6YbgLjY%tfo_eLY%@Bn08UHd3?NO=Th%2OvNpl%QVygS
z@bQv4lUX9jak#_(1J39|!CZq5$?8c6!~;SP@4b<1u#8kW89)}IhUAmrLXxJIXi@ez
zcq+jeL6L+WWIZG=gu+VtLqd-WUPwA_KrK>3Xao3?(2(~YG|ZJ6g3BGfIVo#BpT3g<
z;Q#{7r|&>i0SoP4+u_g=&?C!wJP3x4h8>-x@+21W-UB8vOF%=XC&#n-888{KP+3+K
zC?Kka<83LB<b{Ug?JV{C*LD~KD6G&O=%8TeShW#`jxo@p*3s$7F|ZI&t5OOFKt}{;
z{XE~lw)19k2(;L=O9-Tt8f<P^o2E%T*xc$Jy#^LyMf>rGpU6+auw<+bUcRgw1L%Qw
zkQ87X8Ke^qj2ZN~wWgov&=5^F9B<QPgs(7JS3|%;L}_?7HB<<oPFIxldY8oj^Z>2W
zt?m+8Az7IKElLKDpa_F&V4*ItfkMN1DA{RbAvWn!pg^)U>2N*;<p3q9ckEB3045lU
z$;#ISXL9CcZ4!)lgQ5{&A$EMsT3vy<SV+$H2-0NYHk^5}Ck{s8{1R!AX_q}Q*^wZP
z3KGG|H{>Wy&eS9Zxe}GgQj59-(!j`>7fzzd0Oq>0Yj;i<24he{gZE*+E`;V36tqfr
zm7&Z0(IXHuMke@R<$(tQx%ocgmM@7(I_Jaz>Xv9XSY?2VN-!t+EV|I85tBqq5;MuJ
zC77fKx+FxQs$|PYfdbk_E<wlv3S2apf_BHU7t0=4Z$S)nw*jtHe43_LE{DXC=_+C)
z%X+<@3}V?~bvbvf*Q#Y<eemEPJRn0uC7K{@UFj!(f)*vUNa%46=`JM`;tNiI2tB~i
z;LJs_reRR&gBh8u^ne~luD1l^Ubzm#$-89Ef{_%acM_E-r4~g2=m9JQUZ^Z9@-ZCR
zq0(<;+5WYiEcK}L+`A$lGaO`t&8=R%+`qQ7?g#LAKtd=+Vj&<~Ik@J~jv6Wo2Z5Zc
zIU_rqOczCgN)Mt6Lp#ZOWLYn$^sED@^pfm2$3lt=Sc{^F0nWVFpz^fVFc}G=QYjEs
z7;A!tnH;?yj<<n@AdpfD%vqYm{n6MS{;|9F5qKfg0akiRR9)~w=Nn<fLNZOmIRT2K
zOZW5K04<UivNk0al2jf{#=$kP5KKqJL9|F-sGHZj>pWZ?zyL)qV7+G%O37uCH8(23
z8J76E;0$Q7JG4XckqMjoKN1UFxx^=<{Lg6^QDHA7aTAO%D2Lop!$5&EFA2^9AQUt}
z6bSQyfE|%5nDQfsj#twCm)31Cgu}oh*eeQ7g+Lt3vL_DGs4R=JLa}19T+o+-rN5vY
z1#>hG9WQ7VOi&2USYLvPh}4kuBEo5cqF@*CN^~gyf>r@I>preKF(O=Fx0JyUF4$2E
zCa}RsQ!2YVxPIRfU$EB`P?y~)sKoh{VZHboK;Ixh&#^-!m-vE-cPGgHY;Y|{X>v}?
z${p;Pc6TNN`q2bPGZ-0htB@w+;963V!L(1tB6*}>ou@msX81Xg>*So6gpz!U>F%fn
zQ%AXpi=8<cGgmG)2hSk$$9_Y`SP-e)otE-2`terWnY-XdC9%~VRtHLAnhU0%K}UuU
z3lq?;+<l<wI0Y@7!_bjq*)F2?-XpEAE3w>BBS%Y<b>D##6fW^0Ez12%3Iw7GE+ogY
o!P=bM2qWte3>_tDE5YUe06@vIwZm|o^#A|>07*qoM6N<$f~8MijQ{`u

delta 268
zcmX@*HJfRIL_G^L0|P^Zd(K-R#aJBV?!>U}oXkrghb7(7*O7r?V?XzwL{=c*AiyWY
zRbOA<+1c6K+dCp6A}uYgtgNiMy1J>UskODWt*x!2qob><3#b+jxNg^Y138=p9+AZi
z415Pcm~qF%Y>;gwo-U3d^&ZEQ1v2&7n<D!JcHIeFvRX%1ckiLVB{m`)S~8Lao*h$M
zL*L~2vTGesJSekk@18wYR~i_nw_Na>aL`%=DDSX_Z5QKomNOrDcBmxur5{jbEdG;W
zao|v*iJseKl_HCtV@ES)$>_=hIcD$Q1+Xv_rYq)MZoBCNa-yfJAFIncr-UW|fzVsF

diff --git a/src/main/resources/assets/create/textures/block/belt_diagonal.png b/src/main/resources/assets/create/textures/block/belt_diagonal.png
new file mode 100644
index 0000000000000000000000000000000000000000..e311d55532844010998623b526617707e9206224
GIT binary patch
literal 1869
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
Hu0mjfBMEYV

literal 0
HcmV?d00001

diff --git a/src/main/resources/assets/create/textures/block/belt_diagonal_animated.png b/src/main/resources/assets/create/textures/block/belt_diagonal_animated.png
new file mode 100644
index 0000000000000000000000000000000000000000..29a5552d586ced1c9d33c3a51b35630873343be0
GIT binary patch
literal 5680
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
V$4t&u{+$;94HaGG8pW3p{{bm&3h)2`

literal 0
HcmV?d00001

diff --git a/src/main/resources/assets/create/textures/block/belt_offset.png b/src/main/resources/assets/create/textures/block/belt_offset.png
new file mode 100644
index 0000000000000000000000000000000000000000..84d1001ddce99b479cd5fdd2194a2599392899d3
GIT binary patch
literal 508
zcmV<Y0R#StP)<h;3K|Lk000e1NJLTq000mG000mO0ssI2kdbIM00009a7bBm000XU
z000XU0RWnu7ytkO2XskIMF->u3l1qO#zf<U0004-Nkl<ZD9=q&O;6lF3>{B0$#}C#
z*hT6J39VGA2U<9k3-JHXJ@njTMfp^hrAwGNnT&fdnDt>~ji2r3XTz7z>$8*f^LEpZ
zmWDWt5dfIkyj$V&vdFzlpH@dde*Usu2t?G6wk&hO<(UNl0C0Jx$pAn^0AMS`rfIO?
zVVJZkGYd}9@-nkE#t@Mr03c3D5M!Lg(Wo)zgOc}7YUG(!_RI_bWtsP*C890_TOqb>
z>s=y>`?D&0W*&wK3$E+BLVTmNKin86!Nn=*0LGYM7y!WXyPckWmB7{Ixg=j+e3wGs
zPEWL3-i2`gxCO{|+s*DJF!OG^34x3;;xO~e^ApAF?%}Bm!Omy1_3_HPR39wsIU<(L
z;t;V!EbD`%_eE3B=Iz3}v_4){h}m+{9xmoY{q5b~7^jr@`ubLQ|GBw0#$?vMcK>KJ
zV5Z+Uk5<Wvf}*C(s`?T|?^4^g6{3CZdm^HkdGAzB&EMZ~-}eAuXWlnWQ|6QGLDiH^
yOPV%+I}H(7f0c<k0+py$4ti?BL5-RBPvbu{I5<bT1LaTv0000<MNUMnLSTZ(i|O_N

literal 0
HcmV?d00001