diff --git a/src/generated/resources/.cache/cache b/src/generated/resources/.cache/cache index 2ea3c0370..26114f7a6 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 @@ -44,6 +46,7 @@ e81608346d43406ee72cae0f78b8bcfb37ba2d75 assets/create/blockstates/brown_seat.js 2ca82a3c4bf7ba1a9cf3bb674e786d9b23b020a4 assets/create/blockstates/chiseled_limestone.json cbcdab42d01f8085db9e5f8db884f8adf7f17625 assets/create/blockstates/chiseled_scoria.json 291952556c52fba2af5bbd793c71af81abd27e71 assets/create/blockstates/chiseled_weathered_limestone.json +470e8c6a9c37b91fa745bc4f6e9d3740bd72467e assets/create/blockstates/chocolate.json b59324f051f21d8ce1a48a08f4721a61a3c414d6 assets/create/blockstates/chute.json 4947c261310445fa55b92038326ac82967d192dd assets/create/blockstates/clockwork_bearing.json 1f33834c685e3243882acfe20183fe64dfa872be assets/create/blockstates/clutch.json @@ -100,8 +103,7 @@ f63a5816d4bfe643aa098d03c3b54462dd06fe19 assets/create/blockstates/dolomite_cobb f179202e59e449157f89efc37229b03bbfd391d7 assets/create/blockstates/dolomite_pillar.json 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 +d13940ed213d7acbc6ebe3bdd21175ef89e4d613 assets/create/blockstates/encased_fluid_pipe.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 @@ -138,7 +140,7 @@ de8a40b7daf1497d5aecee47a43b3e0b1d030b00 assets/create/blockstates/fancy_scoria_ fc9ac0a7e7191b93516719455a17177fa6524ecc assets/create/blockstates/fancy_weathered_limestone_bricks_slab.json b2a7c321b1795f20e7433f81a55ce4683de081b8 assets/create/blockstates/fancy_weathered_limestone_bricks_stairs.json 6372fe02ba0065acb0758121c45a15a1a8fdc5de assets/create/blockstates/fancy_weathered_limestone_bricks_wall.json -fe9169716dd21a81a3710a89f0a9b7ea4dcd4d51 assets/create/blockstates/fluid_pipe.json +499aade14db59f62b46e8a266998feb41e1922a1 assets/create/blockstates/fluid_pipe.json f0eaab18e16c4f3f65ebf3b55b08f0dc445720fe assets/create/blockstates/fluid_tank.json 5408d92ab02af86539ac42971d4033545970bb3a assets/create/blockstates/fluid_valve.json e9da1794b6ece7f9aa8bcb43d42c23a55446133b assets/create/blockstates/flywheel.json @@ -155,7 +157,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 @@ -174,6 +176,7 @@ a5ec5401ba9f3e102a2e1b35837f643847afbca4 assets/create/blockstates/gray_seat.jso 13059309684db0cc7a0f1f4fce2407cf06cce80a assets/create/blockstates/green_seat.json f4a0fc68e8daaa0a47cdc951ced4310057a874b0 assets/create/blockstates/green_valve_handle.json 6ab675fa06317e6d07c0c1a453e7bb43e3f46b3b assets/create/blockstates/hand_crank.json +4572b90f5d6c586e145f2c7a55664c3cb734bd2b assets/create/blockstates/honey.json be3bef7e091d8b50bfc1c6b7275946d1f636aefd assets/create/blockstates/horizontal_framed_glass.json 18d9fdaa1352a7e2ec91135e46dae5c02ccd8f8f assets/create/blockstates/horizontal_framed_glass_pane.json 30ec347dfc827a9ae52cf3da964b828005acede1 assets/create/blockstates/hose_pulley.json @@ -332,7 +335,7 @@ e8b0a401c10d1ba67ed71ba31bd5f9bc28571b65 assets/create/blockstates/powered_toggl d06cd9a1101b18d306a786320aab12018b1325d6 assets/create/blockstates/purple_sail.json 92957119abd5fbcca36a113b2a80255fd70fc303 assets/create/blockstates/purple_seat.json 61035f8afe75ff7bbd291da5d8690bcbebe679eb assets/create/blockstates/purple_valve_handle.json -8d7e653bfd9846e684a0d3725595714a19201017 assets/create/blockstates/radial_chassis.json +9e7ea57c58889fa0021e3c4f19da3f763108399f assets/create/blockstates/radial_chassis.json 45877c4d90a7185c2f304edbd67379d800920439 assets/create/blockstates/red_sail.json da1b08387af7afa0855ee8d040f620c01f20660a assets/create/blockstates/red_seat.json 722fc77bbf387af8a4016e42cbf9501d2b968881 assets/create/blockstates/red_valve_handle.json @@ -394,17 +397,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 +f3dbaf7f4421e8af956ecf17ce7cedef28cbbfe8 assets/create/lang/en_ud.json +9697cd407f7a049b129fe5e76c6a17969bcf9e68 assets/create/lang/en_us.json +062b0e2a0aac1eea9a3de85e66377091ae21f76d assets/create/lang/unfinished/de_de.json +8a117682ad45996564fc6cf6c22c92d7f17ad29a assets/create/lang/unfinished/fr_fr.json +1c3a68ebd422f6d40d178162f4ab7b627a48f49b assets/create/lang/unfinished/it_it.json +349213d72b60ed084ffd8dd18eadcf97f97a1fe5 assets/create/lang/unfinished/ja_jp.json +d29a71eb5c3955d487a1c3ff5bd7b065dc89e7f7 assets/create/lang/unfinished/ko_kr.json +0245f101e497d0895a7a070a3b4c07a3f62ad465 assets/create/lang/unfinished/nl_nl.json +12ec39553e80e1d740093b50860cbd2b506b08ba assets/create/lang/unfinished/pt_br.json +1ad44c155b71cdcd3c1a8763758e8b9f53941ee2 assets/create/lang/unfinished/ru_ru.json +f750f0cee38a3020c92ca6dae48b28f84b22f007 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 @@ -510,6 +513,7 @@ cd7751090cf3d55296b8e415d0af9b6f18d69770 assets/create/models/block/chiseled_gab d2e195aa2e90c712e51d855a9a4a334b52f62a69 assets/create/models/block/chiseled_limestone.json ac07568fa7b2d3fa84d0fe89a498514d30514291 assets/create/models/block/chiseled_scoria.json ecb2b85ee210dce329d2be66b98d0f0d4e6fc223 assets/create/models/block/chiseled_weathered_limestone.json +4156227e18c0896ce83f260f71b939abbbf4f01e assets/create/models/block/chocolate.json 30fe120af3cb32faf0729df4d2cdf868f804be17 assets/create/models/block/clockwork_bearing.json 70406933cc4fa5471af6e562fd84a397347dba17 assets/create/models/block/copper_casing.json b2c528cfd24a5cb0cb96c45d0a914f1090f8c32b assets/create/models/block/copper_valve_handle.json @@ -609,7 +613,6 @@ cc6d9300cd26f2323c653dbcc61b7a885be8fa3b assets/create/models/block/dolomite_cob a101974d906487326dc38916f828d12a278a49ae assets/create/models/block/dolomite_cobblestone_wall_post.json 9c497140dfe73abe1964479eaf1af8f1892de290 assets/create/models/block/dolomite_cobblestone_wall_side.json 999a7cd79a9dc80c47fd6103b65f006b55187402 assets/create/models/block/dolomite_pillar.json -1a8bac1e97a2a6c3cc362081568d2a7fce815ad5 assets/create/models/block/encased_fluid_pipe.json 17dae5fdc1a551d8ab1ab8a68cabf7a8c3848d86 assets/create/models/block/fancy_andesite_bricks.json cfb2cd84a1cbd9226a77ebc1f6c29e8eaa9c577f assets/create/models/block/fancy_andesite_bricks_slab.json 8ee27601996ab577991b6a0f7e9df27db0282cad assets/create/models/block/fancy_andesite_bricks_slab_top.json @@ -750,6 +753,7 @@ a68cd40ffb769b195437107f4a2c2188b222b74a assets/create/models/block/gray_sail.js 17b651233c62b928f0228562a7f6e7a2b7b2d6b7 assets/create/models/block/green_sail.json 1438b8ce54ac5557b8f10dcef94f3525eae19461 assets/create/models/block/green_seat.json cc7ce9b6bc687ad5027a67c3bf22bdf5bcd71674 assets/create/models/block/green_valve_handle.json +5bbe7e5322020d205d2c60bc14e4b45b317a193c assets/create/models/block/honey.json 9730fcb02f679087e81e24c836751e625be6a298 assets/create/models/block/horizontal_framed_glass.json d13df8a5920c5778d98081fb0e97f045e2fd46a2 assets/create/models/block/horizontal_framed_glass_pane_noside.json 3e975bec02e2670ce2b1868cebcbd780a5ebf3f8 assets/create/models/block/horizontal_framed_glass_pane_noside_alt.json @@ -1121,6 +1125,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 +1141,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 @@ -1152,6 +1158,7 @@ afd697168c9786eb80e54eccdc6a23afa6c7fb0e assets/create/models/item/chiseled_gabb 0cb1692f6cdd007ac690fd1f0222dde3429d136f assets/create/models/item/chiseled_limestone.json a47fbe5f2da79080d99ef0975bfa8da4d08f8be4 assets/create/models/item/chiseled_scoria.json 70232ce9b88119fb383717e2c1ad113f7aad6a99 assets/create/models/item/chiseled_weathered_limestone.json +eabf1870127d78c920305228eb51ddf36c44d016 assets/create/models/item/chocolate_bucket.json fe67c3f380d17735a9436a4579a8be1a02b8e4a0 assets/create/models/item/chute.json d418205c83d3e57c830755ee8c09e2962353e493 assets/create/models/item/cinder_flour.json c1da21be9f1af4f7a2ef4ec9cd92195d65ada316 assets/create/models/item/clockwork_bearing.json @@ -1295,6 +1302,7 @@ ecb9f32f62d3fa43fb226ab85adc2eb229fdfb77 assets/create/models/item/green_valve_h 398b1a7c76c7bdb6a23b1248fdce98f6d835467f assets/create/models/item/hand_crank.json cfab82a2cf7495d21778c1de9730a26afbdd523d assets/create/models/item/handheld_blockzapper.json dee43bf1a9c211a752fac2c07aeba123f7f0c914 assets/create/models/item/handheld_worldshaper.json +967695ab65edb8cb19e9759425f2d12d75406122 assets/create/models/item/honey_bucket.json e7ec65ad5be13cae5f7d60836b8df9e4a5baad56 assets/create/models/item/horizontal_framed_glass.json f0e3b2b8a553b6e61746c922c27302dabfff71b6 assets/create/models/item/horizontal_framed_glass_pane.json ff92f6a9dfb73a6ee1eaaed3279c89390ff04a80 assets/create/models/item/hose_pulley.json @@ -2165,6 +2173,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 +2191,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 +2261,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 @@ -2858,6 +2867,8 @@ ddda28bb6efc43b7e3149756daf53e1664187283 data/create/recipes/dolomite_cobbleston 500ecdfdcf34e9d26256948e206aab4f0b79e659 data/create/recipes/dolomite_cobblestone_wall_from_dolomite_cobblestone_stonecutting.json ff39e629b242ae91e23aec86b0a1f757dd938305 data/create/recipes/dolomite_pillar.json b4a8d14d9a20e812e0acb691b5b511a87e8b0576 data/create/recipes/dolomite_pillar_from_dolomite_stonecutting.json +20b7c7c62fa2e33199e08188dd8836844a6d9cfd data/create/recipes/emptying/honey_bottle.json +28a0f9a45671de2e6db19fa66374e245feeed142 data/create/recipes/emptying/milk_bucket.json 0e11aa1accb71ed62e212f23a7069b7b7b4e8119 data/create/recipes/fancy_andesite_bricks_from_andesite_stonecutting.json 8b86fc9a9416adeaab3f26192a73a481887675c3 data/create/recipes/fancy_andesite_bricks_slab.json c7b762b25c7a6705dba3e922e981be851ac4f36b data/create/recipes/fancy_andesite_bricks_slab_from_fancy_andesite_bricks_stonecutting.json @@ -2921,6 +2932,8 @@ bd355332d17adcb0460b1d43146ca288efb78395 data/create/recipes/fancy_weathered_lim d2ab9ce73636773165564506580f2ec13bd1fc50 data/create/recipes/fancy_weathered_limestone_bricks_stairs_from_fancy_weathered_limestone_bricks_stonecutting.json 36947f27d2b2e57b00440fd5acd06a7554e5a387 data/create/recipes/fancy_weathered_limestone_bricks_wall.json 1d0e41ca98e48073c72adf4077610c96e592f9a5 data/create/recipes/fancy_weathered_limestone_bricks_wall_from_fancy_weathered_limestone_bricks_stonecutting.json +c8ca74a6cd071308a1750a2ad1153e79422598a0 data/create/recipes/filling/honey_bottle.json +c83e77a9799b6ca34dd73aa76b56159f2103c48c data/create/recipes/filling/milk_bucket.json 5b8bbde7f8b270ab75fac18d6858f2fadbc0efa3 data/create/recipes/framed_glass_from_glass_colorless_stonecutting.json d697de0c9b706ca4e18da7a2d769e7e5fe8d769d data/create/recipes/framed_glass_pane.json a0dae50faaa1b7142bb4309675e3084c68daa547 data/create/recipes/gabbro_bricks_from_gabbro_stonecutting.json @@ -3039,9 +3052,11 @@ eec880075efd6008b604a4b8064d782752b4bad6 data/create/recipes/milling/wool.json b3cc5e61bab40ca6135dc1f706f3ab447e9f78bf data/create/recipes/mixing/andesite_alloy.json ce9dc7dacb85cb23a7187c19a115b40e597ad36b data/create/recipes/mixing/andesite_alloy_from_zinc.json 3417f9399ce0fb32fc4bce94c772b40d780c9006 data/create/recipes/mixing/brass_ingot.json +ab602a53a5d8d057aad910dd1c5529cde2d587ab data/create/recipes/mixing/chocolate.json 0e29b4ce13750aab5a60ae54cbec8776569b35e0 data/create/recipes/mixing/chromatic_compound.json d9a3dff1288d675ab812eef1eb73cb27dcc71bd2 data/create/recipes/mixing/crushed_brass.json 00b165ea38d834c7955440e87062004a8182c3f8 data/create/recipes/mixing/gunpowder.json +0f89b3f2d81585591513619b8d1e8694eb874316 data/create/recipes/mixing/tea.json 3279bd1a34217a19bc9992a2ad87629390dd003f data/create/recipes/mixing/temp_cobble.json 3295a2195707f952a83deb3bed10b43570b215e5 data/create/recipes/mixing/temp_lava.json 1998c6f84f871d6da58ec29d729401d18f8f1aa1 data/create/recipes/mossy_andesite_from_andesite_stonecutting.json @@ -3297,6 +3312,8 @@ d5ea262a0f5fb210612d22521818e26cf08e591a data/forge/tags/blocks/ores/zinc.json ff1900963bc4cd8ceffa78d58ef1952ceacb2fb7 data/forge/tags/blocks/storage_blocks/brass.json f6c8f34ceb475546dba5cc6ff288863ea795d20b data/forge/tags/blocks/storage_blocks/copper.json 7f71a774800111e50b42de0e6159ed2d2a807d32 data/forge/tags/blocks/storage_blocks/zinc.json +391c9b2be5740aea943a8a5fe27eb327e2d973b0 data/forge/tags/fluids/honey.json +aa729fedc4fcca0f0a18bf7b00075af06bf5357f data/forge/tags/fluids/milk.json d9ffc62a496946fc4848934e7c0a6e917337f8be data/forge/tags/items/beacon_payment.json 05ca51cdc60a5e109b5a0e3b782de13d34ebcb24 data/forge/tags/items/cobblestone.json 16bcb8fcbe9170c2c11f1ca8d99d8b36cd812bbd data/forge/tags/items/glass/colorless.json @@ -3326,6 +3343,7 @@ f6c8f34ceb475546dba5cc6ff288863ea795d20b data/forge/tags/items/storage_blocks/co 29e6f7e3d4be9a9b0af1fca5d32fa55e29905ce2 data/minecraft/tags/blocks/slabs.json 0d188ad2c33d10ee8f0d455c4e63a4460a8302fb data/minecraft/tags/blocks/stairs.json 92584f914c53e00c111f9ff5e3894e2e3594946b data/minecraft/tags/blocks/walls.json +09d26bcd0f94459f945219997277c4fbf14adeb7 data/minecraft/tags/fluids/water.json 29e6f7e3d4be9a9b0af1fca5d32fa55e29905ce2 data/minecraft/tags/items/slabs.json 0d188ad2c33d10ee8f0d455c4e63a4460a8302fb data/minecraft/tags/items/stairs.json 92584f914c53e00c111f9ff5e3894e2e3594946b data/minecraft/tags/items/walls.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/chocolate.json b/src/generated/resources/assets/create/blockstates/chocolate.json new file mode 100644 index 000000000..d373c6e9b --- /dev/null +++ b/src/generated/resources/assets/create/blockstates/chocolate.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "create:block/chocolate" + } + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/create/blockstates/encased_fluid_pipe.json b/src/generated/resources/assets/create/blockstates/encased_fluid_pipe.json index 129e39baa..dc11492f3 100644 --- a/src/generated/resources/assets/create/blockstates/encased_fluid_pipe.json +++ b/src/generated/resources/assets/create/blockstates/encased_fluid_pipe.json @@ -1,17 +1,110 @@ { - "variants": { - "axis=x": { - "model": "create:block/encased_fluid_pipe", - "x": 90, - "y": 90 + "multipart": [ + { + "when": { + "down": "false" + }, + "apply": { + "model": "create:block/encased_fluid_pipe/block_flat", + "x": -90 + } }, - "axis=y": { - "model": "create:block/encased_fluid_pipe" + { + "when": { + "up": "false" + }, + "apply": { + "model": "create:block/encased_fluid_pipe/block_flat", + "x": 90 + } }, - "axis=z": { - "model": "create:block/encased_fluid_pipe", - "x": 90, - "y": 180 + { + "when": { + "north": "false" + }, + "apply": { + "model": "create:block/encased_fluid_pipe/block_flat", + "y": 180 + } + }, + { + "when": { + "south": "false" + }, + "apply": { + "model": "create:block/encased_fluid_pipe/block_flat" + } + }, + { + "when": { + "west": "false" + }, + "apply": { + "model": "create:block/encased_fluid_pipe/block_flat", + "y": 90 + } + }, + { + "when": { + "east": "false" + }, + "apply": { + "model": "create:block/encased_fluid_pipe/block_flat", + "y": 270 + } + }, + { + "when": { + "down": "true" + }, + "apply": { + "model": "create:block/encased_fluid_pipe/block_open", + "x": -90 + } + }, + { + "when": { + "up": "true" + }, + "apply": { + "model": "create:block/encased_fluid_pipe/block_open", + "x": 90 + } + }, + { + "when": { + "north": "true" + }, + "apply": { + "model": "create:block/encased_fluid_pipe/block_open", + "y": 180 + } + }, + { + "when": { + "south": "true" + }, + "apply": { + "model": "create:block/encased_fluid_pipe/block_open" + } + }, + { + "when": { + "west": "true" + }, + "apply": { + "model": "create:block/encased_fluid_pipe/block_open", + "y": 90 + } + }, + { + "when": { + "east": "true" + }, + "apply": { + "model": "create:block/encased_fluid_pipe/block_open", + "y": 270 + } } - } + ] } \ 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/fluid_pipe.json b/src/generated/resources/assets/create/blockstates/fluid_pipe.json index 3b646b920..a8a9a60dc 100644 --- a/src/generated/resources/assets/create/blockstates/fluid_pipe.json +++ b/src/generated/resources/assets/create/blockstates/fluid_pipe.json @@ -60,10 +60,10 @@ }, { "when": { - "down": "false", + "south": "false", "north": "true", - "up": "true", - "south": "false" + "down": "false", + "up": "true" }, "apply": { "model": "create:block/fluid_pipe/lu_x" @@ -71,10 +71,10 @@ }, { "when": { - "down": "false", + "south": "true", "north": "false", - "up": "true", - "south": "true" + "down": "false", + "up": "true" }, "apply": { "model": "create:block/fluid_pipe/ru_x" @@ -82,10 +82,10 @@ }, { "when": { - "down": "true", + "south": "false", "north": "true", - "up": "false", - "south": "false" + "down": "true", + "up": "false" }, "apply": { "model": "create:block/fluid_pipe/ld_x" @@ -93,10 +93,10 @@ }, { "when": { - "down": "true", + "south": "true", "north": "false", - "up": "false", - "south": "true" + "down": "true", + "up": "false" }, "apply": { "model": "create:block/fluid_pipe/rd_x" @@ -104,10 +104,10 @@ }, { "when": { + "south": "false", + "north": "false", "down": "true", - "north": "false", - "up": "true", - "south": "false" + "up": "true" }, "apply": { "model": "create:block/fluid_pipe/ud_x" @@ -115,10 +115,10 @@ }, { "when": { + "south": "false", + "north": "false", "down": "false", - "north": "false", - "up": "true", - "south": "false" + "up": "true" }, "apply": { "model": "create:block/fluid_pipe/ud_x" @@ -126,10 +126,10 @@ }, { "when": { + "south": "false", + "north": "false", "down": "true", - "north": "false", - "up": "false", - "south": "false" + "up": "false" }, "apply": { "model": "create:block/fluid_pipe/ud_x" @@ -137,10 +137,10 @@ }, { "when": { - "down": "false", + "south": "true", "north": "true", - "up": "false", - "south": "true" + "down": "false", + "up": "false" }, "apply": { "model": "create:block/fluid_pipe/lr_x" @@ -148,10 +148,10 @@ }, { "when": { - "down": "false", + "south": "false", "north": "true", - "up": "false", - "south": "false" + "down": "false", + "up": "false" }, "apply": { "model": "create:block/fluid_pipe/lr_x" @@ -159,10 +159,10 @@ }, { "when": { - "down": "false", + "south": "true", "north": "false", - "up": "false", - "south": "true" + "down": "false", + "up": "false" }, "apply": { "model": "create:block/fluid_pipe/lr_x" @@ -170,10 +170,10 @@ }, { "when": { - "down": "false", + "south": "false", "north": "false", - "up": "false", - "south": "false" + "down": "false", + "up": "false" }, "apply": { "model": "create:block/fluid_pipe/none_x" @@ -181,10 +181,10 @@ }, { "when": { + "south": "true", "west": "true", - "east": "false", "north": "false", - "south": "true" + "east": "false" }, "apply": { "model": "create:block/fluid_pipe/lu_y" @@ -192,10 +192,10 @@ }, { "when": { + "south": "true", "west": "false", - "east": "true", "north": "false", - "south": "true" + "east": "true" }, "apply": { "model": "create:block/fluid_pipe/ru_y" @@ -203,10 +203,10 @@ }, { "when": { + "south": "false", "west": "true", - "east": "false", "north": "true", - "south": "false" + "east": "false" }, "apply": { "model": "create:block/fluid_pipe/ld_y" @@ -214,10 +214,10 @@ }, { "when": { + "south": "false", "west": "false", - "east": "true", "north": "true", - "south": "false" + "east": "true" }, "apply": { "model": "create:block/fluid_pipe/rd_y" @@ -225,10 +225,10 @@ }, { "when": { + "south": "true", "west": "false", - "east": "false", "north": "true", - "south": "true" + "east": "false" }, "apply": { "model": "create:block/fluid_pipe/ud_y" @@ -236,10 +236,10 @@ }, { "when": { + "south": "true", "west": "false", - "east": "false", "north": "false", - "south": "true" + "east": "false" }, "apply": { "model": "create:block/fluid_pipe/ud_y" @@ -247,10 +247,10 @@ }, { "when": { + "south": "false", "west": "false", - "east": "false", "north": "true", - "south": "false" + "east": "false" }, "apply": { "model": "create:block/fluid_pipe/ud_y" @@ -258,10 +258,10 @@ }, { "when": { + "south": "false", "west": "true", - "east": "true", "north": "false", - "south": "false" + "east": "true" }, "apply": { "model": "create:block/fluid_pipe/lr_y" @@ -269,10 +269,10 @@ }, { "when": { + "south": "false", "west": "true", - "east": "false", "north": "false", - "south": "false" + "east": "false" }, "apply": { "model": "create:block/fluid_pipe/lr_y" @@ -280,10 +280,10 @@ }, { "when": { + "south": "false", "west": "false", - "east": "true", "north": "false", - "south": "false" + "east": "true" }, "apply": { "model": "create:block/fluid_pipe/lr_y" @@ -291,10 +291,10 @@ }, { "when": { + "south": "false", "west": "false", - "east": "false", "north": "false", - "south": "false" + "east": "false" }, "apply": { "model": "create:block/fluid_pipe/none_y" 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/blockstates/honey.json b/src/generated/resources/assets/create/blockstates/honey.json new file mode 100644 index 000000000..60b561e56 --- /dev/null +++ b/src/generated/resources/assets/create/blockstates/honey.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "create:block/honey" + } + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/create/blockstates/radial_chassis.json b/src/generated/resources/assets/create/blockstates/radial_chassis.json index 9d00ea8b1..899486339 100644 --- a/src/generated/resources/assets/create/blockstates/radial_chassis.json +++ b/src/generated/resources/assets/create/blockstates/radial_chassis.json @@ -89,8 +89,8 @@ }, { "when": { - "sticky_west": "true", - "axis": "x" + "axis": "x", + "sticky_west": "true" }, "apply": { "model": "create:block/radial_chassis_side_x_sticky", @@ -99,8 +99,8 @@ }, { "when": { - "sticky_west": "true", - "axis": "y" + "axis": "y", + "sticky_west": "true" }, "apply": { "model": "create:block/radial_chassis_side_y_sticky", @@ -109,8 +109,8 @@ }, { "when": { - "sticky_west": "true", - "axis": "z" + "axis": "z", + "sticky_west": "true" }, "apply": { "model": "create:block/radial_chassis_side_z_sticky", @@ -119,8 +119,8 @@ }, { "when": { - "sticky_west": "false", - "axis": "x" + "axis": "x", + "sticky_west": "false" }, "apply": { "model": "create:block/radial_chassis_side_x", @@ -129,8 +129,8 @@ }, { "when": { - "sticky_west": "false", - "axis": "y" + "axis": "y", + "sticky_west": "false" }, "apply": { "model": "create:block/radial_chassis_side_y", @@ -139,8 +139,8 @@ }, { "when": { - "sticky_west": "false", - "axis": "z" + "axis": "z", + "sticky_west": "false" }, "apply": { "model": "create:block/radial_chassis_side_z", @@ -149,8 +149,8 @@ }, { "when": { - "sticky_north": "true", - "axis": "x" + "axis": "x", + "sticky_north": "true" }, "apply": { "model": "create:block/radial_chassis_side_x_sticky" @@ -158,8 +158,8 @@ }, { "when": { - "sticky_north": "true", - "axis": "y" + "axis": "y", + "sticky_north": "true" }, "apply": { "model": "create:block/radial_chassis_side_y_sticky", @@ -168,8 +168,8 @@ }, { "when": { - "sticky_north": "true", - "axis": "z" + "axis": "z", + "sticky_north": "true" }, "apply": { "model": "create:block/radial_chassis_side_x_sticky", @@ -178,8 +178,8 @@ }, { "when": { - "sticky_north": "false", - "axis": "x" + "axis": "x", + "sticky_north": "false" }, "apply": { "model": "create:block/radial_chassis_side_x" @@ -187,8 +187,8 @@ }, { "when": { - "sticky_north": "false", - "axis": "y" + "axis": "y", + "sticky_north": "false" }, "apply": { "model": "create:block/radial_chassis_side_y", @@ -197,8 +197,8 @@ }, { "when": { - "sticky_north": "false", - "axis": "z" + "axis": "z", + "sticky_north": "false" }, "apply": { "model": "create:block/radial_chassis_side_x", diff --git a/src/generated/resources/assets/create/lang/en_ud.json b/src/generated/resources/assets/create/lang/en_ud.json index d85a1a98e..64fb4b653 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", @@ -45,6 +47,7 @@ "block.create.chiseled_limestone": "\u01DDuo\u0287s\u01DD\u026F\u0131\uA780 p\u01DD\u05DF\u01DDs\u0131\u0265\u0186", "block.create.chiseled_scoria": "\u0250\u0131\u0279o\u0254S p\u01DD\u05DF\u01DDs\u0131\u0265\u0186", "block.create.chiseled_weathered_limestone": "\u01DDuo\u0287s\u01DD\u026F\u0131\uA780 p\u01DD\u0279\u01DD\u0265\u0287\u0250\u01DDM p\u01DD\u05DF\u01DDs\u0131\u0265\u0186", + "block.create.chocolate": "\u01DD\u0287\u0250\u05DFo\u0254o\u0265\u0186", "block.create.chute": "\u01DD\u0287n\u0265\u0186", "block.create.clockwork_bearing": "bu\u0131\u0279\u0250\u01DD\u15FA \u029E\u0279o\u028D\u029E\u0254o\u05DF\u0186", "block.create.clutch": "\u0265\u0254\u0287n\u05DF\u0186", @@ -102,7 +105,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", @@ -175,6 +177,7 @@ "block.create.green_seat": "\u0287\u0250\u01DDS u\u01DD\u01DD\u0279\u2141", "block.create.green_valve_handle": "\u01DD\u05DFpu\u0250H \u01DD\u028C\u05DF\u0250\u039B u\u01DD\u01DD\u0279\u2141", "block.create.hand_crank": "\u029Eu\u0250\u0279\u0186 pu\u0250H", + "block.create.honey": "\u028E\u01DDuoH", "block.create.horizontal_framed_glass": "ss\u0250\u05DF\u2141 p\u01DD\u026F\u0250\u0279\u2132 \u05DF\u0250\u0287uoz\u0131\u0279oH", "block.create.horizontal_framed_glass_pane": "\u01DDu\u0250\u0500 ss\u0250\u05DF\u2141 p\u01DD\u026F\u0250\u0279\u2132 \u05DF\u0250\u0287uoz\u0131\u0279oH", "block.create.hose_pulley": "\u028E\u01DD\u05DF\u05DFn\u0500 \u01DDsoH", @@ -399,7 +402,11 @@ "entity.create.seat": "\u0287\u0250\u01DDS", "entity.create.stationary_contraption": "uo\u0131\u0287d\u0250\u0279\u0287uo\u0186 \u028E\u0279\u0250uo\u0131\u0287\u0250\u0287S", "entity.create.super_glue": "\u01DDn\u05DF\u2141 \u0279\u01DDdnS", - "fluid.create.flowing_potion": "uo\u0131\u0287o\u0500", + "fluid.create.chocolate": "\u01DD\u0287\u0250\u05DFo\u0254o\u0265\u0186", + "fluid.create.honey": "\u028E\u01DDuoH", + "fluid.create.milk": "\u029E\u05DF\u0131W", + "fluid.create.potion": "uo\u0131\u0287o\u0500", + "fluid.create.tea": "\u0250\u01DD\u27D8 s,\u0279\u01DDp\u05DF\u0131n\u15FA", "item.create.andesite_alloy": "\u028Eo\u05DF\u05DF\u2C6F \u01DD\u0287\u0131s\u01DDpu\u2C6F", "item.create.attribute_filter": "\u0279\u01DD\u0287\u05DF\u0131\u2132 \u01DD\u0287nq\u0131\u0279\u0287\u0287\u2C6F", "item.create.belt_connector": "\u0287\u05DF\u01DD\u15FA \u05DF\u0250\u0254\u0131u\u0250\u0265\u0254\u01DDW", @@ -409,6 +416,7 @@ "item.create.brass_nugget": "\u0287\u01DDbbnN ss\u0250\u0279\u15FA", "item.create.brass_sheet": "\u0287\u01DD\u01DD\u0265S ss\u0250\u0279\u15FA", "item.create.chest_minecart_contraption": "uo\u0131\u0287d\u0250\u0279\u0287uo\u0186 \u0287\u0279\u0250\u0254\u01DDu\u0131W \u0287s\u01DD\u0265\u0186", + "item.create.chocolate_bucket": "\u0287\u01DD\u029E\u0254n\u15FA \u01DD\u0287\u0250\u05DFo\u0254o\u0265\u0186", "item.create.chromatic_compound": "punod\u026Fo\u0186 \u0254\u0131\u0287\u0250\u026Fo\u0279\u0265\u0186", "item.create.cinder_flour": "\u0279no\u05DF\u2132 \u0279\u01DDpu\u0131\u0186", "item.create.copper_ingot": "\u0287obuI \u0279\u01DDddo\u0186", @@ -432,6 +440,7 @@ "item.create.golden_sheet": "\u0287\u01DD\u01DD\u0265S u\u01DDp\u05DFo\u2141", "item.create.handheld_blockzapper": "\u0279\u01DDdd\u0250z\u029E\u0254o\u05DF\u15FA p\u05DF\u01DD\u0265pu\u0250H", "item.create.handheld_worldshaper": "\u0279\u01DDd\u0250\u0265sp\u05DF\u0279oM p\u05DF\u01DD\u0265pu\u0250H", + "item.create.honey_bucket": "\u0287\u01DD\u029E\u0254n\u15FA \u028E\u01DDuoH", "item.create.integrated_circuit": "\u0287\u0131n\u0254\u0279\u0131\u0186 p\u01DD\u0287\u0250\u0279b\u01DD\u0287uI", "item.create.iron_sheet": "\u0287\u01DD\u01DD\u0265S uo\u0279I", "item.create.lapis_sheet": "\u0287\u01DD\u01DD\u0265S s\u0131d\u0250\uA780", diff --git a/src/generated/resources/assets/create/lang/en_us.json b/src/generated/resources/assets/create/lang/en_us.json index a9adc88ed..596416921 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", @@ -48,6 +50,7 @@ "block.create.chiseled_limestone": "Chiseled Limestone", "block.create.chiseled_scoria": "Chiseled Scoria", "block.create.chiseled_weathered_limestone": "Chiseled Weathered Limestone", + "block.create.chocolate": "Chocolate", "block.create.chute": "Chute", "block.create.clockwork_bearing": "Clockwork Bearing", "block.create.clutch": "Clutch", @@ -105,7 +108,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", @@ -178,6 +180,7 @@ "block.create.green_seat": "Green Seat", "block.create.green_valve_handle": "Green Valve Handle", "block.create.hand_crank": "Hand Crank", + "block.create.honey": "Honey", "block.create.horizontal_framed_glass": "Horizontal Framed Glass", "block.create.horizontal_framed_glass_pane": "Horizontal Framed Glass Pane", "block.create.hose_pulley": "Hose Pulley", @@ -404,7 +407,11 @@ "entity.create.stationary_contraption": "Stationary Contraption", "entity.create.super_glue": "Super Glue", - "fluid.create.flowing_potion": "Potion", + "fluid.create.chocolate": "Chocolate", + "fluid.create.honey": "Honey", + "fluid.create.milk": "Milk", + "fluid.create.potion": "Potion", + "fluid.create.tea": "Builder's Tea", "item.create.andesite_alloy": "Andesite Alloy", "item.create.attribute_filter": "Attribute Filter", @@ -415,6 +422,7 @@ "item.create.brass_nugget": "Brass Nugget", "item.create.brass_sheet": "Brass Sheet", "item.create.chest_minecart_contraption": "Chest Minecart Contraption", + "item.create.chocolate_bucket": "Chocolate Bucket", "item.create.chromatic_compound": "Chromatic Compound", "item.create.cinder_flour": "Cinder Flour", "item.create.copper_ingot": "Copper Ingot", @@ -438,6 +446,7 @@ "item.create.golden_sheet": "Golden Sheet", "item.create.handheld_blockzapper": "Handheld Blockzapper", "item.create.handheld_worldshaper": "Handheld Worldshaper", + "item.create.honey_bucket": "Honey Bucket", "item.create.integrated_circuit": "Integrated Circuit", "item.create.iron_sheet": "Iron Sheet", "item.create.lapis_sheet": "Lapis Sheet", 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..3aa4db383 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: 1062", "_": "->------------------------] 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", @@ -49,6 +51,7 @@ "block.create.chiseled_limestone": "UNLOCALIZED: Chiseled Limestone", "block.create.chiseled_scoria": "UNLOCALIZED: Chiseled Scoria", "block.create.chiseled_weathered_limestone": "UNLOCALIZED: Chiseled Weathered Limestone", + "block.create.chocolate": "UNLOCALIZED: Chocolate", "block.create.chute": "UNLOCALIZED: Chute", "block.create.clockwork_bearing": "UNLOCALIZED: Clockwork Bearing", "block.create.clutch": "Kupplung", @@ -106,7 +109,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", @@ -179,6 +181,7 @@ "block.create.green_seat": "UNLOCALIZED: Green Seat", "block.create.green_valve_handle": "UNLOCALIZED: Green Valve Handle", "block.create.hand_crank": "UNLOCALIZED: Hand Crank", + "block.create.honey": "UNLOCALIZED: Honey", "block.create.horizontal_framed_glass": "UNLOCALIZED: Horizontal Framed Glass", "block.create.horizontal_framed_glass_pane": "UNLOCALIZED: Horizontal Framed Glass Pane", "block.create.hose_pulley": "UNLOCALIZED: Hose Pulley", @@ -405,7 +408,11 @@ "entity.create.stationary_contraption": "UNLOCALIZED: Stationary Contraption", "entity.create.super_glue": "UNLOCALIZED: Super Glue", - "fluid.create.flowing_potion": "UNLOCALIZED: Potion", + "fluid.create.chocolate": "UNLOCALIZED: Chocolate", + "fluid.create.honey": "UNLOCALIZED: Honey", + "fluid.create.milk": "UNLOCALIZED: Milk", + "fluid.create.potion": "UNLOCALIZED: Potion", + "fluid.create.tea": "UNLOCALIZED: Builder's Tea", "item.create.andesite_alloy": "UNLOCALIZED: Andesite Alloy", "item.create.attribute_filter": "UNLOCALIZED: Attribute Filter", @@ -416,6 +423,7 @@ "item.create.brass_nugget": "UNLOCALIZED: Brass Nugget", "item.create.brass_sheet": "UNLOCALIZED: Brass Sheet", "item.create.chest_minecart_contraption": "UNLOCALIZED: Chest Minecart Contraption", + "item.create.chocolate_bucket": "UNLOCALIZED: Chocolate Bucket", "item.create.chromatic_compound": "UNLOCALIZED: Chromatic Compound", "item.create.cinder_flour": "UNLOCALIZED: Cinder Flour", "item.create.copper_ingot": "UNLOCALIZED: Copper Ingot", @@ -439,6 +447,7 @@ "item.create.golden_sheet": "UNLOCALIZED: Golden Sheet", "item.create.handheld_blockzapper": "Blockpistole", "item.create.handheld_worldshaper": "UNLOCALIZED: Handheld Worldshaper", + "item.create.honey_bucket": "UNLOCALIZED: Honey Bucket", "item.create.integrated_circuit": "UNLOCALIZED: Integrated Circuit", "item.create.iron_sheet": "Eisenblech", "item.create.lapis_sheet": "UNLOCALIZED: Lapis Sheet", 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..b917b0a65 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: 692", "_": "->------------------------] 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", @@ -49,6 +51,7 @@ "block.create.chiseled_limestone": "UNLOCALIZED: Chiseled Limestone", "block.create.chiseled_scoria": "UNLOCALIZED: Chiseled Scoria", "block.create.chiseled_weathered_limestone": "UNLOCALIZED: Chiseled Weathered Limestone", + "block.create.chocolate": "UNLOCALIZED: Chocolate", "block.create.chute": "UNLOCALIZED: Chute", "block.create.clockwork_bearing": "Roulement mécanique horloger", "block.create.clutch": "Embrayage", @@ -106,7 +109,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", @@ -179,6 +181,7 @@ "block.create.green_seat": "UNLOCALIZED: Green Seat", "block.create.green_valve_handle": "UNLOCALIZED: Green Valve Handle", "block.create.hand_crank": "Manivelle", + "block.create.honey": "UNLOCALIZED: Honey", "block.create.horizontal_framed_glass": "Fenêtre en verre horizontale", "block.create.horizontal_framed_glass_pane": "Vitre encadrée horizontale", "block.create.hose_pulley": "UNLOCALIZED: Hose Pulley", @@ -405,7 +408,11 @@ "entity.create.stationary_contraption": "UNLOCALIZED: Stationary Contraption", "entity.create.super_glue": "UNLOCALIZED: Super Glue", - "fluid.create.flowing_potion": "UNLOCALIZED: Potion", + "fluid.create.chocolate": "UNLOCALIZED: Chocolate", + "fluid.create.honey": "UNLOCALIZED: Honey", + "fluid.create.milk": "UNLOCALIZED: Milk", + "fluid.create.potion": "UNLOCALIZED: Potion", + "fluid.create.tea": "UNLOCALIZED: Builder's Tea", "item.create.andesite_alloy": "Alliage d'andésite", "item.create.attribute_filter": "Filtre d'attribut", @@ -416,6 +423,7 @@ "item.create.brass_nugget": "Pépite de laiton", "item.create.brass_sheet": "Plaques de laiton", "item.create.chest_minecart_contraption": "UNLOCALIZED: Chest Minecart Contraption", + "item.create.chocolate_bucket": "UNLOCALIZED: Chocolate Bucket", "item.create.chromatic_compound": "Composé chromatique", "item.create.cinder_flour": "UNLOCALIZED: Cinder Flour", "item.create.copper_ingot": "Lingot de cuivre", @@ -439,6 +447,7 @@ "item.create.golden_sheet": "UNLOCALIZED: Golden Sheet", "item.create.handheld_blockzapper": "Blockzappeur portable", "item.create.handheld_worldshaper": "Térraformeur portable", + "item.create.honey_bucket": "UNLOCALIZED: Honey Bucket", "item.create.integrated_circuit": "Circuit intégré", "item.create.iron_sheet": "Plaque de Fer", "item.create.lapis_sheet": "UNLOCALIZED: Lapis Sheet", 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..bc568f600 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: 676", "_": "->------------------------] 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", @@ -49,6 +51,7 @@ "block.create.chiseled_limestone": "UNLOCALIZED: Chiseled Limestone", "block.create.chiseled_scoria": "UNLOCALIZED: Chiseled Scoria", "block.create.chiseled_weathered_limestone": "UNLOCALIZED: Chiseled Weathered Limestone", + "block.create.chocolate": "UNLOCALIZED: Chocolate", "block.create.chute": "UNLOCALIZED: Chute", "block.create.clockwork_bearing": "Supporto del Orologio", "block.create.clutch": "Frizione", @@ -106,7 +109,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", @@ -179,6 +181,7 @@ "block.create.green_seat": "UNLOCALIZED: Green Seat", "block.create.green_valve_handle": "UNLOCALIZED: Green Valve Handle", "block.create.hand_crank": "Manovella", + "block.create.honey": "UNLOCALIZED: Honey", "block.create.horizontal_framed_glass": "Finestra Orizzontale Vetro", "block.create.horizontal_framed_glass_pane": "Pannello di Finestra Orizzontale Vetro", "block.create.hose_pulley": "UNLOCALIZED: Hose Pulley", @@ -405,7 +408,11 @@ "entity.create.stationary_contraption": "UNLOCALIZED: Stationary Contraption", "entity.create.super_glue": "UNLOCALIZED: Super Glue", - "fluid.create.flowing_potion": "UNLOCALIZED: Potion", + "fluid.create.chocolate": "UNLOCALIZED: Chocolate", + "fluid.create.honey": "UNLOCALIZED: Honey", + "fluid.create.milk": "UNLOCALIZED: Milk", + "fluid.create.potion": "UNLOCALIZED: Potion", + "fluid.create.tea": "UNLOCALIZED: Builder's Tea", "item.create.andesite_alloy": "Lega di Andesite", "item.create.attribute_filter": "Filtro Attributi", @@ -416,6 +423,7 @@ "item.create.brass_nugget": "Pepita di Ottone", "item.create.brass_sheet": "Lamiera di Ottone", "item.create.chest_minecart_contraption": "UNLOCALIZED: Chest Minecart Contraption", + "item.create.chocolate_bucket": "UNLOCALIZED: Chocolate Bucket", "item.create.chromatic_compound": "Composto Cromatico", "item.create.cinder_flour": "UNLOCALIZED: Cinder Flour", "item.create.copper_ingot": "Lingotto di Rame", @@ -439,6 +447,7 @@ "item.create.golden_sheet": "UNLOCALIZED: Golden Sheet", "item.create.handheld_blockzapper": "Zapper di Blocchi Portatile", "item.create.handheld_worldshaper": "Plasmatore del Mondo Portatile", + "item.create.honey_bucket": "UNLOCALIZED: Honey Bucket", "item.create.integrated_circuit": "Circuito Integrato", "item.create.iron_sheet": "Lamiera di Ferro", "item.create.lapis_sheet": "UNLOCALIZED: Lapis Sheet", 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..1bd589dcf 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: 675", "_": "->------------------------] 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", @@ -49,6 +51,7 @@ "block.create.chiseled_limestone": "UNLOCALIZED: Chiseled Limestone", "block.create.chiseled_scoria": "UNLOCALIZED: Chiseled Scoria", "block.create.chiseled_weathered_limestone": "UNLOCALIZED: Chiseled Weathered Limestone", + "block.create.chocolate": "UNLOCALIZED: Chocolate", "block.create.chute": "UNLOCALIZED: Chute", "block.create.clockwork_bearing": "時計仕掛けのベアリング", "block.create.clutch": "クラッチ", @@ -106,7 +109,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", @@ -179,6 +181,7 @@ "block.create.green_seat": "UNLOCALIZED: Green Seat", "block.create.green_valve_handle": "UNLOCALIZED: Green Valve Handle", "block.create.hand_crank": "ハンドクランク", + "block.create.honey": "UNLOCALIZED: Honey", "block.create.horizontal_framed_glass": "横型ガラス窓", "block.create.horizontal_framed_glass_pane": "横型ガラス窓板", "block.create.hose_pulley": "UNLOCALIZED: Hose Pulley", @@ -405,7 +408,11 @@ "entity.create.stationary_contraption": "UNLOCALIZED: Stationary Contraption", "entity.create.super_glue": "UNLOCALIZED: Super Glue", - "fluid.create.flowing_potion": "UNLOCALIZED: Potion", + "fluid.create.chocolate": "UNLOCALIZED: Chocolate", + "fluid.create.honey": "UNLOCALIZED: Honey", + "fluid.create.milk": "UNLOCALIZED: Milk", + "fluid.create.potion": "UNLOCALIZED: Potion", + "fluid.create.tea": "UNLOCALIZED: Builder's Tea", "item.create.andesite_alloy": "安山岩合金", "item.create.attribute_filter": "属性フィルター", @@ -416,6 +423,7 @@ "item.create.brass_nugget": "真鍮ナゲット", "item.create.brass_sheet": "真鍮シート", "item.create.chest_minecart_contraption": "UNLOCALIZED: Chest Minecart Contraption", + "item.create.chocolate_bucket": "UNLOCALIZED: Chocolate Bucket", "item.create.chromatic_compound": "色彩の化合物", "item.create.cinder_flour": "UNLOCALIZED: Cinder Flour", "item.create.copper_ingot": "銅インゴット", @@ -439,6 +447,7 @@ "item.create.golden_sheet": "UNLOCALIZED: Golden Sheet", "item.create.handheld_blockzapper": "携帯型ブロックザッパー", "item.create.handheld_worldshaper": "携帯型ワールドシェイパー", + "item.create.honey_bucket": "UNLOCALIZED: Honey Bucket", "item.create.integrated_circuit": "集積回路", "item.create.iron_sheet": "鉄板", "item.create.lapis_sheet": "UNLOCALIZED: Lapis Sheet", 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..948863b94 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: 676", "_": "->------------------------] 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", @@ -49,6 +51,7 @@ "block.create.chiseled_limestone": "UNLOCALIZED: Chiseled Limestone", "block.create.chiseled_scoria": "UNLOCALIZED: Chiseled Scoria", "block.create.chiseled_weathered_limestone": "UNLOCALIZED: Chiseled Weathered Limestone", + "block.create.chocolate": "UNLOCALIZED: Chocolate", "block.create.chute": "UNLOCALIZED: Chute", "block.create.clockwork_bearing": "시계 베어링", "block.create.clutch": "클러치", @@ -106,7 +109,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", @@ -179,6 +181,7 @@ "block.create.green_seat": "UNLOCALIZED: Green Seat", "block.create.green_valve_handle": "UNLOCALIZED: Green Valve Handle", "block.create.hand_crank": "핸드 크랭크", + "block.create.honey": "UNLOCALIZED: Honey", "block.create.horizontal_framed_glass": "수평 유리", "block.create.horizontal_framed_glass_pane": "수평 유리판", "block.create.hose_pulley": "UNLOCALIZED: Hose Pulley", @@ -405,7 +408,11 @@ "entity.create.stationary_contraption": "UNLOCALIZED: Stationary Contraption", "entity.create.super_glue": "UNLOCALIZED: Super Glue", - "fluid.create.flowing_potion": "UNLOCALIZED: Potion", + "fluid.create.chocolate": "UNLOCALIZED: Chocolate", + "fluid.create.honey": "UNLOCALIZED: Honey", + "fluid.create.milk": "UNLOCALIZED: Milk", + "fluid.create.potion": "UNLOCALIZED: Potion", + "fluid.create.tea": "UNLOCALIZED: Builder's Tea", "item.create.andesite_alloy": "안산암 합금", "item.create.attribute_filter": "속성 필터 틀", @@ -416,6 +423,7 @@ "item.create.brass_nugget": "황동 조각", "item.create.brass_sheet": "황동 판", "item.create.chest_minecart_contraption": "UNLOCALIZED: Chest Minecart Contraption", + "item.create.chocolate_bucket": "UNLOCALIZED: Chocolate Bucket", "item.create.chromatic_compound": "색채 혼합물", "item.create.cinder_flour": "UNLOCALIZED: Cinder Flour", "item.create.copper_ingot": "구리 주괴", @@ -439,6 +447,7 @@ "item.create.golden_sheet": "UNLOCALIZED: Golden Sheet", "item.create.handheld_blockzapper": "휴대용 블럭발사기", "item.create.handheld_worldshaper": "휴대용 세계편집기", + "item.create.honey_bucket": "UNLOCALIZED: Honey Bucket", "item.create.integrated_circuit": "집적 회로", "item.create.iron_sheet": "철 판", "item.create.lapis_sheet": "UNLOCALIZED: Lapis Sheet", 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..a2947c95f 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: 1003", "_": "->------------------------] 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", @@ -49,6 +51,7 @@ "block.create.chiseled_limestone": "UNLOCALIZED: Chiseled Limestone", "block.create.chiseled_scoria": "UNLOCALIZED: Chiseled Scoria", "block.create.chiseled_weathered_limestone": "UNLOCALIZED: Chiseled Weathered Limestone", + "block.create.chocolate": "UNLOCALIZED: Chocolate", "block.create.chute": "UNLOCALIZED: Chute", "block.create.clockwork_bearing": "UNLOCALIZED: Clockwork Bearing", "block.create.clutch": "Koppeling", @@ -106,7 +109,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", @@ -179,6 +181,7 @@ "block.create.green_seat": "UNLOCALIZED: Green Seat", "block.create.green_valve_handle": "UNLOCALIZED: Green Valve Handle", "block.create.hand_crank": "UNLOCALIZED: Hand Crank", + "block.create.honey": "UNLOCALIZED: Honey", "block.create.horizontal_framed_glass": "UNLOCALIZED: Horizontal Framed Glass", "block.create.horizontal_framed_glass_pane": "UNLOCALIZED: Horizontal Framed Glass Pane", "block.create.hose_pulley": "UNLOCALIZED: Hose Pulley", @@ -405,7 +408,11 @@ "entity.create.stationary_contraption": "UNLOCALIZED: Stationary Contraption", "entity.create.super_glue": "UNLOCALIZED: Super Glue", - "fluid.create.flowing_potion": "UNLOCALIZED: Potion", + "fluid.create.chocolate": "UNLOCALIZED: Chocolate", + "fluid.create.honey": "UNLOCALIZED: Honey", + "fluid.create.milk": "UNLOCALIZED: Milk", + "fluid.create.potion": "UNLOCALIZED: Potion", + "fluid.create.tea": "UNLOCALIZED: Builder's Tea", "item.create.andesite_alloy": "UNLOCALIZED: Andesite Alloy", "item.create.attribute_filter": "UNLOCALIZED: Attribute Filter", @@ -416,6 +423,7 @@ "item.create.brass_nugget": "Brons klompje", "item.create.brass_sheet": "Brons Platen", "item.create.chest_minecart_contraption": "UNLOCALIZED: Chest Minecart Contraption", + "item.create.chocolate_bucket": "UNLOCALIZED: Chocolate Bucket", "item.create.chromatic_compound": "UNLOCALIZED: Chromatic Compound", "item.create.cinder_flour": "UNLOCALIZED: Cinder Flour", "item.create.copper_ingot": "Koperstaaf", @@ -439,6 +447,7 @@ "item.create.golden_sheet": "UNLOCALIZED: Golden Sheet", "item.create.handheld_blockzapper": "Blokzapper", "item.create.handheld_worldshaper": "UNLOCALIZED: Handheld Worldshaper", + "item.create.honey_bucket": "UNLOCALIZED: Honey Bucket", "item.create.integrated_circuit": "UNLOCALIZED: Integrated Circuit", "item.create.iron_sheet": "IJzeren Platen", "item.create.lapis_sheet": "UNLOCALIZED: Lapis Sheet", 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..09e5c71e8 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: 1069", "_": "->------------------------] 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", @@ -49,6 +51,7 @@ "block.create.chiseled_limestone": "UNLOCALIZED: Chiseled Limestone", "block.create.chiseled_scoria": "UNLOCALIZED: Chiseled Scoria", "block.create.chiseled_weathered_limestone": "UNLOCALIZED: Chiseled Weathered Limestone", + "block.create.chocolate": "UNLOCALIZED: Chocolate", "block.create.chute": "UNLOCALIZED: Chute", "block.create.clockwork_bearing": "UNLOCALIZED: Clockwork Bearing", "block.create.clutch": "Embreagem", @@ -106,7 +109,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", @@ -179,6 +181,7 @@ "block.create.green_seat": "UNLOCALIZED: Green Seat", "block.create.green_valve_handle": "UNLOCALIZED: Green Valve Handle", "block.create.hand_crank": "UNLOCALIZED: Hand Crank", + "block.create.honey": "UNLOCALIZED: Honey", "block.create.horizontal_framed_glass": "UNLOCALIZED: Horizontal Framed Glass", "block.create.horizontal_framed_glass_pane": "UNLOCALIZED: Horizontal Framed Glass Pane", "block.create.hose_pulley": "UNLOCALIZED: Hose Pulley", @@ -405,7 +408,11 @@ "entity.create.stationary_contraption": "UNLOCALIZED: Stationary Contraption", "entity.create.super_glue": "UNLOCALIZED: Super Glue", - "fluid.create.flowing_potion": "UNLOCALIZED: Potion", + "fluid.create.chocolate": "UNLOCALIZED: Chocolate", + "fluid.create.honey": "UNLOCALIZED: Honey", + "fluid.create.milk": "UNLOCALIZED: Milk", + "fluid.create.potion": "UNLOCALIZED: Potion", + "fluid.create.tea": "UNLOCALIZED: Builder's Tea", "item.create.andesite_alloy": "UNLOCALIZED: Andesite Alloy", "item.create.attribute_filter": "UNLOCALIZED: Attribute Filter", @@ -416,6 +423,7 @@ "item.create.brass_nugget": "UNLOCALIZED: Brass Nugget", "item.create.brass_sheet": "UNLOCALIZED: Brass Sheet", "item.create.chest_minecart_contraption": "UNLOCALIZED: Chest Minecart Contraption", + "item.create.chocolate_bucket": "UNLOCALIZED: Chocolate Bucket", "item.create.chromatic_compound": "UNLOCALIZED: Chromatic Compound", "item.create.cinder_flour": "UNLOCALIZED: Cinder Flour", "item.create.copper_ingot": "UNLOCALIZED: Copper Ingot", @@ -439,6 +447,7 @@ "item.create.golden_sheet": "UNLOCALIZED: Golden Sheet", "item.create.handheld_blockzapper": "Blockzapper Portátil", "item.create.handheld_worldshaper": "UNLOCALIZED: Handheld Worldshaper", + "item.create.honey_bucket": "UNLOCALIZED: Honey Bucket", "item.create.integrated_circuit": "UNLOCALIZED: Integrated Circuit", "item.create.iron_sheet": "Placas de Ferro", "item.create.lapis_sheet": "UNLOCALIZED: Lapis Sheet", 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..d785a1d7a 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: 345", "_": "->------------------------] 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", @@ -49,6 +51,7 @@ "block.create.chiseled_limestone": "Резной известняк", "block.create.chiseled_scoria": "Резной пепел", "block.create.chiseled_weathered_limestone": "Выветренный резной известняк", + "block.create.chocolate": "UNLOCALIZED: Chocolate", "block.create.chute": "UNLOCALIZED: Chute", "block.create.clockwork_bearing": "Часовой механизм", "block.create.clutch": "Сцепление", @@ -106,7 +109,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": "Ступени из красивого андезитового кирпича", @@ -179,6 +181,7 @@ "block.create.green_seat": "UNLOCALIZED: Green Seat", "block.create.green_valve_handle": "UNLOCALIZED: Green Valve Handle", "block.create.hand_crank": "Рукоятка", + "block.create.honey": "UNLOCALIZED: Honey", "block.create.horizontal_framed_glass": "Горизонтальное обрамлённое стекло", "block.create.horizontal_framed_glass_pane": "Горизонтальная обрамлённая стеклянная панель", "block.create.hose_pulley": "UNLOCALIZED: Hose Pulley", @@ -405,7 +408,11 @@ "entity.create.stationary_contraption": "Стационарная штуковина", "entity.create.super_glue": "Супер клей", - "fluid.create.flowing_potion": "UNLOCALIZED: Potion", + "fluid.create.chocolate": "UNLOCALIZED: Chocolate", + "fluid.create.honey": "UNLOCALIZED: Honey", + "fluid.create.milk": "UNLOCALIZED: Milk", + "fluid.create.potion": "UNLOCALIZED: Potion", + "fluid.create.tea": "UNLOCALIZED: Builder's Tea", "item.create.andesite_alloy": "Андезитовый сплав", "item.create.attribute_filter": "Фильтр атрибутов", @@ -416,6 +423,7 @@ "item.create.brass_nugget": "Кусочек латуни", "item.create.brass_sheet": "Латунный лист", "item.create.chest_minecart_contraption": "UNLOCALIZED: Chest Minecart Contraption", + "item.create.chocolate_bucket": "UNLOCALIZED: Chocolate Bucket", "item.create.chromatic_compound": "Хроматический компаунд", "item.create.cinder_flour": "UNLOCALIZED: Cinder Flour", "item.create.copper_ingot": "Медный слиток", @@ -439,6 +447,7 @@ "item.create.golden_sheet": "Золотой лист", "item.create.handheld_blockzapper": "Ручная блоковая пушка", "item.create.handheld_worldshaper": "Ручной редактор мира", + "item.create.honey_bucket": "UNLOCALIZED: Honey Bucket", "item.create.integrated_circuit": "Интегральная схема", "item.create.iron_sheet": "Железный лист", "item.create.lapis_sheet": "Лазуритовый лист", 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..d4fc955fa 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: 358", "_": "->------------------------] 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", @@ -49,6 +51,7 @@ "block.create.chiseled_limestone": "錾制石灰岩", "block.create.chiseled_scoria": "錾制熔渣", "block.create.chiseled_weathered_limestone": "錾制风化石灰岩", + "block.create.chocolate": "UNLOCALIZED: Chocolate", "block.create.chute": "UNLOCALIZED: Chute", "block.create.clockwork_bearing": "时钟轴承", "block.create.clutch": "离合器", @@ -106,7 +109,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": "方纹安山岩砖楼梯", @@ -179,6 +181,7 @@ "block.create.green_seat": "UNLOCALIZED: Green Seat", "block.create.green_valve_handle": "UNLOCALIZED: Green Valve Handle", "block.create.hand_crank": "手摇曲柄", + "block.create.honey": "UNLOCALIZED: Honey", "block.create.horizontal_framed_glass": "竖直边框玻璃", "block.create.horizontal_framed_glass_pane": "竖直边框玻璃板", "block.create.hose_pulley": "UNLOCALIZED: Hose Pulley", @@ -405,7 +408,11 @@ "entity.create.stationary_contraption": "固定结构", "entity.create.super_glue": "强力胶", - "fluid.create.flowing_potion": "UNLOCALIZED: Potion", + "fluid.create.chocolate": "UNLOCALIZED: Chocolate", + "fluid.create.honey": "UNLOCALIZED: Honey", + "fluid.create.milk": "UNLOCALIZED: Milk", + "fluid.create.potion": "UNLOCALIZED: Potion", + "fluid.create.tea": "UNLOCALIZED: Builder's Tea", "item.create.andesite_alloy": "安山合金", "item.create.attribute_filter": "属性过滤器", @@ -416,6 +423,7 @@ "item.create.brass_nugget": "黄铜粒", "item.create.brass_sheet": "黄铜板", "item.create.chest_minecart_contraption": "UNLOCALIZED: Chest Minecart Contraption", + "item.create.chocolate_bucket": "UNLOCALIZED: Chocolate Bucket", "item.create.chromatic_compound": "异彩化合物", "item.create.cinder_flour": "UNLOCALIZED: Cinder Flour", "item.create.copper_ingot": "铜锭", @@ -439,6 +447,7 @@ "item.create.golden_sheet": "金板", "item.create.handheld_blockzapper": "手持式方块放置器", "item.create.handheld_worldshaper": "手持式环境塑形器", + "item.create.honey_bucket": "UNLOCALIZED: Honey Bucket", "item.create.integrated_circuit": "集成电路板", "item.create.iron_sheet": "铁板", "item.create.lapis_sheet": "青金石板", diff --git a/src/generated/resources/assets/create/models/block/chocolate.json b/src/generated/resources/assets/create/models/block/chocolate.json new file mode 100644 index 000000000..1baf010f2 --- /dev/null +++ b/src/generated/resources/assets/create/models/block/chocolate.json @@ -0,0 +1,5 @@ +{ + "textures": { + "particle": "create:fluid/chocolate_still" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/create/models/block/encased_fluid_pipe.json b/src/generated/resources/assets/create/models/block/encased_fluid_pipe.json deleted file mode 100644 index a8aad1994..000000000 --- a/src/generated/resources/assets/create/models/block/encased_fluid_pipe.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "parent": "block/cube_column", - "textures": { - "side": "create:block/copper_casing", - "end": "create:block/encased_pipe" - } -} \ No newline at end of file diff --git a/src/generated/resources/assets/create/models/block/honey.json b/src/generated/resources/assets/create/models/block/honey.json new file mode 100644 index 000000000..262271bb6 --- /dev/null +++ b/src/generated/resources/assets/create/models/block/honey.json @@ -0,0 +1,5 @@ +{ + "textures": { + "particle": "block/honey_block_top" + } +} \ No newline at end of file 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/assets/create/models/item/chocolate_bucket.json b/src/generated/resources/assets/create/models/item/chocolate_bucket.json new file mode 100644 index 000000000..66dd557ec --- /dev/null +++ b/src/generated/resources/assets/create/models/item/chocolate_bucket.json @@ -0,0 +1,6 @@ +{ + "parent": "item/generated", + "textures": { + "layer0": "create:item/chocolate_bucket" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/create/models/item/honey_bucket.json b/src/generated/resources/assets/create/models/item/honey_bucket.json new file mode 100644 index 000000000..f4a500afb --- /dev/null +++ b/src/generated/resources/assets/create/models/item/honey_bucket.json @@ -0,0 +1,6 @@ +{ + "parent": "item/generated", + "textures": { + "layer0": "create:item/honey_bucket" + } +} \ 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/generated/resources/data/create/recipes/emptying/honey_bottle.json b/src/generated/resources/data/create/recipes/emptying/honey_bottle.json new file mode 100644 index 000000000..de62bb4a3 --- /dev/null +++ b/src/generated/resources/data/create/recipes/emptying/honey_bottle.json @@ -0,0 +1,17 @@ +{ + "type": "create:emptying", + "ingredients": [ + { + "item": "minecraft:honey_bottle" + } + ], + "results": [ + { + "item": "minecraft:glass_bottle" + }, + { + "fluid": "create:honey", + "amount": 250 + } + ] +} \ No newline at end of file diff --git a/src/generated/resources/data/create/recipes/emptying/milk_bucket.json b/src/generated/resources/data/create/recipes/emptying/milk_bucket.json new file mode 100644 index 000000000..be95f4c33 --- /dev/null +++ b/src/generated/resources/data/create/recipes/emptying/milk_bucket.json @@ -0,0 +1,17 @@ +{ + "type": "create:emptying", + "ingredients": [ + { + "item": "minecraft:milk_bucket" + } + ], + "results": [ + { + "item": "minecraft:bucket" + }, + { + "fluid": "create:milk", + "amount": 1000 + } + ] +} \ No newline at end of file diff --git a/src/generated/resources/data/create/recipes/filling/honey_bottle.json b/src/generated/resources/data/create/recipes/filling/honey_bottle.json new file mode 100644 index 000000000..dd1f62eb2 --- /dev/null +++ b/src/generated/resources/data/create/recipes/filling/honey_bottle.json @@ -0,0 +1,17 @@ +{ + "type": "create:filling", + "ingredients": [ + { + "item": "minecraft:glass_bottle" + }, + { + "fluidTag": "forge:honey", + "amount": 250 + } + ], + "results": [ + { + "item": "minecraft:honey_bottle" + } + ] +} \ No newline at end of file diff --git a/src/generated/resources/data/create/recipes/filling/milk_bucket.json b/src/generated/resources/data/create/recipes/filling/milk_bucket.json new file mode 100644 index 000000000..ab968ec8d --- /dev/null +++ b/src/generated/resources/data/create/recipes/filling/milk_bucket.json @@ -0,0 +1,17 @@ +{ + "type": "create:filling", + "ingredients": [ + { + "item": "minecraft:bucket" + }, + { + "fluidTag": "forge:milk", + "amount": 1000 + } + ], + "results": [ + { + "item": "minecraft:milk_bucket" + } + ] +} \ No newline at end of file diff --git a/src/generated/resources/data/create/recipes/mixing/chocolate.json b/src/generated/resources/data/create/recipes/mixing/chocolate.json new file mode 100644 index 000000000..e15f7307d --- /dev/null +++ b/src/generated/resources/data/create/recipes/mixing/chocolate.json @@ -0,0 +1,22 @@ +{ + "type": "create:mixing", + "ingredients": [ + { + "item": "minecraft:sugar" + }, + { + "item": "minecraft:cocoa_beans" + }, + { + "fluidTag": "forge:milk", + "amount": 250 + } + ], + "results": [ + { + "fluid": "create:chocolate", + "amount": 250 + } + ], + "heatRequirement": "heated" +} \ No newline at end of file diff --git a/src/generated/resources/data/create/recipes/mixing/tea.json b/src/generated/resources/data/create/recipes/mixing/tea.json new file mode 100644 index 000000000..40ccbf50a --- /dev/null +++ b/src/generated/resources/data/create/recipes/mixing/tea.json @@ -0,0 +1,24 @@ +{ + "type": "create:mixing", + "ingredients": [ + { + "tag": "minecraft:leaves" + }, + { + "fluid": "minecraft:water", + "nbt": {}, + "amount": 250 + }, + { + "fluidTag": "forge:milk", + "amount": 250 + } + ], + "results": [ + { + "fluid": "create:tea", + "amount": 500 + } + ], + "heatRequirement": "heated" +} \ No newline at end of file diff --git a/src/generated/resources/data/forge/tags/fluids/honey.json b/src/generated/resources/data/forge/tags/fluids/honey.json new file mode 100644 index 000000000..6fab599f2 --- /dev/null +++ b/src/generated/resources/data/forge/tags/fluids/honey.json @@ -0,0 +1,7 @@ +{ + "replace": false, + "values": [ + "create:flowing_honey", + "create:honey" + ] +} \ No newline at end of file diff --git a/src/generated/resources/data/forge/tags/fluids/milk.json b/src/generated/resources/data/forge/tags/fluids/milk.json new file mode 100644 index 000000000..6860027e8 --- /dev/null +++ b/src/generated/resources/data/forge/tags/fluids/milk.json @@ -0,0 +1,7 @@ +{ + "replace": false, + "values": [ + "create:flowing_milk", + "create:milk" + ] +} \ No newline at end of file diff --git a/src/generated/resources/data/minecraft/tags/fluids/water.json b/src/generated/resources/data/minecraft/tags/fluids/water.json new file mode 100644 index 000000000..01d633e97 --- /dev/null +++ b/src/generated/resources/data/minecraft/tags/fluids/water.json @@ -0,0 +1,9 @@ +{ + "replace": false, + "values": [ + "create:flowing_honey", + "create:honey", + "create:flowing_chocolate", + "create:chocolate" + ] +} \ 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..d53d27bcc 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(); @@ -516,8 +519,11 @@ public class AllBlocks { public static final BlockEntry ENCASED_FLUID_PIPE = REGISTRATE.block("encased_fluid_pipe", EncasedPipeBlock::new) .initialProperties(SharedProperties::softMetal) - .blockstate((c, p) -> BlockStateGen.axisBlock(c, p, state -> p.models() - .cubeColumn(c.getName(), p.modLoc("block/copper_casing"), p.modLoc("block/encased_pipe")))) + .properties(Block.Properties::nonOpaque) + .blockstate(BlockStateGen.encasedPipe()) + .onRegister(CreateRegistrate.connectedTextures(new EncasedCTBehaviour(AllSpriteShifts.COPPER_CASING))) + .onRegister(CreateRegistrate.casingConnectivity((block, cc) -> cc.make(block, AllSpriteShifts.COPPER_CASING, + (s, f) -> !s.get(EncasedPipeBlock.FACING_TO_PROPERTY_MAP.get(f))))) .onRegister(CreateRegistrate.blockModel(() -> PipeAttachmentModel::new)) .loot((p, b) -> p.registerDropping(b, FLUID_PIPE.get())) .register(); diff --git a/src/main/java/com/simibubi/create/AllFluids.java b/src/main/java/com/simibubi/create/AllFluids.java index dba2a7919..0666e5c72 100644 --- a/src/main/java/com/simibubi/create/AllFluids.java +++ b/src/main/java/com/simibubi/create/AllFluids.java @@ -1,21 +1,93 @@ package com.simibubi.create; +import javax.annotation.Nullable; + +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.foundation.data.CreateRegistrate; import com.tterrag.registrate.util.entry.RegistryEntry; +import net.minecraft.block.BlockState; +import net.minecraft.block.Blocks; +import net.minecraft.client.renderer.RenderType; +import net.minecraft.client.renderer.RenderTypeLookup; +import net.minecraft.fluid.Fluid; +import net.minecraft.fluid.IFluidState; +import net.minecraft.util.ResourceLocation; +import net.minecraftforge.api.distmarker.Dist; +import net.minecraftforge.api.distmarker.OnlyIn; +import net.minecraftforge.fluids.ForgeFlowingFluid; + public class AllFluids { private static final CreateRegistrate REGISTRATE = Create.registrate(); public static RegistryEntry POTION = REGISTRATE.virtualFluid("potion", PotionFluidAttributes::new, PotionFluid::new) - .lang(f -> "fluid.create.flowing_potion", "Potion") + .lang(f -> "fluid.create.potion", "Potion") .register(); + public static RegistryEntry TEA = REGISTRATE.virtualFluid("tea") + .lang(f -> "fluid.create.tea", "Builder's Tea") + .register(); + + public static RegistryEntry MILK = REGISTRATE.virtualFluid("milk") + .lang(f -> "fluid.create.milk", "Milk") + .tag(AllTags.forgeFluidTag("milk")) + .register(); + + public static RegistryEntry HONEY = + REGISTRATE.fluid("honey", new ResourceLocation("block/honey_block_top"), Create.asResource("fluid/honey_flow")) + .lang(f -> "fluid.create.honey", "Honey") + .attributes(b -> b.viscosity(500) + .density(1400)) + .properties(p -> p.levelDecreasePerBlock(2) + .tickRate(25) + .slopeFindDistance(3) + .explosionResistance(100f)) + .tag(AllTags.forgeFluidTag("honey")) + .register(); + + public static RegistryEntry CHOCOLATE = REGISTRATE.standardFluid("chocolate") + .lang(f -> "fluid.create.chocolate", "Chocolate") + .attributes(b -> b.viscosity(500) + .density(1400)) + .properties(p -> p.levelDecreasePerBlock(2) + .tickRate(25) + .slopeFindDistance(3) + .explosionResistance(100f)) + .register(); + // Load this class public static void register() {} + @OnlyIn(Dist.CLIENT) + public static void assignRenderLayers() { + makeTranslucent(HONEY); + } + + @OnlyIn(Dist.CLIENT) + private static void makeTranslucent(RegistryEntry entry) { + ForgeFlowingFluid fluid = entry.get(); + RenderTypeLookup.setRenderLayer(fluid, RenderType.getTranslucent()); + RenderTypeLookup.setRenderLayer(fluid.getStillFluid(), RenderType.getTranslucent()); + } + + @Nullable + public static BlockState getLavaInteraction(IFluidState fluidState) { + Fluid fluid = fluidState.getFluid(); + if (fluid.isEquivalentTo(HONEY.get())) + return fluidState.isSource() ? AllPaletteBlocks.LIMESTONE.getDefaultState() + : AllPaletteBlocks.LIMESTONE_VARIANTS.registeredBlocks.get(0) + .getDefaultState(); + if (fluid.isEquivalentTo(CHOCOLATE.get())) + return fluidState.isSource() ? AllPaletteBlocks.SCORIA.getDefaultState() + : AllPaletteBlocks.SCORIA_VARIANTS.registeredBlocks.get(0) + .getDefaultState(); + return null; + } + } diff --git a/src/main/java/com/simibubi/create/AllTags.java b/src/main/java/com/simibubi/create/AllTags.java index 3bb8c76ce..b486accd5 100644 --- a/src/main/java/com/simibubi/create/AllTags.java +++ b/src/main/java/com/simibubi/create/AllTags.java @@ -13,11 +13,13 @@ import com.tterrag.registrate.util.nullness.NonNullFunction; import net.minecraft.block.Block; import net.minecraft.block.BlockState; import net.minecraft.block.Blocks; +import net.minecraft.fluid.Fluid; import net.minecraft.item.BlockItem; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; import net.minecraft.item.Items; import net.minecraft.tags.BlockTags; +import net.minecraft.tags.FluidTags; import net.minecraft.tags.ItemTags; import net.minecraft.tags.Tag; import net.minecraft.tags.TagCollection; @@ -41,6 +43,10 @@ public class AllTags { public static Tag forgeItemTag(String name) { return forgeTag(ItemTags.getCollection(), name); } + + public static Tag forgeFluidTag(String name) { + return forgeTag(FluidTags.getContainer(), name); + } public static Tag forgeTag(TagCollection collection, String name) { return tag(collection, "forge", name); diff --git a/src/main/java/com/simibubi/create/AllTileEntities.java b/src/main/java/com/simibubi/create/AllTileEntities.java index aba35da40..2d6f2513c 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(); @@ -219,8 +219,8 @@ public class AllTileEntities { .validBlocks(AllBlocks.FLUID_PIPE) .register(); - public static final TileEntityEntry ENCASED_FLUID_PIPE = Create.registrate() - .tileEntity("encased_fluid_pipe", StraightPipeTileEntity::new) + public static final TileEntityEntry ENCASED_FLUID_PIPE = Create.registrate() + .tileEntity("encased_fluid_pipe", FluidPipeTileEntity::new) .validBlocks(AllBlocks.ENCASED_FLUID_PIPE) .register(); diff --git a/src/main/java/com/simibubi/create/CreateClient.java b/src/main/java/com/simibubi/create/CreateClient.java index 0892ba960..26c91360b 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); @@ -71,6 +73,7 @@ public class CreateClient { //AllTileEntities.registerRenderers(); AllEntityTypes.registerRenderers(); getColorHandler().init(); + AllFluids.assignRenderLayers(); IResourceManager resourceManager = Minecraft.getInstance() .getResourceManager(); @@ -162,5 +165,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/components/actors/PortableStorageInterfaceMovement.java b/src/main/java/com/simibubi/create/content/contraptions/components/actors/PortableStorageInterfaceMovement.java index bfb1fbca9..30f62fada 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/components/actors/PortableStorageInterfaceMovement.java +++ b/src/main/java/com/simibubi/create/content/contraptions/components/actors/PortableStorageInterfaceMovement.java @@ -142,7 +142,7 @@ public class PortableStorageInterfaceMovement extends MovementBehaviour { .getDirectionVec()); directionVec = context.rotation.apply(directionVec); Direction facingFromVector = Direction.getFacingFromVector(directionVec.x, directionVec.y, directionVec.z); - if (directionVec.distanceTo(new Vec3d(facingFromVector.getDirectionVec())) > 1 / 8f) + if (directionVec.distanceTo(new Vec3d(facingFromVector.getDirectionVec())) > 1 / 2f) return Optional.empty(); return Optional.of(facingFromVector); } diff --git a/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/Contraption.java b/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/Contraption.java index 41e20d42b..fd27685ce 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/Contraption.java +++ b/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/Contraption.java @@ -112,7 +112,8 @@ public abstract class Contraption { private List pendingSubContraptions; // Client - public Map renderedTileEntities; + public Map presentTileEntities; + public List renderedTileEntities; public Contraption() { blocks = new HashMap<>(); @@ -124,7 +125,8 @@ public abstract class Contraption { fluidStorage = new HashMap<>(); glueToRemove = new ArrayList<>(); initialPassengers = new HashMap<>(); - renderedTileEntities = new HashMap<>(); + presentTileEntities = new HashMap<>(); + renderedTileEntities = new ArrayList<>(); pendingSubContraptions = new ArrayList<>(); stabilizedSubContraptions = new HashMap<>(); } @@ -512,6 +514,7 @@ public abstract class Contraption { public void readNBT(World world, CompoundNBT nbt, boolean spawnData) { blocks.clear(); + presentTileEntities.clear(); renderedTileEntities.clear(); nbt.getList("Blocks", 10) @@ -549,7 +552,8 @@ public abstract class Contraption { if (te instanceof KineticTileEntity) ((KineticTileEntity) te).setSpeed(0); te.getBlockState(); - renderedTileEntities.put(info.pos, te); + presentTileEntities.put(info.pos, te); + renderedTileEntities.add(te); } }); @@ -587,7 +591,7 @@ public abstract class Contraption { if (spawnData) fluidStorage.forEach((pos, mfs) -> { - TileEntity tileEntity = renderedTileEntities.get(pos); + TileEntity tileEntity = presentTileEntities.get(pos); if (!(tileEntity instanceof FluidTankTileEntity)) return; FluidTankTileEntity tank = (FluidTankTileEntity) tileEntity; diff --git a/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/ContraptionRenderer.java b/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/ContraptionRenderer.java index 32398f9e5..7892307d8 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/ContraptionRenderer.java +++ b/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/ContraptionRenderer.java @@ -71,7 +71,7 @@ public class ContraptionRenderer { private static void renderTileEntities(World world, Contraption c, MatrixStack ms, MatrixStack msLocal, IRenderTypeBuffer buffer) { - TileEntityRenderHelper.renderTileEntities(world, c.renderedTileEntities.values(), ms, msLocal, buffer); + TileEntityRenderHelper.renderTileEntities(world, c.renderedTileEntities, ms, msLocal, buffer); } private static SuperByteBuffer buildStructureBuffer(Contraption c, RenderType layer) { @@ -86,7 +86,7 @@ public class ContraptionRenderer { Random random = new Random(); BufferBuilder builder = new BufferBuilder(DefaultVertexFormats.BLOCK.getIntegerSize()); builder.begin(GL11.GL_QUADS, DefaultVertexFormats.BLOCK); - renderWorld.setTileEntities(c.renderedTileEntities.values()); + renderWorld.setTileEntities(c.presentTileEntities.values()); for (BlockInfo info : c.getBlocks() .values()) diff --git a/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/StructureTransform.java b/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/StructureTransform.java index 0e7470654..85adf5e0d 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/StructureTransform.java +++ b/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/StructureTransform.java @@ -250,6 +250,8 @@ public class StructureTransform { newDirection = direction; if (direction.getAxis() == rotationAxis) newSlope = BeltSlope.SIDEWAYS; + else if (direction.getAxis() != Axis.Z) + newDirection = direction.getOpposite(); } state = state.with(BeltBlock.HORIZONTAL_FACING, newDirection); @@ -332,8 +334,7 @@ public class StructureTransform { int readAngle = buffer.readInt(); int axisIndex = buffer.readVarInt(); int rotationIndex = buffer.readVarInt(); - return new StructureTransform(readBlockPos, readAngle, - axisIndex == -1 ? null : Axis.values()[axisIndex], + return new StructureTransform(readBlockPos, readAngle, axisIndex == -1 ? null : Axis.values()[axisIndex], rotationIndex == -1 ? null : Rotation.values()[rotationIndex]); } diff --git a/src/main/java/com/simibubi/create/content/contraptions/fluids/FluidPipeAttachmentBehaviour.java b/src/main/java/com/simibubi/create/content/contraptions/fluids/FluidPipeAttachmentBehaviour.java index cdd3ef3d9..51d064588 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/fluids/FluidPipeAttachmentBehaviour.java +++ b/src/main/java/com/simibubi/create/content/contraptions/fluids/FluidPipeAttachmentBehaviour.java @@ -26,6 +26,10 @@ public class FluidPipeAttachmentBehaviour extends BracketedTileEntityBehaviour { .getAxis() == direction.getAxis()) return AttachmentTypes.NONE; + if (AllBlocks.ENCASED_FLUID_PIPE.has(facingState) + && facingState.get(EncasedPipeBlock.FACING_TO_PROPERTY_MAP.get(direction.getOpposite()))) + return AttachmentTypes.NONE; + if (FluidPropagator.hasFluidCapability(facingState, world, offsetPos, direction) && !AllBlocks.HOSE_PULLEY.has(facingState)) return AttachmentTypes.DRAIN; diff --git a/src/main/java/com/simibubi/create/content/contraptions/fluids/PipeAttachmentModel.java b/src/main/java/com/simibubi/create/content/contraptions/fluids/PipeAttachmentModel.java index b05ce97ac..1e7834771 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/fluids/PipeAttachmentModel.java +++ b/src/main/java/com/simibubi/create/content/contraptions/fluids/PipeAttachmentModel.java @@ -8,7 +8,7 @@ import java.util.Random; import com.simibubi.create.AllBlockPartials; import com.simibubi.create.content.contraptions.fluids.FluidPipeAttachmentBehaviour.AttachmentTypes; import com.simibubi.create.content.contraptions.fluids.pipes.FluidPipeBlock; -import com.simibubi.create.foundation.block.render.WrappedBakedModel; +import com.simibubi.create.foundation.block.connected.BakedModelWrapperWithData; import com.simibubi.create.foundation.tileEntity.TileEntityBehaviour; import com.simibubi.create.foundation.utility.Iterate; @@ -21,9 +21,10 @@ import net.minecraft.util.math.BlockPos; import net.minecraft.world.ILightReader; import net.minecraftforge.client.model.data.IModelData; import net.minecraftforge.client.model.data.ModelDataMap; +import net.minecraftforge.client.model.data.ModelDataMap.Builder; import net.minecraftforge.client.model.data.ModelProperty; -public class PipeAttachmentModel extends WrappedBakedModel { +public class PipeAttachmentModel extends BakedModelWrapperWithData { private static ModelProperty PIPE_PROPERTY = new ModelProperty<>(); @@ -32,7 +33,7 @@ public class PipeAttachmentModel extends WrappedBakedModel { } @Override - public IModelData getModelData(ILightReader world, BlockPos pos, BlockState state, IModelData tileData) { + protected Builder gatherModelData(Builder builder, ILightReader world, BlockPos pos, BlockState state) { PipeModelData data = new PipeModelData(); FluidPipeAttachmentBehaviour attachmentBehaviour = TileEntityBehaviour.get(world, pos, FluidPipeAttachmentBehaviour.TYPE); @@ -44,8 +45,7 @@ public class PipeAttachmentModel extends WrappedBakedModel { } data.setEncased(FluidPipeBlock.shouldDrawCasing(world, pos, state)); - return new ModelDataMap.Builder().withInitial(PIPE_PROPERTY, data) - .build(); + return builder.withInitial(PIPE_PROPERTY, data); } @Override diff --git a/src/main/java/com/simibubi/create/content/contraptions/fluids/VirtualFluid.java b/src/main/java/com/simibubi/create/content/contraptions/fluids/VirtualFluid.java new file mode 100644 index 000000000..e95c2bf58 --- /dev/null +++ b/src/main/java/com/simibubi/create/content/contraptions/fluids/VirtualFluid.java @@ -0,0 +1,47 @@ +package com.simibubi.create.content.contraptions.fluids; + +import net.minecraft.block.BlockState; +import net.minecraft.block.Blocks; +import net.minecraft.fluid.Fluid; +import net.minecraft.fluid.IFluidState; +import net.minecraft.item.Item; +import net.minecraft.item.Items; +import net.minecraftforge.fluids.ForgeFlowingFluid; + +public class VirtualFluid extends ForgeFlowingFluid { + + public VirtualFluid(Properties properties) { + super(properties); + } + + @Override + public Fluid getStillFluid() { + return super.getStillFluid(); + } + + @Override + public Fluid getFlowingFluid() { + return this; + } + + @Override + public Item getFilledBucket() { + return Items.AIR; + } + + @Override + protected BlockState getBlockState(IFluidState state) { + return Blocks.AIR.getDefaultState(); + } + + @Override + public boolean isSource(IFluidState p_207193_1_) { + return false; + } + + @Override + public int getLevel(IFluidState p_207192_1_) { + return 0; + } + +} diff --git a/src/main/java/com/simibubi/create/content/contraptions/fluids/pipes/AxisPipeBlock.java b/src/main/java/com/simibubi/create/content/contraptions/fluids/pipes/AxisPipeBlock.java index 751ff1de4..a3570ee9a 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/fluids/pipes/AxisPipeBlock.java +++ b/src/main/java/com/simibubi/create/content/contraptions/fluids/pipes/AxisPipeBlock.java @@ -10,6 +10,7 @@ import com.simibubi.create.content.contraptions.fluids.FluidPipeAttachmentBehavi import com.simibubi.create.content.contraptions.fluids.FluidPropagator; import com.simibubi.create.content.contraptions.wrench.IWrenchableWithBracket; import com.simibubi.create.foundation.tileEntity.TileEntityBehaviour; +import com.simibubi.create.foundation.utility.Iterate; import net.minecraft.block.Block; import net.minecraft.block.BlockState; @@ -19,10 +20,13 @@ import net.minecraft.entity.player.PlayerEntity; import net.minecraft.item.ItemStack; import net.minecraft.network.DebugPacketSender; import net.minecraft.state.BooleanProperty; +import net.minecraft.util.ActionResultType; import net.minecraft.util.Direction; +import net.minecraft.util.Hand; import net.minecraft.util.Direction.Axis; import net.minecraft.util.Direction.AxisDirection; import net.minecraft.util.math.BlockPos; +import net.minecraft.util.math.BlockRayTraceResult; import net.minecraft.util.math.RayTraceResult; import net.minecraft.util.math.shapes.ISelectionContext; import net.minecraft.util.math.shapes.VoxelShape; @@ -43,12 +47,26 @@ public class AxisPipeBlock extends RotatedPillarBlock implements IWrenchableWith boolean blockTypeChanged = state.getBlock() != newState.getBlock(); if (blockTypeChanged && !world.isRemote) FluidPropagator.propagateChangedPipe(world, pos, state); - if (state != newState && !isMoving) + if (state != newState && !isMoving) removeBracket(world, pos).ifPresent(stack -> Block.spawnAsEntity(world, pos, stack)); if (state.hasTileEntity() && (blockTypeChanged || !newState.hasTileEntity())) world.removeTileEntity(pos); } + @Override + public ActionResultType onUse(BlockState state, World world, BlockPos pos, PlayerEntity player, Hand hand, + BlockRayTraceResult hit) { + if (!AllBlocks.COPPER_CASING.isIn(player.getHeldItem(hand))) + return ActionResultType.PASS; + if (!world.isRemote) { + BlockState newState = AllBlocks.ENCASED_FLUID_PIPE.getDefaultState(); + for (Direction d : Iterate.directionsInAxis(getAxis(state))) + newState = newState.with(EncasedPipeBlock.FACING_TO_PROPERTY_MAP.get(d), true); + world.setBlockState(pos, newState); + } + return ActionResultType.SUCCESS; + } + @Override public void onBlockAdded(BlockState state, World world, BlockPos pos, BlockState oldState, boolean isMoving) { if (world.isRemote) 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/fluids/pipes/EncasedPipeBlock.java b/src/main/java/com/simibubi/create/content/contraptions/fluids/pipes/EncasedPipeBlock.java index 6d236427c..f74484b10 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/fluids/pipes/EncasedPipeBlock.java +++ b/src/main/java/com/simibubi/create/content/contraptions/fluids/pipes/EncasedPipeBlock.java @@ -1,22 +1,58 @@ package com.simibubi.create.content.contraptions.fluids.pipes; -import com.simibubi.create.AllTileEntities; +import static net.minecraft.state.properties.BlockStateProperties.DOWN; +import static net.minecraft.state.properties.BlockStateProperties.EAST; +import static net.minecraft.state.properties.BlockStateProperties.NORTH; +import static net.minecraft.state.properties.BlockStateProperties.SOUTH; +import static net.minecraft.state.properties.BlockStateProperties.UP; +import static net.minecraft.state.properties.BlockStateProperties.WEST; +import java.util.Map; +import java.util.Random; + +import com.simibubi.create.AllBlocks; +import com.simibubi.create.AllTileEntities; +import com.simibubi.create.content.contraptions.fluids.FluidPropagator; +import com.simibubi.create.content.contraptions.wrench.IWrenchable; +import com.simibubi.create.foundation.utility.Iterate; + +import net.minecraft.block.Block; import net.minecraft.block.BlockState; +import net.minecraft.block.SixWayBlock; +import net.minecraft.entity.player.PlayerEntity; +import net.minecraft.item.ItemStack; import net.minecraft.item.ItemUseContext; +import net.minecraft.network.DebugPacketSender; +import net.minecraft.state.BooleanProperty; +import net.minecraft.state.StateContainer.Builder; import net.minecraft.tileentity.TileEntity; import net.minecraft.util.ActionResultType; +import net.minecraft.util.Direction; import net.minecraft.util.math.BlockPos; -import net.minecraft.util.math.shapes.ISelectionContext; -import net.minecraft.util.math.shapes.VoxelShape; -import net.minecraft.util.math.shapes.VoxelShapes; +import net.minecraft.util.math.RayTraceResult; import net.minecraft.world.IBlockReader; +import net.minecraft.world.TickPriority; import net.minecraft.world.World; +import net.minecraft.world.server.ServerWorld; -public class EncasedPipeBlock extends AxisPipeBlock { +public class EncasedPipeBlock extends Block implements IWrenchable { + + public static final Map FACING_TO_PROPERTY_MAP = SixWayBlock.FACING_TO_PROPERTY_MAP; public EncasedPipeBlock(Properties p_i48339_1_) { super(p_i48339_1_); + setDefaultState(getDefaultState().with(NORTH, false) + .with(SOUTH, false) + .with(DOWN, false) + .with(UP, false) + .with(WEST, false) + .with(EAST, false)); + } + + @Override + protected void fillStateContainer(Builder builder) { + builder.add(NORTH, EAST, SOUTH, WEST, UP, DOWN); + super.fillStateContainer(builder); } @Override @@ -25,22 +61,80 @@ public class EncasedPipeBlock extends AxisPipeBlock { } @Override - public TileEntity createTileEntity(BlockState state, IBlockReader world) { - return AllTileEntities.ENCASED_FLUID_PIPE.create(); + public void onReplaced(BlockState state, World world, BlockPos pos, BlockState newState, boolean isMoving) { + boolean blockTypeChanged = state.getBlock() != newState.getBlock(); + if (blockTypeChanged && !world.isRemote) + FluidPropagator.propagateChangedPipe(world, pos, state); + if (state.hasTileEntity() && (blockTypeChanged || !newState.hasTileEntity())) + world.removeTileEntity(pos); } @Override - public VoxelShape getShape(BlockState state, IBlockReader p_220053_2_, BlockPos p_220053_3_, - ISelectionContext p_220053_4_) { - return VoxelShapes.fullCube(); + public void onBlockAdded(BlockState state, World world, BlockPos pos, BlockState oldState, boolean isMoving) { + if (!world.isRemote && state != oldState) + world.getPendingBlockTicks() + .scheduleTick(pos, this, 1, TickPriority.HIGH); + } + + @Override + public ItemStack getPickBlock(BlockState state, RayTraceResult target, IBlockReader world, BlockPos pos, + PlayerEntity player) { + return AllBlocks.FLUID_PIPE.asStack(); + } + + @Override + public void neighborChanged(BlockState state, World world, BlockPos pos, Block otherBlock, BlockPos neighborPos, + boolean isMoving) { + DebugPacketSender.func_218806_a(world, pos); + Direction d = FluidPropagator.validateNeighbourChange(state, world, pos, otherBlock, neighborPos, isMoving); + if (d == null) + return; + if (!state.get(FACING_TO_PROPERTY_MAP.get(d))) + return; + world.getPendingBlockTicks() + .scheduleTick(pos, this, 1, TickPriority.HIGH); + } + + @Override + public void scheduledTick(BlockState state, ServerWorld world, BlockPos pos, Random r) { + FluidPropagator.propagateChangedPipe(world, pos, state); + } + + @Override + public TileEntity createTileEntity(BlockState state, IBlockReader world) { + return AllTileEntities.ENCASED_FLUID_PIPE.create(); } @Override public ActionResultType onWrenched(BlockState state, ItemUseContext context) { World world = context.getWorld(); BlockPos pos = context.getPos(); - world.setBlockState(pos, toRegularPipe(world, pos, state), 3); + + if (world.isRemote) + return ActionResultType.SUCCESS; + + context.getWorld() + .playEvent(2001, context.getPos(), Block.getStateId(state)); + BlockState equivalentPipe = transferSixWayProperties(state, AllBlocks.FLUID_PIPE.getDefaultState()); + + Direction firstFound = Direction.UP; + for (Direction d : Iterate.directions) + if (state.get(FACING_TO_PROPERTY_MAP.get(d))) { + firstFound = d; + break; + } + + world.setBlockState(pos, AllBlocks.FLUID_PIPE.get() + .updateBlockState(equivalentPipe, firstFound, null, world, pos)); return ActionResultType.SUCCESS; } + public static BlockState transferSixWayProperties(BlockState from, BlockState to) { + for (Direction d : Iterate.directions) { + BooleanProperty property = FACING_TO_PROPERTY_MAP.get(d); + to = to.with(property, from.get(property)); + } + return to; + } + } diff --git a/src/main/java/com/simibubi/create/content/contraptions/fluids/pipes/FluidPipeBlock.java b/src/main/java/com/simibubi/create/content/contraptions/fluids/pipes/FluidPipeBlock.java index 56217071f..67a895eb2 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/fluids/pipes/FluidPipeBlock.java +++ b/src/main/java/com/simibubi/create/content/contraptions/fluids/pipes/FluidPipeBlock.java @@ -73,12 +73,9 @@ public class FluidPipeBlock extends SixWayBlock implements IWaterLoggable, IWren BlockRayTraceResult hit) { if (!AllBlocks.COPPER_CASING.isIn(player.getHeldItem(hand))) return ActionResultType.PASS; - Axis axis = getAxis(world, pos, state); - if (axis == null) - return ActionResultType.PASS; if (!world.isRemote) - world.setBlockState(pos, AllBlocks.ENCASED_FLUID_PIPE.getDefaultState() - .with(EncasedPipeBlock.AXIS, axis)); + world.setBlockState(pos, + EncasedPipeBlock.transferSixWayProperties(state, AllBlocks.ENCASED_FLUID_PIPE.getDefaultState())); return ActionResultType.SUCCESS; } @@ -149,7 +146,7 @@ public class FluidPipeBlock extends SixWayBlock implements IWaterLoggable, IWren || FluidPropagator.getStraightPipeAxis(neighbour) == blockFace.getAxis(); if (attachmentBehaviour == null) return false; - return attachmentBehaviour.isPipeConnectedTowards(neighbour, blockFace); + return attachmentBehaviour.isPipeConnectedTowards(neighbour, blockFace.getOpposite()); } public static boolean shouldDrawRim(ILightReader world, BlockPos pos, BlockState state, Direction direction) { diff --git a/src/main/java/com/simibubi/create/content/contraptions/fluids/pipes/FluidPipeTileEntity.java b/src/main/java/com/simibubi/create/content/contraptions/fluids/pipes/FluidPipeTileEntity.java index 5b0ca5222..a90f4c92d 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/fluids/pipes/FluidPipeTileEntity.java +++ b/src/main/java/com/simibubi/create/content/contraptions/fluids/pipes/FluidPipeTileEntity.java @@ -2,6 +2,7 @@ package com.simibubi.create.content.contraptions.fluids.pipes; import java.util.List; +import com.simibubi.create.AllBlocks; import com.simibubi.create.content.contraptions.fluids.FluidPipeAttachmentBehaviour; import com.simibubi.create.content.contraptions.fluids.FluidPipeBehaviour; import com.simibubi.create.foundation.tileEntity.SmartTileEntity; @@ -33,7 +34,8 @@ public class FluidPipeTileEntity extends SmartTileEntity { @Override public boolean isConnectedTo(BlockState state, Direction direction) { - return FluidPipeBlock.isPipe(state) && state.get(FluidPipeBlock.FACING_TO_PROPERTY_MAP.get(direction)); + return (FluidPipeBlock.isPipe(state) || state.getBlock() instanceof EncasedPipeBlock) + && state.get(FluidPipeBlock.FACING_TO_PROPERTY_MAP.get(direction)); } } @@ -48,6 +50,9 @@ public class FluidPipeTileEntity extends SmartTileEntity { public AttachmentTypes getAttachment(ILightReader world, BlockPos pos, BlockState state, Direction direction) { AttachmentTypes attachment = super.getAttachment(world, pos, state, direction); + if (attachment == AttachmentTypes.RIM && AllBlocks.ENCASED_FLUID_PIPE.has(state)) + return AttachmentTypes.RIM; + BlockPos offsetPos = pos.offset(direction); if (!FluidPipeBlock.isPipe(world.getBlockState(offsetPos))) { FluidPipeAttachmentBehaviour attachmentBehaviour = diff --git a/src/main/java/com/simibubi/create/content/contraptions/fluids/potion/PotionFluid.java b/src/main/java/com/simibubi/create/content/contraptions/fluids/potion/PotionFluid.java index d1d54ff75..da3aa0bce 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/fluids/potion/PotionFluid.java +++ b/src/main/java/com/simibubi/create/content/contraptions/fluids/potion/PotionFluid.java @@ -4,13 +4,9 @@ import java.util.Collection; import java.util.List; import com.simibubi.create.AllFluids; +import com.simibubi.create.content.contraptions.fluids.VirtualFluid; -import net.minecraft.block.BlockState; -import net.minecraft.block.Blocks; import net.minecraft.fluid.Fluid; -import net.minecraft.fluid.IFluidState; -import net.minecraft.item.Item; -import net.minecraft.item.Items; import net.minecraft.nbt.CompoundNBT; import net.minecraft.nbt.ListNBT; import net.minecraft.potion.EffectInstance; @@ -20,10 +16,9 @@ import net.minecraft.potion.Potions; import net.minecraft.util.ResourceLocation; import net.minecraftforge.fluids.FluidAttributes; import net.minecraftforge.fluids.FluidStack; -import net.minecraftforge.fluids.ForgeFlowingFluid; import net.minecraftforge.registries.ForgeRegistries; -public class PotionFluid extends ForgeFlowingFluid { +public class PotionFluid extends VirtualFluid { public enum BottleType { REGULAR, SPLASH, LINGERING; @@ -41,36 +36,6 @@ public class PotionFluid extends ForgeFlowingFluid { return fluidStack; } - @Override - public Fluid getStillFluid() { - return this; - } - - @Override - public Fluid getFlowingFluid() { - return this; - } - - @Override - public Item getFilledBucket() { - return Items.AIR; - } - - @Override - protected BlockState getBlockState(IFluidState state) { - return Blocks.AIR.getDefaultState(); - } - - @Override - public boolean isSource(IFluidState p_207193_1_) { - return false; - } - - @Override - public int getLevel(IFluidState p_207192_1_) { - return 0; - } - public static class PotionFluidAttributes extends FluidAttributes { public PotionFluidAttributes(Builder builder, Fluid fluid) { diff --git a/src/main/java/com/simibubi/create/content/contraptions/fluids/tank/FluidTankModel.java b/src/main/java/com/simibubi/create/content/contraptions/fluids/tank/FluidTankModel.java index 0411e7edf..802f39e49 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/fluids/tank/FluidTankModel.java +++ b/src/main/java/com/simibubi/create/content/contraptions/fluids/tank/FluidTankModel.java @@ -18,6 +18,7 @@ import net.minecraft.util.Direction; import net.minecraft.util.math.BlockPos; import net.minecraft.world.ILightReader; import net.minecraftforge.client.model.data.IModelData; +import net.minecraftforge.client.model.data.ModelDataMap.Builder; import net.minecraftforge.client.model.data.ModelProperty; public class FluidTankModel extends CTModel { @@ -35,14 +36,13 @@ public class FluidTankModel extends CTModel { private FluidTankModel(IBakedModel originalModel, CTSpriteShiftEntry side, CTSpriteShiftEntry top) { super(originalModel, new FluidTankCTBehaviour(side, top)); } - + @Override - public IModelData getModelData(ILightReader world, BlockPos pos, BlockState state, IModelData tileData) { + protected Builder gatherModelData(Builder builder, ILightReader world, BlockPos pos, BlockState state) { CullData cullData = new CullData(); for (Direction d : Iterate.horizontalDirections) cullData.setCulled(d, FluidTankConnectivityHandler.isConnected(world, pos, pos.offset(d))); - return getCTDataMapBuilder(world, pos, state).withInitial(CULL_PROPERTY, cullData) - .build(); + return super.gatherModelData(builder, world, pos, state).withInitial(CULL_PROPERTY, cullData); } @Override diff --git a/src/main/java/com/simibubi/create/content/contraptions/processing/BasinMovementBehaviour.java b/src/main/java/com/simibubi/create/content/contraptions/processing/BasinMovementBehaviour.java index 4412e0b0c..a3de35c6c 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/processing/BasinMovementBehaviour.java +++ b/src/main/java/com/simibubi/create/content/contraptions/processing/BasinMovementBehaviour.java @@ -52,7 +52,7 @@ public class BasinMovementBehaviour extends MovementBehaviour { } context.tileData.put(key, itemStackHandler.serializeNBT()); }); - TileEntity tileEntity = context.contraption.renderedTileEntities.get(context.localPos); + TileEntity tileEntity = context.contraption.presentTileEntities.get(context.localPos); if (tileEntity instanceof BasinTileEntity) ((BasinTileEntity) tileEntity).readOnlyItems(context.tileData); context.temporaryData = false; // did already dump, so can't any more diff --git a/src/main/java/com/simibubi/create/content/contraptions/processing/ProcessingRecipeBuilder.java b/src/main/java/com/simibubi/create/content/contraptions/processing/ProcessingRecipeBuilder.java index c0b1deb2e..1a68ddc6a 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/processing/ProcessingRecipeBuilder.java +++ b/src/main/java/com/simibubi/create/content/contraptions/processing/ProcessingRecipeBuilder.java @@ -8,6 +8,7 @@ import com.google.gson.JsonArray; import com.google.gson.JsonObject; import com.simibubi.create.AllRecipeTypes; import com.simibubi.create.Create; +import com.simibubi.create.foundation.fluid.FluidHelper; import com.simibubi.create.foundation.fluid.FluidIngredient; import com.simibubi.create.foundation.utility.Lang; @@ -155,6 +156,7 @@ public class ProcessingRecipeBuilder> { } public ProcessingRecipeBuilder output(Fluid fluid, int amount) { + fluid = FluidHelper.convertToStill(fluid); return output(new FluidStack(fluid, amount)); } 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..1592b93cf 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,79 +4,48 @@ 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) { if (context.getWorld().isRemote) return ActionResultType.SUCCESS; - + context.getWorld().playEvent(2001, context.getPos(), Block.getStateId(state)); KineticTileEntity.switchToBlockState(context.getWorld(), context.getPos(), AllBlocks.SHAFT.getDefaultState().with(AXIS, state.get(AXIS))); 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/events/ClientEvents.java b/src/main/java/com/simibubi/create/events/ClientEvents.java index c963cf013..5f5e8c978 100644 --- a/src/main/java/com/simibubi/create/events/ClientEvents.java +++ b/src/main/java/com/simibubi/create/events/ClientEvents.java @@ -1,6 +1,10 @@ package com.simibubi.create.events; +import java.util.ArrayList; +import java.util.List; + import com.mojang.blaze3d.matrix.MatrixStack; +import com.simibubi.create.AllFluids; import com.simibubi.create.Create; import com.simibubi.create.CreateClient; import com.simibubi.create.content.contraptions.KineticDebugger; @@ -29,15 +33,19 @@ import com.simibubi.create.foundation.tileEntity.behaviour.linked.LinkRenderer; import com.simibubi.create.foundation.tileEntity.behaviour.scrollvalue.ScrollValueRenderer; import com.simibubi.create.foundation.utility.AnimationTickHolder; import com.simibubi.create.foundation.utility.ServerSpeedProvider; + import net.minecraft.client.Minecraft; import net.minecraft.client.renderer.ActiveRenderInfo; import net.minecraft.client.renderer.IRenderTypeBuffer; import net.minecraft.client.renderer.texture.OverlayTexture; +import net.minecraft.fluid.Fluid; +import net.minecraft.fluid.IFluidState; import net.minecraft.item.ItemStack; import net.minecraft.util.math.Vec3d; import net.minecraft.util.text.ITextComponent; import net.minecraft.world.World; import net.minecraftforge.api.distmarker.Dist; +import net.minecraftforge.client.event.EntityViewRenderEvent; import net.minecraftforge.client.event.RenderGameOverlayEvent; import net.minecraftforge.client.event.RenderGameOverlayEvent.ElementType; import net.minecraftforge.client.event.RenderWorldLastEvent; @@ -49,9 +57,6 @@ import net.minecraftforge.event.world.WorldEvent; import net.minecraftforge.eventbus.api.SubscribeEvent; import net.minecraftforge.fml.common.Mod.EventBusSubscriber; -import java.util.ArrayList; -import java.util.List; - @EventBusSubscriber(value = Dist.CLIENT) public class ClientEvents { @@ -72,11 +77,11 @@ public class ClientEvents { CreateClient.schematicSender.tick(); CreateClient.schematicAndQuillHandler.tick(); CreateClient.schematicHandler.tick(); - + ContraptionHandler.tick(world); CapabilityMinecartController.tick(world); CouplingPhysics.tick(world); - + ScreenOpener.tick(); ServerSpeedProvider.clientTick(); BeltConnectorHandler.tick(); @@ -96,9 +101,9 @@ public class ClientEvents { ArmInteractionPointHandler.tick(); SailBlockPlacementHelper.tick(); PistonPolePlacementHelper.tick(); - CreateClient.outliner.tickOutlines(); + CreateClient.outliner.tickOutlines(); } - + @SubscribeEvent public static void onLoadWorld(WorldEvent.Load event) { CreateClient.bufferCache.invalidate(); @@ -112,13 +117,13 @@ public class ClientEvents { ms.push(); ms.translate(-view.getX(), -view.getY(), -view.getZ()); SuperRenderTypeBuffer buffer = SuperRenderTypeBuffer.getInstance(); - + CouplingRenderer.renderAll(ms, buffer); CreateClient.schematicHandler.render(ms, buffer); CreateClient.outliner.renderOutlines(ms, buffer); // CollisionDebugger.render(ms, buffer); buffer.draw(); - + ms.pop(); } @@ -171,4 +176,44 @@ public class ClientEvents { return !(Minecraft.getInstance().world == null || Minecraft.getInstance().player == null); } + @SubscribeEvent + public static void getFogDensity(EntityViewRenderEvent.FogDensity event) { + ActiveRenderInfo info = event.getInfo(); + IFluidState fluidState = info.getFluidState(); + if (fluidState.isEmpty()) + return; + Fluid fluid = fluidState.getFluid(); + + if (fluid.isEquivalentTo(AllFluids.CHOCOLATE.get())) { + event.setDensity(5f); + event.setCanceled(true); + } + + if (fluid.isEquivalentTo(AllFluids.HONEY.get())) { + event.setDensity(1.5f); + event.setCanceled(true); + } + } + + @SubscribeEvent + public static void getFogColor(EntityViewRenderEvent.FogColors event) { + ActiveRenderInfo info = event.getInfo(); + IFluidState fluidState = info.getFluidState(); + if (fluidState.isEmpty()) + return; + Fluid fluid = fluidState.getFluid(); + + if (fluid.isEquivalentTo(AllFluids.CHOCOLATE.get())) { + event.setRed(98 / 256f); + event.setGreen(32 / 256f); + event.setBlue(32 / 256f); + } + + if (fluid.isEquivalentTo(AllFluids.HONEY.get())) { + event.setRed(234 / 256f); + event.setGreen(174 / 256f); + event.setBlue(47 / 256f); + } + } + } diff --git a/src/main/java/com/simibubi/create/events/CommonEvents.java b/src/main/java/com/simibubi/create/events/CommonEvents.java index 3120fb8d1..e3dd7bf80 100644 --- a/src/main/java/com/simibubi/create/events/CommonEvents.java +++ b/src/main/java/com/simibubi/create/events/CommonEvents.java @@ -1,5 +1,6 @@ package com.simibubi.create.events; +import com.simibubi.create.AllFluids; import com.simibubi.create.Create; import com.simibubi.create.content.contraptions.components.structureMovement.ContraptionHandler; import com.simibubi.create.content.contraptions.components.structureMovement.train.CouplingPhysics; @@ -9,14 +10,20 @@ import com.simibubi.create.content.contraptions.fluids.recipe.PotionMixingRecipe import com.simibubi.create.content.contraptions.wrench.WrenchItem; import com.simibubi.create.content.schematics.ServerSchematicLoader; import com.simibubi.create.foundation.command.AllCommands; -import com.simibubi.create.foundation.utility.Debug; +import com.simibubi.create.foundation.fluid.FluidHelper; +import com.simibubi.create.foundation.utility.Iterate; import com.simibubi.create.foundation.utility.ServerSpeedProvider; import com.simibubi.create.foundation.utility.WorldAttached; import com.simibubi.create.foundation.utility.recipe.RecipeFinder; +import net.minecraft.block.BlockState; import net.minecraft.entity.Entity; import net.minecraft.entity.LivingEntity; +import net.minecraft.fluid.IFluidState; import net.minecraft.resources.IReloadableResourceManager; +import net.minecraft.tags.FluidTags; +import net.minecraft.util.Direction; +import net.minecraft.util.math.BlockPos; import net.minecraft.world.IWorld; import net.minecraft.world.World; import net.minecraftforge.event.AttachCapabilitiesEvent; @@ -27,6 +34,7 @@ import net.minecraftforge.event.entity.EntityJoinWorldEvent; import net.minecraftforge.event.entity.living.LivingEvent.LivingUpdateEvent; import net.minecraftforge.event.entity.player.AttackEntityEvent; import net.minecraftforge.event.entity.player.PlayerEvent; +import net.minecraftforge.event.world.BlockEvent.FluidPlaceBlockEvent; import net.minecraftforge.event.world.ChunkEvent; import net.minecraftforge.event.world.WorldEvent; import net.minecraftforge.eventbus.api.SubscribeEvent; @@ -54,6 +62,28 @@ public class CommonEvents { CapabilityMinecartController.onChunkUnloaded(event); } + @SubscribeEvent + public static void whenFluidsMeet(FluidPlaceBlockEvent event) { + BlockState blockState = event.getOriginalState(); + IFluidState fluidState = blockState.getFluidState(); + BlockPos pos = event.getPos(); + IWorld world = event.getWorld(); + + if (fluidState.isSource() && FluidHelper.isLava(fluidState.getFluid())) + return; + + for (Direction direction : Iterate.directions) { + IFluidState metFluidState = fluidState.isSource() ? fluidState : world.getFluidState(pos.offset(direction)); + if (!metFluidState.isTagged(FluidTags.WATER)) + continue; + BlockState lavaInteraction = AllFluids.getLavaInteraction(metFluidState); + if (lavaInteraction == null) + continue; + event.setNewState(lavaInteraction); + break; + } + } + @SubscribeEvent public static void onWorldTick(WorldTickEvent event) { if (event.phase == Phase.START) @@ -123,7 +153,7 @@ public class CommonEvents { public static void attachCapabilities(AttachCapabilitiesEvent event) { CapabilityMinecartController.attach(event); } - + @SubscribeEvent public static void startTracking(PlayerEvent.StartTracking event) { CapabilityMinecartController.startTracking(event); diff --git a/src/main/java/com/simibubi/create/foundation/block/connected/BakedModelWrapperWithData.java b/src/main/java/com/simibubi/create/foundation/block/connected/BakedModelWrapperWithData.java new file mode 100644 index 000000000..d012d0588 --- /dev/null +++ b/src/main/java/com/simibubi/create/foundation/block/connected/BakedModelWrapperWithData.java @@ -0,0 +1,29 @@ +package com.simibubi.create.foundation.block.connected; + +import net.minecraft.block.BlockState; +import net.minecraft.client.renderer.model.IBakedModel; +import net.minecraft.util.math.BlockPos; +import net.minecraft.world.ILightReader; +import net.minecraftforge.client.model.BakedModelWrapper; +import net.minecraftforge.client.model.data.IModelData; +import net.minecraftforge.client.model.data.ModelDataMap; +import net.minecraftforge.client.model.data.ModelDataMap.Builder; + +public abstract class BakedModelWrapperWithData extends BakedModelWrapper { + + public BakedModelWrapperWithData(IBakedModel originalModel) { + super(originalModel); + } + + @Override + public final IModelData getModelData(ILightReader world, BlockPos pos, BlockState state, IModelData tileData) { + Builder builder = new ModelDataMap.Builder(); + if (originalModel instanceof BakedModelWrapperWithData) + ((BakedModelWrapperWithData) originalModel).gatherModelData(builder, world, pos, state); + return gatherModelData(builder, world, pos, state).build(); + } + + protected abstract ModelDataMap.Builder gatherModelData(ModelDataMap.Builder builder, ILightReader world, + BlockPos pos, BlockState state); + +} diff --git a/src/main/java/com/simibubi/create/foundation/block/connected/CTModel.java b/src/main/java/com/simibubi/create/foundation/block/connected/CTModel.java index 6a76326b2..60c26a070 100644 --- a/src/main/java/com/simibubi/create/foundation/block/connected/CTModel.java +++ b/src/main/java/com/simibubi/create/foundation/block/connected/CTModel.java @@ -16,13 +16,11 @@ import net.minecraft.client.renderer.vertex.VertexFormat; import net.minecraft.util.Direction; import net.minecraft.util.math.BlockPos; import net.minecraft.world.ILightReader; -import net.minecraftforge.client.model.BakedModelWrapper; import net.minecraftforge.client.model.data.IModelData; -import net.minecraftforge.client.model.data.ModelDataMap; import net.minecraftforge.client.model.data.ModelDataMap.Builder; import net.minecraftforge.client.model.data.ModelProperty; -public class CTModel extends BakedModelWrapper { +public class CTModel extends BakedModelWrapperWithData { protected static ModelProperty CT_PROPERTY = new ModelProperty<>(); private ConnectedTextureBehaviour behaviour; @@ -43,19 +41,15 @@ public class CTModel extends BakedModelWrapper { return indices[face.getIndex()]; } } - + public CTModel(IBakedModel originalModel, ConnectedTextureBehaviour behaviour) { super(originalModel); this.behaviour = behaviour; } @Override - public IModelData getModelData(ILightReader world, BlockPos pos, BlockState state, IModelData tileData) { - return getCTDataMapBuilder(world, pos, state).build(); - } - - protected Builder getCTDataMapBuilder(ILightReader world, BlockPos pos, BlockState state) { - return new ModelDataMap.Builder().withInitial(CT_PROPERTY, createCTData(world, pos, state)); + protected Builder gatherModelData(Builder builder, ILightReader world, BlockPos pos, BlockState state) { + return builder.withInitial(CT_PROPERTY, createCTData(world, pos, state)); } protected CTData createCTData(ILightReader world, BlockPos pos, BlockState state) { 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/block/render/CustomBlockModels.java b/src/main/java/com/simibubi/create/foundation/block/render/CustomBlockModels.java index 0f3efbd4a..3653f4615 100644 --- a/src/main/java/com/simibubi/create/foundation/block/render/CustomBlockModels.java +++ b/src/main/java/com/simibubi/create/foundation/block/render/CustomBlockModels.java @@ -28,7 +28,7 @@ public class CustomBlockModels { NonNullFunction behaviour) { registered.add(Pair.of(entry, behaviour)); } - + public void foreach(NonNullBiConsumer> consumer) { loadEntriesIfMissing(); customModels.forEach(consumer); @@ -41,8 +41,19 @@ public class CustomBlockModels { private void loadEntries() { customModels.clear(); - registered.forEach(p -> customModels.put(p.getKey() - .get(), p.getValue())); + registered.forEach(p -> { + Block key = p.getKey() + .get(); + + NonNullFunction existingModel = customModels.get(key); + if (existingModel != null) { + customModels.put(key, p.getValue() + .andThen(existingModel)); + return; + } + + customModels.put(key, p.getValue()); + }); } } 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..ca4c81c04 100644 --- a/src/main/java/com/simibubi/create/foundation/data/BlockStateGen.java +++ b/src/main/java/com/simibubi/create/foundation/data/BlockStateGen.java @@ -19,6 +19,7 @@ import com.simibubi.create.content.contraptions.components.structureMovement.cha import com.simibubi.create.content.contraptions.components.structureMovement.mounted.CartAssembleRailType; import com.simibubi.create.content.contraptions.components.structureMovement.mounted.CartAssemblerBlock; import com.simibubi.create.content.contraptions.components.tracks.ReinforcedRailBlock; +import com.simibubi.create.content.contraptions.fluids.pipes.EncasedPipeBlock; import com.simibubi.create.content.contraptions.fluids.pipes.FluidPipeBlock; import com.simibubi.create.content.contraptions.processing.burner.BlazeBurnerBlock; import com.simibubi.create.content.palettes.PavedBlock; @@ -121,11 +122,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(); @@ -334,6 +341,26 @@ public class BlockStateGen { }; } + public static

NonNullBiConsumer, RegistrateBlockstateProvider> encasedPipe() { + return (c, p) -> { + ModelFile open = AssetLookup.partialBaseModel(c, p, "open"); + ModelFile flat = AssetLookup.partialBaseModel(c, p, "flat"); + MultiPartBlockStateBuilder builder = p.getMultipartBuilder(c.get()); + for (boolean flatPass : Iterate.trueAndFalse) + for (Direction d : Iterate.directions) { + int verticalAngle = d == Direction.UP ? 90 : d == Direction.DOWN ? -90 : 0; + builder.part() + .modelFile(flatPass ? flat : open) + .rotationX(verticalAngle) + .rotationY((int) (d.getHorizontalAngle() + (d.getAxis() + .isVertical() ? 90 : 0)) % 360) + .addModel() + .condition(EncasedPipeBlock.FACING_TO_PROPERTY_MAP.get(d), !flatPass) + .end(); + } + }; + } + public static

NonNullBiConsumer, RegistrateBlockstateProvider> pipe() { return (c, p) -> { String path = "block/" + c.getName(); 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..f619a4dc2 100644 --- a/src/main/java/com/simibubi/create/foundation/data/CreateRegistrate.java +++ b/src/main/java/com/simibubi/create/foundation/data/CreateRegistrate.java @@ -4,6 +4,7 @@ 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.Supplier; import java.util.stream.Collectors; @@ -11,6 +12,8 @@ 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.fluids.VirtualFluid; +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; @@ -130,12 +133,27 @@ public class CreateRegistrate extends AbstractRegistrate { Create.asResource("fluid/" + name + "_flow"), attributesFactory, factory)); } + public FluidBuilder virtualFluid(String name) { + return entry(name, + c -> new VirtualFluidBuilder<>(self(), self(), name, c, Create.asResource("fluid/" + name + "_still"), + Create.asResource("fluid/" + name + "_flow"), null, VirtualFluid::new)); + } + + public FluidBuilder standardFluid(String name) { + return fluid(name, Create.asResource("fluid/" + name + "_still"), Create.asResource("fluid/" + name + "_flow")); + } + /* Util */ public static NonNullConsumer connectedTextures(ConnectedTextureBehaviour behavior) { 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 +194,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/data/recipe/EmptyingRecipeGen.java b/src/main/java/com/simibubi/create/foundation/data/recipe/EmptyingRecipeGen.java index e49369f0e..73985fe44 100644 --- a/src/main/java/com/simibubi/create/foundation/data/recipe/EmptyingRecipeGen.java +++ b/src/main/java/com/simibubi/create/foundation/data/recipe/EmptyingRecipeGen.java @@ -1,23 +1,30 @@ package com.simibubi.create.foundation.data.recipe; +import com.simibubi.create.AllFluids; import com.simibubi.create.AllRecipeTypes; import net.minecraft.data.DataGenerator; +import net.minecraft.item.Items; public class EmptyingRecipeGen extends ProcessingRecipeGen { /* - * potion/bottles are handled internally now. keeping this builder for reference + * potion/water bottles are handled internally */ -// GeneratedRecipe -// -// WATER_BOTTLE = create("water_bottle", b -> b -// .require(NBTIngredient.fromStacks(PotionUtils.addPotionToItemStack(new ItemStack(Items.POTION), Potions.WATER))) -// .output(Fluids.WATER, 250) -// .output(Items.GLASS_BOTTLE)) -// -// ; + GeneratedRecipe + + HONEY_BOTTLE = create("honey_bottle", b -> b + .require(Items.field_226638_pX_) + .output(AllFluids.HONEY.get(), 250) + .output(Items.GLASS_BOTTLE)), + + MILK_BUCKET = create("milk_bucket", b -> b + .require(Items.MILK_BUCKET) + .output(AllFluids.MILK.get(), 1000) + .output(Items.BUCKET)) + + ; public EmptyingRecipeGen(DataGenerator p_i48262_1_) { super(p_i48262_1_); diff --git a/src/main/java/com/simibubi/create/foundation/data/recipe/FillingRecipeGen.java b/src/main/java/com/simibubi/create/foundation/data/recipe/FillingRecipeGen.java index 480d741ec..5aefc579a 100644 --- a/src/main/java/com/simibubi/create/foundation/data/recipe/FillingRecipeGen.java +++ b/src/main/java/com/simibubi/create/foundation/data/recipe/FillingRecipeGen.java @@ -1,22 +1,25 @@ package com.simibubi.create.foundation.data.recipe; import com.simibubi.create.AllRecipeTypes; +import com.simibubi.create.AllTags; import net.minecraft.data.DataGenerator; +import net.minecraft.item.Items; public class FillingRecipeGen extends ProcessingRecipeGen { - /* - * potion/bottles are handled internally now. keeping this builder for reference - */ - -// GeneratedRecipe -// -// WATER_BOTTLE = create("water_bottle", b -> b.require(Items.GLASS_BOTTLE) -// .require(FluidTags.WATER, 250) -// .output(PotionUtils.addPotionToItemStack(new ItemStack(Items.POTION), Potions.WATER))) -// -// ; + GeneratedRecipe + + HONEY_BOTTLE = create("honey_bottle", b -> b + .require(AllTags.forgeFluidTag("honey"), 250) + .require(Items.GLASS_BOTTLE) + .output(Items.field_226638_pX_)), + + MILK_BUCKET = create("milk_bucket", b -> b + .require(AllTags.forgeFluidTag("milk"), 1000) + .require(Items.BUCKET) + .output(Items.MILK_BUCKET)) + ; public FillingRecipeGen(DataGenerator p_i48262_1_) { super(p_i48262_1_); diff --git a/src/main/java/com/simibubi/create/foundation/data/recipe/MixingRecipeGen.java b/src/main/java/com/simibubi/create/foundation/data/recipe/MixingRecipeGen.java index 39fb993cf..2d3d07cee 100644 --- a/src/main/java/com/simibubi/create/foundation/data/recipe/MixingRecipeGen.java +++ b/src/main/java/com/simibubi/create/foundation/data/recipe/MixingRecipeGen.java @@ -1,5 +1,6 @@ package com.simibubi.create.foundation.data.recipe; +import com.simibubi.create.AllFluids; import com.simibubi.create.AllItems; import com.simibubi.create.AllRecipeTypes; import com.simibubi.create.AllTags; @@ -24,6 +25,19 @@ public class MixingRecipeGen extends ProcessingRecipeGen { .output(Fluids.LAVA, 25) .requiresHeat(HeatCondition.SUPERHEATED)), + TEA = create("tea", b -> b.require(Fluids.WATER, 250) + .require(AllTags.forgeFluidTag("milk"), 250) + .require(ItemTags.LEAVES) + .output(AllFluids.TEA.get(), 500) + .requiresHeat(HeatCondition.HEATED)), + + CHOCOLATE = create("chocolate", b -> b + .require(AllTags.forgeFluidTag("milk"), 250) + .require(Items.SUGAR) + .require(Items.COCOA_BEANS) + .output(AllFluids.CHOCOLATE.get(), 250) + .requiresHeat(HeatCondition.HEATED)), + BRASS_INGOT = create("brass_ingot", b -> b.require(I.copper()) .require(I.zinc()) .output(AllItems.BRASS_INGOT.get(), 2) diff --git a/src/main/java/com/simibubi/create/foundation/fluid/FluidIngredient.java b/src/main/java/com/simibubi/create/foundation/fluid/FluidIngredient.java index 12580778a..c87524b45 100644 --- a/src/main/java/com/simibubi/create/foundation/fluid/FluidIngredient.java +++ b/src/main/java/com/simibubi/create/foundation/fluid/FluidIngredient.java @@ -41,6 +41,7 @@ public abstract class FluidIngredient implements Predicate { FluidStackIngredient ingredient = new FluidStackIngredient(); ingredient.fluid = fluid; ingredient.amountRequired = amount; + ingredient.fixFlowing(); return ingredient; } @@ -48,6 +49,7 @@ public abstract class FluidIngredient implements Predicate { FluidStackIngredient ingredient = new FluidStackIngredient(); ingredient.fluid = fluidStack.getFluid(); ingredient.amountRequired = fluidStack.getAmount(); + ingredient.fixFlowing(); if (fluidStack.hasTag()) ingredient.tagToMatch = fluidStack.getTag(); return ingredient; @@ -140,6 +142,11 @@ public abstract class FluidIngredient implements Predicate { public FluidStackIngredient() { tagToMatch = new CompoundNBT(); } + + void fixFlowing() { + if (fluid instanceof FlowingFluid) + fluid = ((FlowingFluid) fluid).getStillFluid(); + } @Override protected boolean testInternal(FluidStack t) { 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_fluid_pipe/block_flat.json b/src/main/resources/assets/create/models/block/encased_fluid_pipe/block_flat.json new file mode 100644 index 000000000..d084586f1 --- /dev/null +++ b/src/main/resources/assets/create/models/block/encased_fluid_pipe/block_flat.json @@ -0,0 +1,16 @@ +{ + "credit": "Made with Blockbench", + "textures": { + "0": "create:block/copper_casing", + "particle": "create:block/copper_casing" + }, + "elements": [ + { + "from": [0, 0, 15], + "to": [16, 16, 16], + "faces": { + "south": {"uv": [0, 0, 16, 16], "texture": "#0"} + } + } + ] +} \ No newline at end of file diff --git a/src/main/resources/assets/create/models/block/encased_fluid_pipe/block_open.json b/src/main/resources/assets/create/models/block/encased_fluid_pipe/block_open.json new file mode 100644 index 000000000..0d555e7e4 --- /dev/null +++ b/src/main/resources/assets/create/models/block/encased_fluid_pipe/block_open.json @@ -0,0 +1,16 @@ +{ + "credit": "Made with Blockbench", + "textures": { + "0": "create:block/encased_pipe", + "particle": "create:block/encased_pipe" + }, + "elements": [ + { + "from": [0, 0, 15], + "to": [16, 16, 16], + "faces": { + "south": {"uv": [0, 0, 16, 16], "texture": "#0"} + } + } + ] +} \ No newline at end of file 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 diff --git a/src/main/resources/assets/create/textures/fluid/chocolate_flow.png b/src/main/resources/assets/create/textures/fluid/chocolate_flow.png new file mode 100644 index 000000000..2df0830b0 Binary files /dev/null and b/src/main/resources/assets/create/textures/fluid/chocolate_flow.png differ diff --git a/src/main/resources/assets/create/textures/fluid/chocolate_flow.png.mcmeta b/src/main/resources/assets/create/textures/fluid/chocolate_flow.png.mcmeta new file mode 100644 index 000000000..0645f48c6 --- /dev/null +++ b/src/main/resources/assets/create/textures/fluid/chocolate_flow.png.mcmeta @@ -0,0 +1,5 @@ +{ + "animation": { + "frametime": 2 + } +} diff --git a/src/main/resources/assets/create/textures/fluid/chocolate_still.png b/src/main/resources/assets/create/textures/fluid/chocolate_still.png new file mode 100644 index 000000000..ecaa79ed4 Binary files /dev/null and b/src/main/resources/assets/create/textures/fluid/chocolate_still.png differ diff --git a/src/main/resources/assets/create/textures/fluid/chocolate_still.png.mcmeta b/src/main/resources/assets/create/textures/fluid/chocolate_still.png.mcmeta new file mode 100644 index 000000000..24f9c2fae --- /dev/null +++ b/src/main/resources/assets/create/textures/fluid/chocolate_still.png.mcmeta @@ -0,0 +1,5 @@ +{ + "animation": { + "frametime": 1 + } +} diff --git a/src/main/resources/assets/create/textures/fluid/honey_flow.png b/src/main/resources/assets/create/textures/fluid/honey_flow.png new file mode 100644 index 000000000..2fa7090ef Binary files /dev/null and b/src/main/resources/assets/create/textures/fluid/honey_flow.png differ diff --git a/src/main/resources/assets/create/textures/fluid/honey_flow.png.mcmeta b/src/main/resources/assets/create/textures/fluid/honey_flow.png.mcmeta new file mode 100644 index 000000000..0645f48c6 --- /dev/null +++ b/src/main/resources/assets/create/textures/fluid/honey_flow.png.mcmeta @@ -0,0 +1,5 @@ +{ + "animation": { + "frametime": 2 + } +} diff --git a/src/main/resources/assets/create/textures/fluid/milk_flow.png b/src/main/resources/assets/create/textures/fluid/milk_flow.png new file mode 100644 index 000000000..c837d07b0 Binary files /dev/null and b/src/main/resources/assets/create/textures/fluid/milk_flow.png differ diff --git a/src/main/resources/assets/create/textures/fluid/milk_flow.png.mcmeta b/src/main/resources/assets/create/textures/fluid/milk_flow.png.mcmeta new file mode 100644 index 000000000..24f9c2fae --- /dev/null +++ b/src/main/resources/assets/create/textures/fluid/milk_flow.png.mcmeta @@ -0,0 +1,5 @@ +{ + "animation": { + "frametime": 1 + } +} diff --git a/src/main/resources/assets/create/textures/fluid/milk_still.png b/src/main/resources/assets/create/textures/fluid/milk_still.png new file mode 100644 index 000000000..c75de6097 Binary files /dev/null and b/src/main/resources/assets/create/textures/fluid/milk_still.png differ diff --git a/src/main/resources/assets/create/textures/fluid/milk_still.png.mcmeta b/src/main/resources/assets/create/textures/fluid/milk_still.png.mcmeta new file mode 100644 index 000000000..24f9c2fae --- /dev/null +++ b/src/main/resources/assets/create/textures/fluid/milk_still.png.mcmeta @@ -0,0 +1,5 @@ +{ + "animation": { + "frametime": 1 + } +} diff --git a/src/main/resources/assets/create/textures/fluid/tea_flow.png b/src/main/resources/assets/create/textures/fluid/tea_flow.png new file mode 100644 index 000000000..b792b7eb3 Binary files /dev/null and b/src/main/resources/assets/create/textures/fluid/tea_flow.png differ diff --git a/src/main/resources/assets/create/textures/fluid/tea_flow.png.mcmeta b/src/main/resources/assets/create/textures/fluid/tea_flow.png.mcmeta new file mode 100644 index 000000000..24f9c2fae --- /dev/null +++ b/src/main/resources/assets/create/textures/fluid/tea_flow.png.mcmeta @@ -0,0 +1,5 @@ +{ + "animation": { + "frametime": 1 + } +} diff --git a/src/main/resources/assets/create/textures/fluid/tea_still.png b/src/main/resources/assets/create/textures/fluid/tea_still.png new file mode 100644 index 000000000..84b3618d6 Binary files /dev/null and b/src/main/resources/assets/create/textures/fluid/tea_still.png differ diff --git a/src/main/resources/assets/create/textures/fluid/tea_still.png.mcmeta b/src/main/resources/assets/create/textures/fluid/tea_still.png.mcmeta new file mode 100644 index 000000000..24f9c2fae --- /dev/null +++ b/src/main/resources/assets/create/textures/fluid/tea_still.png.mcmeta @@ -0,0 +1,5 @@ +{ + "animation": { + "frametime": 1 + } +} diff --git a/src/main/resources/assets/create/textures/item/chocolate_bucket.png b/src/main/resources/assets/create/textures/item/chocolate_bucket.png new file mode 100644 index 000000000..db71755e7 Binary files /dev/null and b/src/main/resources/assets/create/textures/item/chocolate_bucket.png differ diff --git a/src/main/resources/assets/create/textures/item/honey_bucket.png b/src/main/resources/assets/create/textures/item/honey_bucket.png new file mode 100644 index 000000000..1cbb0ea03 Binary files /dev/null and b/src/main/resources/assets/create/textures/item/honey_bucket.png differ