From 210af913965000a1863aee95b2d78989867e916e Mon Sep 17 00:00:00 2001 From: simibubi <31564874+simibubi@users.noreply.github.com> Date: Sat, 4 Dec 2021 04:17:42 +0100 Subject: [PATCH] Cogwheel Configuration - Reintroduced fluid-lava interactions - Fixed incorrect uvs on horizontally connected blocks - Encased cogwheels can now have shaft outputs --- src/generated/resources/.cache/cache | 30 ++-- .../andesite_encased_cogwheel.json | 45 +++++- .../andesite_encased_large_cogwheel.json | 45 +++++- .../blockstates/brass_encased_cogwheel.json | 45 +++++- .../brass_encased_large_cogwheel.json | 45 +++++- .../block/andesite_encased_cogwheel.json | 2 +- .../andesite_encased_cogwheel_bottom.json | 8 ++ .../block/andesite_encased_cogwheel_top.json | 8 ++ .../andesite_encased_cogwheel_top_bottom.json | 8 ++ .../andesite_encased_large_cogwheel.json | 2 +- ...ndesite_encased_large_cogwheel_bottom.json | 8 ++ .../andesite_encased_large_cogwheel_top.json | 8 ++ ...ite_encased_large_cogwheel_top_bottom.json | 8 ++ .../block/brass_encased_cogwheel_bottom.json | 8 ++ .../block/brass_encased_cogwheel_top.json | 8 ++ .../brass_encased_cogwheel_top_bottom.json | 8 ++ .../brass_encased_large_cogwheel_bottom.json | 8 ++ .../brass_encased_large_cogwheel_top.json | 8 ++ ...ass_encased_large_cogwheel_top_bottom.json | 8 ++ .../item/andesite_encased_cogwheel.json | 2 +- .../item/andesite_encased_large_cogwheel.json | 2 +- .../data/create/advancements/aesthetics.json | 4 +- .../java/com/simibubi/create/AllFluids.java | 18 +-- .../com/simibubi/create/AllSpriteShifts.java | 2 +- .../com/simibubi/create/AllTileEntities.java | 12 +- .../base/ShaftlessCogInstance.java | 51 ------- .../base/ShaftlessLargeCogInstance.java | 21 --- .../components/mixer/MixerInstance.java | 6 +- .../relays/elementary/CogWheelBlock.java | 19 ++- .../relays/encased/EncasedCogCTBehaviour.java | 9 +- .../relays/encased/EncasedCogInstance.java | 108 ++++++++++++++ .../relays/encased/EncasedCogRenderer.java | 68 +++++++++ .../relays/encased/EncasedCogwheelBlock.java | 51 ++++++- .../relays/encased/ShaftlessCogRenderer.java | 38 ----- .../content/palettes/PaletteBlockPattern.java | 2 +- .../block/connected/CTSpriteShiftEntry.java | 10 +- .../block/connected/CTSpriteShifter.java | 6 +- .../foundation/data/BuilderTransformers.java | 54 +++---- .../models/block/encased_cogwheel/block.json | 6 +- .../block/encased_cogwheel/block_bottom.json | 96 +++++++++++++ .../block/encased_cogwheel/block_top.json | 96 +++++++++++++ .../encased_cogwheel/block_top_bottom.json | 136 ++++++++++++++++++ .../block/encased_large_cogwheel/block.json | 6 +- .../encased_large_cogwheel/block_bottom.json | 84 +++++++++++ .../encased_large_cogwheel/block_top.json | 84 +++++++++++ .../block_top_bottom.json | 124 ++++++++++++++++ ...desite_encased_cogwheel_side_connected.png | Bin 901 -> 899 bytes .../brass_encased_cogwheel_side_connected.png | Bin 484 -> 469 bytes .../textures/block/crafter_side_connected.png | Bin 500 -> 481 bytes 49 files changed, 1224 insertions(+), 201 deletions(-) create mode 100644 src/generated/resources/assets/create/models/block/andesite_encased_cogwheel_bottom.json create mode 100644 src/generated/resources/assets/create/models/block/andesite_encased_cogwheel_top.json create mode 100644 src/generated/resources/assets/create/models/block/andesite_encased_cogwheel_top_bottom.json create mode 100644 src/generated/resources/assets/create/models/block/andesite_encased_large_cogwheel_bottom.json create mode 100644 src/generated/resources/assets/create/models/block/andesite_encased_large_cogwheel_top.json create mode 100644 src/generated/resources/assets/create/models/block/andesite_encased_large_cogwheel_top_bottom.json create mode 100644 src/generated/resources/assets/create/models/block/brass_encased_cogwheel_bottom.json create mode 100644 src/generated/resources/assets/create/models/block/brass_encased_cogwheel_top.json create mode 100644 src/generated/resources/assets/create/models/block/brass_encased_cogwheel_top_bottom.json create mode 100644 src/generated/resources/assets/create/models/block/brass_encased_large_cogwheel_bottom.json create mode 100644 src/generated/resources/assets/create/models/block/brass_encased_large_cogwheel_top.json create mode 100644 src/generated/resources/assets/create/models/block/brass_encased_large_cogwheel_top_bottom.json delete mode 100644 src/main/java/com/simibubi/create/content/contraptions/base/ShaftlessCogInstance.java delete mode 100644 src/main/java/com/simibubi/create/content/contraptions/base/ShaftlessLargeCogInstance.java create mode 100644 src/main/java/com/simibubi/create/content/contraptions/relays/encased/EncasedCogInstance.java create mode 100644 src/main/java/com/simibubi/create/content/contraptions/relays/encased/EncasedCogRenderer.java delete mode 100644 src/main/java/com/simibubi/create/content/contraptions/relays/encased/ShaftlessCogRenderer.java create mode 100644 src/main/resources/assets/create/models/block/encased_cogwheel/block_bottom.json create mode 100644 src/main/resources/assets/create/models/block/encased_cogwheel/block_top.json create mode 100644 src/main/resources/assets/create/models/block/encased_cogwheel/block_top_bottom.json create mode 100644 src/main/resources/assets/create/models/block/encased_large_cogwheel/block_bottom.json create mode 100644 src/main/resources/assets/create/models/block/encased_large_cogwheel/block_top.json create mode 100644 src/main/resources/assets/create/models/block/encased_large_cogwheel/block_top_bottom.json diff --git a/src/generated/resources/.cache/cache b/src/generated/resources/.cache/cache index 744f22963..7368665c0 100644 --- a/src/generated/resources/.cache/cache +++ b/src/generated/resources/.cache/cache @@ -8,8 +8,8 @@ dd468657a73fc2ad6e1ac08ace2996b6997d33e0 assets/create/blockstates/andesite_belt da63a8be3191d6d72afef6c79e3aea3f607631f9 assets/create/blockstates/andesite_bricks_stairs.json 57be934c5bc9b3a693e4eab018d8775681d8f0fa assets/create/blockstates/andesite_bricks_wall.json 9999a75c7766781eadb12510a09264600bc846e4 assets/create/blockstates/andesite_casing.json -b657c1b88620a6baf98a70f43d74e8b67edfa0e5 assets/create/blockstates/andesite_encased_cogwheel.json -fa2c7368f738ada9bd0e05c3c61b096e6dce61cc assets/create/blockstates/andesite_encased_large_cogwheel.json +96bd534d3d84336927fb6512f9848d837d557084 assets/create/blockstates/andesite_encased_cogwheel.json +1673172100317477ca559c32fd91d16b165e0085 assets/create/blockstates/andesite_encased_large_cogwheel.json 9639b901ffdd2ecccab5575c5c9e6c7b5c901e02 assets/create/blockstates/andesite_encased_shaft.json ca9a629472625abf741f02b94ce4578292fb14a7 assets/create/blockstates/andesite_funnel.json 1d2d8081581e07d9be4b382aede4f2de4401cc6b assets/create/blockstates/andesite_tunnel.json @@ -36,8 +36,8 @@ dea175335c5db0abe758cd208dc984c22506a176 assets/create/blockstates/blue_toolbox. ee1299a15fca849eb42bf81507f85a54c167bbfe assets/create/blockstates/brass_belt_funnel.json 8b1dd00adcc7e74c5a9feed069e2610b15a338cb assets/create/blockstates/brass_block.json b8dd6e505943e06706d0718ece620ab3cf943650 assets/create/blockstates/brass_casing.json -5ae1af0842f3c5954cb40f232f642268d4fd6f08 assets/create/blockstates/brass_encased_cogwheel.json -9d74bfe4e343fec771197b4d575cccdbc7ec0fba assets/create/blockstates/brass_encased_large_cogwheel.json +577adb030af119fb980ededaa7fc2a3d3ed14220 assets/create/blockstates/brass_encased_cogwheel.json +e69a71fdeb5855b2a59a31598f25eaea589c1748 assets/create/blockstates/brass_encased_large_cogwheel.json 288bad07593a8a2c8efaf44bba0ffb0011d36cd3 assets/create/blockstates/brass_encased_shaft.json adfbd6cc5e44a0f431180aedbe65a19428299d8e assets/create/blockstates/brass_funnel.json 672eedcd3520c6d39603449165a23be9c612c620 assets/create/blockstates/brass_tunnel.json @@ -534,8 +534,14 @@ c862af2b37ccfd0123e9e96a5400be82033bbdd3 assets/create/models/block/andesite_bel 5449675d9e2e659effc9198852ce74a6be76cd4c assets/create/models/block/andesite_bricks_wall_side.json 36e485aca4c7e5aa238d71861f6dcc2a710aef36 assets/create/models/block/andesite_bricks_wall_side_tall.json 4e44ccdc5e396c4380a7e59408db50553fa25226 assets/create/models/block/andesite_casing.json -a239719fd2b985b95e686bbd76acf04a6a08b714 assets/create/models/block/andesite_encased_cogwheel.json -d401506fda2771ac5696d65b747a5a570a003ad3 assets/create/models/block/andesite_encased_large_cogwheel.json +762509cfb8602c6d0d3f959c08ad4934c2b5d8fa assets/create/models/block/andesite_encased_cogwheel.json +314489582d1cde98bc5e4fd4d2f0c9ab3cb731d3 assets/create/models/block/andesite_encased_cogwheel_bottom.json +650fa63c126652c8501a657e1b89d0ef42a8b4be assets/create/models/block/andesite_encased_cogwheel_top.json +c8f215c191f46ff1ea6f098ab32c7d27d04cb017 assets/create/models/block/andesite_encased_cogwheel_top_bottom.json +41d4e8fd8ccdf915bd4d00b97cb87be87de33486 assets/create/models/block/andesite_encased_large_cogwheel.json +f8f131a53664faa5bd84b61e83d62ed5b367bf1d assets/create/models/block/andesite_encased_large_cogwheel_bottom.json +77b3bbcb47e83f985d68b0ed0344e9f79999e797 assets/create/models/block/andesite_encased_large_cogwheel_top.json +01189fb179863ce1ef524bd5ddd5b4bebd5bbc6b assets/create/models/block/andesite_encased_large_cogwheel_top_bottom.json 8d4e4a7c6ad6d45c7aa7ca3105a025511571ff26 assets/create/models/block/andesite_funnel_horizontal_pull.json 9841d6a09a09bf4d5d6a39bdc4904d86b3a825f8 assets/create/models/block/andesite_funnel_horizontal_pull_powered.json 86d5df6e365d9b2e9682f0839f61058360828ba2 assets/create/models/block/andesite_funnel_horizontal_push.json @@ -598,7 +604,13 @@ dfc6250e28e12ff193a45891978ec50c406fc0c2 assets/create/models/block/brass_belt_f 5adb8b446817eee3a31971d708320c7104d6bbd8 assets/create/models/block/brass_block.json 2e67c147d7c69aabd9ab9f7aa80f60671d5a03aa assets/create/models/block/brass_casing.json 8cb0039684377c27a7fe20bdcacf24f871221478 assets/create/models/block/brass_encased_cogwheel.json +c735917634c87b3d289bd912c7ceb465a3cc65b6 assets/create/models/block/brass_encased_cogwheel_bottom.json +c2199a633597a73a1c2d508e5dfe0a7589b02329 assets/create/models/block/brass_encased_cogwheel_top.json +69ea566328350c282878de2ef6aa197037c5e5de assets/create/models/block/brass_encased_cogwheel_top_bottom.json 7ab46e52da9ef474f38e5b9eefbed9ba9dc53b78 assets/create/models/block/brass_encased_large_cogwheel.json +ed150a9e18889217b7f010412e4317af04af7dc1 assets/create/models/block/brass_encased_large_cogwheel_bottom.json +bb4155627c1f189e2e3bc07822d227bb0fc64bc4 assets/create/models/block/brass_encased_large_cogwheel_top.json +421cbc9bcb6511c66ff7122d1800bcd8ab866b2b assets/create/models/block/brass_encased_large_cogwheel_top_bottom.json f7fd1f49857eca94e4135e65c85127510d666e4f assets/create/models/block/brass_funnel_horizontal_pull.json 45a23298ad03fd3b5dc2757dcd7edc18b8cce222 assets/create/models/block/brass_funnel_horizontal_pull_powered.json a9fc7210d44b47202438668f11b31099e82c9ebd assets/create/models/block/brass_funnel_horizontal_push.json @@ -1443,8 +1455,8 @@ a513af38f164a48fd44693b70a93012f3546caff assets/create/models/item/andesite_bric d283f86cd05ed378efd82ce46cf49bc83783069b assets/create/models/item/andesite_bricks_stairs.json aeee006db637fad3ef9e060cfbd66453915ef5f9 assets/create/models/item/andesite_bricks_wall.json 174c9705d25f149052835fdcf7c85626afead90b assets/create/models/item/andesite_casing.json -c8c65b126c2ff1284acedc69a2470a551431bd24 assets/create/models/item/andesite_encased_cogwheel.json -03122ac6e0823ebea9844f4d87fb73440f9e35c4 assets/create/models/item/andesite_encased_large_cogwheel.json +420020284d01c72a7fb3387750fe1dd2dcfb9550 assets/create/models/item/andesite_encased_cogwheel.json +6e246e91b4ebffd5c45311057feb5d26d1cb8aec assets/create/models/item/andesite_encased_large_cogwheel.json bc6e7469744604e578200ea87690e4dd3b25e447 assets/create/models/item/andesite_encased_shaft.json a3866ea9f44e80b64989f2b5f8a9f344da959c87 assets/create/models/item/andesite_funnel.json 795541cf7205d90531a23cd5b388f93a03bbf925 assets/create/models/item/andesite_tunnel.json @@ -1951,7 +1963,7 @@ d080b1b25e5bc8baf5aee68691b08c7f12ece3b0 assets/create/models/item/windmill_bear a80fb25a0b655e76be986b5b49fcb0f03461a1ab assets/create/models/item/zinc_nugget.json b1689617190c05ef34bd18456b0c7ae09bb3210f assets/create/models/item/zinc_ore.json 5049f72c327a88f175f6f9425909e098fc711100 assets/create/sounds.json -0f1b4b980afba9bf2caf583b88e261bba8b10313 data/create/advancements/aesthetics.json +5d0cc4c0255dc241e61c173b31ddca70c88d08e4 data/create/advancements/aesthetics.json 613e64b44bed959da899fdd54c1cacb227fb33f2 data/create/advancements/andesite_alloy.json 81885c6bfb85792c88aaa7c9b70f58832945d31f data/create/advancements/andesite_casing.json 83c046bd200623933545c9e4326f782fb02c87fa data/create/advancements/arm_blaze_burner.json diff --git a/src/generated/resources/assets/create/blockstates/andesite_encased_cogwheel.json b/src/generated/resources/assets/create/blockstates/andesite_encased_cogwheel.json index c683c8b3b..a85b57d29 100644 --- a/src/generated/resources/assets/create/blockstates/andesite_encased_cogwheel.json +++ b/src/generated/resources/assets/create/blockstates/andesite_encased_cogwheel.json @@ -1,17 +1,56 @@ { "variants": { - "axis=x": { + "axis=x,bottom_shaft=false,top_shaft=false": { "model": "create:block/andesite_encased_cogwheel", "x": 90, "y": 90 }, - "axis=y": { + "axis=y,bottom_shaft=false,top_shaft=false": { "model": "create:block/andesite_encased_cogwheel" }, - "axis=z": { + "axis=z,bottom_shaft=false,top_shaft=false": { "model": "create:block/andesite_encased_cogwheel", "x": 90, "y": 180 + }, + "axis=x,bottom_shaft=true,top_shaft=false": { + "model": "create:block/andesite_encased_cogwheel_bottom", + "x": 90, + "y": 90 + }, + "axis=y,bottom_shaft=true,top_shaft=false": { + "model": "create:block/andesite_encased_cogwheel_bottom" + }, + "axis=z,bottom_shaft=true,top_shaft=false": { + "model": "create:block/andesite_encased_cogwheel_bottom", + "x": 90, + "y": 180 + }, + "axis=x,bottom_shaft=false,top_shaft=true": { + "model": "create:block/andesite_encased_cogwheel_top", + "x": 90, + "y": 90 + }, + "axis=y,bottom_shaft=false,top_shaft=true": { + "model": "create:block/andesite_encased_cogwheel_top" + }, + "axis=z,bottom_shaft=false,top_shaft=true": { + "model": "create:block/andesite_encased_cogwheel_top", + "x": 90, + "y": 180 + }, + "axis=x,bottom_shaft=true,top_shaft=true": { + "model": "create:block/andesite_encased_cogwheel_top_bottom", + "x": 90, + "y": 90 + }, + "axis=y,bottom_shaft=true,top_shaft=true": { + "model": "create:block/andesite_encased_cogwheel_top_bottom" + }, + "axis=z,bottom_shaft=true,top_shaft=true": { + "model": "create:block/andesite_encased_cogwheel_top_bottom", + "x": 90, + "y": 180 } } } \ No newline at end of file diff --git a/src/generated/resources/assets/create/blockstates/andesite_encased_large_cogwheel.json b/src/generated/resources/assets/create/blockstates/andesite_encased_large_cogwheel.json index 502b93d53..215981485 100644 --- a/src/generated/resources/assets/create/blockstates/andesite_encased_large_cogwheel.json +++ b/src/generated/resources/assets/create/blockstates/andesite_encased_large_cogwheel.json @@ -1,17 +1,56 @@ { "variants": { - "axis=x": { + "axis=x,bottom_shaft=false,top_shaft=false": { "model": "create:block/andesite_encased_large_cogwheel", "x": 90, "y": 90 }, - "axis=y": { + "axis=y,bottom_shaft=false,top_shaft=false": { "model": "create:block/andesite_encased_large_cogwheel" }, - "axis=z": { + "axis=z,bottom_shaft=false,top_shaft=false": { "model": "create:block/andesite_encased_large_cogwheel", "x": 90, "y": 180 + }, + "axis=x,bottom_shaft=true,top_shaft=false": { + "model": "create:block/andesite_encased_large_cogwheel_bottom", + "x": 90, + "y": 90 + }, + "axis=y,bottom_shaft=true,top_shaft=false": { + "model": "create:block/andesite_encased_large_cogwheel_bottom" + }, + "axis=z,bottom_shaft=true,top_shaft=false": { + "model": "create:block/andesite_encased_large_cogwheel_bottom", + "x": 90, + "y": 180 + }, + "axis=x,bottom_shaft=false,top_shaft=true": { + "model": "create:block/andesite_encased_large_cogwheel_top", + "x": 90, + "y": 90 + }, + "axis=y,bottom_shaft=false,top_shaft=true": { + "model": "create:block/andesite_encased_large_cogwheel_top" + }, + "axis=z,bottom_shaft=false,top_shaft=true": { + "model": "create:block/andesite_encased_large_cogwheel_top", + "x": 90, + "y": 180 + }, + "axis=x,bottom_shaft=true,top_shaft=true": { + "model": "create:block/andesite_encased_large_cogwheel_top_bottom", + "x": 90, + "y": 90 + }, + "axis=y,bottom_shaft=true,top_shaft=true": { + "model": "create:block/andesite_encased_large_cogwheel_top_bottom" + }, + "axis=z,bottom_shaft=true,top_shaft=true": { + "model": "create:block/andesite_encased_large_cogwheel_top_bottom", + "x": 90, + "y": 180 } } } \ No newline at end of file diff --git a/src/generated/resources/assets/create/blockstates/brass_encased_cogwheel.json b/src/generated/resources/assets/create/blockstates/brass_encased_cogwheel.json index eb460611b..2d173cc6d 100644 --- a/src/generated/resources/assets/create/blockstates/brass_encased_cogwheel.json +++ b/src/generated/resources/assets/create/blockstates/brass_encased_cogwheel.json @@ -1,17 +1,56 @@ { "variants": { - "axis=x": { + "axis=x,bottom_shaft=false,top_shaft=false": { "model": "create:block/brass_encased_cogwheel", "x": 90, "y": 90 }, - "axis=y": { + "axis=y,bottom_shaft=false,top_shaft=false": { "model": "create:block/brass_encased_cogwheel" }, - "axis=z": { + "axis=z,bottom_shaft=false,top_shaft=false": { "model": "create:block/brass_encased_cogwheel", "x": 90, "y": 180 + }, + "axis=x,bottom_shaft=true,top_shaft=false": { + "model": "create:block/brass_encased_cogwheel_bottom", + "x": 90, + "y": 90 + }, + "axis=y,bottom_shaft=true,top_shaft=false": { + "model": "create:block/brass_encased_cogwheel_bottom" + }, + "axis=z,bottom_shaft=true,top_shaft=false": { + "model": "create:block/brass_encased_cogwheel_bottom", + "x": 90, + "y": 180 + }, + "axis=x,bottom_shaft=false,top_shaft=true": { + "model": "create:block/brass_encased_cogwheel_top", + "x": 90, + "y": 90 + }, + "axis=y,bottom_shaft=false,top_shaft=true": { + "model": "create:block/brass_encased_cogwheel_top" + }, + "axis=z,bottom_shaft=false,top_shaft=true": { + "model": "create:block/brass_encased_cogwheel_top", + "x": 90, + "y": 180 + }, + "axis=x,bottom_shaft=true,top_shaft=true": { + "model": "create:block/brass_encased_cogwheel_top_bottom", + "x": 90, + "y": 90 + }, + "axis=y,bottom_shaft=true,top_shaft=true": { + "model": "create:block/brass_encased_cogwheel_top_bottom" + }, + "axis=z,bottom_shaft=true,top_shaft=true": { + "model": "create:block/brass_encased_cogwheel_top_bottom", + "x": 90, + "y": 180 } } } \ No newline at end of file diff --git a/src/generated/resources/assets/create/blockstates/brass_encased_large_cogwheel.json b/src/generated/resources/assets/create/blockstates/brass_encased_large_cogwheel.json index d294204a4..f092dffe1 100644 --- a/src/generated/resources/assets/create/blockstates/brass_encased_large_cogwheel.json +++ b/src/generated/resources/assets/create/blockstates/brass_encased_large_cogwheel.json @@ -1,17 +1,56 @@ { "variants": { - "axis=x": { + "axis=x,bottom_shaft=false,top_shaft=false": { "model": "create:block/brass_encased_large_cogwheel", "x": 90, "y": 90 }, - "axis=y": { + "axis=y,bottom_shaft=false,top_shaft=false": { "model": "create:block/brass_encased_large_cogwheel" }, - "axis=z": { + "axis=z,bottom_shaft=false,top_shaft=false": { "model": "create:block/brass_encased_large_cogwheel", "x": 90, "y": 180 + }, + "axis=x,bottom_shaft=true,top_shaft=false": { + "model": "create:block/brass_encased_large_cogwheel_bottom", + "x": 90, + "y": 90 + }, + "axis=y,bottom_shaft=true,top_shaft=false": { + "model": "create:block/brass_encased_large_cogwheel_bottom" + }, + "axis=z,bottom_shaft=true,top_shaft=false": { + "model": "create:block/brass_encased_large_cogwheel_bottom", + "x": 90, + "y": 180 + }, + "axis=x,bottom_shaft=false,top_shaft=true": { + "model": "create:block/brass_encased_large_cogwheel_top", + "x": 90, + "y": 90 + }, + "axis=y,bottom_shaft=false,top_shaft=true": { + "model": "create:block/brass_encased_large_cogwheel_top" + }, + "axis=z,bottom_shaft=false,top_shaft=true": { + "model": "create:block/brass_encased_large_cogwheel_top", + "x": 90, + "y": 180 + }, + "axis=x,bottom_shaft=true,top_shaft=true": { + "model": "create:block/brass_encased_large_cogwheel_top_bottom", + "x": 90, + "y": 90 + }, + "axis=y,bottom_shaft=true,top_shaft=true": { + "model": "create:block/brass_encased_large_cogwheel_top_bottom" + }, + "axis=z,bottom_shaft=true,top_shaft=true": { + "model": "create:block/brass_encased_large_cogwheel_top_bottom", + "x": 90, + "y": 180 } } } \ No newline at end of file diff --git a/src/generated/resources/assets/create/models/block/andesite_encased_cogwheel.json b/src/generated/resources/assets/create/models/block/andesite_encased_cogwheel.json index 16bb11d3b..a7a19bcdd 100644 --- a/src/generated/resources/assets/create/models/block/andesite_encased_cogwheel.json +++ b/src/generated/resources/assets/create/models/block/andesite_encased_cogwheel.json @@ -2,7 +2,7 @@ "parent": "create:block/encased_cogwheel/block", "textures": { "casing": "create:block/andesite_casing", - "1": "minecraft:block/stripped_dark_oak_log_top", + "1": "minecraft:block/stripped_spruce_log_top", "side": "create:block/andesite_encased_cogwheel_side" } } \ No newline at end of file diff --git a/src/generated/resources/assets/create/models/block/andesite_encased_cogwheel_bottom.json b/src/generated/resources/assets/create/models/block/andesite_encased_cogwheel_bottom.json new file mode 100644 index 000000000..ecfe574ac --- /dev/null +++ b/src/generated/resources/assets/create/models/block/andesite_encased_cogwheel_bottom.json @@ -0,0 +1,8 @@ +{ + "parent": "create:block/encased_cogwheel/block_bottom", + "textures": { + "casing": "create:block/andesite_casing", + "1": "minecraft:block/stripped_spruce_log_top", + "side": "create:block/andesite_encased_cogwheel_side" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/create/models/block/andesite_encased_cogwheel_top.json b/src/generated/resources/assets/create/models/block/andesite_encased_cogwheel_top.json new file mode 100644 index 000000000..bf9533df3 --- /dev/null +++ b/src/generated/resources/assets/create/models/block/andesite_encased_cogwheel_top.json @@ -0,0 +1,8 @@ +{ + "parent": "create:block/encased_cogwheel/block_top", + "textures": { + "casing": "create:block/andesite_casing", + "1": "minecraft:block/stripped_spruce_log_top", + "side": "create:block/andesite_encased_cogwheel_side" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/create/models/block/andesite_encased_cogwheel_top_bottom.json b/src/generated/resources/assets/create/models/block/andesite_encased_cogwheel_top_bottom.json new file mode 100644 index 000000000..f3523aaea --- /dev/null +++ b/src/generated/resources/assets/create/models/block/andesite_encased_cogwheel_top_bottom.json @@ -0,0 +1,8 @@ +{ + "parent": "create:block/encased_cogwheel/block_top_bottom", + "textures": { + "casing": "create:block/andesite_casing", + "1": "minecraft:block/stripped_spruce_log_top", + "side": "create:block/andesite_encased_cogwheel_side" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/create/models/block/andesite_encased_large_cogwheel.json b/src/generated/resources/assets/create/models/block/andesite_encased_large_cogwheel.json index 43a02f630..dbabfdca6 100644 --- a/src/generated/resources/assets/create/models/block/andesite_encased_large_cogwheel.json +++ b/src/generated/resources/assets/create/models/block/andesite_encased_large_cogwheel.json @@ -2,7 +2,7 @@ "parent": "create:block/encased_large_cogwheel/block", "textures": { "casing": "create:block/andesite_casing", - "1": "minecraft:block/stripped_dark_oak_log_top", + "1": "minecraft:block/stripped_spruce_log_top", "side": "create:block/andesite_encased_cogwheel_side_connected" } } \ No newline at end of file diff --git a/src/generated/resources/assets/create/models/block/andesite_encased_large_cogwheel_bottom.json b/src/generated/resources/assets/create/models/block/andesite_encased_large_cogwheel_bottom.json new file mode 100644 index 000000000..e29b6d37a --- /dev/null +++ b/src/generated/resources/assets/create/models/block/andesite_encased_large_cogwheel_bottom.json @@ -0,0 +1,8 @@ +{ + "parent": "create:block/encased_large_cogwheel/block_bottom", + "textures": { + "casing": "create:block/andesite_casing", + "1": "minecraft:block/stripped_spruce_log_top", + "side": "create:block/andesite_encased_cogwheel_side_connected" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/create/models/block/andesite_encased_large_cogwheel_top.json b/src/generated/resources/assets/create/models/block/andesite_encased_large_cogwheel_top.json new file mode 100644 index 000000000..3115674e7 --- /dev/null +++ b/src/generated/resources/assets/create/models/block/andesite_encased_large_cogwheel_top.json @@ -0,0 +1,8 @@ +{ + "parent": "create:block/encased_large_cogwheel/block_top", + "textures": { + "casing": "create:block/andesite_casing", + "1": "minecraft:block/stripped_spruce_log_top", + "side": "create:block/andesite_encased_cogwheel_side_connected" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/create/models/block/andesite_encased_large_cogwheel_top_bottom.json b/src/generated/resources/assets/create/models/block/andesite_encased_large_cogwheel_top_bottom.json new file mode 100644 index 000000000..45aa717ca --- /dev/null +++ b/src/generated/resources/assets/create/models/block/andesite_encased_large_cogwheel_top_bottom.json @@ -0,0 +1,8 @@ +{ + "parent": "create:block/encased_large_cogwheel/block_top_bottom", + "textures": { + "casing": "create:block/andesite_casing", + "1": "minecraft:block/stripped_spruce_log_top", + "side": "create:block/andesite_encased_cogwheel_side_connected" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/create/models/block/brass_encased_cogwheel_bottom.json b/src/generated/resources/assets/create/models/block/brass_encased_cogwheel_bottom.json new file mode 100644 index 000000000..f539444af --- /dev/null +++ b/src/generated/resources/assets/create/models/block/brass_encased_cogwheel_bottom.json @@ -0,0 +1,8 @@ +{ + "parent": "create:block/encased_cogwheel/block_bottom", + "textures": { + "casing": "create:block/brass_casing", + "1": "minecraft:block/stripped_dark_oak_log_top", + "side": "create:block/brass_encased_cogwheel_side" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/create/models/block/brass_encased_cogwheel_top.json b/src/generated/resources/assets/create/models/block/brass_encased_cogwheel_top.json new file mode 100644 index 000000000..bd1e4ee97 --- /dev/null +++ b/src/generated/resources/assets/create/models/block/brass_encased_cogwheel_top.json @@ -0,0 +1,8 @@ +{ + "parent": "create:block/encased_cogwheel/block_top", + "textures": { + "casing": "create:block/brass_casing", + "1": "minecraft:block/stripped_dark_oak_log_top", + "side": "create:block/brass_encased_cogwheel_side" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/create/models/block/brass_encased_cogwheel_top_bottom.json b/src/generated/resources/assets/create/models/block/brass_encased_cogwheel_top_bottom.json new file mode 100644 index 000000000..4a79cf7a9 --- /dev/null +++ b/src/generated/resources/assets/create/models/block/brass_encased_cogwheel_top_bottom.json @@ -0,0 +1,8 @@ +{ + "parent": "create:block/encased_cogwheel/block_top_bottom", + "textures": { + "casing": "create:block/brass_casing", + "1": "minecraft:block/stripped_dark_oak_log_top", + "side": "create:block/brass_encased_cogwheel_side" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/create/models/block/brass_encased_large_cogwheel_bottom.json b/src/generated/resources/assets/create/models/block/brass_encased_large_cogwheel_bottom.json new file mode 100644 index 000000000..d6cf2a464 --- /dev/null +++ b/src/generated/resources/assets/create/models/block/brass_encased_large_cogwheel_bottom.json @@ -0,0 +1,8 @@ +{ + "parent": "create:block/encased_large_cogwheel/block_bottom", + "textures": { + "casing": "create:block/brass_casing", + "1": "minecraft:block/stripped_dark_oak_log_top", + "side": "create:block/brass_encased_cogwheel_side_connected" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/create/models/block/brass_encased_large_cogwheel_top.json b/src/generated/resources/assets/create/models/block/brass_encased_large_cogwheel_top.json new file mode 100644 index 000000000..0ea843941 --- /dev/null +++ b/src/generated/resources/assets/create/models/block/brass_encased_large_cogwheel_top.json @@ -0,0 +1,8 @@ +{ + "parent": "create:block/encased_large_cogwheel/block_top", + "textures": { + "casing": "create:block/brass_casing", + "1": "minecraft:block/stripped_dark_oak_log_top", + "side": "create:block/brass_encased_cogwheel_side_connected" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/create/models/block/brass_encased_large_cogwheel_top_bottom.json b/src/generated/resources/assets/create/models/block/brass_encased_large_cogwheel_top_bottom.json new file mode 100644 index 000000000..2250120e8 --- /dev/null +++ b/src/generated/resources/assets/create/models/block/brass_encased_large_cogwheel_top_bottom.json @@ -0,0 +1,8 @@ +{ + "parent": "create:block/encased_large_cogwheel/block_top_bottom", + "textures": { + "casing": "create:block/brass_casing", + "1": "minecraft:block/stripped_dark_oak_log_top", + "side": "create:block/brass_encased_cogwheel_side_connected" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/create/models/item/andesite_encased_cogwheel.json b/src/generated/resources/assets/create/models/item/andesite_encased_cogwheel.json index 7c8aaf164..7912bbab9 100644 --- a/src/generated/resources/assets/create/models/item/andesite_encased_cogwheel.json +++ b/src/generated/resources/assets/create/models/item/andesite_encased_cogwheel.json @@ -2,7 +2,7 @@ "parent": "create:block/encased_cogwheel/item", "textures": { "casing": "create:block/andesite_casing", - "1": "minecraft:block/stripped_dark_oak_log_top", + "1": "minecraft:block/stripped_spruce_log_top", "side": "create:block/andesite_encased_cogwheel_side" } } \ No newline at end of file diff --git a/src/generated/resources/assets/create/models/item/andesite_encased_large_cogwheel.json b/src/generated/resources/assets/create/models/item/andesite_encased_large_cogwheel.json index 2b4457878..14396af11 100644 --- a/src/generated/resources/assets/create/models/item/andesite_encased_large_cogwheel.json +++ b/src/generated/resources/assets/create/models/item/andesite_encased_large_cogwheel.json @@ -2,7 +2,7 @@ "parent": "create:block/encased_large_cogwheel/item", "textures": { "casing": "create:block/andesite_casing", - "1": "minecraft:block/stripped_dark_oak_log_top", + "1": "minecraft:block/stripped_spruce_log_top", "side": "create:block/andesite_encased_cogwheel_side_connected" } } \ No newline at end of file diff --git a/src/generated/resources/data/create/advancements/aesthetics.json b/src/generated/resources/data/create/advancements/aesthetics.json index d723cbe38..59a86f429 100644 --- a/src/generated/resources/data/create/advancements/aesthetics.json +++ b/src/generated/resources/data/create/advancements/aesthetics.json @@ -28,8 +28,8 @@ "trigger": "create:bracket_apply", "conditions": { "accepted_entries": [ - "create:cogwheel", - "create:large_cogwheel" + "create:large_cogwheel", + "create:cogwheel" ] } }, diff --git a/src/main/java/com/simibubi/create/AllFluids.java b/src/main/java/com/simibubi/create/AllFluids.java index 15949506f..50e6ed263 100644 --- a/src/main/java/com/simibubi/create/AllFluids.java +++ b/src/main/java/com/simibubi/create/AllFluids.java @@ -6,7 +6,7 @@ import com.simibubi.create.AllTags.AllFluidTags; import com.simibubi.create.content.contraptions.fluids.VirtualFluid; import com.simibubi.create.content.contraptions.fluids.potion.PotionFluid; import com.simibubi.create.content.contraptions.fluids.potion.PotionFluid.PotionFluidAttributes; -import com.simibubi.create.content.palettes.AllPaletteBlocks; +import com.simibubi.create.content.palettes.AllPaletteStoneTypes; import com.simibubi.create.foundation.data.CreateRegistrate; import com.tterrag.registrate.util.entry.FluidEntry; @@ -81,14 +81,14 @@ public class AllFluids { @Nullable public static BlockState getLavaInteraction(FluidState fluidState) { Fluid fluid = fluidState.getType(); -// if (fluid.isSame(HONEY.get())) TODO when fluid blocks return -// return fluidState.isSource() ? AllPaletteBlocks.LIMESTONE.getDefaultState() -// : AllPaletteBlocks.LIMESTONE_VARIANTS.registeredBlocks.get(0) -// .getDefaultState(); -// if (fluid.isSame(CHOCOLATE.get())) -// return fluidState.isSource() ? AllPaletteBlocks.SCORIA.getDefaultState() -// : AllPaletteBlocks.SCORIA_VARIANTS.registeredBlocks.get(0) -// .getDefaultState(); + if (fluid.isSame(HONEY.get())) + return AllPaletteStoneTypes.LIMESTONE.getBaseBlock() + .get() + .defaultBlockState(); + if (fluid.isSame(CHOCOLATE.get())) + return AllPaletteStoneTypes.SCORIA.getBaseBlock() + .get() + .defaultBlockState(); return null; } diff --git a/src/main/java/com/simibubi/create/AllSpriteShifts.java b/src/main/java/com/simibubi/create/AllSpriteShifts.java index 36db46447..4763976bf 100644 --- a/src/main/java/com/simibubi/create/AllSpriteShifts.java +++ b/src/main/java/com/simibubi/create/AllSpriteShifts.java @@ -28,7 +28,7 @@ public class AllSpriteShifts { public static final CTSpriteShiftEntry FRAMED_GLASS = getCT(OMNIDIRECTIONAL, "palettes/framed_glass", "palettes/framed_glass"), - HORIZONTAL_FRAMED_GLASS = getCT(HORIZONTAL, "palettes/framed_glass", "palettes/horizontal_framed_glass"), + HORIZONTAL_FRAMED_GLASS = getCT(CTType.HORIZONTAL_KRYPPERS, "palettes/framed_glass", "palettes/horizontal_framed_glass"), VERTICAL_FRAMED_GLASS = getCT(VERTICAL, "palettes/framed_glass", "palettes/vertical_framed_glass"), ORNATE_IRON_WINDOW = vertical("palettes/ornate_iron_window"); diff --git a/src/main/java/com/simibubi/create/AllTileEntities.java b/src/main/java/com/simibubi/create/AllTileEntities.java index 5b819533e..cef94965c 100644 --- a/src/main/java/com/simibubi/create/AllTileEntities.java +++ b/src/main/java/com/simibubi/create/AllTileEntities.java @@ -5,7 +5,6 @@ import com.simibubi.create.content.contraptions.base.HalfShaftInstance; import com.simibubi.create.content.contraptions.base.HorizontalHalfShaftInstance; import com.simibubi.create.content.contraptions.base.KineticTileEntity; import com.simibubi.create.content.contraptions.base.KineticTileEntityRenderer; -import com.simibubi.create.content.contraptions.base.ShaftlessCogInstance; import com.simibubi.create.content.contraptions.base.SingleRotatingInstance; import com.simibubi.create.content.contraptions.components.actors.DrillInstance; import com.simibubi.create.content.contraptions.components.actors.DrillRenderer; @@ -109,9 +108,10 @@ import com.simibubi.create.content.contraptions.relays.elementary.BracketedKinet import com.simibubi.create.content.contraptions.relays.elementary.SimpleKineticTileEntity; import com.simibubi.create.content.contraptions.relays.encased.AdjustablePulleyTileEntity; import com.simibubi.create.content.contraptions.relays.encased.ClutchTileEntity; +import com.simibubi.create.content.contraptions.relays.encased.EncasedCogInstance; import com.simibubi.create.content.contraptions.relays.encased.ShaftInstance; import com.simibubi.create.content.contraptions.relays.encased.ShaftRenderer; -import com.simibubi.create.content.contraptions.relays.encased.ShaftlessCogRenderer; +import com.simibubi.create.content.contraptions.relays.encased.EncasedCogRenderer; import com.simibubi.create.content.contraptions.relays.encased.SplitShaftInstance; import com.simibubi.create.content.contraptions.relays.encased.SplitShaftRenderer; import com.simibubi.create.content.contraptions.relays.gauge.GaugeInstance; @@ -219,16 +219,16 @@ public class AllTileEntities { public static final TileEntityEntry ENCASED_COGWHEEL = Create.registrate() .tileEntity("encased_cogwheel", SimpleKineticTileEntity::new) - .instance(() -> ShaftlessCogInstance::small) + .instance(() -> EncasedCogInstance::small) .validBlocks(AllBlocks.ANDESITE_ENCASED_COGWHEEL, AllBlocks.BRASS_ENCASED_COGWHEEL) - .renderer(() -> ShaftlessCogRenderer::small) + .renderer(() -> EncasedCogRenderer::small) .register(); public static final TileEntityEntry ENCASED_LARGE_COGWHEEL = Create.registrate() .tileEntity("encased_large_cogwheel", SimpleKineticTileEntity::new) - .instance(() -> ShaftlessCogInstance::large) + .instance(() -> EncasedCogInstance::large) .validBlocks(AllBlocks.ANDESITE_ENCASED_LARGE_COGWHEEL, AllBlocks.BRASS_ENCASED_LARGE_COGWHEEL) - .renderer(() -> ShaftlessCogRenderer::large) + .renderer(() -> EncasedCogRenderer::large) .register(); public static final TileEntityEntry ADJUSTABLE_PULLEY = Create.registrate() diff --git a/src/main/java/com/simibubi/create/content/contraptions/base/ShaftlessCogInstance.java b/src/main/java/com/simibubi/create/content/contraptions/base/ShaftlessCogInstance.java deleted file mode 100644 index 5f5dcaa51..000000000 --- a/src/main/java/com/simibubi/create/content/contraptions/base/ShaftlessCogInstance.java +++ /dev/null @@ -1,51 +0,0 @@ -package com.simibubi.create.content.contraptions.base; - -import com.jozufozu.flywheel.backend.instancing.Instancer; -import com.jozufozu.flywheel.backend.material.MaterialManager; -import com.jozufozu.flywheel.core.PartialModel; -import com.jozufozu.flywheel.util.transform.TransformStack; -import com.mojang.blaze3d.vertex.PoseStack; -import com.mojang.math.Vector3f; -import com.simibubi.create.AllBlockPartials; -import com.simibubi.create.content.contraptions.base.flwdata.RotatingData; - -import net.minecraft.core.Direction; -import net.minecraft.core.Direction.AxisDirection; -import net.minecraft.world.level.block.state.BlockState; -import net.minecraft.world.level.block.state.properties.BlockStateProperties; - -public class ShaftlessCogInstance extends SingleRotatingInstance { - - private boolean large; - - public static ShaftlessCogInstance small(MaterialManager modelManager, KineticTileEntity tile) { - return new ShaftlessCogInstance(modelManager, tile, false); - } - - public static ShaftlessCogInstance large(MaterialManager modelManager, KineticTileEntity tile) { - return new ShaftlessCogInstance(modelManager, tile, true); - } - - public ShaftlessCogInstance(MaterialManager modelManager, KineticTileEntity tile, boolean large) { - super(modelManager, tile); - this.large = large; - } - - @Override - protected Instancer getModel() { - BlockState referenceState = tile.getBlockState(); - Direction facing = - Direction.fromAxisAndDirection(referenceState.getValue(BlockStateProperties.AXIS), AxisDirection.POSITIVE); - PartialModel partial = large ? AllBlockPartials.SHAFTLESS_LARGE_COGWHEEL : AllBlockPartials.SHAFTLESS_COGWHEEL; - - return getRotatingMaterial().getModel(partial, referenceState, facing, () -> { - PoseStack poseStack = new PoseStack(); - TransformStack.cast(poseStack).centre() - .rotateToFace(facing) - .multiply(Vector3f.XN.rotationDegrees(90)) - .unCentre(); - return poseStack; - }); - } - -} diff --git a/src/main/java/com/simibubi/create/content/contraptions/base/ShaftlessLargeCogInstance.java b/src/main/java/com/simibubi/create/content/contraptions/base/ShaftlessLargeCogInstance.java deleted file mode 100644 index eafc26d72..000000000 --- a/src/main/java/com/simibubi/create/content/contraptions/base/ShaftlessLargeCogInstance.java +++ /dev/null @@ -1,21 +0,0 @@ -package com.simibubi.create.content.contraptions.base; - -import com.jozufozu.flywheel.backend.instancing.Instancer; -import com.jozufozu.flywheel.backend.material.MaterialManager; -import com.simibubi.create.AllBlockPartials; -import com.simibubi.create.content.contraptions.base.flwdata.RotatingData; -import com.simibubi.create.foundation.render.AllMaterialSpecs; - -public class ShaftlessLargeCogInstance extends SingleRotatingInstance { - - public ShaftlessLargeCogInstance(MaterialManager modelManager, KineticTileEntity tile) { - super(modelManager, tile); - } - - @Override - protected Instancer getModel() { - return materialManager.defaultSolid() - .material(AllMaterialSpecs.ROTATING) - .getModel(AllBlockPartials.SHAFTLESS_LARGE_COGWHEEL, tile.getBlockState()); - } -} diff --git a/src/main/java/com/simibubi/create/content/contraptions/components/mixer/MixerInstance.java b/src/main/java/com/simibubi/create/content/contraptions/components/mixer/MixerInstance.java index a126aafdb..a5a88e646 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/components/mixer/MixerInstance.java +++ b/src/main/java/com/simibubi/create/content/contraptions/components/mixer/MixerInstance.java @@ -6,13 +6,13 @@ import com.jozufozu.flywheel.backend.material.MaterialManager; import com.jozufozu.flywheel.core.materials.oriented.OrientedData; import com.simibubi.create.AllBlockPartials; import com.simibubi.create.content.contraptions.base.flwdata.RotatingData; -import com.simibubi.create.content.contraptions.base.ShaftlessCogInstance; +import com.simibubi.create.content.contraptions.relays.encased.EncasedCogInstance; import com.simibubi.create.foundation.render.AllMaterialSpecs; import com.simibubi.create.foundation.utility.AnimationTickHolder; import net.minecraft.core.Direction; -public class MixerInstance extends ShaftlessCogInstance implements IDynamicInstance { +public class MixerInstance extends EncasedCogInstance implements IDynamicInstance { private final RotatingData mixerHead; private final OrientedData mixerPole; @@ -39,7 +39,7 @@ public class MixerInstance extends ShaftlessCogInstance implements IDynamicInsta } @Override - protected Instancer getModel() { + protected Instancer getCogModel() { return materialManager.defaultSolid() .material(AllMaterialSpecs.ROTATING) .getModel(AllBlockPartials.SHAFTLESS_COGWHEEL, tile.getBlockState()); diff --git a/src/main/java/com/simibubi/create/content/contraptions/relays/elementary/CogWheelBlock.java b/src/main/java/com/simibubi/create/content/contraptions/relays/elementary/CogWheelBlock.java index f5705857c..19962113a 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/relays/elementary/CogWheelBlock.java +++ b/src/main/java/com/simibubi/create/content/contraptions/relays/elementary/CogWheelBlock.java @@ -14,6 +14,7 @@ import net.minecraft.MethodsReturnNonnullByDefault; import net.minecraft.core.BlockPos; import net.minecraft.core.Direction; import net.minecraft.core.Direction.Axis; +import net.minecraft.core.Direction.AxisDirection; import net.minecraft.world.InteractionHand; import net.minecraft.world.InteractionResult; import net.minecraft.world.entity.player.Player; @@ -90,8 +91,22 @@ public class CogWheelBlock extends AbstractShaftBlock implements ICogWheel { if (world.isClientSide) return InteractionResult.SUCCESS; - KineticTileEntity.switchToBlockState(world, pos, encasedCog.defaultBlockState() - .setValue(AXIS, state.getValue(AXIS))); + BlockState encasedState = encasedCog.defaultBlockState() + .setValue(AXIS, state.getValue(AXIS)); + + for (Direction d : Iterate.directionsInAxis(state.getValue(AXIS))) { + BlockState adjacentState = world.getBlockState(pos.relative(d)); + if (!(adjacentState.getBlock() instanceof IRotate)) + continue; + IRotate def = (IRotate) adjacentState.getBlock(); + if (!def.hasShaftTowards(world, pos.relative(d), adjacentState, d.getOpposite())) + continue; + encasedState = + encasedState.cycle(d.getAxisDirection() == AxisDirection.POSITIVE ? EncasedCogwheelBlock.TOP_SHAFT + : EncasedCogwheelBlock.BOTTOM_SHAFT); + } + + KineticTileEntity.switchToBlockState(world, pos, encasedState); return InteractionResult.SUCCESS; } diff --git a/src/main/java/com/simibubi/create/content/contraptions/relays/encased/EncasedCogCTBehaviour.java b/src/main/java/com/simibubi/create/content/contraptions/relays/encased/EncasedCogCTBehaviour.java index ce055f18a..f97f20404 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/relays/encased/EncasedCogCTBehaviour.java +++ b/src/main/java/com/simibubi/create/content/contraptions/relays/encased/EncasedCogCTBehaviour.java @@ -36,7 +36,7 @@ public class EncasedCogCTBehaviour extends EncasedCTBehaviour { if (large || axis == face.getAxis()) return super.connectsTo(state, other, reader, pos, otherPos, face); - if (other == state) + if (other.getBlock() == state.getBlock() && other.getValue(AXIS) == state.getValue(AXIS)) return true; BlockState blockState = reader.getBlockState(otherPos.relative(face)); @@ -82,8 +82,13 @@ public class EncasedCogCTBehaviour extends EncasedCTBehaviour { @Override public CTSpriteShiftEntry get(BlockState state, Direction direction) { Axis axis = state.getValue(AXIS); - if (large || axis == direction.getAxis()) + if (large || axis == direction.getAxis()) { + if (axis == direction.getAxis() && state + .getValue(direction.getAxisDirection() == AxisDirection.POSITIVE ? EncasedCogwheelBlock.TOP_SHAFT + : EncasedCogwheelBlock.BOTTOM_SHAFT)) + return null; return super.get(state, direction); + } return sideShifts.get(axis == Axis.X || axis == Axis.Z && direction.getAxis() == Axis.X); } diff --git a/src/main/java/com/simibubi/create/content/contraptions/relays/encased/EncasedCogInstance.java b/src/main/java/com/simibubi/create/content/contraptions/relays/encased/EncasedCogInstance.java new file mode 100644 index 000000000..5b264e519 --- /dev/null +++ b/src/main/java/com/simibubi/create/content/contraptions/relays/encased/EncasedCogInstance.java @@ -0,0 +1,108 @@ +package com.simibubi.create.content.contraptions.relays.encased; + +import java.util.Optional; + +import com.jozufozu.flywheel.backend.instancing.InstanceData; +import com.jozufozu.flywheel.backend.instancing.Instancer; +import com.jozufozu.flywheel.backend.material.MaterialManager; +import com.jozufozu.flywheel.core.PartialModel; +import com.jozufozu.flywheel.util.transform.TransformStack; +import com.mojang.blaze3d.vertex.PoseStack; +import com.mojang.math.Vector3f; +import com.simibubi.create.AllBlockPartials; +import com.simibubi.create.content.contraptions.base.IRotate; +import com.simibubi.create.content.contraptions.base.KineticTileEntity; +import com.simibubi.create.content.contraptions.base.KineticTileInstance; +import com.simibubi.create.content.contraptions.base.flwdata.RotatingData; +import com.simibubi.create.foundation.utility.Iterate; + +import net.minecraft.core.Direction; +import net.minecraft.core.Direction.AxisDirection; +import net.minecraft.world.level.block.Block; +import net.minecraft.world.level.block.state.BlockState; +import net.minecraft.world.level.block.state.properties.BlockStateProperties; + +public class EncasedCogInstance extends KineticTileInstance { + + private boolean large; + + protected RotatingData rotatingModel; + protected Optional rotatingTopShaft; + protected Optional rotatingBottomShaft; + + public static EncasedCogInstance small(MaterialManager modelManager, KineticTileEntity tile) { + return new EncasedCogInstance(modelManager, tile, false); + } + + public static EncasedCogInstance large(MaterialManager modelManager, KineticTileEntity tile) { + return new EncasedCogInstance(modelManager, tile, true); + } + + public EncasedCogInstance(MaterialManager modelManager, KineticTileEntity tile, boolean large) { + super(modelManager, tile); + this.large = large; + } + + @Override + public void init() { + rotatingModel = setup(getCogModel().createInstance()); + + Block block = blockState.getBlock(); + if (!(block instanceof IRotate)) + return; + + IRotate def = (IRotate) block; + rotatingTopShaft = Optional.empty(); + rotatingBottomShaft = Optional.empty(); + + for (Direction d : Iterate.directionsInAxis(axis)) { + if (!def.hasShaftTowards(tile.getLevel(), tile.getBlockPos(), blockState, d)) + continue; + RotatingData data = setup(getRotatingMaterial().getModel(AllBlockPartials.SHAFT_HALF, blockState, d) + .createInstance()); + if (d.getAxisDirection() == AxisDirection.POSITIVE) + rotatingTopShaft = Optional.of(data); + else + rotatingBottomShaft = Optional.of(data); + } + } + + @Override + public void update() { + updateRotation(rotatingModel); + rotatingTopShaft.ifPresent(this::updateRotation); + rotatingBottomShaft.ifPresent(this::updateRotation); + } + + @Override + public void updateLight() { + relight(pos, rotatingModel); + rotatingTopShaft.ifPresent(d -> relight(pos, d)); + rotatingBottomShaft.ifPresent(d -> relight(pos, d)); + } + + @Override + public void remove() { + rotatingModel.delete(); + rotatingTopShaft.ifPresent(InstanceData::delete); + rotatingBottomShaft.ifPresent(InstanceData::delete); + } + + protected Instancer getCogModel() { + BlockState referenceState = tile.getBlockState(); + Direction facing = + Direction.fromAxisAndDirection(referenceState.getValue(BlockStateProperties.AXIS), AxisDirection.POSITIVE); + PartialModel partial = large ? AllBlockPartials.SHAFTLESS_LARGE_COGWHEEL : AllBlockPartials.SHAFTLESS_COGWHEEL; + + return getRotatingMaterial().getModel(partial, referenceState, facing, () -> { + PoseStack poseStack = new PoseStack(); + TransformStack.cast(poseStack) + .centre() + .rotateToFace(facing) + .multiply(Vector3f.XN.rotationDegrees(90)) + .unCentre(); + return poseStack; + }); + } + +} diff --git a/src/main/java/com/simibubi/create/content/contraptions/relays/encased/EncasedCogRenderer.java b/src/main/java/com/simibubi/create/content/contraptions/relays/encased/EncasedCogRenderer.java new file mode 100644 index 000000000..b7f423b22 --- /dev/null +++ b/src/main/java/com/simibubi/create/content/contraptions/relays/encased/EncasedCogRenderer.java @@ -0,0 +1,68 @@ +package com.simibubi.create.content.contraptions.relays.encased; + +import com.jozufozu.flywheel.backend.Backend; +import com.mojang.blaze3d.vertex.PoseStack; +import com.simibubi.create.AllBlockPartials; +import com.simibubi.create.content.contraptions.base.IRotate; +import com.simibubi.create.content.contraptions.base.KineticTileEntity; +import com.simibubi.create.content.contraptions.base.KineticTileEntityRenderer; +import com.simibubi.create.foundation.render.CachedBufferer; +import com.simibubi.create.foundation.render.SuperByteBuffer; +import com.simibubi.create.foundation.utility.Iterate; + +import net.minecraft.client.renderer.MultiBufferSource; +import net.minecraft.client.renderer.RenderType; +import net.minecraft.client.renderer.blockentity.BlockEntityRendererProvider; +import net.minecraft.core.Direction; +import net.minecraft.core.Direction.AxisDirection; +import net.minecraft.world.level.block.Block; +import net.minecraft.world.level.block.state.BlockState; + +public class EncasedCogRenderer extends KineticTileEntityRenderer { + + private boolean large; + + public static EncasedCogRenderer small(BlockEntityRendererProvider.Context context) { + return new EncasedCogRenderer(context, false); + } + + public static EncasedCogRenderer large(BlockEntityRendererProvider.Context context) { + return new EncasedCogRenderer(context, true); + } + + public EncasedCogRenderer(BlockEntityRendererProvider.Context context, boolean large) { + super(context); + this.large = large; + } + + @Override + protected void renderSafe(KineticTileEntity te, float partialTicks, PoseStack ms, MultiBufferSource buffer, + int light, int overlay) { + super.renderSafe(te, partialTicks, ms, buffer, light, overlay); + if (Backend.getInstance() + .canUseInstancing(te.getLevel())) + return; + + BlockState blockState = te.getBlockState(); + Block block = blockState.getBlock(); + if (!(block instanceof IRotate)) + return; + IRotate def = (IRotate) block; + + for (Direction d : Iterate.directionsInAxis(getRotationAxisOf(te))) { + if (!def.hasShaftTowards(te.getLevel(), te.getBlockPos(), blockState, d)) + continue; + renderRotatingBuffer(te, CachedBufferer.partialFacing(AllBlockPartials.SHAFT_HALF, te.getBlockState(), d), + ms, buffer.getBuffer(RenderType.solid()), light); + } + } + + @Override + protected SuperByteBuffer getRotatedModel(KineticTileEntity te) { + return CachedBufferer.partialFacingVertical( + large ? AllBlockPartials.SHAFTLESS_LARGE_COGWHEEL : AllBlockPartials.SHAFTLESS_COGWHEEL, te.getBlockState(), + Direction.fromAxisAndDirection(te.getBlockState() + .getValue(EncasedCogwheelBlock.AXIS), AxisDirection.POSITIVE)); + } + +} diff --git a/src/main/java/com/simibubi/create/content/contraptions/relays/encased/EncasedCogwheelBlock.java b/src/main/java/com/simibubi/create/content/contraptions/relays/encased/EncasedCogwheelBlock.java index 1fa98fa25..284c4232d 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/relays/encased/EncasedCogwheelBlock.java +++ b/src/main/java/com/simibubi/create/content/contraptions/relays/encased/EncasedCogwheelBlock.java @@ -17,21 +17,28 @@ import com.tterrag.registrate.util.entry.BlockEntry; import net.minecraft.core.BlockPos; import net.minecraft.core.Direction; import net.minecraft.core.Direction.Axis; +import net.minecraft.core.Direction.AxisDirection; import net.minecraft.core.NonNullList; import net.minecraft.world.InteractionResult; import net.minecraft.world.item.CreativeModeTab; import net.minecraft.world.item.ItemStack; import net.minecraft.world.item.context.BlockPlaceContext; import net.minecraft.world.item.context.UseOnContext; +import net.minecraft.world.level.Level; import net.minecraft.world.level.LevelReader; import net.minecraft.world.level.block.Block; import net.minecraft.world.level.block.entity.BlockEntity; import net.minecraft.world.level.block.entity.BlockEntityType; import net.minecraft.world.level.block.state.BlockState; +import net.minecraft.world.level.block.state.StateDefinition.Builder; +import net.minecraft.world.level.block.state.properties.BooleanProperty; public class EncasedCogwheelBlock extends RotatedPillarKineticBlock implements ICogWheel, ITE, ISpecialBlockItemRequirement { + public static final BooleanProperty TOP_SHAFT = BooleanProperty.create("top_shaft"); + public static final BooleanProperty BOTTOM_SHAFT = BooleanProperty.create("bottom_shaft"); + boolean isLarge; private BlockEntry casing; @@ -47,11 +54,18 @@ public class EncasedCogwheelBlock extends RotatedPillarKineticBlock super(properties); isLarge = large; this.casing = casing; + registerDefaultState(defaultBlockState().setValue(TOP_SHAFT, false) + .setValue(BOTTOM_SHAFT, false)); + } + + @Override + protected void createBlockStateDefinition(Builder builder) { + super.createBlockStateDefinition(builder.add(TOP_SHAFT, BOTTOM_SHAFT)); } @Override public void fillItemCategory(CreativeModeTab pTab, NonNullList pItems) {} - + @Override public BlockState getStateForPlacement(BlockPlaceContext context) { BlockState placedOn = context.getLevel() @@ -71,7 +85,25 @@ public class EncasedCogwheelBlock extends RotatedPillarKineticBlock @Override public boolean skipRendering(BlockState pState, BlockState pAdjacentBlockState, Direction pDirection) { - return pState == pAdjacentBlockState; + return pState.getBlock() == pAdjacentBlockState.getBlock() + && pState.getValue(AXIS) == pAdjacentBlockState.getValue(AXIS); + } + + @Override + public InteractionResult onWrenched(BlockState state, UseOnContext context) { + if (context.getClickedFace() + .getAxis() != state.getValue(AXIS)) + return super.onWrenched(state, context); + + Level level = context.getLevel(); + if (level.isClientSide) + return InteractionResult.SUCCESS; + + BlockPos pos = context.getClickedPos(); + KineticTileEntity.switchToBlockState(level, pos, state.cycle(context.getClickedFace() + .getAxisDirection() == AxisDirection.POSITIVE ? TOP_SHAFT : BOTTOM_SHAFT)); + playRotateSound(level, pos); + return InteractionResult.SUCCESS; } @Override @@ -88,7 +120,20 @@ public class EncasedCogwheelBlock extends RotatedPillarKineticBlock @Override public boolean hasShaftTowards(LevelReader world, BlockPos pos, BlockState state, Direction face) { - return false; + return face.getAxis() == state.getValue(AXIS) + && state.getValue(face.getAxisDirection() == AxisDirection.POSITIVE ? TOP_SHAFT : BOTTOM_SHAFT); + } + + @Override + protected boolean areStatesKineticallyEquivalent(BlockState oldState, BlockState newState) { + if (newState.getBlock() instanceof EncasedCogwheelBlock + && oldState.getBlock() instanceof EncasedCogwheelBlock) { + if (newState.getValue(TOP_SHAFT) != oldState.getValue(TOP_SHAFT)) + return false; + if (newState.getValue(BOTTOM_SHAFT) != oldState.getValue(BOTTOM_SHAFT)) + return false; + } + return super.areStatesKineticallyEquivalent(oldState, newState); } @Override diff --git a/src/main/java/com/simibubi/create/content/contraptions/relays/encased/ShaftlessCogRenderer.java b/src/main/java/com/simibubi/create/content/contraptions/relays/encased/ShaftlessCogRenderer.java deleted file mode 100644 index 158945ebd..000000000 --- a/src/main/java/com/simibubi/create/content/contraptions/relays/encased/ShaftlessCogRenderer.java +++ /dev/null @@ -1,38 +0,0 @@ -package com.simibubi.create.content.contraptions.relays.encased; - -import com.simibubi.create.AllBlockPartials; -import com.simibubi.create.content.contraptions.base.KineticTileEntity; -import com.simibubi.create.content.contraptions.base.KineticTileEntityRenderer; -import com.simibubi.create.foundation.render.CachedBufferer; -import com.simibubi.create.foundation.render.SuperByteBuffer; - -import net.minecraft.client.renderer.blockentity.BlockEntityRendererProvider; -import net.minecraft.core.Direction; -import net.minecraft.core.Direction.AxisDirection; - -public class ShaftlessCogRenderer extends KineticTileEntityRenderer { - - private boolean large; - - public static ShaftlessCogRenderer small(BlockEntityRendererProvider.Context context) { - return new ShaftlessCogRenderer(context, false); - } - - public static ShaftlessCogRenderer large(BlockEntityRendererProvider.Context context) { - return new ShaftlessCogRenderer(context, true); - } - - public ShaftlessCogRenderer(BlockEntityRendererProvider.Context context, boolean large) { - super(context); - this.large = large; - } - - @Override - protected SuperByteBuffer getRotatedModel(KineticTileEntity te) { - return CachedBufferer.partialFacingVertical( - large ? AllBlockPartials.SHAFTLESS_LARGE_COGWHEEL : AllBlockPartials.SHAFTLESS_COGWHEEL, te.getBlockState(), - Direction.fromAxisAndDirection(te.getBlockState() - .getValue(EncasedCogwheelBlock.AXIS), AxisDirection.POSITIVE)); - } - -} diff --git a/src/main/java/com/simibubi/create/content/palettes/PaletteBlockPattern.java b/src/main/java/com/simibubi/create/content/palettes/PaletteBlockPattern.java index abe109c4c..875f9e80c 100644 --- a/src/main/java/com/simibubi/create/content/palettes/PaletteBlockPattern.java +++ b/src/main/java/com/simibubi/create/content/palettes/PaletteBlockPattern.java @@ -267,7 +267,7 @@ public class PaletteBlockPattern { PILLAR(CTType.RECTANGLE, s -> toLocation(s, "pillar")), CAP(CTType.OMNIDIRECTIONAL, s -> toLocation(s, "cap")), - LAYERED(CTType.HORIZONTAL, s -> toLocation(s, "layered")) + LAYERED(CTType.HORIZONTAL_KRYPPERS, s -> toLocation(s, "layered")) ; diff --git a/src/main/java/com/simibubi/create/foundation/block/connected/CTSpriteShiftEntry.java b/src/main/java/com/simibubi/create/foundation/block/connected/CTSpriteShiftEntry.java index 63f9c1bf6..4b75e7c48 100644 --- a/src/main/java/com/simibubi/create/foundation/block/connected/CTSpriteShiftEntry.java +++ b/src/main/java/com/simibubi/create/foundation/block/connected/CTSpriteShiftEntry.java @@ -31,13 +31,19 @@ public abstract class CTSpriteShiftEntry extends SpriteShiftEntry { public static class Horizontal extends CTSpriteShiftEntry { - public Horizontal() { + // Different sheet arrangement + private boolean kryppers; + + public Horizontal(boolean kryppers) { super(2); + this.kryppers = kryppers; } @Override public int getTextureIndex(CTContext context) { - return !context.right && !context.left ? 0 : !context.right ? 3 : !context.left ? 2 : 1; + if (kryppers) + return !context.right && !context.left ? 0 : !context.right ? 3 : !context.left ? 2 : 1; + return (context.right ? 1 : 0) + (context.left ? 2 : 0); } @Override diff --git a/src/main/java/com/simibubi/create/foundation/block/connected/CTSpriteShifter.java b/src/main/java/com/simibubi/create/foundation/block/connected/CTSpriteShifter.java index 5e0908efc..e660b1d65 100644 --- a/src/main/java/com/simibubi/create/foundation/block/connected/CTSpriteShifter.java +++ b/src/main/java/com/simibubi/create/foundation/block/connected/CTSpriteShifter.java @@ -29,7 +29,9 @@ public class CTSpriteShifter extends SpriteShifter { private static CTSpriteShiftEntry create(CTType type) { switch (type) { case HORIZONTAL: - return new CTSpriteShiftEntry.Horizontal(); + return new CTSpriteShiftEntry.Horizontal(false); + case HORIZONTAL_KRYPPERS: + return new CTSpriteShiftEntry.Horizontal(true); case OMNIDIRECTIONAL: return new CTSpriteShiftEntry.Omnidirectional(); case VERTICAL: @@ -44,7 +46,7 @@ public class CTSpriteShifter extends SpriteShifter { } public enum CTType { - OMNIDIRECTIONAL, HORIZONTAL, VERTICAL, CROSS, RECTANGLE; + OMNIDIRECTIONAL, HORIZONTAL, VERTICAL, CROSS, RECTANGLE, HORIZONTAL_KRYPPERS; } } diff --git a/src/main/java/com/simibubi/create/foundation/data/BuilderTransformers.java b/src/main/java/com/simibubi/create/foundation/data/BuilderTransformers.java index b50c4eecc..28f5db443 100644 --- a/src/main/java/com/simibubi/create/foundation/data/BuilderTransformers.java +++ b/src/main/java/com/simibubi/create/foundation/data/BuilderTransformers.java @@ -34,6 +34,7 @@ import com.tterrag.registrate.util.nullness.NonNullUnaryOperator; import net.minecraft.client.renderer.RenderType; import net.minecraft.core.Direction.Axis; +import net.minecraft.core.Direction.AxisDirection; import net.minecraft.resources.ResourceLocation; import net.minecraft.world.item.DyeColor; import net.minecraft.world.item.Rarity; @@ -76,46 +77,45 @@ public class BuilderTransformers { public static NonNullUnaryOperator> encasedCogwheel( String casing, CTSpriteShiftEntry casingShift) { - return b -> encasedCogwheelBase(b, casing, casingShift, () -> AllBlocks.COGWHEEL.get()) - .blockstate((c, p) -> axisBlock(c, p, blockState -> p.models() - .withExistingParent(c.getName(), p.modLoc("block/encased_cogwheel/block")) - .texture("casing", Create.asResource("block/" + casing + "_casing")) - .texture("1", new ResourceLocation("block/stripped_dark_oak_log_top")) - .texture("side", Create.asResource("block/" + casing + "_encased_cogwheel_side")), false)) - .item() - .model((c, p) -> p.withExistingParent(c.getName(), p.modLoc("block/encased_cogwheel/item")) - .texture("casing", Create.asResource("block/" + casing + "_casing")) - .texture("1", new ResourceLocation("block/stripped_dark_oak_log_top")) - .texture("side", Create.asResource("block/" + casing + "_encased_cogwheel_side"))) - .build(); + return b -> encasedCogwheelBase(b, casing, casingShift, () -> AllBlocks.COGWHEEL.get(), false); } public static NonNullUnaryOperator> encasedLargeCogwheel( String casing, CTSpriteShiftEntry casingShift) { - return b -> encasedCogwheelBase(b, casing, casingShift, () -> AllBlocks.LARGE_COGWHEEL.get()) - .onRegister(CreateRegistrate.connectedTextures(new EncasedCogCTBehaviour(casingShift))) - .blockstate((c, p) -> axisBlock(c, p, blockState -> p.models() - .withExistingParent(c.getName(), p.modLoc("block/encased_large_cogwheel/block")) - .texture("casing", Create.asResource("block/" + casing + "_casing")) - .texture("1", new ResourceLocation("block/stripped_dark_oak_log_top")) - .texture("side", Create.asResource("block/" + casing + "_encased_cogwheel_side_connected")), false)) - .item() - .model((c, p) -> p.withExistingParent(c.getName(), p.modLoc("block/encased_large_cogwheel/item")) - .texture("casing", Create.asResource("block/" + casing + "_casing")) - .texture("1", new ResourceLocation("block/stripped_dark_oak_log_top")) - .texture("side", Create.asResource("block/" + casing + "_encased_cogwheel_side_connected"))) - .build(); + return b -> encasedCogwheelBase(b, casing, casingShift, () -> AllBlocks.LARGE_COGWHEEL.get(), true) + .onRegister(CreateRegistrate.connectedTextures(new EncasedCogCTBehaviour(casingShift))); } private static BlockBuilder encasedCogwheelBase(BlockBuilder b, - String casing, CTSpriteShiftEntry casingShift, Supplier drop) { + String casing, CTSpriteShiftEntry casingShift, Supplier drop, boolean large) { + String encasedSuffix = "_encased_cogwheel_side" + (large ? "_connected" : ""); + String blockFolder = large ? "encased_large_cogwheel" : "encased_cogwheel"; + String wood = casing.equals("brass") ? "dark_oak" : "spruce"; return b.initialProperties(SharedProperties::stone) .addLayer(() -> RenderType::cutoutMipped) .properties(BlockBehaviour.Properties::noOcclusion) .transform(BlockStressDefaults.setNoImpact()) .loot((p, lb) -> p.dropOther(lb, drop.get())) .onRegister(CreateRegistrate.casingConnectivity((block, cc) -> cc.make(block, casingShift, - (s, f) -> f.getAxis() == s.getValue(EncasedCogwheelBlock.AXIS)))); + (s, f) -> f.getAxis() == s.getValue(EncasedCogwheelBlock.AXIS) + && !s.getValue(f.getAxisDirection() == AxisDirection.POSITIVE ? EncasedCogwheelBlock.TOP_SHAFT + : EncasedCogwheelBlock.BOTTOM_SHAFT)))) + .blockstate((c, p) -> axisBlock(c, p, blockState -> { + String suffix = (blockState.getValue(EncasedCogwheelBlock.TOP_SHAFT) ? "_top" : "") + + (blockState.getValue(EncasedCogwheelBlock.BOTTOM_SHAFT) ? "_bottom" : ""); + String modelName = c.getName() + suffix; + return p.models() + .withExistingParent(modelName, p.modLoc("block/" + blockFolder + "/block" + suffix)) + .texture("casing", Create.asResource("block/" + casing + "_casing")) + .texture("1", new ResourceLocation("block/stripped_" + wood + "_log_top")) + .texture("side", Create.asResource("block/" + casing + encasedSuffix)); + }, false)) + .item() + .model((c, p) -> p.withExistingParent(c.getName(), p.modLoc("block/" + blockFolder + "/item")) + .texture("casing", Create.asResource("block/" + casing + "_casing")) + .texture("1", new ResourceLocation("block/stripped_" + wood + "_log_top")) + .texture("side", Create.asResource("block/" + casing + encasedSuffix))) + .build(); } diff --git a/src/main/resources/assets/create/models/block/encased_cogwheel/block.json b/src/main/resources/assets/create/models/block/encased_cogwheel/block.json index 621cfb3af..559f7ebf3 100644 --- a/src/main/resources/assets/create/models/block/encased_cogwheel/block.json +++ b/src/main/resources/assets/create/models/block/encased_cogwheel/block.json @@ -1,10 +1,10 @@ { "credit": "Made with Blockbench", "textures": { - "casing": "create:block/andesite_casing", "1": "block/stripped_spruce_log_top", - "side": "create:block/andesite_encased_cogwheel_side", - "particle": "#casing" + "particle": "create:block/andesite_casing", + "casing": "create:block/andesite_casing", + "side": "create:block/andesite_encased_cogwheel_side" }, "elements": [ { diff --git a/src/main/resources/assets/create/models/block/encased_cogwheel/block_bottom.json b/src/main/resources/assets/create/models/block/encased_cogwheel/block_bottom.json new file mode 100644 index 000000000..f7c55e201 --- /dev/null +++ b/src/main/resources/assets/create/models/block/encased_cogwheel/block_bottom.json @@ -0,0 +1,96 @@ +{ + "credit": "Made with Blockbench", + "textures": { + "1": "block/stripped_spruce_log_top", + "4": "create:block/gearbox", + "particle": "create:block/andesite_casing", + "casing": "create:block/andesite_casing", + "side": "create:block/andesite_encased_cogwheel_side" + }, + "elements": [ + { + "from": [0, 1, 0], + "to": [16, 6, 16], + "faces": { + "north": {"uv": [0, 10, 16, 15], "texture": "#side"}, + "east": {"uv": [0, 10, 16, 15], "texture": "#side"}, + "south": {"uv": [0, 10, 16, 15], "texture": "#side"}, + "west": {"uv": [0, 10, 16, 15], "texture": "#side"}, + "up": {"uv": [0, 0, 16, 16], "texture": "#1"}, + "down": {"uv": [0, 0, 16, 16], "texture": "#4"} + } + }, + { + "from": [0, 6, 0], + "to": [16, 10, 16], + "faces": { + "north": {"uv": [0, 6, 16, 10], "texture": "#side", "cullface": "north"}, + "east": {"uv": [0, 6, 16, 10], "texture": "#side", "cullface": "east"}, + "south": {"uv": [0, 6, 16, 10], "texture": "#side", "cullface": "south"}, + "west": {"uv": [0, 6, 16, 10], "texture": "#side", "cullface": "west"} + } + }, + { + "from": [15.95, 6, 0.05], + "to": [0.05, 10, 15.95], + "faces": { + "north": {"uv": [0, 6, 16, 10], "texture": "#side", "cullface": "north"}, + "east": {"uv": [0, 6, 16, 10], "texture": "#side", "cullface": "west"}, + "south": {"uv": [0, 6, 16, 10], "texture": "#side", "cullface": "south"}, + "west": {"uv": [0, 6, 16, 10], "texture": "#side", "cullface": "east"} + } + }, + { + "from": [0, 10, 0], + "to": [16, 16, 16], + "faces": { + "north": {"uv": [0, 0, 16, 6], "texture": "#side"}, + "east": {"uv": [0, 0, 16, 6], "texture": "#side"}, + "south": {"uv": [0, 0, 16, 6], "texture": "#side"}, + "west": {"uv": [0, 0, 16, 6], "texture": "#side"}, + "up": {"uv": [0, 0, 16, 16], "texture": "#casing"}, + "down": {"uv": [0, 0, 16, 16], "texture": "#1"} + } + }, + { + "from": [0, 0, 0], + "to": [16, 1, 2], + "faces": { + "north": {"uv": [0, 15, 16, 16], "texture": "#side"}, + "east": {"uv": [14, 15, 16, 16], "texture": "#side"}, + "south": {"uv": [0, 0, 16, 1], "texture": "#casing"}, + "west": {"uv": [0, 15, 2, 16], "texture": "#side"}, + "down": {"uv": [0, 14, 16, 16], "texture": "#casing"} + } + }, + { + "from": [14, 0, 2], + "to": [16, 1, 14], + "faces": { + "east": {"uv": [2, 15, 14, 16], "texture": "#side"}, + "west": {"uv": [2, 0, 14, 1], "texture": "#casing"}, + "down": {"uv": [14, 2, 16, 14], "texture": "#casing"} + } + }, + { + "from": [0, 0, 14], + "to": [16, 1, 16], + "faces": { + "north": {"uv": [0, 0, 16, 1], "texture": "#casing"}, + "east": {"uv": [0, 15, 2, 16], "texture": "#side"}, + "south": {"uv": [0, 15, 16, 16], "texture": "#side"}, + "west": {"uv": [14, 15, 16, 16], "texture": "#side"}, + "down": {"uv": [0, 0, 16, 2], "texture": "#casing"} + } + }, + { + "from": [0, 0, 2], + "to": [2, 1, 14], + "faces": { + "east": {"uv": [2, 0, 14, 1], "texture": "#casing"}, + "west": {"uv": [2, 15, 14, 16], "texture": "#side"}, + "down": {"uv": [0, 2, 2, 14], "texture": "#casing"} + } + } + ] +} \ No newline at end of file diff --git a/src/main/resources/assets/create/models/block/encased_cogwheel/block_top.json b/src/main/resources/assets/create/models/block/encased_cogwheel/block_top.json new file mode 100644 index 000000000..336f03c91 --- /dev/null +++ b/src/main/resources/assets/create/models/block/encased_cogwheel/block_top.json @@ -0,0 +1,96 @@ +{ + "credit": "Made with Blockbench", + "textures": { + "1": "block/stripped_spruce_log_top", + "4": "create:block/gearbox", + "particle": "create:block/andesite_casing", + "casing": "create:block/andesite_casing", + "side": "create:block/andesite_encased_cogwheel_side" + }, + "elements": [ + { + "from": [0, 0, 0], + "to": [16, 6, 16], + "faces": { + "north": {"uv": [0, 10, 16, 16], "texture": "#side"}, + "east": {"uv": [0, 10, 16, 16], "texture": "#side"}, + "south": {"uv": [0, 10, 16, 16], "texture": "#side"}, + "west": {"uv": [0, 10, 16, 16], "texture": "#side"}, + "up": {"uv": [0, 0, 16, 16], "texture": "#1"}, + "down": {"uv": [0, 0, 16, 16], "texture": "#casing"} + } + }, + { + "from": [0, 6, 0], + "to": [16, 10, 16], + "faces": { + "north": {"uv": [0, 6, 16, 10], "texture": "#side", "cullface": "north"}, + "east": {"uv": [0, 6, 16, 10], "texture": "#side", "cullface": "east"}, + "south": {"uv": [0, 6, 16, 10], "texture": "#side", "cullface": "south"}, + "west": {"uv": [0, 6, 16, 10], "texture": "#side", "cullface": "west"} + } + }, + { + "from": [15.95, 6, 0.05], + "to": [0.05, 10, 15.95], + "faces": { + "north": {"uv": [0, 6, 16, 10], "texture": "#side", "cullface": "north"}, + "east": {"uv": [0, 6, 16, 10], "texture": "#side", "cullface": "west"}, + "south": {"uv": [0, 6, 16, 10], "texture": "#side", "cullface": "south"}, + "west": {"uv": [0, 6, 16, 10], "texture": "#side", "cullface": "east"} + } + }, + { + "from": [0, 10, 0], + "to": [16, 15, 16], + "faces": { + "north": {"uv": [0, 1, 16, 6], "texture": "#side"}, + "east": {"uv": [0, 1, 16, 6], "texture": "#side"}, + "south": {"uv": [0, 1, 16, 6], "texture": "#side"}, + "west": {"uv": [0, 1, 16, 6], "texture": "#side"}, + "up": {"uv": [0, 0, 16, 16], "texture": "#4"}, + "down": {"uv": [0, 0, 16, 16], "texture": "#1"} + } + }, + { + "from": [0, 15, 0], + "to": [16, 16, 2], + "faces": { + "north": {"uv": [0, 0, 16, 1], "texture": "#side"}, + "east": {"uv": [14, 0, 16, 1], "texture": "#side"}, + "south": {"uv": [0, 0, 16, 1], "texture": "#casing"}, + "west": {"uv": [0, 0, 2, 1], "texture": "#side"}, + "up": {"uv": [0, 0, 16, 2], "texture": "#casing"} + } + }, + { + "from": [0, 15, 14], + "to": [16, 16, 16], + "faces": { + "north": {"uv": [0, 0, 16, 1], "texture": "#casing"}, + "east": {"uv": [0, 0, 2, 1], "texture": "#side"}, + "south": {"uv": [0, 0, 16, 1], "texture": "#side"}, + "west": {"uv": [14, 0, 16, 1], "texture": "#side"}, + "up": {"uv": [0, 14, 16, 16], "texture": "#casing"} + } + }, + { + "from": [0, 15, 2], + "to": [2, 16, 14], + "faces": { + "east": {"uv": [2, 0, 14, 1], "texture": "#casing"}, + "west": {"uv": [2, 0, 14, 1], "texture": "#side"}, + "up": {"uv": [0, 2, 2, 14], "texture": "#casing"} + } + }, + { + "from": [14, 15, 2], + "to": [16, 16, 14], + "faces": { + "east": {"uv": [2, 0, 14, 1], "texture": "#side"}, + "west": {"uv": [2, 0, 14, 1], "texture": "#casing"}, + "up": {"uv": [14, 2, 16, 14], "texture": "#casing"} + } + } + ] +} \ No newline at end of file diff --git a/src/main/resources/assets/create/models/block/encased_cogwheel/block_top_bottom.json b/src/main/resources/assets/create/models/block/encased_cogwheel/block_top_bottom.json new file mode 100644 index 000000000..af8d29d80 --- /dev/null +++ b/src/main/resources/assets/create/models/block/encased_cogwheel/block_top_bottom.json @@ -0,0 +1,136 @@ +{ + "credit": "Made with Blockbench", + "textures": { + "1": "block/stripped_spruce_log_top", + "4": "create:block/gearbox", + "particle": "create:block/andesite_casing", + "casing": "create:block/andesite_casing", + "side": "create:block/andesite_encased_cogwheel_side" + }, + "elements": [ + { + "from": [0, 1, 0], + "to": [16, 6, 16], + "faces": { + "north": {"uv": [0, 10, 16, 15], "texture": "#side"}, + "east": {"uv": [0, 10, 16, 15], "texture": "#side"}, + "south": {"uv": [0, 10, 16, 15], "texture": "#side"}, + "west": {"uv": [0, 10, 16, 15], "texture": "#side"}, + "up": {"uv": [0, 0, 16, 16], "texture": "#1"}, + "down": {"uv": [0, 0, 16, 16], "texture": "#4"} + } + }, + { + "from": [0, 6, 0], + "to": [16, 10, 16], + "faces": { + "north": {"uv": [0, 6, 16, 10], "texture": "#side", "cullface": "north"}, + "east": {"uv": [0, 6, 16, 10], "texture": "#side", "cullface": "east"}, + "south": {"uv": [0, 6, 16, 10], "texture": "#side", "cullface": "south"}, + "west": {"uv": [0, 6, 16, 10], "texture": "#side", "cullface": "west"} + } + }, + { + "from": [15.95, 6, 0.05], + "to": [0.05, 10, 15.95], + "faces": { + "north": {"uv": [0, 6, 16, 10], "texture": "#side", "cullface": "north"}, + "east": {"uv": [0, 6, 16, 10], "texture": "#side", "cullface": "west"}, + "south": {"uv": [0, 6, 16, 10], "texture": "#side", "cullface": "south"}, + "west": {"uv": [0, 6, 16, 10], "texture": "#side", "cullface": "east"} + } + }, + { + "from": [0, 10, 0], + "to": [16, 15, 16], + "faces": { + "north": {"uv": [0, 1, 16, 6], "texture": "#side"}, + "east": {"uv": [0, 1, 16, 6], "texture": "#side"}, + "south": {"uv": [0, 1, 16, 6], "texture": "#side"}, + "west": {"uv": [0, 1, 16, 6], "texture": "#side"}, + "up": {"uv": [0, 0, 16, 16], "texture": "#4"}, + "down": {"uv": [0, 0, 16, 16], "texture": "#1"} + } + }, + { + "from": [0, 15, 0], + "to": [16, 16, 2], + "faces": { + "north": {"uv": [0, 0, 16, 1], "texture": "#side"}, + "east": {"uv": [14, 0, 16, 1], "texture": "#side"}, + "south": {"uv": [0, 0, 16, 1], "texture": "#casing"}, + "west": {"uv": [0, 0, 2, 1], "texture": "#side"}, + "up": {"uv": [0, 0, 16, 2], "texture": "#casing"} + } + }, + { + "from": [0, 15, 14], + "to": [16, 16, 16], + "faces": { + "north": {"uv": [0, 0, 16, 1], "texture": "#casing"}, + "east": {"uv": [0, 0, 2, 1], "texture": "#side"}, + "south": {"uv": [0, 0, 16, 1], "texture": "#side"}, + "west": {"uv": [14, 0, 16, 1], "texture": "#side"}, + "up": {"uv": [0, 14, 16, 16], "texture": "#casing"} + } + }, + { + "from": [0, 15, 2], + "to": [2, 16, 14], + "faces": { + "east": {"uv": [2, 0, 14, 1], "texture": "#casing"}, + "west": {"uv": [2, 0, 14, 1], "texture": "#side"}, + "up": {"uv": [0, 2, 2, 14], "texture": "#casing"} + } + }, + { + "from": [14, 15, 2], + "to": [16, 16, 14], + "faces": { + "east": {"uv": [2, 0, 14, 1], "texture": "#side"}, + "west": {"uv": [2, 0, 14, 1], "texture": "#casing"}, + "up": {"uv": [14, 2, 16, 14], "texture": "#casing"} + } + }, + { + "from": [0, 0, 0], + "to": [16, 1, 2], + "faces": { + "north": {"uv": [0, 15, 16, 16], "texture": "#side"}, + "east": {"uv": [14, 15, 16, 16], "texture": "#side"}, + "south": {"uv": [0, 0, 16, 1], "texture": "#casing"}, + "west": {"uv": [0, 15, 2, 16], "texture": "#side"}, + "down": {"uv": [0, 14, 16, 16], "texture": "#casing"} + } + }, + { + "from": [14, 0, 2], + "to": [16, 1, 14], + "faces": { + "east": {"uv": [2, 15, 14, 16], "texture": "#side"}, + "west": {"uv": [2, 0, 14, 1], "texture": "#casing"}, + "down": {"uv": [14, 2, 16, 14], "texture": "#casing"} + } + }, + { + "from": [0, 0, 14], + "to": [16, 1, 16], + "faces": { + "north": {"uv": [0, 0, 16, 1], "texture": "#casing"}, + "east": {"uv": [0, 15, 2, 16], "texture": "#side"}, + "south": {"uv": [0, 15, 16, 16], "texture": "#side"}, + "west": {"uv": [14, 15, 16, 16], "texture": "#side"}, + "down": {"uv": [0, 0, 16, 2], "texture": "#casing"} + } + }, + { + "from": [0, 0, 2], + "to": [2, 1, 14], + "faces": { + "east": {"uv": [2, 0, 14, 1], "texture": "#casing"}, + "west": {"uv": [2, 15, 14, 16], "texture": "#side"}, + "down": {"uv": [0, 2, 2, 14], "texture": "#casing"} + } + } + ] +} \ No newline at end of file diff --git a/src/main/resources/assets/create/models/block/encased_large_cogwheel/block.json b/src/main/resources/assets/create/models/block/encased_large_cogwheel/block.json index 5c817316e..47202d1d9 100644 --- a/src/main/resources/assets/create/models/block/encased_large_cogwheel/block.json +++ b/src/main/resources/assets/create/models/block/encased_large_cogwheel/block.json @@ -1,10 +1,10 @@ { "credit": "Made with Blockbench", "textures": { - "casing": "create:block/andesite_casing", "1": "block/stripped_spruce_log_top", - "side": "create:block/andesite_encased_cogwheel_side_connected", - "particle": "#casing" + "particle": "create:block/andesite_casing", + "casing": "create:block/andesite_casing", + "side": "create:block/andesite_encased_cogwheel_side_connected" }, "elements": [ { diff --git a/src/main/resources/assets/create/models/block/encased_large_cogwheel/block_bottom.json b/src/main/resources/assets/create/models/block/encased_large_cogwheel/block_bottom.json new file mode 100644 index 000000000..b5e0f0eeb --- /dev/null +++ b/src/main/resources/assets/create/models/block/encased_large_cogwheel/block_bottom.json @@ -0,0 +1,84 @@ +{ + "credit": "Made with Blockbench", + "textures": { + "1": "block/stripped_spruce_log_top", + "3": "create:block/gearbox", + "particle": "create:block/andesite_casing", + "casing": "create:block/andesite_casing", + "side": "create:block/andesite_encased_cogwheel_side_connected" + }, + "elements": [ + { + "from": [0, 1, 0], + "to": [16, 6, 16], + "faces": { + "north": {"uv": [8, 13, 16, 15.5], "texture": "#side"}, + "east": {"uv": [8, 13, 16, 15.5], "texture": "#side"}, + "south": {"uv": [8, 13, 16, 15.5], "texture": "#side"}, + "west": {"uv": [8, 13, 16, 15.5], "texture": "#side"}, + "up": {"uv": [0, 0, 16, 16], "texture": "#1"}, + "down": {"uv": [0, 0, 16, 16], "texture": "#3"} + } + }, + { + "from": [0, 10, 0], + "to": [16, 16, 16], + "faces": { + "north": {"uv": [8, 8, 16, 11], "texture": "#side"}, + "east": {"uv": [8, 8, 16, 11], "texture": "#side"}, + "south": {"uv": [8, 8, 16, 11], "texture": "#side"}, + "west": {"uv": [8, 8, 16, 11], "texture": "#side"}, + "up": {"uv": [0, 0, 16, 16], "texture": "#casing"}, + "down": {"uv": [0, 0, 16, 16], "texture": "#1"} + } + }, + { + "from": [0, 0, 0], + "to": [16, 1, 2], + "faces": { + "north": {"uv": [0, 15, 16, 16], "texture": "#casing"}, + "east": {"uv": [14, 15, 16, 16], "texture": "#casing"}, + "south": {"uv": [0, 0, 16, 1], "texture": "#casing"}, + "west": {"uv": [0, 15, 2, 16], "texture": "#casing"}, + "up": {"uv": [0, 0, 0, 0], "texture": "#casing"}, + "down": {"uv": [0, 14, 16, 16], "texture": "#casing"} + } + }, + { + "from": [14, 0, 2], + "to": [16, 1, 14], + "faces": { + "north": {"uv": [0, 0, 0, 0], "texture": "#casing"}, + "east": {"uv": [2, 15, 14, 16], "texture": "#casing"}, + "south": {"uv": [0, 0, 0, 0], "texture": "#casing"}, + "west": {"uv": [2, 0, 14, 1], "texture": "#casing"}, + "up": {"uv": [0, 0, 0, 0], "texture": "#casing"}, + "down": {"uv": [14, 2, 16, 14], "texture": "#casing"} + } + }, + { + "from": [0, 0, 2], + "to": [2, 1, 14], + "faces": { + "north": {"uv": [0, 0, 0, 0], "texture": "#casing"}, + "east": {"uv": [2, 0, 14, 1], "texture": "#casing"}, + "south": {"uv": [0, 0, 0, 0], "texture": "#casing"}, + "west": {"uv": [2, 15, 14, 16], "texture": "#casing"}, + "up": {"uv": [0, 0, 0, 0], "texture": "#casing"}, + "down": {"uv": [0, 2, 2, 14], "texture": "#casing"} + } + }, + { + "from": [0, 0, 14], + "to": [16, 1, 16], + "faces": { + "north": {"uv": [0, 0, 16, 1], "texture": "#casing"}, + "east": {"uv": [0, 15, 2, 16], "texture": "#casing"}, + "south": {"uv": [0, 15, 16, 16], "texture": "#casing"}, + "west": {"uv": [14, 15, 16, 16], "texture": "#casing"}, + "up": {"uv": [0, 0, 0, 0], "texture": "#casing"}, + "down": {"uv": [0, 0, 16, 2], "texture": "#casing"} + } + } + ] +} \ No newline at end of file diff --git a/src/main/resources/assets/create/models/block/encased_large_cogwheel/block_top.json b/src/main/resources/assets/create/models/block/encased_large_cogwheel/block_top.json new file mode 100644 index 000000000..a0cee6cf3 --- /dev/null +++ b/src/main/resources/assets/create/models/block/encased_large_cogwheel/block_top.json @@ -0,0 +1,84 @@ +{ + "credit": "Made with Blockbench", + "textures": { + "1": "block/stripped_spruce_log_top", + "3": "create:block/gearbox", + "particle": "create:block/andesite_casing", + "casing": "create:block/andesite_casing", + "side": "create:block/andesite_encased_cogwheel_side_connected" + }, + "elements": [ + { + "from": [0, 0, 0], + "to": [16, 6, 16], + "faces": { + "north": {"uv": [8, 13, 16, 16], "texture": "#side"}, + "east": {"uv": [8, 13, 16, 16], "texture": "#side"}, + "south": {"uv": [8, 13, 16, 16], "texture": "#side"}, + "west": {"uv": [8, 13, 16, 16], "texture": "#side"}, + "up": {"uv": [0, 0, 16, 16], "texture": "#1"}, + "down": {"uv": [0, 0, 16, 16], "texture": "#casing"} + } + }, + { + "from": [0, 10, 0], + "to": [16, 15, 16], + "faces": { + "north": {"uv": [8, 8.5, 16, 11], "texture": "#side"}, + "east": {"uv": [8, 8.5, 16, 11], "texture": "#side"}, + "south": {"uv": [8, 8.5, 16, 11], "texture": "#side"}, + "west": {"uv": [8, 8.5, 16, 11], "texture": "#side"}, + "up": {"uv": [0, 0, 16, 16], "texture": "#3"}, + "down": {"uv": [0, 0, 16, 16], "texture": "#1"} + } + }, + { + "from": [14, 15, 2], + "to": [16, 16, 14], + "faces": { + "north": {"uv": [0, 0, 0, 0], "texture": "#casing"}, + "east": {"uv": [2, 0, 14, 1], "texture": "#casing"}, + "south": {"uv": [0, 0, 0, 0], "texture": "#casing"}, + "west": {"uv": [2, 0, 14, 1], "texture": "#casing"}, + "up": {"uv": [14, 2, 16, 14], "texture": "#casing"}, + "down": {"uv": [0, 0, 0, 0], "texture": "#casing"} + } + }, + { + "from": [0, 15, 0], + "to": [16, 16, 2], + "faces": { + "north": {"uv": [0, 0, 16, 1], "texture": "#casing"}, + "east": {"uv": [14, 0, 16, 1], "texture": "#casing"}, + "south": {"uv": [0, 0, 16, 1], "texture": "#casing"}, + "west": {"uv": [0, 0, 2, 1], "texture": "#casing"}, + "up": {"uv": [0, 0, 16, 2], "texture": "#casing"}, + "down": {"uv": [0, 0, 0, 0], "texture": "#casing"} + } + }, + { + "from": [0, 15, 2], + "to": [2, 16, 14], + "faces": { + "north": {"uv": [0, 0, 0, 0], "texture": "#casing"}, + "east": {"uv": [2, 0, 14, 1], "texture": "#casing"}, + "south": {"uv": [0, 0, 0, 0], "texture": "#casing"}, + "west": {"uv": [2, 0, 14, 1], "texture": "#casing"}, + "up": {"uv": [0, 2, 2, 14], "texture": "#casing"}, + "down": {"uv": [0, 0, 0, 0], "texture": "#casing"} + } + }, + { + "from": [0, 15, 14], + "to": [16, 16, 16], + "faces": { + "north": {"uv": [0, 0, 16, 1], "texture": "#casing"}, + "east": {"uv": [0, 0, 2, 1], "texture": "#casing"}, + "south": {"uv": [0, 0, 16, 1], "texture": "#casing"}, + "west": {"uv": [14, 0, 16, 1], "texture": "#casing"}, + "up": {"uv": [0, 14, 16, 16], "texture": "#casing"}, + "down": {"uv": [0, 0, 0, 0], "texture": "#casing"} + } + } + ] +} \ No newline at end of file diff --git a/src/main/resources/assets/create/models/block/encased_large_cogwheel/block_top_bottom.json b/src/main/resources/assets/create/models/block/encased_large_cogwheel/block_top_bottom.json new file mode 100644 index 000000000..59bab6609 --- /dev/null +++ b/src/main/resources/assets/create/models/block/encased_large_cogwheel/block_top_bottom.json @@ -0,0 +1,124 @@ +{ + "credit": "Made with Blockbench", + "textures": { + "1": "block/stripped_spruce_log_top", + "3": "create:block/gearbox", + "particle": "create:block/andesite_casing", + "casing": "create:block/andesite_casing", + "side": "create:block/andesite_encased_cogwheel_side_connected" + }, + "elements": [ + { + "from": [0, 1, 0], + "to": [16, 6, 16], + "faces": { + "north": {"uv": [8, 13, 16, 15.5], "texture": "#side"}, + "east": {"uv": [8, 13, 16, 15.5], "texture": "#side"}, + "south": {"uv": [8, 13, 16, 15.5], "texture": "#side"}, + "west": {"uv": [8, 13, 16, 15.5], "texture": "#side"}, + "up": {"uv": [0, 0, 16, 16], "texture": "#1"}, + "down": {"uv": [0, 0, 16, 16], "texture": "#3"} + } + }, + { + "from": [0, 10, 0], + "to": [16, 15, 16], + "faces": { + "north": {"uv": [8, 8.5, 16, 11], "texture": "#side"}, + "east": {"uv": [8, 8.5, 16, 11], "texture": "#side"}, + "south": {"uv": [8, 8.5, 16, 11], "texture": "#side"}, + "west": {"uv": [8, 8.5, 16, 11], "texture": "#side"}, + "up": {"uv": [0, 0, 16, 16], "texture": "#3"}, + "down": {"uv": [0, 0, 16, 16], "texture": "#1"} + } + }, + { + "from": [14, 15, 2], + "to": [16, 16, 14], + "faces": { + "north": {"uv": [0, 0, 0, 0], "texture": "#casing"}, + "east": {"uv": [2, 0, 14, 1], "texture": "#casing"}, + "south": {"uv": [0, 0, 0, 0], "texture": "#casing"}, + "west": {"uv": [2, 0, 14, 1], "texture": "#casing"}, + "up": {"uv": [14, 2, 16, 14], "texture": "#casing"}, + "down": {"uv": [0, 0, 0, 0], "texture": "#casing"} + } + }, + { + "from": [0, 15, 0], + "to": [16, 16, 2], + "faces": { + "north": {"uv": [0, 0, 16, 1], "texture": "#casing"}, + "east": {"uv": [14, 0, 16, 1], "texture": "#casing"}, + "south": {"uv": [0, 0, 16, 1], "texture": "#casing"}, + "west": {"uv": [0, 0, 2, 1], "texture": "#casing"}, + "up": {"uv": [0, 0, 16, 2], "texture": "#casing"}, + "down": {"uv": [0, 0, 0, 0], "texture": "#casing"} + } + }, + { + "from": [0, 15, 2], + "to": [2, 16, 14], + "faces": { + "north": {"uv": [0, 0, 0, 0], "texture": "#casing"}, + "east": {"uv": [2, 0, 14, 1], "texture": "#casing"}, + "south": {"uv": [0, 0, 0, 0], "texture": "#casing"}, + "west": {"uv": [2, 0, 14, 1], "texture": "#casing"}, + "up": {"uv": [0, 2, 2, 14], "texture": "#casing"}, + "down": {"uv": [0, 0, 0, 0], "texture": "#casing"} + } + }, + { + "from": [0, 15, 14], + "to": [16, 16, 16], + "faces": { + "north": {"uv": [0, 0, 16, 1], "texture": "#casing"}, + "east": {"uv": [0, 0, 2, 1], "texture": "#casing"}, + "south": {"uv": [0, 0, 16, 1], "texture": "#casing"}, + "west": {"uv": [14, 0, 16, 1], "texture": "#casing"}, + "up": {"uv": [0, 14, 16, 16], "texture": "#casing"}, + "down": {"uv": [0, 0, 0, 0], "texture": "#casing"} + } + }, + { + "from": [0, 0, 0], + "to": [16, 1, 2], + "faces": { + "north": {"uv": [0, 15, 16, 16], "texture": "#casing"}, + "east": {"uv": [14, 15, 16, 16], "texture": "#casing"}, + "south": {"uv": [0, 0, 16, 1], "texture": "#casing"}, + "west": {"uv": [0, 15, 2, 16], "texture": "#casing"}, + "down": {"uv": [0, 14, 16, 16], "texture": "#casing"} + } + }, + { + "from": [14, 0, 2], + "to": [16, 1, 14], + "faces": { + "east": {"uv": [2, 15, 14, 16], "texture": "#casing"}, + "west": {"uv": [2, 0, 14, 1], "texture": "#casing"}, + "down": {"uv": [14, 2, 16, 14], "texture": "#casing"} + } + }, + { + "from": [0, 0, 2], + "to": [2, 1, 14], + "faces": { + "east": {"uv": [2, 0, 14, 1], "texture": "#casing"}, + "west": {"uv": [2, 15, 14, 16], "texture": "#casing"}, + "down": {"uv": [0, 2, 2, 14], "texture": "#casing"} + } + }, + { + "from": [0, 0, 14], + "to": [16, 1, 16], + "faces": { + "north": {"uv": [0, 0, 16, 1], "texture": "#casing"}, + "east": {"uv": [0, 15, 2, 16], "texture": "#casing"}, + "south": {"uv": [0, 15, 16, 16], "texture": "#casing"}, + "west": {"uv": [14, 15, 16, 16], "texture": "#casing"}, + "down": {"uv": [0, 0, 16, 2], "texture": "#casing"} + } + } + ] +} \ No newline at end of file diff --git a/src/main/resources/assets/create/textures/block/andesite_encased_cogwheel_side_connected.png b/src/main/resources/assets/create/textures/block/andesite_encased_cogwheel_side_connected.png index 98963db60fbdb8fa3f5a230f1f06eb8d394055e4..85be20ea8611caf3314c7f2ddb658d5a3ec3c4bf 100644 GIT binary patch delta 697 zcmV;q0!ICX2ZINYg@0c|BUU^hTR|jRKqE&p9929YT0bIePAzLqEM-Y3T|y*gN-1kj zENf0JUPB~oPc2(=5~CeJKZkZf^*L313Zd5E@Y?kw>>m%pXc)f;PX>cnqClOVjYfaTcsx$Vi7%K=wazj>Hn8QH(vuQ5c4FuqZC1lu8LeN@2xn zaP)w#8+9qz*yIkB|BoNKEkAToaQrEZ;(OA+Pt*0A99l#=`gXC;bf!# zs>-XX+WBF_(c*gfrTl93r$|Yiqrh$H@(;B9u#c7>_R;dgKH!IM-#61?w(>^_Km4q7 z3^~ZE{NdNUcqmr4(<%9(&QUPLI?Uspd88fT(0XdJL zN1z+q{{P>ZWTk86>WUKJaoOaboYL*y+U0Mf2r!{$hc@U1@#ANc zf7HX%N*~K#Zc+VllYi2~N*})~Y7#1sf6~L)7;|roeuyQKB7FW)4;5`3J-oQ6mL7;K hPajyL&3`lI{4aZWiS_5U22cP1002ovPDHLkV1nhYBX0lz diff --git a/src/main/resources/assets/create/textures/block/brass_encased_cogwheel_side_connected.png b/src/main/resources/assets/create/textures/block/brass_encased_cogwheel_side_connected.png index f7a0bc4516233afa9e8de675facb79565cd635e9..5308195d96d3c0e435e8b15cbd9f3085f0974ae4 100644 GIT binary patch delta 297 zcmV+^0oMNH1JwhNwST|>01m(bYSxJf0002~Nklkr0)BhOEuLMn(L$5y3|ez04S!&@=48-9gIoO3z~>3# zkB5}=y&2E2qfdSn{qo{l`56AHWqN*@-knvOQ00000NkvXXu0mjf5j&NF delta 312 zcmV-80muH;1LOmcwSU0?01m+cxRGn^0003ENklYoPEbM!G$0=>ne_ngb%>F(ZfiJw6kTYvD@eFB&kRb^_gv;!eKZEk?e@F>_uJUJ4e*F)?*Qf%ewD84IDRAEC zfBV4mANPUxgDB?t&-+jl=K0V2V306{cjXsvp#DSE!Y@8klhe3YW$vNHm!gDu+^eX> z2MM*Gg}?6y|1rY_f8P&ExZ+o@CI0ZM=MruDI{&^8tO7UtaGt*?m@ssMstaKN0000< KMNUMnLSTY*TcMW# diff --git a/src/main/resources/assets/create/textures/block/crafter_side_connected.png b/src/main/resources/assets/create/textures/block/crafter_side_connected.png index 9e3c6e7091e7ae666490209495898f3e4a42735f..9933d7e04230455c17038a1c757373eaf4c2ba58 100644 GIT binary patch delta 309 zcmV-50m}aL1K|UZwSU3@01mHhy) zcLuiER9bcw#xJpG%N^Z{-&6s@wrxP|ewla^38D{zLL+kb&r%27(K$5CsET#IL- zcz(2YT_;vMBcpdrEUi7C7YddR=zGH$z>#_!&Mie)&$o;L^-2v>i)4D&YiH7{(_7Pf z!_MgXEq?Rx{4Xte=vlD5=3!*P@RA2Dz5C%c54~Dm@-RYRd9nLd_XFPUSN&taBPjV$20W00000NkvXX Hu0mjf1*wwG delta 328 zcmV-O0k{6)1M~xswSU6^01m?e$8V@)0003UNkl;I$gy@iSYUmcDUsqMt8d z0m`PVH@=955Mo5(7NfFs9)igFeZwlXX?PasAn;n7hJOfrN`G5Q`@U`ap1khq&QlWc z$5+nhd0^$kEBYHhPEpJG{XS8!DB%B%pBVy-SXtf z6`%1W810_naY2Sh!H@?uSe-*4e)NCL11H$%|Com&82umfU=+|R8rHVXk&h`4SoIb! a9`pxoD=94nj;sFw0000