diff --git a/src/generated/resources/.cache/cache b/src/generated/resources/.cache/cache index 2ea3c0370..d8a091480 100644 --- a/src/generated/resources/.cache/cache +++ b/src/generated/resources/.cache/cache @@ -15,6 +15,7 @@ a579c40c43dc2174afb66f42d00d0c4a0efaaeee assets/create/blockstates/andesite_bric 97adf53a7cb99d7652fb39adc957e9e34cbaca47 assets/create/blockstates/andesite_cobblestone_slab.json 96b5284693da168ab8e0809d86515b5f1a7e763f assets/create/blockstates/andesite_cobblestone_stairs.json 82bd82270aff7d51e9239680ef4dd7b5c899ceb0 assets/create/blockstates/andesite_cobblestone_wall.json +9639b901ffdd2ecccab5575c5c9e6c7b5c901e02 assets/create/blockstates/andesite_encased_shaft.json 11908c2f8603e61bec88010bc6d0890e6339c6b1 assets/create/blockstates/andesite_funnel.json 398922758a6219544e5b85c91c9cf8a543b437e5 assets/create/blockstates/andesite_pillar.json 1d2d8081581e07d9be4b382aede4f2de4401cc6b assets/create/blockstates/andesite_tunnel.json @@ -32,6 +33,7 @@ ec2ab87734acc209e6be3bc4898b1199f819bfd3 assets/create/blockstates/blue_sail.jso ee1299a15fca849eb42bf81507f85a54c167bbfe assets/create/blockstates/brass_belt_funnel.json 8b1dd00adcc7e74c5a9feed069e2610b15a338cb assets/create/blockstates/brass_block.json b8dd6e505943e06706d0718ece620ab3cf943650 assets/create/blockstates/brass_casing.json +288bad07593a8a2c8efaf44bba0ffb0011d36cd3 assets/create/blockstates/brass_encased_shaft.json 3057e1121117c0cd651c288cd8e2d46bdf64afb1 assets/create/blockstates/brass_funnel.json 672eedcd3520c6d39603449165a23be9c612c620 assets/create/blockstates/brass_tunnel.json 11ebdd9bd0815833e62ec1bea03a4cdd86ce00f3 assets/create/blockstates/brown_sail.json @@ -101,7 +103,6 @@ f179202e59e449157f89efc37229b03bbfd391d7 assets/create/blockstates/dolomite_pill 7b1c40891b07c8f3238537625d9e25c8627e7333 assets/create/blockstates/encased_belt.json 7b2b836649e729feafa60972bf95e3afb2143131 assets/create/blockstates/encased_fan.json 656813b75dd3b901bf34f24df785e4b0fbe11aa6 assets/create/blockstates/encased_fluid_pipe.json -e157d7f67b08493b71d7ffea8d622f4a64dbc155 assets/create/blockstates/encased_shaft.json a774e815376a67e2a2de44e39af0a1a0b4406932 assets/create/blockstates/fancy_andesite_bricks.json 180be26a75834cf9cdb881f969f77906e91cc36a assets/create/blockstates/fancy_andesite_bricks_slab.json d5d7762b80952052d0a7adf3081967cac3f3ba6c assets/create/blockstates/fancy_andesite_bricks_stairs.json @@ -155,7 +156,7 @@ afff479c0e5284771afa9e7ce513595fe65860ee assets/create/blockstates/gabbro_cobble a1f31a194129cfb65e335b3b96490f9275f9c564 assets/create/blockstates/gabbro_cobblestone_stairs.json a64d8d0924c0b5b192f355343dd9b3a440875f6a assets/create/blockstates/gabbro_cobblestone_wall.json a6b44e8a1c4ce0c7442b2384b41ad36dd133f19b assets/create/blockstates/gabbro_pillar.json -9c48e311be8b959bfb98e16ffaa358210ac8b9dd assets/create/blockstates/gearbox.json +eca1f0e56efdadb241f42dc6ebb036f1d52213a9 assets/create/blockstates/gearbox.json f34814b17cde3231a1dfb271f3dabf8d6de4fbf6 assets/create/blockstates/gearshift.json 93f8bdc22d9a5e04268964e35e4285c8cbf2b89d assets/create/blockstates/glass_fluid_pipe.json 87661d61e1645ef5ad4ea34f1c0fa31f139ea431 assets/create/blockstates/granite_bricks.json @@ -394,17 +395,17 @@ a3a11524cd3515fc01d905767b4b7ea782adaf03 assets/create/blockstates/yellow_seat.j 6801fa1f466f172700e573e5b8ee8ee5f9ca4583 assets/create/blockstates/yellow_valve_handle.json 7f39521b211441f5c3e06d60c5978cebe16cacfb assets/create/blockstates/zinc_block.json b7181bcd8182b2f17088e5aa881f374c9c65470c assets/create/blockstates/zinc_ore.json -458ea82f1528fc105ae5511619a8673dbd71101f assets/create/lang/en_ud.json -a9b08f790ce95310966b32fd2fda7ff345c1aa06 assets/create/lang/en_us.json -df56d014cd57fc3671b045b4c38c56344645b67e assets/create/lang/unfinished/de_de.json -62827b2303501f5ff8a2a6b32bb8626de3ab5c43 assets/create/lang/unfinished/fr_fr.json -3d4486c4c55e61714f1a9f244a911d9b7726288a assets/create/lang/unfinished/it_it.json -08b938808c76b1069b46cf071001c9f8190dfb0d assets/create/lang/unfinished/ja_jp.json -5e4673880e92012fc27d680a9c15d62ea08961d1 assets/create/lang/unfinished/ko_kr.json -5b43ca6db5772d53618d3ea38f1b97f14c3b2b6d assets/create/lang/unfinished/nl_nl.json -2355818f7e6b9176ced2fcbf741cab339c0376b7 assets/create/lang/unfinished/pt_br.json -50f6b4f0166f8cf379c27c108b6ca6d0103c4847 assets/create/lang/unfinished/ru_ru.json -ccd2ea1e73d535feb22597ea739d1caceff60944 assets/create/lang/unfinished/zh_cn.json +d85a97025cad5fad4410a1bc46b59b3b72096524 assets/create/lang/en_ud.json +57c7008d6c3d1deda3eaf5703acecbd8464beb8f assets/create/lang/en_us.json +f1cd3a70b1567ad73681ad42ca0d754882845b4a assets/create/lang/unfinished/de_de.json +4358a9a4ae0cd69944590eb1b636c318e07679d8 assets/create/lang/unfinished/fr_fr.json +3f2ed1c2d1ae12ffe890be971ef498211d404426 assets/create/lang/unfinished/it_it.json +921f766a873e1c215a5874164bcbb580c6e63020 assets/create/lang/unfinished/ja_jp.json +ea1d59990f4ce87ca33ae14000869762bb517fcb assets/create/lang/unfinished/ko_kr.json +5d87a8b82204010fbd9ed765b566026be0a02ae6 assets/create/lang/unfinished/nl_nl.json +25157ef8e492c71b2d0d840048b660d92d1a3644 assets/create/lang/unfinished/pt_br.json +47a8850c0e417a32c1c47d273f0aac11808f7ddf assets/create/lang/unfinished/ru_ru.json +e2b80140f0ffd04335d7551c0feff9aa3c9913b9 assets/create/lang/unfinished/zh_cn.json 846200eb548d3bfa2e77b41039de159b4b6cfb45 assets/create/models/block/acacia_window.json 1930fa3a3c98d53dd19e4ee7f55bc27fd47aa281 assets/create/models/block/acacia_window_pane_noside.json 1763ea2c9b981d187f5031ba608f3d5d3be3986a assets/create/models/block/acacia_window_pane_noside_alt.json @@ -1121,6 +1122,7 @@ d283f86cd05ed378efd82ce46cf49bc83783069b assets/create/models/item/andesite_bric 1ceb0e49f2c46f1d5414d5fd6edfc2bdd3afa6f7 assets/create/models/item/andesite_cobblestone_slab.json b0f664dd6de3d0ee9afcb6223fbcd53b97fa0d65 assets/create/models/item/andesite_cobblestone_stairs.json 4856d13a72ec0af9f10226b4a4bf0567eb580b9a assets/create/models/item/andesite_cobblestone_wall.json +bc6e7469744604e578200ea87690e4dd3b25e447 assets/create/models/item/andesite_encased_shaft.json 7490819e7e5445019b6b8cb2538f12a5b6717a46 assets/create/models/item/andesite_funnel.json 75b8b00c2418b9660d35a7fabd0774925cf1c02f assets/create/models/item/andesite_pillar.json c0e35daccfb398947532e9499d6bda963387cd9c assets/create/models/item/andesite_tunnel.json @@ -1136,6 +1138,7 @@ c20627feba667b063893b128ee195c1abdb0f88d assets/create/models/item/blaze_cake.js bec96ebf3369d3cffa9bb1b8bf9f2a5cd5d0ef96 assets/create/models/item/blue_valve_handle.json 17d340c3678bd24cb085ba49490b2b4cb341a9e7 assets/create/models/item/brass_block.json f5a18f4279c2e845a5967b1c2f9e807c2bb77afb assets/create/models/item/brass_casing.json +c723011e09203821b6b59cff9de22454c5e4395a assets/create/models/item/brass_encased_shaft.json 099961ca4a75b6ecfddd1db6dd29909276759f3b assets/create/models/item/brass_funnel.json 361f75a79de5007d7a99ad0a38103c9aa8c3017c assets/create/models/item/brass_hand.json 1786bdffa2ab5a07c88d2797db3d7b54461323c4 assets/create/models/item/brass_ingot.json @@ -2165,6 +2168,7 @@ cb36b039a511aca643fe674a63de8d6ad8478256 data/create/loot_tables/blocks/andesite a438bc69030589264e1d736bbd08662bdd123be3 data/create/loot_tables/blocks/andesite_cobblestone_slab.json 6b5393dab7d443da6d54debccbc8b060c6c9bdc7 data/create/loot_tables/blocks/andesite_cobblestone_stairs.json 36d38c085d8e522fe15f0ef9bc64363e163f3de7 data/create/loot_tables/blocks/andesite_cobblestone_wall.json +b127cb6920e6d7d9c8b2402cb186402a9a8dd3fc data/create/loot_tables/blocks/andesite_encased_shaft.json d3202a337c15c8b8ec41fa5879bb94327bb75057 data/create/loot_tables/blocks/andesite_funnel.json 6908f62c809ea2105bc92765d84d5655197346ab data/create/loot_tables/blocks/andesite_pillar.json 317aa99086127c649981b7b2fc85e66774a30f58 data/create/loot_tables/blocks/andesite_tunnel.json @@ -2182,6 +2186,7 @@ fcddccd1bf45c2f4ad5f1520e209a4f04487274a data/create/loot_tables/blocks/blue_val 1dbc446abe190b2832b2ce7d52c2f2d2bdd45949 data/create/loot_tables/blocks/brass_belt_funnel.json 70d9d4def43d5b31fa7cdc5ca5002c71cf4a90b0 data/create/loot_tables/blocks/brass_block.json 8a14258ad5d79d9e4dc5a318905644b446196420 data/create/loot_tables/blocks/brass_casing.json +b127cb6920e6d7d9c8b2402cb186402a9a8dd3fc data/create/loot_tables/blocks/brass_encased_shaft.json 1dbc446abe190b2832b2ce7d52c2f2d2bdd45949 data/create/loot_tables/blocks/brass_funnel.json 6c8e784677d1a843b6c707484c79751acdb46ebc data/create/loot_tables/blocks/brass_tunnel.json 28ae0ee8a0b1fb6becae6264de687fe17940708e data/create/loot_tables/blocks/brown_sail.json @@ -2251,7 +2256,6 @@ d5fc5b3dc612cd748117e9d8b0ecda76e73f4514 data/create/loot_tables/blocks/dolomite 503a93787537b46f462d32b0382c3396f42bb1f6 data/create/loot_tables/blocks/encased_belt.json 9055d82b983b673e1638d17b712b9fcd1f5a52e6 data/create/loot_tables/blocks/encased_fan.json c8aa9bbed8fd703eb1853de0b7c9e04dffb7a511 data/create/loot_tables/blocks/encased_fluid_pipe.json -b127cb6920e6d7d9c8b2402cb186402a9a8dd3fc data/create/loot_tables/blocks/encased_shaft.json ddfc4764a6039d771e03af815ac4493da80d2e6b data/create/loot_tables/blocks/fancy_andesite_bricks.json 6de29951b4129dfd5c7fd6960e7dd8b8d371b451 data/create/loot_tables/blocks/fancy_andesite_bricks_slab.json 413c8bb80954679796cd9d18f808c28a7bdbe681 data/create/loot_tables/blocks/fancy_andesite_bricks_stairs.json diff --git a/src/generated/resources/assets/create/blockstates/andesite_encased_shaft.json b/src/generated/resources/assets/create/blockstates/andesite_encased_shaft.json new file mode 100644 index 000000000..c78b4a1c4 --- /dev/null +++ b/src/generated/resources/assets/create/blockstates/andesite_encased_shaft.json @@ -0,0 +1,20 @@ +{ + "variants": { + "axis=x": { + "model": "create:block/encased_shaft/block_andesite", + "x": 90, + "y": 90, + "uvlock": true + }, + "axis=y": { + "model": "create:block/encased_shaft/block_andesite", + "uvlock": true + }, + "axis=z": { + "model": "create:block/encased_shaft/block_andesite", + "x": 90, + "y": 180, + "uvlock": true + } + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/create/blockstates/brass_encased_shaft.json b/src/generated/resources/assets/create/blockstates/brass_encased_shaft.json new file mode 100644 index 000000000..af3983628 --- /dev/null +++ b/src/generated/resources/assets/create/blockstates/brass_encased_shaft.json @@ -0,0 +1,20 @@ +{ + "variants": { + "axis=x": { + "model": "create:block/encased_shaft/block_brass", + "x": 90, + "y": 90, + "uvlock": true + }, + "axis=y": { + "model": "create:block/encased_shaft/block_brass", + "uvlock": true + }, + "axis=z": { + "model": "create:block/encased_shaft/block_brass", + "x": 90, + "y": 180, + "uvlock": true + } + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/create/blockstates/encased_shaft.json b/src/generated/resources/assets/create/blockstates/encased_shaft.json deleted file mode 100644 index b630e5edf..000000000 --- a/src/generated/resources/assets/create/blockstates/encased_shaft.json +++ /dev/null @@ -1,30 +0,0 @@ -{ - "variants": { - "axis=x,casing=andesite": { - "model": "create:block/encased_shaft/andesite", - "x": 90, - "y": 90 - }, - "axis=y,casing=andesite": { - "model": "create:block/encased_shaft/andesite" - }, - "axis=z,casing=andesite": { - "model": "create:block/encased_shaft/andesite", - "x": 90, - "y": 180 - }, - "axis=x,casing=brass": { - "model": "create:block/encased_shaft/brass", - "x": 90, - "y": 90 - }, - "axis=y,casing=brass": { - "model": "create:block/encased_shaft/brass" - }, - "axis=z,casing=brass": { - "model": "create:block/encased_shaft/brass", - "x": 90, - "y": 180 - } - } -} \ No newline at end of file diff --git a/src/generated/resources/assets/create/blockstates/gearbox.json b/src/generated/resources/assets/create/blockstates/gearbox.json index 74cffdb7d..2c7b4ca20 100644 --- a/src/generated/resources/assets/create/blockstates/gearbox.json +++ b/src/generated/resources/assets/create/blockstates/gearbox.json @@ -3,15 +3,18 @@ "axis=x": { "model": "create:block/gearbox/block", "x": 90, - "y": 90 + "y": 90, + "uvlock": true }, "axis=y": { - "model": "create:block/gearbox/block" + "model": "create:block/gearbox/block", + "uvlock": true }, "axis=z": { "model": "create:block/gearbox/block", "x": 90, - "y": 180 + "y": 180, + "uvlock": true } } } \ No newline at end of file diff --git a/src/generated/resources/assets/create/lang/en_ud.json b/src/generated/resources/assets/create/lang/en_ud.json index d85a1a98e..bdf06c6c1 100644 --- a/src/generated/resources/assets/create/lang/en_ud.json +++ b/src/generated/resources/assets/create/lang/en_ud.json @@ -16,6 +16,7 @@ "block.create.andesite_cobblestone_slab": "q\u0250\u05DFS \u01DDuo\u0287s\u01DD\u05DFqqo\u0186 \u01DD\u0287\u0131s\u01DDpu\u2C6F", "block.create.andesite_cobblestone_stairs": "s\u0279\u0131\u0250\u0287S \u01DDuo\u0287s\u01DD\u05DFqqo\u0186 \u01DD\u0287\u0131s\u01DDpu\u2C6F", "block.create.andesite_cobblestone_wall": "\u05DF\u05DF\u0250M \u01DDuo\u0287s\u01DD\u05DFqqo\u0186 \u01DD\u0287\u0131s\u01DDpu\u2C6F", + "block.create.andesite_encased_shaft": "\u0287\u025F\u0250\u0265S p\u01DDs\u0250\u0254u\u018E \u01DD\u0287\u0131s\u01DDpu\u2C6F", "block.create.andesite_funnel": "\u05DF\u01DDuun\u2132 \u01DD\u0287\u0131s\u01DDpu\u2C6F", "block.create.andesite_pillar": "\u0279\u0250\u05DF\u05DF\u0131\u0500 \u01DD\u0287\u0131s\u01DDpu\u2C6F", "block.create.andesite_tunnel": "\u05DF\u01DDuun\u27D8 \u01DD\u0287\u0131s\u01DDpu\u2C6F", @@ -33,6 +34,7 @@ "block.create.brass_belt_funnel": "\u05DF\u01DDuun\u2132 \u0287\u05DF\u01DD\u15FA ss\u0250\u0279\u15FA", "block.create.brass_block": "\u029E\u0254o\u05DF\u15FA ss\u0250\u0279\u15FA", "block.create.brass_casing": "bu\u0131s\u0250\u0186 ss\u0250\u0279\u15FA", + "block.create.brass_encased_shaft": "\u0287\u025F\u0250\u0265S p\u01DDs\u0250\u0254u\u018E ss\u0250\u0279\u15FA", "block.create.brass_funnel": "\u05DF\u01DDuun\u2132 ss\u0250\u0279\u15FA", "block.create.brass_tunnel": "\u05DF\u01DDuun\u27D8 ss\u0250\u0279\u15FA", "block.create.brown_sail": "\u05DF\u0131\u0250S u\u028Do\u0279\u15FA", @@ -102,7 +104,6 @@ "block.create.encased_belt": "\u0287\u05DF\u01DD\u15FA p\u01DDs\u0250\u0254u\u018E", "block.create.encased_fan": "u\u0250\u2132 p\u01DDs\u0250\u0254u\u018E", "block.create.encased_fluid_pipe": "\u01DDd\u0131\u0500 p\u0131n\u05DF\u2132 p\u01DDs\u0250\u0254u\u018E", - "block.create.encased_shaft": "\u0287\u025F\u0250\u0265S p\u01DDs\u0250\u0254u\u018E", "block.create.fancy_andesite_bricks": "s\u029E\u0254\u0131\u0279\u15FA \u01DD\u0287\u0131s\u01DDpu\u2C6F \u028E\u0254u\u0250\u2132", "block.create.fancy_andesite_bricks_slab": "q\u0250\u05DFS s\u029E\u0254\u0131\u0279\u15FA \u01DD\u0287\u0131s\u01DDpu\u2C6F \u028E\u0254u\u0250\u2132", "block.create.fancy_andesite_bricks_stairs": "s\u0279\u0131\u0250\u0287S s\u029E\u0254\u0131\u0279\u15FA \u01DD\u0287\u0131s\u01DDpu\u2C6F \u028E\u0254u\u0250\u2132", diff --git a/src/generated/resources/assets/create/lang/en_us.json b/src/generated/resources/assets/create/lang/en_us.json index a9adc88ed..6d798ec12 100644 --- a/src/generated/resources/assets/create/lang/en_us.json +++ b/src/generated/resources/assets/create/lang/en_us.json @@ -19,6 +19,7 @@ "block.create.andesite_cobblestone_slab": "Andesite Cobblestone Slab", "block.create.andesite_cobblestone_stairs": "Andesite Cobblestone Stairs", "block.create.andesite_cobblestone_wall": "Andesite Cobblestone Wall", + "block.create.andesite_encased_shaft": "Andesite Encased Shaft", "block.create.andesite_funnel": "Andesite Funnel", "block.create.andesite_pillar": "Andesite Pillar", "block.create.andesite_tunnel": "Andesite Tunnel", @@ -36,6 +37,7 @@ "block.create.brass_belt_funnel": "Brass Belt Funnel", "block.create.brass_block": "Brass Block", "block.create.brass_casing": "Brass Casing", + "block.create.brass_encased_shaft": "Brass Encased Shaft", "block.create.brass_funnel": "Brass Funnel", "block.create.brass_tunnel": "Brass Tunnel", "block.create.brown_sail": "Brown Sail", @@ -105,7 +107,6 @@ "block.create.encased_belt": "Encased Belt", "block.create.encased_fan": "Encased Fan", "block.create.encased_fluid_pipe": "Encased Fluid Pipe", - "block.create.encased_shaft": "Encased Shaft", "block.create.fancy_andesite_bricks": "Fancy Andesite Bricks", "block.create.fancy_andesite_bricks_slab": "Fancy Andesite Bricks Slab", "block.create.fancy_andesite_bricks_stairs": "Fancy Andesite Bricks Stairs", diff --git a/src/generated/resources/assets/create/lang/unfinished/de_de.json b/src/generated/resources/assets/create/lang/unfinished/de_de.json index 48759c510..a1454ec4e 100644 --- a/src/generated/resources/assets/create/lang/unfinished/de_de.json +++ b/src/generated/resources/assets/create/lang/unfinished/de_de.json @@ -1,5 +1,5 @@ { - "_": "Missing Localizations: 1052", + "_": "Missing Localizations: 1054", "_": "->------------------------] Game Elements [------------------------<-", @@ -20,6 +20,7 @@ "block.create.andesite_cobblestone_slab": "UNLOCALIZED: Andesite Cobblestone Slab", "block.create.andesite_cobblestone_stairs": "UNLOCALIZED: Andesite Cobblestone Stairs", "block.create.andesite_cobblestone_wall": "UNLOCALIZED: Andesite Cobblestone Wall", + "block.create.andesite_encased_shaft": "UNLOCALIZED: Andesite Encased Shaft", "block.create.andesite_funnel": "UNLOCALIZED: Andesite Funnel", "block.create.andesite_pillar": "UNLOCALIZED: Andesite Pillar", "block.create.andesite_tunnel": "UNLOCALIZED: Andesite Tunnel", @@ -37,6 +38,7 @@ "block.create.brass_belt_funnel": "UNLOCALIZED: Brass Belt Funnel", "block.create.brass_block": "UNLOCALIZED: Brass Block", "block.create.brass_casing": "UNLOCALIZED: Brass Casing", + "block.create.brass_encased_shaft": "UNLOCALIZED: Brass Encased Shaft", "block.create.brass_funnel": "UNLOCALIZED: Brass Funnel", "block.create.brass_tunnel": "UNLOCALIZED: Brass Tunnel", "block.create.brown_sail": "UNLOCALIZED: Brown Sail", @@ -106,7 +108,6 @@ "block.create.encased_belt": "Eingeschlossener Riemen", "block.create.encased_fan": "Eingeschlossener Propeller", "block.create.encased_fluid_pipe": "UNLOCALIZED: Encased Fluid Pipe", - "block.create.encased_shaft": "Eingeschlossene Welle", "block.create.fancy_andesite_bricks": "UNLOCALIZED: Fancy Andesite Bricks", "block.create.fancy_andesite_bricks_slab": "UNLOCALIZED: Fancy Andesite Bricks Slab", "block.create.fancy_andesite_bricks_stairs": "UNLOCALIZED: Fancy Andesite Bricks Stairs", diff --git a/src/generated/resources/assets/create/lang/unfinished/fr_fr.json b/src/generated/resources/assets/create/lang/unfinished/fr_fr.json index b38db1fe2..c3c05ab81 100644 --- a/src/generated/resources/assets/create/lang/unfinished/fr_fr.json +++ b/src/generated/resources/assets/create/lang/unfinished/fr_fr.json @@ -1,5 +1,5 @@ { - "_": "Missing Localizations: 682", + "_": "Missing Localizations: 684", "_": "->------------------------] Game Elements [------------------------<-", @@ -20,6 +20,7 @@ "block.create.andesite_cobblestone_slab": "UNLOCALIZED: Andesite Cobblestone Slab", "block.create.andesite_cobblestone_stairs": "UNLOCALIZED: Andesite Cobblestone Stairs", "block.create.andesite_cobblestone_wall": "UNLOCALIZED: Andesite Cobblestone Wall", + "block.create.andesite_encased_shaft": "UNLOCALIZED: Andesite Encased Shaft", "block.create.andesite_funnel": "UNLOCALIZED: Andesite Funnel", "block.create.andesite_pillar": "UNLOCALIZED: Andesite Pillar", "block.create.andesite_tunnel": "UNLOCALIZED: Andesite Tunnel", @@ -37,6 +38,7 @@ "block.create.brass_belt_funnel": "UNLOCALIZED: Brass Belt Funnel", "block.create.brass_block": "UNLOCALIZED: Brass Block", "block.create.brass_casing": "Boîtier en laiton", + "block.create.brass_encased_shaft": "UNLOCALIZED: Brass Encased Shaft", "block.create.brass_funnel": "UNLOCALIZED: Brass Funnel", "block.create.brass_tunnel": "UNLOCALIZED: Brass Tunnel", "block.create.brown_sail": "UNLOCALIZED: Brown Sail", @@ -106,7 +108,6 @@ "block.create.encased_belt": "Tapis roulant enfermé", "block.create.encased_fan": "Ventilateur enfermé", "block.create.encased_fluid_pipe": "UNLOCALIZED: Encased Fluid Pipe", - "block.create.encased_shaft": "Arbre mécanique enfermé", "block.create.fancy_andesite_bricks": "UNLOCALIZED: Fancy Andesite Bricks", "block.create.fancy_andesite_bricks_slab": "UNLOCALIZED: Fancy Andesite Bricks Slab", "block.create.fancy_andesite_bricks_stairs": "UNLOCALIZED: Fancy Andesite Bricks Stairs", diff --git a/src/generated/resources/assets/create/lang/unfinished/it_it.json b/src/generated/resources/assets/create/lang/unfinished/it_it.json index 46ea7fe96..2437edf40 100644 --- a/src/generated/resources/assets/create/lang/unfinished/it_it.json +++ b/src/generated/resources/assets/create/lang/unfinished/it_it.json @@ -1,5 +1,5 @@ { - "_": "Missing Localizations: 666", + "_": "Missing Localizations: 668", "_": "->------------------------] Game Elements [------------------------<-", @@ -20,6 +20,7 @@ "block.create.andesite_cobblestone_slab": "UNLOCALIZED: Andesite Cobblestone Slab", "block.create.andesite_cobblestone_stairs": "UNLOCALIZED: Andesite Cobblestone Stairs", "block.create.andesite_cobblestone_wall": "UNLOCALIZED: Andesite Cobblestone Wall", + "block.create.andesite_encased_shaft": "UNLOCALIZED: Andesite Encased Shaft", "block.create.andesite_funnel": "UNLOCALIZED: Andesite Funnel", "block.create.andesite_pillar": "UNLOCALIZED: Andesite Pillar", "block.create.andesite_tunnel": "UNLOCALIZED: Andesite Tunnel", @@ -37,6 +38,7 @@ "block.create.brass_belt_funnel": "UNLOCALIZED: Brass Belt Funnel", "block.create.brass_block": "Blocco di Ottone", "block.create.brass_casing": "Involucro di Ottone", + "block.create.brass_encased_shaft": "UNLOCALIZED: Brass Encased Shaft", "block.create.brass_funnel": "UNLOCALIZED: Brass Funnel", "block.create.brass_tunnel": "UNLOCALIZED: Brass Tunnel", "block.create.brown_sail": "UNLOCALIZED: Brown Sail", @@ -106,7 +108,6 @@ "block.create.encased_belt": "Nastro Incassato", "block.create.encased_fan": "Ventilatore incassato", "block.create.encased_fluid_pipe": "UNLOCALIZED: Encased Fluid Pipe", - "block.create.encased_shaft": "Albero Incassato", "block.create.fancy_andesite_bricks": "UNLOCALIZED: Fancy Andesite Bricks", "block.create.fancy_andesite_bricks_slab": "UNLOCALIZED: Fancy Andesite Bricks Slab", "block.create.fancy_andesite_bricks_stairs": "UNLOCALIZED: Fancy Andesite Bricks Stairs", diff --git a/src/generated/resources/assets/create/lang/unfinished/ja_jp.json b/src/generated/resources/assets/create/lang/unfinished/ja_jp.json index 0011bb4bb..dfde660e0 100644 --- a/src/generated/resources/assets/create/lang/unfinished/ja_jp.json +++ b/src/generated/resources/assets/create/lang/unfinished/ja_jp.json @@ -1,5 +1,5 @@ { - "_": "Missing Localizations: 665", + "_": "Missing Localizations: 667", "_": "->------------------------] Game Elements [------------------------<-", @@ -20,6 +20,7 @@ "block.create.andesite_cobblestone_slab": "UNLOCALIZED: Andesite Cobblestone Slab", "block.create.andesite_cobblestone_stairs": "UNLOCALIZED: Andesite Cobblestone Stairs", "block.create.andesite_cobblestone_wall": "UNLOCALIZED: Andesite Cobblestone Wall", + "block.create.andesite_encased_shaft": "UNLOCALIZED: Andesite Encased Shaft", "block.create.andesite_funnel": "UNLOCALIZED: Andesite Funnel", "block.create.andesite_pillar": "UNLOCALIZED: Andesite Pillar", "block.create.andesite_tunnel": "UNLOCALIZED: Andesite Tunnel", @@ -37,6 +38,7 @@ "block.create.brass_belt_funnel": "UNLOCALIZED: Brass Belt Funnel", "block.create.brass_block": "真鍮ブロック", "block.create.brass_casing": "真鍮ケーシング", + "block.create.brass_encased_shaft": "UNLOCALIZED: Brass Encased Shaft", "block.create.brass_funnel": "UNLOCALIZED: Brass Funnel", "block.create.brass_tunnel": "UNLOCALIZED: Brass Tunnel", "block.create.brown_sail": "UNLOCALIZED: Brown Sail", @@ -106,7 +108,6 @@ "block.create.encased_belt": "ケース入りベルト", "block.create.encased_fan": "ケース入りファン", "block.create.encased_fluid_pipe": "UNLOCALIZED: Encased Fluid Pipe", - "block.create.encased_shaft": "ケース入りシャフト", "block.create.fancy_andesite_bricks": "UNLOCALIZED: Fancy Andesite Bricks", "block.create.fancy_andesite_bricks_slab": "UNLOCALIZED: Fancy Andesite Bricks Slab", "block.create.fancy_andesite_bricks_stairs": "UNLOCALIZED: Fancy Andesite Bricks Stairs", diff --git a/src/generated/resources/assets/create/lang/unfinished/ko_kr.json b/src/generated/resources/assets/create/lang/unfinished/ko_kr.json index a882d876e..934b7d683 100644 --- a/src/generated/resources/assets/create/lang/unfinished/ko_kr.json +++ b/src/generated/resources/assets/create/lang/unfinished/ko_kr.json @@ -1,5 +1,5 @@ { - "_": "Missing Localizations: 666", + "_": "Missing Localizations: 668", "_": "->------------------------] Game Elements [------------------------<-", @@ -20,6 +20,7 @@ "block.create.andesite_cobblestone_slab": "UNLOCALIZED: Andesite Cobblestone Slab", "block.create.andesite_cobblestone_stairs": "UNLOCALIZED: Andesite Cobblestone Stairs", "block.create.andesite_cobblestone_wall": "UNLOCALIZED: Andesite Cobblestone Wall", + "block.create.andesite_encased_shaft": "UNLOCALIZED: Andesite Encased Shaft", "block.create.andesite_funnel": "UNLOCALIZED: Andesite Funnel", "block.create.andesite_pillar": "UNLOCALIZED: Andesite Pillar", "block.create.andesite_tunnel": "UNLOCALIZED: Andesite Tunnel", @@ -37,6 +38,7 @@ "block.create.brass_belt_funnel": "UNLOCALIZED: Brass Belt Funnel", "block.create.brass_block": "황동 블럭", "block.create.brass_casing": "황동 케이스", + "block.create.brass_encased_shaft": "UNLOCALIZED: Brass Encased Shaft", "block.create.brass_funnel": "UNLOCALIZED: Brass Funnel", "block.create.brass_tunnel": "UNLOCALIZED: Brass Tunnel", "block.create.brown_sail": "UNLOCALIZED: Brown Sail", @@ -106,7 +108,6 @@ "block.create.encased_belt": "덮힌 벨트", "block.create.encased_fan": "덮힌 환풍기", "block.create.encased_fluid_pipe": "UNLOCALIZED: Encased Fluid Pipe", - "block.create.encased_shaft": "덮힌 축", "block.create.fancy_andesite_bricks": "UNLOCALIZED: Fancy Andesite Bricks", "block.create.fancy_andesite_bricks_slab": "UNLOCALIZED: Fancy Andesite Bricks Slab", "block.create.fancy_andesite_bricks_stairs": "UNLOCALIZED: Fancy Andesite Bricks Stairs", diff --git a/src/generated/resources/assets/create/lang/unfinished/nl_nl.json b/src/generated/resources/assets/create/lang/unfinished/nl_nl.json index ecccd1423..3ad604b98 100644 --- a/src/generated/resources/assets/create/lang/unfinished/nl_nl.json +++ b/src/generated/resources/assets/create/lang/unfinished/nl_nl.json @@ -1,5 +1,5 @@ { - "_": "Missing Localizations: 993", + "_": "Missing Localizations: 995", "_": "->------------------------] Game Elements [------------------------<-", @@ -20,6 +20,7 @@ "block.create.andesite_cobblestone_slab": "UNLOCALIZED: Andesite Cobblestone Slab", "block.create.andesite_cobblestone_stairs": "UNLOCALIZED: Andesite Cobblestone Stairs", "block.create.andesite_cobblestone_wall": "UNLOCALIZED: Andesite Cobblestone Wall", + "block.create.andesite_encased_shaft": "UNLOCALIZED: Andesite Encased Shaft", "block.create.andesite_funnel": "UNLOCALIZED: Andesite Funnel", "block.create.andesite_pillar": "UNLOCALIZED: Andesite Pillar", "block.create.andesite_tunnel": "UNLOCALIZED: Andesite Tunnel", @@ -37,6 +38,7 @@ "block.create.brass_belt_funnel": "UNLOCALIZED: Brass Belt Funnel", "block.create.brass_block": "UNLOCALIZED: Brass Block", "block.create.brass_casing": "UNLOCALIZED: Brass Casing", + "block.create.brass_encased_shaft": "UNLOCALIZED: Brass Encased Shaft", "block.create.brass_funnel": "UNLOCALIZED: Brass Funnel", "block.create.brass_tunnel": "UNLOCALIZED: Brass Tunnel", "block.create.brown_sail": "UNLOCALIZED: Brown Sail", @@ -106,7 +108,6 @@ "block.create.encased_belt": "Omhulsde Transportband", "block.create.encased_fan": "Omhulsde Ventilator", "block.create.encased_fluid_pipe": "UNLOCALIZED: Encased Fluid Pipe", - "block.create.encased_shaft": "Omhulsde Drijfas", "block.create.fancy_andesite_bricks": "UNLOCALIZED: Fancy Andesite Bricks", "block.create.fancy_andesite_bricks_slab": "UNLOCALIZED: Fancy Andesite Bricks Slab", "block.create.fancy_andesite_bricks_stairs": "UNLOCALIZED: Fancy Andesite Bricks Stairs", diff --git a/src/generated/resources/assets/create/lang/unfinished/pt_br.json b/src/generated/resources/assets/create/lang/unfinished/pt_br.json index edc6ba37a..cd4138904 100644 --- a/src/generated/resources/assets/create/lang/unfinished/pt_br.json +++ b/src/generated/resources/assets/create/lang/unfinished/pt_br.json @@ -1,5 +1,5 @@ { - "_": "Missing Localizations: 1059", + "_": "Missing Localizations: 1061", "_": "->------------------------] Game Elements [------------------------<-", @@ -20,6 +20,7 @@ "block.create.andesite_cobblestone_slab": "UNLOCALIZED: Andesite Cobblestone Slab", "block.create.andesite_cobblestone_stairs": "UNLOCALIZED: Andesite Cobblestone Stairs", "block.create.andesite_cobblestone_wall": "UNLOCALIZED: Andesite Cobblestone Wall", + "block.create.andesite_encased_shaft": "UNLOCALIZED: Andesite Encased Shaft", "block.create.andesite_funnel": "UNLOCALIZED: Andesite Funnel", "block.create.andesite_pillar": "UNLOCALIZED: Andesite Pillar", "block.create.andesite_tunnel": "UNLOCALIZED: Andesite Tunnel", @@ -37,6 +38,7 @@ "block.create.brass_belt_funnel": "UNLOCALIZED: Brass Belt Funnel", "block.create.brass_block": "UNLOCALIZED: Brass Block", "block.create.brass_casing": "UNLOCALIZED: Brass Casing", + "block.create.brass_encased_shaft": "UNLOCALIZED: Brass Encased Shaft", "block.create.brass_funnel": "UNLOCALIZED: Brass Funnel", "block.create.brass_tunnel": "UNLOCALIZED: Brass Tunnel", "block.create.brown_sail": "UNLOCALIZED: Brown Sail", @@ -106,7 +108,6 @@ "block.create.encased_belt": "Esteira Revestida", "block.create.encased_fan": "Ventilador Revestida", "block.create.encased_fluid_pipe": "UNLOCALIZED: Encased Fluid Pipe", - "block.create.encased_shaft": "Eixo Revestido", "block.create.fancy_andesite_bricks": "UNLOCALIZED: Fancy Andesite Bricks", "block.create.fancy_andesite_bricks_slab": "UNLOCALIZED: Fancy Andesite Bricks Slab", "block.create.fancy_andesite_bricks_stairs": "UNLOCALIZED: Fancy Andesite Bricks Stairs", diff --git a/src/generated/resources/assets/create/lang/unfinished/ru_ru.json b/src/generated/resources/assets/create/lang/unfinished/ru_ru.json index c67cf04a9..d09abba3f 100644 --- a/src/generated/resources/assets/create/lang/unfinished/ru_ru.json +++ b/src/generated/resources/assets/create/lang/unfinished/ru_ru.json @@ -1,5 +1,5 @@ { - "_": "Missing Localizations: 335", + "_": "Missing Localizations: 337", "_": "->------------------------] Game Elements [------------------------<-", @@ -20,6 +20,7 @@ "block.create.andesite_cobblestone_slab": "Андезит-булыжниковая плита", "block.create.andesite_cobblestone_stairs": "Андезит-булыжниковые ступени", "block.create.andesite_cobblestone_wall": "Андезит-булыжниковая стена", + "block.create.andesite_encased_shaft": "UNLOCALIZED: Andesite Encased Shaft", "block.create.andesite_funnel": "UNLOCALIZED: Andesite Funnel", "block.create.andesite_pillar": "Андезитовая колонна", "block.create.andesite_tunnel": "UNLOCALIZED: Andesite Tunnel", @@ -37,6 +38,7 @@ "block.create.brass_belt_funnel": "UNLOCALIZED: Brass Belt Funnel", "block.create.brass_block": "Латунный блок", "block.create.brass_casing": "Латунный корпус", + "block.create.brass_encased_shaft": "UNLOCALIZED: Brass Encased Shaft", "block.create.brass_funnel": "UNLOCALIZED: Brass Funnel", "block.create.brass_tunnel": "UNLOCALIZED: Brass Tunnel", "block.create.brown_sail": "UNLOCALIZED: Brown Sail", @@ -106,7 +108,6 @@ "block.create.encased_belt": "Конвейерный привод", "block.create.encased_fan": "Вентилятор в кожухе", "block.create.encased_fluid_pipe": "UNLOCALIZED: Encased Fluid Pipe", - "block.create.encased_shaft": "Вал в кожухе", "block.create.fancy_andesite_bricks": "Красивый андезитовый кирпич", "block.create.fancy_andesite_bricks_slab": "Плита из красивого андезитового кирпича", "block.create.fancy_andesite_bricks_stairs": "Ступени из красивого андезитового кирпича", diff --git a/src/generated/resources/assets/create/lang/unfinished/zh_cn.json b/src/generated/resources/assets/create/lang/unfinished/zh_cn.json index 31c513c21..76c347876 100644 --- a/src/generated/resources/assets/create/lang/unfinished/zh_cn.json +++ b/src/generated/resources/assets/create/lang/unfinished/zh_cn.json @@ -1,5 +1,5 @@ { - "_": "Missing Localizations: 348", + "_": "Missing Localizations: 350", "_": "->------------------------] Game Elements [------------------------<-", @@ -20,6 +20,7 @@ "block.create.andesite_cobblestone_slab": "安山岩圆石台阶", "block.create.andesite_cobblestone_stairs": "安山岩圆石楼梯", "block.create.andesite_cobblestone_wall": "安山岩圆石墙", + "block.create.andesite_encased_shaft": "UNLOCALIZED: Andesite Encased Shaft", "block.create.andesite_funnel": "UNLOCALIZED: Andesite Funnel", "block.create.andesite_pillar": "竖纹安山岩", "block.create.andesite_tunnel": "UNLOCALIZED: Andesite Tunnel", @@ -37,6 +38,7 @@ "block.create.brass_belt_funnel": "UNLOCALIZED: Brass Belt Funnel", "block.create.brass_block": "黄铜块", "block.create.brass_casing": "黄铜机壳", + "block.create.brass_encased_shaft": "UNLOCALIZED: Brass Encased Shaft", "block.create.brass_funnel": "UNLOCALIZED: Brass Funnel", "block.create.brass_tunnel": "UNLOCALIZED: Brass Tunnel", "block.create.brown_sail": "UNLOCALIZED: Brown Sail", @@ -106,7 +108,6 @@ "block.create.encased_belt": "连携齿轮箱", "block.create.encased_fan": "鼓风机", "block.create.encased_fluid_pipe": "UNLOCALIZED: Encased Fluid Pipe", - "block.create.encased_shaft": "齿轮箱", "block.create.fancy_andesite_bricks": "方纹安山岩砖", "block.create.fancy_andesite_bricks_slab": "方纹安山岩砖台阶", "block.create.fancy_andesite_bricks_stairs": "方纹安山岩砖楼梯", diff --git a/src/generated/resources/assets/create/models/item/andesite_encased_shaft.json b/src/generated/resources/assets/create/models/item/andesite_encased_shaft.json new file mode 100644 index 000000000..6edf0c3e5 --- /dev/null +++ b/src/generated/resources/assets/create/models/item/andesite_encased_shaft.json @@ -0,0 +1,3 @@ +{ + "parent": "create:block/encased_shaft/item_andesite" +} \ No newline at end of file diff --git a/src/generated/resources/assets/create/models/item/brass_encased_shaft.json b/src/generated/resources/assets/create/models/item/brass_encased_shaft.json new file mode 100644 index 000000000..aa516d10d --- /dev/null +++ b/src/generated/resources/assets/create/models/item/brass_encased_shaft.json @@ -0,0 +1,3 @@ +{ + "parent": "create:block/encased_shaft/item_brass" +} \ No newline at end of file diff --git a/src/generated/resources/data/create/loot_tables/blocks/encased_shaft.json b/src/generated/resources/data/create/loot_tables/blocks/andesite_encased_shaft.json similarity index 100% rename from src/generated/resources/data/create/loot_tables/blocks/encased_shaft.json rename to src/generated/resources/data/create/loot_tables/blocks/andesite_encased_shaft.json diff --git a/src/generated/resources/data/create/loot_tables/blocks/brass_encased_shaft.json b/src/generated/resources/data/create/loot_tables/blocks/brass_encased_shaft.json new file mode 100644 index 000000000..84f976dfb --- /dev/null +++ b/src/generated/resources/data/create/loot_tables/blocks/brass_encased_shaft.json @@ -0,0 +1,19 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "create:shaft" + } + ], + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ] + } + ] +} \ No newline at end of file diff --git a/src/main/java/com/simibubi/create/AllBlocks.java b/src/main/java/com/simibubi/create/AllBlocks.java index 39f44f9c8..7d35cd70b 100644 --- a/src/main/java/com/simibubi/create/AllBlocks.java +++ b/src/main/java/com/simibubi/create/AllBlocks.java @@ -105,6 +105,7 @@ import com.simibubi.create.content.contraptions.relays.encased.AdjustablePulleyB import com.simibubi.create.content.contraptions.relays.encased.ClutchBlock; import com.simibubi.create.content.contraptions.relays.encased.EncasedBeltBlock; import com.simibubi.create.content.contraptions.relays.encased.EncasedBeltGenerator; +import com.simibubi.create.content.contraptions.relays.encased.EncasedCTBehaviour; import com.simibubi.create.content.contraptions.relays.encased.EncasedShaftBlock; import com.simibubi.create.content.contraptions.relays.encased.GearshiftBlock; import com.simibubi.create.content.contraptions.relays.gauge.GaugeBlock; @@ -238,22 +239,24 @@ public class AllBlocks { .build() .register(); - public static final BlockEntry ENCASED_SHAFT = - REGISTRATE.block("encased_shaft", EncasedShaftBlock::new) - .initialProperties(SharedProperties::stone) - .properties(Block.Properties::nonOpaque) - .transform(StressConfigDefaults.setNoImpact()) - .blockstate((c, p) -> axisBlock(c, p, blockState -> p.models() - .getExistingFile(p.modLoc("block/encased_shaft/" + blockState.get(EncasedShaftBlock.CASING) - .getName())))) - .loot((p, b) -> p.registerDropping(b, SHAFT.get())) + public static final BlockEntry ANDESITE_ENCASED_SHAFT = + REGISTRATE.block("andesite_encased_shaft", EncasedShaftBlock::andesite) + .transform(BuilderTransformers.encasedShaft("andesite", AllSpriteShifts.ANDESITE_CASING)) + .register(); + + public static final BlockEntry BRASS_ENCASED_SHAFT = + REGISTRATE.block("brass_encased_shaft", EncasedShaftBlock::brass) + .transform(BuilderTransformers.encasedShaft("brass", AllSpriteShifts.BRASS_CASING)) .register(); public static final BlockEntry GEARBOX = REGISTRATE.block("gearbox", GearboxBlock::new) .initialProperties(SharedProperties::stone) .properties(Block.Properties::nonOpaque) .transform(StressConfigDefaults.setNoImpact()) - .blockstate(BlockStateGen.axisBlockProvider(true)) + .onRegister(CreateRegistrate.connectedTextures(new EncasedCTBehaviour(AllSpriteShifts.ANDESITE_CASING))) + .onRegister(CreateRegistrate.casingConnectivity((block, cc) -> cc.make(block, AllSpriteShifts.ANDESITE_CASING, + (s, f) -> f.getAxis() == s.get(GearboxBlock.AXIS)))) + .blockstate((c, p) -> axisBlock(c, p, $ -> AssetLookup.partialBaseModel(c, p), true)) .item() .transform(customItemModel()) .register(); diff --git a/src/main/java/com/simibubi/create/AllTileEntities.java b/src/main/java/com/simibubi/create/AllTileEntities.java index aba35da40..3a92ad6fb 100644 --- a/src/main/java/com/simibubi/create/AllTileEntities.java +++ b/src/main/java/com/simibubi/create/AllTileEntities.java @@ -131,7 +131,7 @@ public class AllTileEntities { // Kinetics public static final TileEntityEntry SIMPLE_KINETIC = Create.registrate() .tileEntity("simple_kinetic", SimpleKineticTileEntity::new) - .validBlocks(AllBlocks.SHAFT, AllBlocks.COGWHEEL, AllBlocks.LARGE_COGWHEEL, AllBlocks.ENCASED_SHAFT) + .validBlocks(AllBlocks.SHAFT, AllBlocks.COGWHEEL, AllBlocks.LARGE_COGWHEEL) .renderer(() -> KineticTileEntityRenderer::new) .register(); @@ -149,7 +149,7 @@ public class AllTileEntities { public static final TileEntityEntry ENCASED_SHAFT = Create.registrate() .tileEntity("encased_shaft", EncasedShaftTileEntity::new) - .validBlocks(AllBlocks.ENCASED_SHAFT, AllBlocks.ENCASED_BELT) + .validBlocks(AllBlocks.ANDESITE_ENCASED_SHAFT, AllBlocks.BRASS_ENCASED_SHAFT, AllBlocks.ENCASED_BELT) .renderer(() -> EncasedShaftRenderer::new) .register(); diff --git a/src/main/java/com/simibubi/create/CreateClient.java b/src/main/java/com/simibubi/create/CreateClient.java index 0892ba960..b347bce5f 100644 --- a/src/main/java/com/simibubi/create/CreateClient.java +++ b/src/main/java/com/simibubi/create/CreateClient.java @@ -7,6 +7,7 @@ import java.util.function.Function; import com.simibubi.create.content.contraptions.base.KineticTileEntityRenderer; import com.simibubi.create.content.contraptions.components.structureMovement.ContraptionRenderer; +import com.simibubi.create.content.contraptions.relays.encased.CasingConnectivity; import com.simibubi.create.content.schematics.ClientSchematicLoader; import com.simibubi.create.content.schematics.client.SchematicAndQuillHandler; import com.simibubi.create.content.schematics.client.SchematicHandler; @@ -47,6 +48,7 @@ public class CreateClient { private static CustomItemModels customItemModels; private static CustomRenderedItems customRenderedItems; private static AllColorHandlers colorHandlers; + private static CasingConnectivity casingConnectivity; public static void addClientListeners(IEventBus modEventBus) { modEventBus.addListener(CreateClient::clientInit); @@ -162,5 +164,11 @@ public class CreateClient { colorHandlers = new AllColorHandlers(); return colorHandlers; } + + public static CasingConnectivity getCasingConnectivity() { + if (casingConnectivity == null) + casingConnectivity = new CasingConnectivity(); + return casingConnectivity; + } } diff --git a/src/main/java/com/simibubi/create/content/contraptions/fluids/pipes/BracketBlock.java b/src/main/java/com/simibubi/create/content/contraptions/fluids/pipes/BracketBlock.java index 90c72f341..5ced0d5f9 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/fluids/pipes/BracketBlock.java +++ b/src/main/java/com/simibubi/create/content/contraptions/fluids/pipes/BracketBlock.java @@ -6,7 +6,7 @@ import com.simibubi.create.content.contraptions.base.DirectionalAxisKineticBlock import com.simibubi.create.content.contraptions.base.RotatedPillarKineticBlock; import com.simibubi.create.content.contraptions.fluids.FluidPropagator; import com.simibubi.create.content.contraptions.relays.elementary.CogWheelBlock; -import com.simibubi.create.content.contraptions.relays.elementary.ShaftBlock; +import com.simibubi.create.content.contraptions.relays.elementary.AbstractShaftBlock; import com.simibubi.create.foundation.block.ProperDirectionalBlock; import com.simibubi.create.foundation.utility.Lang; @@ -46,7 +46,7 @@ public class BracketBlock extends ProperDirectionalBlock { } public Optional getSuitableBracket(BlockState blockState, Direction direction) { - if (blockState.getBlock() instanceof ShaftBlock) + if (blockState.getBlock() instanceof AbstractShaftBlock) return getSuitableBracket(blockState.get(RotatedPillarKineticBlock.AXIS), direction, blockState.getBlock() instanceof CogWheelBlock ? BracketType.COG : BracketType.SHAFT); return getSuitableBracket(FluidPropagator.getStraightPipeAxis(blockState), direction, BracketType.PIPE); diff --git a/src/main/java/com/simibubi/create/content/contraptions/relays/belt/item/BeltConnectorItem.java b/src/main/java/com/simibubi/create/content/contraptions/relays/belt/item/BeltConnectorItem.java index 9f51af84f..29d5ad0b3 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/relays/belt/item/BeltConnectorItem.java +++ b/src/main/java/com/simibubi/create/content/contraptions/relays/belt/item/BeltConnectorItem.java @@ -11,6 +11,7 @@ import com.simibubi.create.content.contraptions.base.KineticTileEntity; import com.simibubi.create.content.contraptions.relays.belt.BeltBlock; import com.simibubi.create.content.contraptions.relays.belt.BeltPart; import com.simibubi.create.content.contraptions.relays.belt.BeltSlope; +import com.simibubi.create.content.contraptions.relays.elementary.AbstractShaftBlock; import com.simibubi.create.content.contraptions.relays.elementary.ShaftBlock; import com.simibubi.create.foundation.advancement.AllTriggers; import com.simibubi.create.foundation.config.AllConfigs; @@ -135,7 +136,7 @@ public class BeltConnectorItem extends BlockItem { boolean pulley = ShaftBlock.isShaft(shaftState); if (part == BeltPart.MIDDLE && pulley) part = BeltPart.PULLEY; - if (pulley && shaftState.get(ShaftBlock.AXIS) == Axis.Y) + if (pulley && shaftState.get(AbstractShaftBlock.AXIS) == Axis.Y) slope = BeltSlope.SIDEWAYS; world.setBlockState(pos, beltBlock.with(BeltBlock.SLOPE, slope) .with(BeltBlock.PART, part) @@ -237,7 +238,7 @@ public class BeltConnectorItem extends BlockItem { for (BlockPos currentPos = first.add(step); !currentPos.equals(second) && limit-- > 0; currentPos = currentPos.add(step)) { BlockState blockState = world.getBlockState(currentPos); - if (ShaftBlock.isShaft(blockState) && blockState.get(ShaftBlock.AXIS) == shaftAxis) + if (ShaftBlock.isShaft(blockState) && blockState.get(AbstractShaftBlock.AXIS) == shaftAxis) continue; if (!blockState.getMaterial() .isReplaceable()) diff --git a/src/main/java/com/simibubi/create/content/contraptions/relays/elementary/AbstractShaftBlock.java b/src/main/java/com/simibubi/create/content/contraptions/relays/elementary/AbstractShaftBlock.java new file mode 100644 index 000000000..9883870d4 --- /dev/null +++ b/src/main/java/com/simibubi/create/content/contraptions/relays/elementary/AbstractShaftBlock.java @@ -0,0 +1,126 @@ +package com.simibubi.create.content.contraptions.relays.elementary; + +import java.util.Optional; + +import com.simibubi.create.AllBlocks; +import com.simibubi.create.AllShapes; +import com.simibubi.create.AllTileEntities; +import com.simibubi.create.content.contraptions.base.KineticTileEntity; +import com.simibubi.create.content.contraptions.base.RotatedPillarKineticBlock; +import com.simibubi.create.content.contraptions.relays.encased.EncasedShaftBlock; +import com.simibubi.create.content.contraptions.wrench.IWrenchableWithBracket; +import com.simibubi.create.foundation.tileEntity.TileEntityBehaviour; + +import net.minecraft.block.Block; +import net.minecraft.block.BlockState; +import net.minecraft.block.Blocks; +import net.minecraft.block.IWaterLoggable; +import net.minecraft.block.material.PushReaction; +import net.minecraft.entity.player.PlayerEntity; +import net.minecraft.fluid.Fluids; +import net.minecraft.fluid.IFluidState; +import net.minecraft.item.BlockItemUseContext; +import net.minecraft.item.ItemGroup; +import net.minecraft.item.ItemStack; +import net.minecraft.item.ItemUseContext; +import net.minecraft.state.StateContainer.Builder; +import net.minecraft.state.properties.BlockStateProperties; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.ActionResultType; +import net.minecraft.util.Direction; +import net.minecraft.util.Direction.Axis; +import net.minecraft.util.Hand; +import net.minecraft.util.NonNullList; +import net.minecraft.util.math.BlockPos; +import net.minecraft.util.math.BlockRayTraceResult; +import net.minecraft.util.math.shapes.ISelectionContext; +import net.minecraft.util.math.shapes.VoxelShape; +import net.minecraft.world.IBlockReader; +import net.minecraft.world.IWorld; +import net.minecraft.world.IWorldReader; +import net.minecraft.world.World; + +public abstract class AbstractShaftBlock extends RotatedPillarKineticBlock implements IWaterLoggable, IWrenchableWithBracket { + + public AbstractShaftBlock(Properties properties) { + super(properties); + setDefaultState(super.getDefaultState().with(BlockStateProperties.WATERLOGGED, false)); + } + + @Override + public ActionResultType onWrenched(BlockState state, ItemUseContext context) { + return IWrenchableWithBracket.super.onWrenched(state, context); + } + + @Override + public PushReaction getPushReaction(BlockState state) { + return PushReaction.NORMAL; + } + + @Override + public TileEntity createTileEntity(BlockState state, IBlockReader world) { + return AllTileEntities.SIMPLE_KINETIC.create(); + } + + @Override + @SuppressWarnings("deprecation") + public void onReplaced(BlockState state, World world, BlockPos pos, BlockState newState, boolean isMoving) { + if (state != newState && !isMoving) + removeBracket(world, pos).ifPresent(stack -> Block.spawnAsEntity(world, pos, stack)); + super.onReplaced(state, world, pos, newState, isMoving); + } + + // IRotate: + + @Override + public boolean hasShaftTowards(IWorldReader world, BlockPos pos, BlockState state, Direction face) { + return face.getAxis() == state.get(AXIS); + } + + @Override + public Axis getRotationAxis(BlockState state) { + return state.get(AXIS); + } + + @Override + public IFluidState getFluidState(BlockState state) { + return state.get(BlockStateProperties.WATERLOGGED) ? Fluids.WATER.getStillFluidState(false) + : Fluids.EMPTY.getDefaultState(); + } + + @Override + protected void fillStateContainer(Builder builder) { + builder.add(BlockStateProperties.WATERLOGGED); + super.fillStateContainer(builder); + } + + @Override + public BlockState updatePostPlacement(BlockState state, Direction direction, BlockState neighbourState, + IWorld world, BlockPos pos, BlockPos neighbourPos) { + if (state.get(BlockStateProperties.WATERLOGGED)) { + world.getPendingFluidTicks() + .scheduleTick(pos, Fluids.WATER, Fluids.WATER.getTickRate(world)); + } + return state; + } + + @Override + public BlockState getStateForPlacement(BlockItemUseContext context) { + IFluidState ifluidstate = context.getWorld() + .getFluidState(context.getPos()); + return super.getStateForPlacement(context).with(BlockStateProperties.WATERLOGGED, + Boolean.valueOf(ifluidstate.getFluid() == Fluids.WATER)); + } + + @Override + public Optional removeBracket(IBlockReader world, BlockPos pos) { + BracketedTileEntityBehaviour behaviour = TileEntityBehaviour.get(world, pos, BracketedTileEntityBehaviour.TYPE); + if (behaviour == null) + return Optional.empty(); + BlockState bracket = behaviour.getBracket(); + behaviour.removeBracket(); + if (bracket == Blocks.AIR.getDefaultState()) + return Optional.empty(); + return Optional.of(new ItemStack(bracket.getBlock())); + } +} diff --git a/src/main/java/com/simibubi/create/content/contraptions/relays/elementary/BracketedTileEntityBehaviour.java b/src/main/java/com/simibubi/create/content/contraptions/relays/elementary/BracketedTileEntityBehaviour.java index 2348e2921..4ee03298d 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/relays/elementary/BracketedTileEntityBehaviour.java +++ b/src/main/java/com/simibubi/create/content/contraptions/relays/elementary/BracketedTileEntityBehaviour.java @@ -67,7 +67,7 @@ public class BracketedTileEntityBehaviour extends TileEntityBehaviour { public boolean canHaveBracket() { BlockState blockState = tileEntity.getBlockState(); - if (blockState.getBlock() instanceof ShaftBlock) + if (blockState.getBlock() instanceof AbstractShaftBlock) return true; return false; } 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 4dd0b1310..4b9eb3af8 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 @@ -23,7 +23,7 @@ import net.minecraft.world.IBlockReader; import net.minecraft.world.IWorldReader; import net.minecraft.world.World; -public class CogWheelBlock extends ShaftBlock { +public class CogWheelBlock extends AbstractShaftBlock { boolean isLarge; diff --git a/src/main/java/com/simibubi/create/content/contraptions/relays/elementary/ShaftBlock.java b/src/main/java/com/simibubi/create/content/contraptions/relays/elementary/ShaftBlock.java index 9a19a0f95..5fddb77d6 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/relays/elementary/ShaftBlock.java +++ b/src/main/java/com/simibubi/create/content/contraptions/relays/elementary/ShaftBlock.java @@ -1,78 +1,31 @@ package com.simibubi.create.content.contraptions.relays.elementary; -import java.util.Optional; - import com.simibubi.create.AllBlocks; import com.simibubi.create.AllShapes; -import com.simibubi.create.AllTileEntities; import com.simibubi.create.content.contraptions.base.KineticTileEntity; -import com.simibubi.create.content.contraptions.base.RotatedPillarKineticBlock; import com.simibubi.create.content.contraptions.relays.encased.EncasedShaftBlock; -import com.simibubi.create.content.contraptions.wrench.IWrenchableWithBracket; -import com.simibubi.create.foundation.tileEntity.TileEntityBehaviour; -import net.minecraft.block.Block; import net.minecraft.block.BlockState; -import net.minecraft.block.Blocks; -import net.minecraft.block.IWaterLoggable; -import net.minecraft.block.material.PushReaction; import net.minecraft.entity.player.PlayerEntity; -import net.minecraft.fluid.Fluids; -import net.minecraft.fluid.IFluidState; -import net.minecraft.item.BlockItemUseContext; -import net.minecraft.item.ItemGroup; import net.minecraft.item.ItemStack; -import net.minecraft.item.ItemUseContext; -import net.minecraft.state.StateContainer.Builder; -import net.minecraft.state.properties.BlockStateProperties; -import net.minecraft.tileentity.TileEntity; import net.minecraft.util.ActionResultType; -import net.minecraft.util.Direction; -import net.minecraft.util.Direction.Axis; import net.minecraft.util.Hand; -import net.minecraft.util.NonNullList; import net.minecraft.util.math.BlockPos; import net.minecraft.util.math.BlockRayTraceResult; import net.minecraft.util.math.shapes.ISelectionContext; import net.minecraft.util.math.shapes.VoxelShape; import net.minecraft.world.IBlockReader; -import net.minecraft.world.IWorld; -import net.minecraft.world.IWorldReader; import net.minecraft.world.World; -public class ShaftBlock extends RotatedPillarKineticBlock implements IWaterLoggable, IWrenchableWithBracket { +public class ShaftBlock extends AbstractShaftBlock { public ShaftBlock(Properties properties) { super(properties); - setDefaultState(super.getDefaultState().with(BlockStateProperties.WATERLOGGED, false)); } public static boolean isShaft(BlockState state) { return AllBlocks.SHAFT.has(state); } - - @Override - public ActionResultType onWrenched(BlockState state, ItemUseContext context) { - return IWrenchableWithBracket.super.onWrenched(state, context); - } - - @Override - public PushReaction getPushReaction(BlockState state) { - return PushReaction.NORMAL; - } - - @Override - public TileEntity createTileEntity(BlockState state, IBlockReader world) { - return AllTileEntities.SIMPLE_KINETIC.create(); - } - - @Override - @SuppressWarnings("deprecation") - public void onReplaced(BlockState state, World world, BlockPos pos, BlockState newState, boolean isMoving) { - if (state != newState && !isMoving) - removeBracket(world, pos).ifPresent(stack -> Block.spawnAsEntity(world, pos, stack)); - super.onReplaced(state, world, pos, newState, isMoving); - } @Override public VoxelShape getShape(BlockState state, IBlockReader worldIn, BlockPos pos, ISelectionContext context) { @@ -89,11 +42,6 @@ public class ShaftBlock extends RotatedPillarKineticBlock implements IWaterLogga return 0f; } - @Override - public void fillItemGroup(ItemGroup group, NonNullList items) { - super.fillItemGroup(group, items); - } - @Override public ActionResultType onUse(BlockState state, World world, BlockPos pos, PlayerEntity player, Hand hand, BlockRayTraceResult p_225533_6_) { @@ -101,74 +49,21 @@ public class ShaftBlock extends RotatedPillarKineticBlock implements IWaterLogga return ActionResultType.PASS; ItemStack heldItem = player.getHeldItem(hand); + for (EncasedShaftBlock encasedShaft : new EncasedShaftBlock[] { AllBlocks.ANDESITE_ENCASED_SHAFT.get(), + AllBlocks.BRASS_ENCASED_SHAFT.get() }) { - for (EncasedShaftBlock.Casing casing : EncasedShaftBlock.Casing.values()) { - if (casing.getCasingEntry() - .isIn(heldItem)) { - if (world.isRemote) - return ActionResultType.SUCCESS; + if (!encasedShaft.getCasing() + .isIn(heldItem)) + continue; - KineticTileEntity.switchToBlockState(world, pos, AllBlocks.ENCASED_SHAFT.getDefaultState() - .with(EncasedShaftBlock.CASING, casing) - .with(AXIS, state.get(AXIS))); + if (world.isRemote) return ActionResultType.SUCCESS; - } + + KineticTileEntity.switchToBlockState(world, pos, encasedShaft.getDefaultState() + .with(AXIS, state.get(AXIS))); + return ActionResultType.SUCCESS; } return ActionResultType.PASS; } - - // IRotate: - - @Override - public boolean hasShaftTowards(IWorldReader world, BlockPos pos, BlockState state, Direction face) { - return face.getAxis() == state.get(AXIS); - } - - @Override - public Axis getRotationAxis(BlockState state) { - return state.get(AXIS); - } - - @Override - public IFluidState getFluidState(BlockState state) { - return state.get(BlockStateProperties.WATERLOGGED) ? Fluids.WATER.getStillFluidState(false) - : Fluids.EMPTY.getDefaultState(); - } - - @Override - protected void fillStateContainer(Builder builder) { - builder.add(BlockStateProperties.WATERLOGGED); - super.fillStateContainer(builder); - } - - @Override - public BlockState updatePostPlacement(BlockState state, Direction direction, BlockState neighbourState, - IWorld world, BlockPos pos, BlockPos neighbourPos) { - if (state.get(BlockStateProperties.WATERLOGGED)) { - world.getPendingFluidTicks() - .scheduleTick(pos, Fluids.WATER, Fluids.WATER.getTickRate(world)); - } - return state; - } - - @Override - public BlockState getStateForPlacement(BlockItemUseContext context) { - IFluidState ifluidstate = context.getWorld() - .getFluidState(context.getPos()); - return super.getStateForPlacement(context).with(BlockStateProperties.WATERLOGGED, - Boolean.valueOf(ifluidstate.getFluid() == Fluids.WATER)); - } - - @Override - public Optional removeBracket(IBlockReader world, BlockPos pos) { - BracketedTileEntityBehaviour behaviour = TileEntityBehaviour.get(world, pos, BracketedTileEntityBehaviour.TYPE); - if (behaviour == null) - return Optional.empty(); - BlockState bracket = behaviour.getBracket(); - behaviour.removeBracket(); - if (bracket == Blocks.AIR.getDefaultState()) - return Optional.empty(); - return Optional.of(new ItemStack(bracket.getBlock())); - } } diff --git a/src/main/java/com/simibubi/create/content/contraptions/relays/encased/CasingConnectivity.java b/src/main/java/com/simibubi/create/content/contraptions/relays/encased/CasingConnectivity.java new file mode 100644 index 000000000..936b624d4 --- /dev/null +++ b/src/main/java/com/simibubi/create/content/contraptions/relays/encased/CasingConnectivity.java @@ -0,0 +1,62 @@ +package com.simibubi.create.content.contraptions.relays.encased; + +import java.util.IdentityHashMap; +import java.util.Map; +import java.util.function.BiPredicate; + +import com.simibubi.create.foundation.block.connected.CTSpriteShiftEntry; + +import net.minecraft.block.Block; +import net.minecraft.block.BlockState; +import net.minecraft.util.Direction; + +public class CasingConnectivity { + + private Map entries; + + public CasingConnectivity() { + entries = new IdentityHashMap<>(); + } + + public Entry get(BlockState blockState) { + return entries.get(blockState.getBlock()); + } + + public void makeCasing(Block block, CTSpriteShiftEntry casing) { + new Entry(block, casing, (s, f) -> true).register(); + } + + public void make(Block block, CTSpriteShiftEntry casing) { + new Entry(block, casing, (s, f) -> true).register(); + } + + public void make(Block block, CTSpriteShiftEntry casing, BiPredicate predicate) { + new Entry(block, casing, predicate).register(); + } + + public class Entry { + + private Block block; + private CTSpriteShiftEntry casing; + private BiPredicate predicate; + + private Entry(Block block, CTSpriteShiftEntry casing, BiPredicate predicate) { + this.block = block; + this.casing = casing; + this.predicate = predicate; + } + + public CTSpriteShiftEntry getCasing() { + return casing; + } + + public boolean isSideValid(BlockState state, Direction face) { + return predicate.test(state, face); + } + + public void register() { + entries.put(block, this); + } + + } +} diff --git a/src/main/java/com/simibubi/create/content/contraptions/relays/encased/EncasedCTBehaviour.java b/src/main/java/com/simibubi/create/content/contraptions/relays/encased/EncasedCTBehaviour.java new file mode 100644 index 000000000..3b81109cb --- /dev/null +++ b/src/main/java/com/simibubi/create/content/contraptions/relays/encased/EncasedCTBehaviour.java @@ -0,0 +1,42 @@ +package com.simibubi.create.content.contraptions.relays.encased; + +import com.simibubi.create.CreateClient; +import com.simibubi.create.foundation.block.connected.CTSpriteShiftEntry; +import com.simibubi.create.foundation.block.connected.ConnectedTextureBehaviour; + +import net.minecraft.block.BlockState; +import net.minecraft.util.Direction; +import net.minecraft.util.math.BlockPos; +import net.minecraft.world.ILightReader; + +public class EncasedCTBehaviour extends ConnectedTextureBehaviour { + + private CTSpriteShiftEntry shift; + + public EncasedCTBehaviour(CTSpriteShiftEntry shift) { + this.shift = shift; + } + + @Override + public boolean connectsTo(BlockState state, BlockState other, ILightReader reader, BlockPos pos, BlockPos otherPos, + Direction face) { + if (isBeingBlocked(state, reader, pos, otherPos, face)) + return false; + CasingConnectivity cc = CreateClient.getCasingConnectivity(); + CasingConnectivity.Entry entry = cc.get(state); + CasingConnectivity.Entry otherEntry = cc.get(other); + if (entry == null || otherEntry == null) + return false; + if (!entry.isSideValid(state, face) || !otherEntry.isSideValid(other, face)) + return false; + if (entry.getCasing() != otherEntry.getCasing()) + return false; + return true; + } + + @Override + public CTSpriteShiftEntry get(BlockState state, Direction direction) { + return shift; + } + +} diff --git a/src/main/java/com/simibubi/create/content/contraptions/relays/encased/EncasedShaftBlock.java b/src/main/java/com/simibubi/create/content/contraptions/relays/encased/EncasedShaftBlock.java index 44c419e75..57b284045 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/relays/encased/EncasedShaftBlock.java +++ b/src/main/java/com/simibubi/create/content/contraptions/relays/encased/EncasedShaftBlock.java @@ -4,48 +4,39 @@ import com.simibubi.create.AllBlocks; import com.simibubi.create.AllTileEntities; import com.simibubi.create.content.contraptions.base.CasingBlock; import com.simibubi.create.content.contraptions.base.KineticTileEntity; -import com.simibubi.create.foundation.utility.Lang; import com.tterrag.registrate.util.entry.BlockEntry; -import net.minecraft.block.Block; import net.minecraft.block.BlockState; -import net.minecraft.entity.player.PlayerEntity; -import net.minecraft.item.ItemStack; import net.minecraft.item.ItemUseContext; -import net.minecraft.state.EnumProperty; -import net.minecraft.state.IProperty; -import net.minecraft.state.StateContainer; import net.minecraft.tileentity.TileEntity; import net.minecraft.util.ActionResultType; -import net.minecraft.util.IStringSerializable; -import net.minecraft.util.math.BlockPos; -import net.minecraft.util.math.RayTraceResult; import net.minecraft.world.IBlockReader; public class EncasedShaftBlock extends AbstractEncasedShaftBlock { - public static final IProperty CASING = EnumProperty.create("casing", Casing.class); + private BlockEntry casing; - public EncasedShaftBlock(Properties properties) { + public static EncasedShaftBlock andesite(Properties properties) { + return new EncasedShaftBlock(properties, AllBlocks.ANDESITE_CASING); + } + + public static EncasedShaftBlock brass(Properties properties) { + return new EncasedShaftBlock(properties, AllBlocks.BRASS_CASING); + } + + protected EncasedShaftBlock(Properties properties, BlockEntry casing) { super(properties); - this.setDefaultState(this.getDefaultState().with(CASING, Casing.ANDESITE)); - } - - @Override - protected void fillStateContainer(StateContainer.Builder builder) { - super.fillStateContainer(builder); - builder.add(CASING); - } - - @Override - public ItemStack getPickBlock(BlockState state, RayTraceResult target, IBlockReader world, BlockPos pos, PlayerEntity player) { - return new ItemStack(state.get(CASING).getCasingEntry().get().asItem()); + this.casing = casing; } @Override public TileEntity createTileEntity(BlockState state, IBlockReader world) { return AllTileEntities.ENCASED_SHAFT.create(); } + + public BlockEntry getCasing() { + return casing; + } @Override public ActionResultType onSneakWrenched(BlockState state, ItemUseContext context) { @@ -56,27 +47,4 @@ public class EncasedShaftBlock extends AbstractEncasedShaftBlock { return ActionResultType.SUCCESS; } - public enum Casing implements IStringSerializable { - ANDESITE(AllBlocks.ANDESITE_CASING), - BRASS(AllBlocks.BRASS_CASING), - //COPPER(AllBlocks.COPPER_CASING) - - ; - - private final BlockEntry casingEntry; - - Casing(BlockEntry casingEntry) { - this.casingEntry = casingEntry; - } - - public BlockEntry getCasingEntry() { - return casingEntry; - } - - @Override - public String getName() { - return Lang.asId(name()); - } - } - } diff --git a/src/main/java/com/simibubi/create/content/schematics/block/LaunchedItem.java b/src/main/java/com/simibubi/create/content/schematics/block/LaunchedItem.java index c106c0046..efebcdcd7 100644 --- a/src/main/java/com/simibubi/create/content/schematics/block/LaunchedItem.java +++ b/src/main/java/com/simibubi/create/content/schematics/block/LaunchedItem.java @@ -6,7 +6,7 @@ import com.simibubi.create.AllBlocks; import com.simibubi.create.content.contraptions.relays.belt.BeltBlock; import com.simibubi.create.content.contraptions.relays.belt.BeltPart; import com.simibubi.create.content.contraptions.relays.belt.item.BeltConnectorItem; -import com.simibubi.create.content.contraptions.relays.elementary.ShaftBlock; +import com.simibubi.create.content.contraptions.relays.elementary.AbstractShaftBlock; import net.minecraft.block.Block; import net.minecraft.block.BlockState; @@ -176,7 +176,7 @@ public abstract class LaunchedItem { BlockPos offset = BeltBlock.nextSegmentPosition(state, BlockPos.ZERO, isStart); int i = length - 1; Axis axis = state.get(BeltBlock.HORIZONTAL_FACING).rotateY().getAxis(); - world.setBlockState(target, AllBlocks.SHAFT.getDefaultState().with(ShaftBlock.AXIS, axis)); + world.setBlockState(target, AllBlocks.SHAFT.getDefaultState().with(AbstractShaftBlock.AXIS, axis)); BeltConnectorItem .createBelts(world, target, target.add(offset.getX() * i, offset.getY() * i, offset.getZ() * i)); } diff --git a/src/main/java/com/simibubi/create/content/schematics/block/SchematicannonTileEntity.java b/src/main/java/com/simibubi/create/content/schematics/block/SchematicannonTileEntity.java index a2008395d..a2fa5fcd5 100644 --- a/src/main/java/com/simibubi/create/content/schematics/block/SchematicannonTileEntity.java +++ b/src/main/java/com/simibubi/create/content/schematics/block/SchematicannonTileEntity.java @@ -10,7 +10,7 @@ import com.simibubi.create.content.contraptions.relays.belt.BeltBlock; import com.simibubi.create.content.contraptions.relays.belt.BeltPart; import com.simibubi.create.content.contraptions.relays.belt.BeltSlope; import com.simibubi.create.content.contraptions.relays.belt.BeltTileEntity; -import com.simibubi.create.content.contraptions.relays.elementary.ShaftBlock; +import com.simibubi.create.content.contraptions.relays.elementary.AbstractShaftBlock; import com.simibubi.create.content.schematics.ItemRequirement; import com.simibubi.create.content.schematics.ItemRequirement.ItemUseType; import com.simibubi.create.content.schematics.MaterialChecklist; @@ -491,7 +491,7 @@ public class SchematicannonTileEntity extends SmartTileEntity implements INamedC if (!isLastSegment) blockState = (blockState.get(BeltBlock.PART) == BeltPart.MIDDLE) ? Blocks.AIR.getDefaultState() : AllBlocks.SHAFT.getDefaultState() - .with(ShaftBlock.AXIS, facing.rotateY() + .with(AbstractShaftBlock.AXIS, facing.rotateY() .getAxis()); return blockState; } diff --git a/src/main/java/com/simibubi/create/foundation/block/connected/ConnectedTextureBehaviour.java b/src/main/java/com/simibubi/create/foundation/block/connected/ConnectedTextureBehaviour.java index ffea6e247..5b9edc03b 100644 --- a/src/main/java/com/simibubi/create/foundation/block/connected/ConnectedTextureBehaviour.java +++ b/src/main/java/com/simibubi/create/foundation/block/connected/ConnectedTextureBehaviour.java @@ -33,18 +33,19 @@ public abstract class ConnectedTextureBehaviour { public boolean buildContextForOccludedDirections() { return false; } - + public boolean connectsTo(BlockState state, BlockState other, ILightReader reader, BlockPos pos, BlockPos otherPos, Direction face) { + return !isBeingBlocked(state, reader, pos, otherPos, face) && state.getBlock() == other.getBlock(); + } + protected boolean isBeingBlocked(BlockState state, ILightReader reader, BlockPos pos, BlockPos otherPos, + Direction face) { BlockPos blockingPos = otherPos.offset(face); - if ((face.getAxis() + return face.getAxis() .getCoordinate(pos.getX(), pos.getY(), pos.getZ()) == face.getAxis() - .getCoordinate(otherPos.getX(), otherPos.getY(), otherPos.getZ())) - && connectsTo(state, reader.getBlockState(blockingPos), reader, pos, blockingPos, face)) - return false; - - return state.getBlock() == other.getBlock(); + .getCoordinate(otherPos.getX(), otherPos.getY(), otherPos.getZ()) + && connectsTo(state, reader.getBlockState(blockingPos), reader, pos, blockingPos, face); } public CTContext buildContext(ILightReader reader, BlockPos pos, BlockState state, Direction face) { diff --git a/src/main/java/com/simibubi/create/foundation/data/BlockStateGen.java b/src/main/java/com/simibubi/create/foundation/data/BlockStateGen.java index 047d9b454..76874dc7c 100644 --- a/src/main/java/com/simibubi/create/foundation/data/BlockStateGen.java +++ b/src/main/java/com/simibubi/create/foundation/data/BlockStateGen.java @@ -121,11 +121,17 @@ public class BlockStateGen { public static void axisBlock(DataGenContext ctx, RegistrateBlockstateProvider prov, Function modelFunc) { + axisBlock(ctx, prov, modelFunc, false); + } + + public static void axisBlock(DataGenContext ctx, RegistrateBlockstateProvider prov, + Function modelFunc, boolean uvLock) { prov.getVariantBuilder(ctx.getEntry()) .forAllStatesExcept(state -> { Axis axis = state.get(BlockStateProperties.AXIS); return ConfiguredModel.builder() .modelFile(modelFunc.apply(state)) + .uvLock(uvLock) .rotationX(axis == Axis.Y ? 0 : 90) .rotationY(axis == Axis.X ? 90 : axis == Axis.Z ? 180 : 0) .build(); 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 a3e2e4473..8704135a5 100644 --- a/src/main/java/com/simibubi/create/foundation/data/BuilderTransformers.java +++ b/src/main/java/com/simibubi/create/foundation/data/BuilderTransformers.java @@ -1,5 +1,7 @@ package com.simibubi.create.foundation.data; +import static com.simibubi.create.foundation.data.BlockStateGen.axisBlock; +import static com.simibubi.create.foundation.data.CreateRegistrate.casingConnectivity; import static com.simibubi.create.foundation.data.CreateRegistrate.connectedTextures; import java.util.HashMap; @@ -15,6 +17,8 @@ import com.simibubi.create.Create; import com.simibubi.create.content.contraptions.base.CasingBlock; import com.simibubi.create.content.contraptions.components.crank.ValveHandleBlock; import com.simibubi.create.content.contraptions.components.structureMovement.piston.MechanicalPistonGenerator; +import com.simibubi.create.content.contraptions.relays.encased.EncasedCTBehaviour; +import com.simibubi.create.content.contraptions.relays.encased.EncasedShaftBlock; import com.simibubi.create.content.logistics.block.belts.tunnel.BeltTunnelBlock; import com.simibubi.create.content.logistics.block.belts.tunnel.BeltTunnelBlock.Shape; import com.simibubi.create.content.logistics.block.belts.tunnel.BeltTunnelItem; @@ -22,7 +26,6 @@ import com.simibubi.create.content.logistics.block.funnel.FunnelBlock; import com.simibubi.create.content.logistics.block.funnel.FunnelItem; import com.simibubi.create.content.logistics.block.inventories.CrateBlock; import com.simibubi.create.foundation.block.connected.CTSpriteShiftEntry; -import com.simibubi.create.foundation.block.connected.StandardCTBehaviour; import com.simibubi.create.foundation.config.StressConfigDefaults; import com.simibubi.create.foundation.item.TooltipHelper; import com.tterrag.registrate.builders.BlockBuilder; @@ -53,6 +56,22 @@ public class BuilderTransformers { .transform(ModelGen.customItemModel("cuckoo_clock", "item")); } + public static NonNullUnaryOperator> encasedShaft(String casing, + CTSpriteShiftEntry casingShift) { + return builder -> builder.initialProperties(SharedProperties::stone) + .properties(Block.Properties::nonOpaque) + .onRegister(CreateRegistrate.connectedTextures(new EncasedCTBehaviour(casingShift))) + .onRegister(CreateRegistrate.casingConnectivity( + (block, cc) -> cc.make(block, casingShift, (s, f) -> f.getAxis() != s.get(EncasedShaftBlock.AXIS)))) + .blockstate((c, p) -> axisBlock(c, p, blockState -> p.models() + .getExistingFile(p.modLoc("block/encased_shaft/block_" + casing)), true)) + .transform(StressConfigDefaults.setNoImpact()) + .loot((p, b) -> p.registerDropping(b, AllBlocks.SHAFT.get())) + .item() + .model(AssetLookup.customItemModel("encased_shaft", "item_" + casing)) + .build(); + } + public static NonNullUnaryOperator> valveHandle( @Nullable DyeColor color) { return b -> b.initialProperties(SharedProperties::softMetal) @@ -74,9 +93,10 @@ public class BuilderTransformers { public static NonNullUnaryOperator> casing( CTSpriteShiftEntry ct) { - return b -> b.onRegister(connectedTextures(new StandardCTBehaviour(ct))) - .initialProperties(SharedProperties::stone) + return b -> b.initialProperties(SharedProperties::stone) .blockstate((c, p) -> p.simpleBlock(c.get())) + .onRegister(connectedTextures(new EncasedCTBehaviour(ct))) + .onRegister(casingConnectivity((block, cc) -> cc.makeCasing(block, ct))) .simpleItem(); } @@ -156,8 +176,9 @@ public class BuilderTransformers { ResourceLocation baseBlockModelLocation = Create.asResource("block/bearing/block"); ResourceLocation baseItemModelLocation = Create.asResource("block/bearing/item"); ResourceLocation topTextureLocation = Create.asResource("block/bearing_top" + (woodenTop ? "_wooden" : "")); - ResourceLocation nookTextureLocation = Create.asResource("block/" + (woodenTop ? "andesite" : "brass") + "_casing"); - ResourceLocation sideTextureLocation = Create.asResource("block/" + prefix + "_bearing_side"); + ResourceLocation nookTextureLocation = + Create.asResource("block/" + (woodenTop ? "andesite" : "brass") + "_casing"); + ResourceLocation sideTextureLocation = Create.asResource("block/" + prefix + "_bearing_side"); ResourceLocation backTextureLocation = Create.asResource("block/" + backTexture); return b -> b.initialProperties(SharedProperties::stone) .properties(p -> p.nonOpaque()) diff --git a/src/main/java/com/simibubi/create/foundation/data/CreateRegistrate.java b/src/main/java/com/simibubi/create/foundation/data/CreateRegistrate.java index f30e4c089..70aced24b 100644 --- a/src/main/java/com/simibubi/create/foundation/data/CreateRegistrate.java +++ b/src/main/java/com/simibubi/create/foundation/data/CreateRegistrate.java @@ -4,13 +4,16 @@ import java.util.Collection; import java.util.IdentityHashMap; import java.util.Map; import java.util.Map.Entry; +import java.util.function.BiConsumer; import java.util.function.BiFunction; +import java.util.function.Consumer; import java.util.function.Supplier; import java.util.stream.Collectors; import com.simibubi.create.Create; import com.simibubi.create.CreateClient; import com.simibubi.create.content.AllSections; +import com.simibubi.create.content.contraptions.relays.encased.CasingConnectivity; import com.simibubi.create.foundation.block.IBlockVertexColor; import com.simibubi.create.foundation.block.connected.CTModel; import com.simibubi.create.foundation.block.connected.ConnectedTextureBehaviour; @@ -136,6 +139,11 @@ public class CreateRegistrate extends AbstractRegistrate { return entry -> onClient(() -> () -> registerCTBehviour(entry, behavior)); } + public static NonNullConsumer casingConnectivity( + BiConsumer consumer) { + return entry -> onClient(() -> () -> registerCasingConnectivity(entry, consumer)); + } + public static NonNullConsumer blockModel( Supplier> func) { return entry -> onClient(() -> () -> registerBlockModel(entry, func)); @@ -176,6 +184,12 @@ public class CreateRegistrate extends AbstractRegistrate { .register(entry.delegate, model -> new CTModel(model, behavior)); } + @OnlyIn(Dist.CLIENT) + private static void registerCasingConnectivity(T entry, + BiConsumer consumer) { + consumer.accept(entry, CreateClient.getCasingConnectivity()); + } + @OnlyIn(Dist.CLIENT) private static void registerBlockModel(Block entry, Supplier> func) { diff --git a/src/main/java/com/simibubi/create/foundation/tileEntity/behaviour/ValueBoxRenderer.java b/src/main/java/com/simibubi/create/foundation/tileEntity/behaviour/ValueBoxRenderer.java index e27466235..fd37abb2a 100644 --- a/src/main/java/com/simibubi/create/foundation/tileEntity/behaviour/ValueBoxRenderer.java +++ b/src/main/java/com/simibubi/create/foundation/tileEntity/behaviour/ValueBoxRenderer.java @@ -1,7 +1,7 @@ package com.simibubi.create.foundation.tileEntity.behaviour; import com.mojang.blaze3d.matrix.MatrixStack; -import com.simibubi.create.content.contraptions.relays.elementary.ShaftBlock; +import com.simibubi.create.content.contraptions.relays.elementary.AbstractShaftBlock; import com.simibubi.create.content.logistics.item.filter.FilterItem; import net.minecraft.block.Block; @@ -36,7 +36,7 @@ public class ValueBoxRenderer { return NUDGE; if (item instanceof BlockItem) { Block block = ((BlockItem) item).getBlock(); - if (block instanceof ShaftBlock) + if (block instanceof AbstractShaftBlock) return NUDGE; if (block instanceof FenceBlock) return NUDGE; diff --git a/src/main/java/com/simibubi/create/foundation/utility/RemapHelper.java b/src/main/java/com/simibubi/create/foundation/utility/RemapHelper.java index 297b86d9c..82ad97a9c 100644 --- a/src/main/java/com/simibubi/create/foundation/utility/RemapHelper.java +++ b/src/main/java/com/simibubi/create/foundation/utility/RemapHelper.java @@ -1,7 +1,63 @@ package com.simibubi.create.foundation.utility; +import static com.simibubi.create.AllBlocks.ADJUSTABLE_CRATE; +import static com.simibubi.create.AllBlocks.ADJUSTABLE_PULSE_REPEATER; +import static com.simibubi.create.AllBlocks.ADJUSTABLE_REPEATER; +import static com.simibubi.create.AllBlocks.ANDESITE_ENCASED_SHAFT; +import static com.simibubi.create.AllBlocks.BRASS_BELT_FUNNEL; +import static com.simibubi.create.AllBlocks.BRASS_TUNNEL; +import static com.simibubi.create.AllBlocks.CONTENT_OBSERVER; +import static com.simibubi.create.AllBlocks.LINEAR_CHASSIS; +import static com.simibubi.create.AllBlocks.MECHANICAL_DRILL; +import static com.simibubi.create.AllBlocks.MECHANICAL_HARVESTER; +import static com.simibubi.create.AllBlocks.MECHANICAL_PLOUGH; +import static com.simibubi.create.AllBlocks.MECHANICAL_SAW; +import static com.simibubi.create.AllBlocks.PISTON_EXTENSION_POLE; +import static com.simibubi.create.AllBlocks.POWERED_LATCH; +import static com.simibubi.create.AllBlocks.POWERED_TOGGLE_LATCH; +import static com.simibubi.create.AllBlocks.RADIAL_CHASSIS; +import static com.simibubi.create.AllBlocks.REDSTONE_CONTACT; +import static com.simibubi.create.AllBlocks.REDSTONE_LINK; +import static com.simibubi.create.AllBlocks.SECONDARY_LINEAR_CHASSIS; +import static com.simibubi.create.AllBlocks.SPEEDOMETER; +import static com.simibubi.create.AllBlocks.STOCKPILE_SWITCH; +import static com.simibubi.create.AllBlocks.STRESSOMETER; +import static com.simibubi.create.AllItems.ATTRIBUTE_FILTER; +import static com.simibubi.create.AllItems.BLOCKZAPPER; +import static com.simibubi.create.AllItems.CRAFTER_SLOT_COVER; +import static com.simibubi.create.AllItems.CRUSHED_COPPER; +import static com.simibubi.create.AllItems.CRUSHED_GOLD; +import static com.simibubi.create.AllItems.CRUSHED_IRON; +import static com.simibubi.create.AllItems.CRUSHED_ZINC; +import static com.simibubi.create.AllItems.GOLDEN_SHEET; +import static com.simibubi.create.AllItems.LAPIS_SHEET; +import static com.simibubi.create.AllItems.POWDERED_OBSIDIAN; +import static com.simibubi.create.AllItems.SCHEMATIC; +import static com.simibubi.create.AllItems.SCHEMATIC_AND_QUILL; +import static com.simibubi.create.AllItems.WAND_OF_SYMMETRY; +import static com.simibubi.create.AllItems.WHEAT_FLOUR; +import static com.simibubi.create.AllItems.WORLDSHAPER; +import static com.simibubi.create.content.palettes.AllPaletteBlocks.ACACIA_WINDOW; +import static com.simibubi.create.content.palettes.AllPaletteBlocks.ACACIA_WINDOW_PANE; +import static com.simibubi.create.content.palettes.AllPaletteBlocks.BIRCH_WINDOW; +import static com.simibubi.create.content.palettes.AllPaletteBlocks.BIRCH_WINDOW_PANE; +import static com.simibubi.create.content.palettes.AllPaletteBlocks.DARK_OAK_WINDOW; +import static com.simibubi.create.content.palettes.AllPaletteBlocks.DARK_OAK_WINDOW_PANE; +import static com.simibubi.create.content.palettes.AllPaletteBlocks.JUNGLE_WINDOW; +import static com.simibubi.create.content.palettes.AllPaletteBlocks.JUNGLE_WINDOW_PANE; +import static com.simibubi.create.content.palettes.AllPaletteBlocks.OAK_WINDOW; +import static com.simibubi.create.content.palettes.AllPaletteBlocks.OAK_WINDOW_PANE; +import static com.simibubi.create.content.palettes.AllPaletteBlocks.ORNATE_IRON_WINDOW; +import static com.simibubi.create.content.palettes.AllPaletteBlocks.ORNATE_IRON_WINDOW_PANE; +import static com.simibubi.create.content.palettes.AllPaletteBlocks.SPRUCE_WINDOW; +import static com.simibubi.create.content.palettes.AllPaletteBlocks.SPRUCE_WINDOW_PANE; + +import java.util.HashMap; +import java.util.Map; + import com.google.common.collect.ImmutableList; import com.simibubi.create.Create; + import net.minecraft.block.Block; import net.minecraft.item.Item; import net.minecraft.util.ResourceLocation; @@ -12,13 +68,6 @@ import net.minecraftforge.fml.ModList; import net.minecraftforge.fml.common.Mod; import net.minecraftforge.registries.ForgeRegistries; -import java.util.HashMap; -import java.util.Map; - -import static com.simibubi.create.AllBlocks.*; -import static com.simibubi.create.AllItems.*; -import static com.simibubi.create.content.palettes.AllPaletteBlocks.*; - @Mod.EventBusSubscriber @SuppressWarnings("unused") public class RemapHelper { @@ -26,6 +75,7 @@ public class RemapHelper { static { reMap.put("toggle_latch", POWERED_TOGGLE_LATCH.getId()); + reMap.put("encased_shaft", ANDESITE_ENCASED_SHAFT.getId()); // reMap.put("linked_extractor", ); reMap.put("limestone_stairs", Create.asResource("polished_limestone_stairs")); // reMap.put("window_in_a_block", ); @@ -123,7 +173,7 @@ public class RemapHelper { reMap.put("symmetry_wand", WAND_OF_SYMMETRY.getId()); reMap.put("terrain_zapper", WORLDSHAPER.getId()); // reMap.put("blazing_sword", ); - reMap.put("zinc_handle", HAND_CRANK.getId()); +// reMap.put("zinc_handle", HAND_CRANK.getId()); // reMap.put("rose_quartz_axe", ); // reMap.put("shadow_steel_pickaxe", ); reMap.put("placement_handgun", BLOCKZAPPER.getId()); diff --git a/src/main/resources/assets/create/models/block/encased_shaft/andesite.json b/src/main/resources/assets/create/models/block/encased_shaft/andesite.json deleted file mode 100644 index b30279387..000000000 --- a/src/main/resources/assets/create/models/block/encased_shaft/andesite.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "create:block/encased_shaft/base", - "textures": { - "casing": "create:block/andesite_casing" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/create/models/block/encased_shaft/base.json b/src/main/resources/assets/create/models/block/encased_shaft/block.json similarity index 58% rename from src/main/resources/assets/create/models/block/encased_shaft/base.json rename to src/main/resources/assets/create/models/block/encased_shaft/block.json index b280f78ab..6a0feeea1 100644 --- a/src/main/resources/assets/create/models/block/encased_shaft/base.json +++ b/src/main/resources/assets/create/models/block/encased_shaft/block.json @@ -2,8 +2,8 @@ "credit": "Made with Blockbench", "parent": "block/block", "textures": { - "1": "create:block/gearbox", - "particle": "create:block/andesite_casing" + "1": "#opening", + "particle": "#casing" }, "elements": [ { @@ -11,10 +11,10 @@ "from": [0, 0, 0], "to": [16, 16, 2], "faces": { - "north": {"uv": [0, 0, 16, 16], "rotation": 90, "texture": "#casing"}, - "east": {"uv": [0, 14, 16, 16], "rotation": 270, "texture": "#casing"}, + "north": {"uv": [0, 0, 16, 16], "texture": "#casing"}, + "east": {"uv": [14, 0, 16, 16], "texture": "#casing"}, "south": {"uv": [0, 0, 16, 16], "texture": "#casing"}, - "west": {"uv": [0, 14, 16, 16], "rotation": 90, "texture": "#casing"}, + "west": {"uv": [0, 0, 2, 16], "texture": "#casing"}, "up": {"uv": [0, 14, 16, 16], "rotation": 180, "texture": "#casing"}, "down": {"uv": [0, 14, 16, 16], "texture": "#casing"} } @@ -33,10 +33,10 @@ "from": [0, 0, 14], "to": [16, 16, 16], "faces": { - "north": {"uv": [0, 0, 16, 16], "rotation": 180, "texture": "#casing"}, - "east": {"uv": [0, 0, 16, 2], "rotation": 270, "texture": "#casing"}, - "south": {"uv": [0, 0, 16, 16], "rotation": 90, "texture": "#casing"}, - "west": {"uv": [0, 0, 16, 2], "rotation": 90, "texture": "#casing"}, + "north": {"uv": [0, 0, 16, 16], "texture": "#casing"}, + "east": {"uv": [0, 0, 2, 16], "texture": "#casing"}, + "south": {"uv": [0, 0, 16, 16], "texture": "#casing"}, + "west": {"uv": [14, 0, 16, 16], "texture": "#casing"}, "up": {"uv": [0, 0, 16, 2], "rotation": 180, "texture": "#casing"}, "down": {"uv": [0, 0, 16, 2], "texture": "#casing"} } @@ -46,8 +46,8 @@ "from": [0, 0, 2], "to": [2, 16, 14], "faces": { - "east": {"uv": [0, 2, 16, 14], "rotation": 270, "texture": "#casing"}, - "west": {"uv": [0, 2, 16, 14], "rotation": 90, "texture": "#casing"}, + "east": {"uv": [2, 0, 14, 16], "texture": "#casing"}, + "west": {"uv": [2, 0, 14, 16], "texture": "#casing"}, "up": {"uv": [14, 2, 16, 14], "rotation": 180, "texture": "#casing"}, "down": {"uv": [0, 2, 2, 14], "texture": "#casing"} } @@ -57,8 +57,8 @@ "from": [14, 0, 2], "to": [16, 16, 14], "faces": { - "east": {"uv": [0, 2, 16, 14], "rotation": 270, "texture": "#casing"}, - "west": {"uv": [0, 2, 16, 14], "rotation": 90, "texture": "#casing"}, + "east": {"uv": [2, 0, 14, 16], "texture": "#casing"}, + "west": {"uv": [2, 0, 14, 16], "texture": "#casing"}, "up": {"uv": [0, 2, 2, 14], "rotation": 180, "texture": "#casing"}, "down": {"uv": [14, 2, 16, 14], "texture": "#casing"} } diff --git a/src/main/resources/assets/create/models/block/encased_shaft/block_andesite.json b/src/main/resources/assets/create/models/block/encased_shaft/block_andesite.json new file mode 100644 index 000000000..450c8930a --- /dev/null +++ b/src/main/resources/assets/create/models/block/encased_shaft/block_andesite.json @@ -0,0 +1,7 @@ +{ + "parent": "create:block/encased_shaft/block", + "textures": { + "casing": "create:block/andesite_casing", + "opening": "create:block/gearbox" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/create/models/block/encased_shaft/block_brass.json b/src/main/resources/assets/create/models/block/encased_shaft/block_brass.json new file mode 100644 index 000000000..8d9795e98 --- /dev/null +++ b/src/main/resources/assets/create/models/block/encased_shaft/block_brass.json @@ -0,0 +1,7 @@ +{ + "parent": "create:block/encased_shaft/block", + "textures": { + "casing": "create:block/brass_casing", + "opening": "create:block/brass_gearbox" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/create/models/block/encased_shaft/brass.json b/src/main/resources/assets/create/models/block/encased_shaft/brass.json deleted file mode 100644 index 2d2907d69..000000000 --- a/src/main/resources/assets/create/models/block/encased_shaft/brass.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "create:block/encased_shaft/base", - "textures": { - "casing": "create:block/brass_casing" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/create/models/block/encased_shaft/copper.json b/src/main/resources/assets/create/models/block/encased_shaft/copper.json deleted file mode 100644 index e9407b71c..000000000 --- a/src/main/resources/assets/create/models/block/encased_shaft/copper.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "create:block/encased_shaft/base", - "textures": { - "casing": "create:block/copper_casing" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/create/models/block/encased_shaft/item.json b/src/main/resources/assets/create/models/block/encased_shaft/item.json index badac1e31..91d41a757 100644 --- a/src/main/resources/assets/create/models/block/encased_shaft/item.json +++ b/src/main/resources/assets/create/models/block/encased_shaft/item.json @@ -2,9 +2,9 @@ "credit": "Made with Blockbench", "parent": "block/block", "textures": { - "0": "create:block/andesite_casing", - "1": "create:block/gearbox", - "particle": "create:block/axis", + "0": "#casing", + "1": "#opening", + "particle": "#casing", "1_0": "create:block/axis", "1_1": "create:block/axis_top" }, diff --git a/src/main/resources/assets/create/models/block/encased_shaft/item_andesite.json b/src/main/resources/assets/create/models/block/encased_shaft/item_andesite.json new file mode 100644 index 000000000..ecee85bb5 --- /dev/null +++ b/src/main/resources/assets/create/models/block/encased_shaft/item_andesite.json @@ -0,0 +1,7 @@ +{ + "parent": "create:block/encased_shaft/item", + "textures": { + "casing": "create:block/andesite_casing", + "opening": "create:block/gearbox" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/create/models/block/encased_shaft/item_brass.json b/src/main/resources/assets/create/models/block/encased_shaft/item_brass.json new file mode 100644 index 000000000..84c4f08bf --- /dev/null +++ b/src/main/resources/assets/create/models/block/encased_shaft/item_brass.json @@ -0,0 +1,7 @@ +{ + "parent": "create:block/encased_shaft/item", + "textures": { + "casing": "create:block/brass_casing", + "opening": "create:block/brass_gearbox" + } +} \ No newline at end of file