Merge branch 'mc1.18/0.5.1-repolish' of https://github.com/Creators-of-Create/Create-Concealed into mc1.18/0.5.1-repolish

This commit is contained in:
Kryppers 2023-03-23 21:38:47 +00:00
commit 5f1a67e4ce
115 changed files with 873 additions and 474 deletions

View file

@ -578,7 +578,7 @@ bf2b0310500213ff853c748c236eb5d01f61658e assets/create/blockstates/yellow_toolbo
7f39521b211441f5c3e06d60c5978cebe16cacfb assets/create/blockstates/zinc_block.json
b7181bcd8182b2f17088e5aa881f374c9c65470c assets/create/blockstates/zinc_ore.json
ea8adceca24670f1b5850ccd5c2ac766de590f05 assets/create/lang/en_ud.json
231bf5987635c816220c32ae69f269f9de43fecd assets/create/lang/en_us.json
c289c67b762e9b7c061a1f37d689e8c83e8b8942 assets/create/lang/en_us.json
487a511a01b2a4531fb672f917922312db78f958 assets/create/models/block/acacia_window.json
b48060cba1a382f373a05bf0039054053eccf076 assets/create/models/block/acacia_window_pane_noside.json
3066db1bf03cffa1a9c7fbacf47ae586632f4eb3 assets/create/models/block/acacia_window_pane_noside_alt.json
@ -2363,47 +2363,18 @@ a039d4cb73eb870adcf0c0faa49ef89306ffc139 data/create/advancements/recipes/create
d5b34cd969809370372860507c3efd3b6eac321e data/create/advancements/recipes/create.base/copper_bars_from_plates_copper_stonecutting.json
1dea56b4759da676f0edf0878ec834a4129d110b data/create/advancements/recipes/create.base/copper_ladder_from_plates_copper_stonecutting.json
9a082358daa8a0e5b91065e6fe38665f76d246b3 data/create/advancements/recipes/create.base/copper_scaffolding_from_plates_copper_stonecutting.json
19b18800dfc55508e250ebb87fbaa70510736834 data/create/advancements/recipes/create.base/copper_shingle_slab.json
0a8b2f2e35c128e470d0fd1a886b9d6ca2e99483 data/create/advancements/recipes/create.base/copper_shingle_slab_from_copper_shingles_stonecutting.json
6b066af05bef4c41a6b8fefa2cb38bcdb821eada data/create/advancements/recipes/create.base/copper_shingle_stairs.json
f5ab02df55489afd71af8a54f41a7d9b89e28b6c data/create/advancements/recipes/create.base/copper_shingle_stairs_from_copper_shingles_stonecutting.json
c2ca0ac0d670fa4d7e8150ba6e314de2881248b6 data/create/advancements/recipes/create.base/copper_shingles_from_plates_copper_stonecutting.json
6d86dd16e892ea7fcaa9c98d6f1c80ee8b2b3d50 data/create/advancements/recipes/create.base/copper_tile_slab.json
4976383641eb8308fdaf9c5c02af7191154e232e data/create/advancements/recipes/create.base/copper_tile_slab_from_copper_tiles_stonecutting.json
9a4f929ad023abc111e4da7dce14104bcd162949 data/create/advancements/recipes/create.base/copper_tile_stairs.json
f605ac221fbd565152f8e987beb7697299588da2 data/create/advancements/recipes/create.base/copper_tile_stairs_from_copper_tiles_stonecutting.json
5190d5c155ebd9a670dc8271e4920a048e633d25 data/create/advancements/recipes/create.base/copper_tiles_from_plates_copper_stonecutting.json
3397bed32684183c2896348e3010f47137e3216d data/create/advancements/recipes/create.base/copycat_panel_from_zinc_ingot_stonecutting.json
3c22b58635d4b1c1e4c4033e43b7b4a74b1af186 data/create/advancements/recipes/create.base/copycat_step_from_zinc_ingot_stonecutting.json
376bda381f3dedb52b03eb1504b103d8ddd1b672 data/create/advancements/recipes/create.base/crafting/appliances/copper_backtank.json
9833d16405f8c51646590e98588fb410f96d9523 data/create/advancements/recipes/create.base/crafting/appliances/copper_diving_boots.json
680c982dd1d3c45bed4d390fc0da5042750c157a data/create/advancements/recipes/create.base/crafting/appliances/copper_diving_helmet.json
265a953eaac909fd2817c6dc3d1a08b376579a25 data/create/advancements/recipes/create.base/crafting/appliances/crafting_blueprint.json
fa2e18298f7710465d9b0798a69288e846c646fd data/create/advancements/recipes/create.base/crafting/appliances/dough.json
a9b163744b1c494d07ec256d0367884f9601176d data/create/advancements/recipes/create.base/crafting/appliances/linked_controller.json
ab1e704db4a41a8d2cba357942f95c411a80a0c8 data/create/advancements/recipes/create.base/crafting/appliances/netherite_backtank.json
f714a7fa70ed9e9b0c145d466357cd1ef4de184b data/create/advancements/recipes/create.base/crafting/appliances/netherite_diving_boots.json
99efa64a74ad29cf3b6cc565eabdd9b7e7e0cc40 data/create/advancements/recipes/create.base/crafting/appliances/netherite_diving_helmet.json
c4769d7ac9c537eb4409b02883e89d0930514a8b data/create/advancements/recipes/create.base/crafting/appliances/tree_fertilizer.json
9a3666ff51dc8bc84fc19a662cbe7a74ba2ea6e1 data/create/advancements/recipes/create.base/crafting/copper/waxed_copper_shingle_slab_from_honeycomb.json
4401458a7b24d26a1195b1bcc8aa98dbc49b5343 data/create/advancements/recipes/create.base/crafting/copper/waxed_copper_shingle_stairs_from_honeycomb.json
af9f28793d0fe25c09ffe695412f76db8e00aac9 data/create/advancements/recipes/create.base/crafting/copper/waxed_copper_shingles_from_honeycomb.json
f4b00c480033de4122a8910760be937c3c14b6fa data/create/advancements/recipes/create.base/crafting/copper/waxed_copper_tile_slab_from_honeycomb.json
819573e770501ae2877502bde97f88f18674d664 data/create/advancements/recipes/create.base/crafting/copper/waxed_copper_tile_stairs_from_honeycomb.json
88a1a812e70a839d881d6a2de0c7bd2901cd7110 data/create/advancements/recipes/create.base/crafting/copper/waxed_copper_tiles_from_honeycomb.json
b3c40ad7ba1d3168c2f107437356bdf2c1b656cd data/create/advancements/recipes/create.base/crafting/copper/waxed_exposed_copper_shingle_slab_from_honeycomb.json
95a9872f9fa780a4becd99922dc1a07dc49f6197 data/create/advancements/recipes/create.base/crafting/copper/waxed_exposed_copper_shingle_stairs_from_honeycomb.json
1d507e15315a0e8021a3896048fee38074ad59be data/create/advancements/recipes/create.base/crafting/copper/waxed_exposed_copper_shingles_from_honeycomb.json
42624cd60adfa07d8b54ff995017663f2c080b4c data/create/advancements/recipes/create.base/crafting/copper/waxed_exposed_copper_tile_slab_from_honeycomb.json
3a9adacc43929f920094bb126e1d83c856a86bfe data/create/advancements/recipes/create.base/crafting/copper/waxed_exposed_copper_tile_stairs_from_honeycomb.json
efd9cd067c1b2693ca8dbb587418ed224de4a0e5 data/create/advancements/recipes/create.base/crafting/copper/waxed_exposed_copper_tiles_from_honeycomb.json
a61208fab2c5ac4abdeca0a1f43359820d34cff8 data/create/advancements/recipes/create.base/crafting/copper/waxed_oxidized_copper_shingle_slab_from_honeycomb.json
546507f9ec60f2b282440c5cbe873865749f7267 data/create/advancements/recipes/create.base/crafting/copper/waxed_oxidized_copper_shingle_stairs_from_honeycomb.json
30da09d01454489196caca640975799c54ff7fe4 data/create/advancements/recipes/create.base/crafting/copper/waxed_oxidized_copper_shingles_from_honeycomb.json
e56eeb0bf21f743236ffaf061efab5e75b1cba2a data/create/advancements/recipes/create.base/crafting/copper/waxed_oxidized_copper_tile_slab_from_honeycomb.json
c43e0847e84d5909c2d5f943faeb641bb33b3814 data/create/advancements/recipes/create.base/crafting/copper/waxed_oxidized_copper_tile_stairs_from_honeycomb.json
18ad4ce8a00680c49e42f232352dbd56bc4b9b13 data/create/advancements/recipes/create.base/crafting/copper/waxed_oxidized_copper_tiles_from_honeycomb.json
2ade4a47afb8a9eab6bf6b965571051a3bdda6c6 data/create/advancements/recipes/create.base/crafting/copper/waxed_weathered_copper_shingle_slab_from_honeycomb.json
abda25ed5695780b534412b4501e927ec3a6fe16 data/create/advancements/recipes/create.base/crafting/copper/waxed_weathered_copper_shingle_stairs_from_honeycomb.json
7675fa9d8f2914f68f425f20d2ef9fab0287051e data/create/advancements/recipes/create.base/crafting/copper/waxed_weathered_copper_shingles_from_honeycomb.json
5a3e5b3285e44d543c55ab92510864f031f0ccf8 data/create/advancements/recipes/create.base/crafting/copper/waxed_weathered_copper_tile_slab_from_honeycomb.json
2e8b01267e308929961be0b1f268b34f5faa3aa3 data/create/advancements/recipes/create.base/crafting/copper/waxed_weathered_copper_tile_stairs_from_honeycomb.json
1ed6fd1f67443f5d6d955218dc45254db407d8ac data/create/advancements/recipes/create.base/crafting/copper/waxed_weathered_copper_tiles_from_honeycomb.json
bb138bedd2aec741fa54b6b52be384fdbd741249 data/create/advancements/recipes/create.base/crafting/curiosities/brown_toolbox.json
773faf96b003868e35ceeb0bf738281d066e343b data/create/advancements/recipes/create.base/crafting/curiosities/minecart_coupling.json
a8c72e7e02fd0843d33fa4c5d43de81f29bc3aa4 data/create/advancements/recipes/create.base/crafting/curiosities/peculiar_bell.json
@ -2427,6 +2398,7 @@ bf3bcb52176b43f1886c7538705ca7a4f0e84a9e data/create/advancements/recipes/create
d5e444853f95bcdb3b19d0d222806ac077e2e72d data/create/advancements/recipes/create.base/crafting/kinetics/clockwork_bearing.json
cc7d35a428412b995e46165b10873b538063d1e1 data/create/advancements/recipes/create.base/crafting/kinetics/clutch.json
f1d8029514853b25356dbdeadd56c4d765fb2a08 data/create/advancements/recipes/create.base/crafting/kinetics/cogwheel.json
cf98248087a419198f5f468ad7d17822c6aa40cc data/create/advancements/recipes/create.base/crafting/kinetics/contraption_controls.json
261bcfc98cc5ccd25b63776a32e8c0d1075640b4 data/create/advancements/recipes/create.base/crafting/kinetics/controller_rail.json
c66893266dac69fdcc9ba6bae432e915678b0706 data/create/advancements/recipes/create.base/crafting/kinetics/controls.json
70ba0f80929fb60409518d03fbeecd21d5002cb3 data/create/advancements/recipes/create.base/crafting/kinetics/copper_valve_handle.json
@ -2439,6 +2411,7 @@ bb771079e7e814a2a7a854d48bbf270db16a420e data/create/advancements/recipes/create
cd1a6ea80663ec9251bb13e27d90e6ccdd10ce3e data/create/advancements/recipes/create.base/crafting/kinetics/deployer.json
2c85a7080390156ce05985bbba840ad9ffbaed8f data/create/advancements/recipes/create.base/crafting/kinetics/depot.json
f79cc141e2cfc8dde9f27b1e3b2e00aced8ee632 data/create/advancements/recipes/create.base/crafting/kinetics/display_board.json
1c23b12718f1efd4b5a538801637eb1619089120 data/create/advancements/recipes/create.base/crafting/kinetics/elevator_pulley.json
81a3fe7e87c26767e3be6f97ea1de50f1cd74b65 data/create/advancements/recipes/create.base/crafting/kinetics/empty_blaze_burner.json
77ee6740d2e0f3ec4bffb298d9d8ce4c77ebff0e data/create/advancements/recipes/create.base/crafting/kinetics/encased_chain_drive.json
3a9aef30af8d9694548da236fe3129c16dba4883 data/create/advancements/recipes/create.base/crafting/kinetics/encased_fan.json
@ -2576,20 +2549,15 @@ b9b0a8bfff61a89149d4fcadf679f753385212d0 data/create/advancements/recipes/create
5da3e404c9195ee68c25e91a4fd29ab21a8e9316 data/create/advancements/recipes/create.base/crafting/logistics/stockpile_switchfrom_conversion.json
8e137e9ad4870708d4c015400f91d78cb37b4a92 data/create/advancements/recipes/create.base/crafting/materials/andesite_alloy.json
6ad84f6f8b4ef85e67ebcc68c5326a22b59bc81a data/create/advancements/recipes/create.base/crafting/materials/andesite_alloy_from_zinc.json
a7d9a6dda3049332f04f4db027340070e1a9e597 data/create/advancements/recipes/create.base/crafting/materials/brass_block_from_compacting.json
7716dae5a22a02fa9ea129985eb14639811c2045 data/create/advancements/recipes/create.base/crafting/materials/brass_ingot_from_compacting.json
906a26d805d46f44ce094a14ce138a6ce14431fa data/create/advancements/recipes/create.base/crafting/materials/brass_ingot_from_decompacting.json
90d4658a26a32bfdade4573797ea4d913151c707 data/create/advancements/recipes/create.base/crafting/materials/brass_nugget_from_decompacting.json
dbfba4474ce5229205245d46680a651754a593ce data/create/advancements/recipes/create.base/crafting/materials/copper_nugget.json
a8a032b40204919242bf5043d2920627cd28d348 data/create/advancements/recipes/create.base/crafting/materials/electron_tube.json
121f9d02b1405327ff01113e32c1a1019f9b2f35 data/create/advancements/recipes/create.base/crafting/materials/raw_zinc.json
433e9dae24a4167b2cbd23e37e59bc84cfe352e5 data/create/advancements/recipes/create.base/crafting/materials/raw_zinc_block.json
2d875ed3e78b4840863f2188aea2b9dd23304512 data/create/advancements/recipes/create.base/crafting/materials/red_sand_paper.json
bc58b9bec08df3ae2ba9aa871097f0113e4f9075 data/create/advancements/recipes/create.base/crafting/materials/rose_quartz.json
37ff5e0f0a1224e310c4a63e9690913b525db337 data/create/advancements/recipes/create.base/crafting/materials/rose_quartz_tilesfrom_conversion.json
75cbc691e7443b566c1639d0c77c96cab66677c8 data/create/advancements/recipes/create.base/crafting/materials/sand_paper.json
401f3b540c745c05bfb7b24e27367790aa232d74 data/create/advancements/recipes/create.base/crafting/materials/small_rose_quartz_tilesfrom_conversion.json
d8a83ace588c01d781fea3e62fa3762ee04e0250 data/create/advancements/recipes/create.base/crafting/materials/zinc_block_from_compacting.json
827269a9749c37af9221d27281a85de09942fa2a data/create/advancements/recipes/create.base/crafting/materials/zinc_ingot_from_compacting.json
b15e93ea48cc71a78dca4d5fa5738d5354a3a944 data/create/advancements/recipes/create.base/crafting/materials/zinc_ingot_from_decompacting.json
b13ffffe311c3e16c3577aeeca881a04aeed7ee6 data/create/advancements/recipes/create.base/crafting/materials/zinc_nugget_from_decompacting.json
@ -2597,36 +2565,9 @@ b13ffffe311c3e16c3577aeeca881a04aeed7ee6 data/create/advancements/recipes/create
453c39a149831f27b4c0069fae40cb1a8c87ed5e data/create/advancements/recipes/create.base/crafting/schematics/schematic_and_quill.json
d5efcd206b74c5165cbd4c2f5bb7bf3cf3eeae34 data/create/advancements/recipes/create.base/crafting/schematics/schematic_table.json
cd1f66066664ed58995f8a7988fb1aa22605650b data/create/advancements/recipes/create.base/crafting/schematics/schematicannon.json
513de02268c39a5e9e35aa048b95bdef089b0506 data/create/advancements/recipes/create.base/exposed_copper_shingle_slab.json
cdd290ecaaba6c2debf40bbb4619834b53873478 data/create/advancements/recipes/create.base/exposed_copper_shingle_slab_from_exposed_copper_shingles_stonecutting.json
cf780e8976aabaed5c8af81c8bb0575566b1192e data/create/advancements/recipes/create.base/exposed_copper_shingle_stairs.json
c66711a5e902e052806b3b963b36f8d66a19b04d data/create/advancements/recipes/create.base/exposed_copper_shingle_stairs_from_exposed_copper_shingles_stonecutting.json
960333a7850f7ad2be6609b6acc28ca16ef55100 data/create/advancements/recipes/create.base/exposed_copper_tile_slab.json
73c87bb34bb523d1253ef447ca7a74f8996e4f6c data/create/advancements/recipes/create.base/exposed_copper_tile_slab_from_exposed_copper_tiles_stonecutting.json
9342614352d7359477ed968da90ac4decb6b5f57 data/create/advancements/recipes/create.base/exposed_copper_tile_stairs.json
4e982ff097886f4b6b36ff381ff55e335496526d data/create/advancements/recipes/create.base/exposed_copper_tile_stairs_from_exposed_copper_tiles_stonecutting.json
f252ece4cb4229302f9f7cb490d3a2722856660a data/create/advancements/recipes/create.base/oxidized_copper_shingle_slab.json
71c3e234e634292b28a4409179d9c96982d88631 data/create/advancements/recipes/create.base/oxidized_copper_shingle_slab_from_oxidized_copper_shingles_stonecutting.json
a0cca91653064ca509a1dc499ff6d9fd8ae80584 data/create/advancements/recipes/create.base/oxidized_copper_shingle_stairs.json
b089b6900828f642f87c4502293f69e0ce2841a4 data/create/advancements/recipes/create.base/oxidized_copper_shingle_stairs_from_oxidized_copper_shingles_stonecutting.json
f35f31c4ce11e8aaf6eef0e840eced22d969c614 data/create/advancements/recipes/create.base/oxidized_copper_tile_slab.json
873bedb88243757360f8c49b15eef4d8f28c09da data/create/advancements/recipes/create.base/oxidized_copper_tile_slab_from_oxidized_copper_tiles_stonecutting.json
f89386ad5e50a50cfb2d423b9543c1bb7b6fd867 data/create/advancements/recipes/create.base/oxidized_copper_tile_stairs.json
18dac4389d7b0fac7287dfa8dd21b65a0b04cfb6 data/create/advancements/recipes/create.base/oxidized_copper_tile_stairs_from_oxidized_copper_tiles_stonecutting.json
57b304371e080df11d87a539b1c5b30721057ce6 data/create/advancements/recipes/create.base/rose_quartz_block_from_rose_quartz_stonecutting.json
6afa5267c43c3592a5da7d9f4526b712d5ef5b15 data/create/advancements/recipes/create.base/rose_quartz_tiles_from_polished_rose_quartz_stonecutting.json
8547f4a498595eb11dde29df4b6f9e9051d2bf5f data/create/advancements/recipes/create.base/small_rose_quartz_tiles_from_polished_rose_quartz_stonecutting.json
b2b9c6d93ff4d912081cee2ab5e68209828cdc86 data/create/advancements/recipes/create.base/smelting/zinc_ingot_from_crushed.json
16e52ba04279bcf803c5f6be46550ba5d81be1a3 data/create/advancements/recipes/create.base/smelting/zinc_ingot_from_ore.json
88a8661167993de0f2897c95e398b6f77429d724 data/create/advancements/recipes/create.base/smelting/zinc_ingot_from_raw_ore.json
7116a947db0270e0948da79fbb89ba8a9585fc06 data/create/advancements/recipes/create.base/weathered_copper_shingle_slab.json
3596f5854c2791d92cb0cad28870b4cfffeda7da data/create/advancements/recipes/create.base/weathered_copper_shingle_slab_from_weathered_copper_shingles_stonecutting.json
072a42e28fa53adc050b76e68cf513019322b071 data/create/advancements/recipes/create.base/weathered_copper_shingle_stairs.json
7e0ecedccf437fc33b061791e46fe9818b2342e1 data/create/advancements/recipes/create.base/weathered_copper_shingle_stairs_from_weathered_copper_shingles_stonecutting.json
11147672814885dd3752eff396018d76f1275092 data/create/advancements/recipes/create.base/weathered_copper_tile_slab.json
6e197869c90b2ee996fac4735336183939d1fe2b data/create/advancements/recipes/create.base/weathered_copper_tile_slab_from_weathered_copper_tiles_stonecutting.json
5ff8d9ec43683be5be130f980091222ffccfb2d9 data/create/advancements/recipes/create.base/weathered_copper_tile_stairs.json
2a058814de30b03625e90da7188cea7cabe7b4a0 data/create/advancements/recipes/create.base/weathered_copper_tile_stairs_from_weathered_copper_tiles_stonecutting.json
e7134f9dd47eb9f706f1ec1bd886a14eb7d3010a data/create/advancements/recipes/create.palettes/acacia_window.json
abeb5dfa9931aac86b080309bd0ed5397fd1254b data/create/advancements/recipes/create.palettes/acacia_window_pane.json
60545d0d6d70b4be2a22b03b09de45c6d4f7434b data/create/advancements/recipes/create.palettes/andesite_pillar_from_andesite_stonecutting.json
@ -2637,6 +2578,45 @@ f1ba98fa90ae0b81cef3e8bfed4a63565539b4a2 data/create/advancements/recipes/create
62772c540e195fc6b8cfa91f9ae32898c649f93e data/create/advancements/recipes/create.palettes/birch_window_pane.json
bfa045d74386df70fd1130c934ed814376442dee data/create/advancements/recipes/create.palettes/calcite_pillar_from_calcite_stonecutting.json
7d0d2554ea3e646941a1ed59c8f5e9d45f9d76d6 data/create/advancements/recipes/create.palettes/calcite_pillar_from_stone_types_calcite_stonecutting.json
19b18800dfc55508e250ebb87fbaa70510736834 data/create/advancements/recipes/create.palettes/copper_shingle_slab.json
0a8b2f2e35c128e470d0fd1a886b9d6ca2e99483 data/create/advancements/recipes/create.palettes/copper_shingle_slab_from_copper_shingles_stonecutting.json
6b066af05bef4c41a6b8fefa2cb38bcdb821eada data/create/advancements/recipes/create.palettes/copper_shingle_stairs.json
f5ab02df55489afd71af8a54f41a7d9b89e28b6c data/create/advancements/recipes/create.palettes/copper_shingle_stairs_from_copper_shingles_stonecutting.json
c2ca0ac0d670fa4d7e8150ba6e314de2881248b6 data/create/advancements/recipes/create.palettes/copper_shingles_from_plates_copper_stonecutting.json
6d86dd16e892ea7fcaa9c98d6f1c80ee8b2b3d50 data/create/advancements/recipes/create.palettes/copper_tile_slab.json
4976383641eb8308fdaf9c5c02af7191154e232e data/create/advancements/recipes/create.palettes/copper_tile_slab_from_copper_tiles_stonecutting.json
9a4f929ad023abc111e4da7dce14104bcd162949 data/create/advancements/recipes/create.palettes/copper_tile_stairs.json
f605ac221fbd565152f8e987beb7697299588da2 data/create/advancements/recipes/create.palettes/copper_tile_stairs_from_copper_tiles_stonecutting.json
5190d5c155ebd9a670dc8271e4920a048e633d25 data/create/advancements/recipes/create.palettes/copper_tiles_from_plates_copper_stonecutting.json
9a3666ff51dc8bc84fc19a662cbe7a74ba2ea6e1 data/create/advancements/recipes/create.palettes/crafting/copper/waxed_copper_shingle_slab_from_honeycomb.json
4401458a7b24d26a1195b1bcc8aa98dbc49b5343 data/create/advancements/recipes/create.palettes/crafting/copper/waxed_copper_shingle_stairs_from_honeycomb.json
af9f28793d0fe25c09ffe695412f76db8e00aac9 data/create/advancements/recipes/create.palettes/crafting/copper/waxed_copper_shingles_from_honeycomb.json
f4b00c480033de4122a8910760be937c3c14b6fa data/create/advancements/recipes/create.palettes/crafting/copper/waxed_copper_tile_slab_from_honeycomb.json
819573e770501ae2877502bde97f88f18674d664 data/create/advancements/recipes/create.palettes/crafting/copper/waxed_copper_tile_stairs_from_honeycomb.json
88a1a812e70a839d881d6a2de0c7bd2901cd7110 data/create/advancements/recipes/create.palettes/crafting/copper/waxed_copper_tiles_from_honeycomb.json
b3c40ad7ba1d3168c2f107437356bdf2c1b656cd data/create/advancements/recipes/create.palettes/crafting/copper/waxed_exposed_copper_shingle_slab_from_honeycomb.json
95a9872f9fa780a4becd99922dc1a07dc49f6197 data/create/advancements/recipes/create.palettes/crafting/copper/waxed_exposed_copper_shingle_stairs_from_honeycomb.json
1d507e15315a0e8021a3896048fee38074ad59be data/create/advancements/recipes/create.palettes/crafting/copper/waxed_exposed_copper_shingles_from_honeycomb.json
42624cd60adfa07d8b54ff995017663f2c080b4c data/create/advancements/recipes/create.palettes/crafting/copper/waxed_exposed_copper_tile_slab_from_honeycomb.json
3a9adacc43929f920094bb126e1d83c856a86bfe data/create/advancements/recipes/create.palettes/crafting/copper/waxed_exposed_copper_tile_stairs_from_honeycomb.json
efd9cd067c1b2693ca8dbb587418ed224de4a0e5 data/create/advancements/recipes/create.palettes/crafting/copper/waxed_exposed_copper_tiles_from_honeycomb.json
a61208fab2c5ac4abdeca0a1f43359820d34cff8 data/create/advancements/recipes/create.palettes/crafting/copper/waxed_oxidized_copper_shingle_slab_from_honeycomb.json
546507f9ec60f2b282440c5cbe873865749f7267 data/create/advancements/recipes/create.palettes/crafting/copper/waxed_oxidized_copper_shingle_stairs_from_honeycomb.json
30da09d01454489196caca640975799c54ff7fe4 data/create/advancements/recipes/create.palettes/crafting/copper/waxed_oxidized_copper_shingles_from_honeycomb.json
e56eeb0bf21f743236ffaf061efab5e75b1cba2a data/create/advancements/recipes/create.palettes/crafting/copper/waxed_oxidized_copper_tile_slab_from_honeycomb.json
c43e0847e84d5909c2d5f943faeb641bb33b3814 data/create/advancements/recipes/create.palettes/crafting/copper/waxed_oxidized_copper_tile_stairs_from_honeycomb.json
18ad4ce8a00680c49e42f232352dbd56bc4b9b13 data/create/advancements/recipes/create.palettes/crafting/copper/waxed_oxidized_copper_tiles_from_honeycomb.json
2ade4a47afb8a9eab6bf6b965571051a3bdda6c6 data/create/advancements/recipes/create.palettes/crafting/copper/waxed_weathered_copper_shingle_slab_from_honeycomb.json
abda25ed5695780b534412b4501e927ec3a6fe16 data/create/advancements/recipes/create.palettes/crafting/copper/waxed_weathered_copper_shingle_stairs_from_honeycomb.json
7675fa9d8f2914f68f425f20d2ef9fab0287051e data/create/advancements/recipes/create.palettes/crafting/copper/waxed_weathered_copper_shingles_from_honeycomb.json
5a3e5b3285e44d543c55ab92510864f031f0ccf8 data/create/advancements/recipes/create.palettes/crafting/copper/waxed_weathered_copper_tile_slab_from_honeycomb.json
2e8b01267e308929961be0b1f268b34f5faa3aa3 data/create/advancements/recipes/create.palettes/crafting/copper/waxed_weathered_copper_tile_stairs_from_honeycomb.json
1ed6fd1f67443f5d6d955218dc45254db407d8ac data/create/advancements/recipes/create.palettes/crafting/copper/waxed_weathered_copper_tiles_from_honeycomb.json
a7d9a6dda3049332f04f4db027340070e1a9e597 data/create/advancements/recipes/create.palettes/crafting/materials/brass_block_from_compacting.json
433e9dae24a4167b2cbd23e37e59bc84cfe352e5 data/create/advancements/recipes/create.palettes/crafting/materials/raw_zinc_block.json
37ff5e0f0a1224e310c4a63e9690913b525db337 data/create/advancements/recipes/create.palettes/crafting/materials/rose_quartz_tilesfrom_conversion.json
401f3b540c745c05bfb7b24e27367790aa232d74 data/create/advancements/recipes/create.palettes/crafting/materials/small_rose_quartz_tilesfrom_conversion.json
d8a83ace588c01d781fea3e62fa3762ee04e0250 data/create/advancements/recipes/create.palettes/crafting/materials/zinc_block_from_compacting.json
265595b70feaec33e5a2d7fb552b0284fcc09030 data/create/advancements/recipes/create.palettes/crafting/palettes/scorchia.json
0577e7cff04b9fb37d8d4fccf8218271fc7983ca data/create/advancements/recipes/create.palettes/crimsite_pillar_from_crimsite_stonecutting.json
97c48ddf1f9ef0f8433bf34ed7c4f6a7f44cf445 data/create/advancements/recipes/create.palettes/crimsite_pillar_from_stone_types_crimsite_stonecutting.json
@ -2986,6 +2966,14 @@ fc2da04056c0a1a3347c227696c13d85394e27e6 data/create/advancements/recipes/create
79375ff88b84f85e1983cba3e4af45abe399f881 data/create/advancements/recipes/create.palettes/diorite_pillar_from_stone_types_diorite_stonecutting.json
7a0e600fdcc58aa91f06c7049209a7af138451e8 data/create/advancements/recipes/create.palettes/dripstone_pillar_from_dripstone_block_stonecutting.json
9c64a60aa3741533d1fe6d43bfcdf52673880651 data/create/advancements/recipes/create.palettes/dripstone_pillar_from_stone_types_dripstone_stonecutting.json
513de02268c39a5e9e35aa048b95bdef089b0506 data/create/advancements/recipes/create.palettes/exposed_copper_shingle_slab.json
cdd290ecaaba6c2debf40bbb4619834b53873478 data/create/advancements/recipes/create.palettes/exposed_copper_shingle_slab_from_exposed_copper_shingles_stonecutting.json
cf780e8976aabaed5c8af81c8bb0575566b1192e data/create/advancements/recipes/create.palettes/exposed_copper_shingle_stairs.json
c66711a5e902e052806b3b963b36f8d66a19b04d data/create/advancements/recipes/create.palettes/exposed_copper_shingle_stairs_from_exposed_copper_shingles_stonecutting.json
960333a7850f7ad2be6609b6acc28ca16ef55100 data/create/advancements/recipes/create.palettes/exposed_copper_tile_slab.json
73c87bb34bb523d1253ef447ca7a74f8996e4f6c data/create/advancements/recipes/create.palettes/exposed_copper_tile_slab_from_exposed_copper_tiles_stonecutting.json
9342614352d7359477ed968da90ac4decb6b5f57 data/create/advancements/recipes/create.palettes/exposed_copper_tile_stairs.json
4e982ff097886f4b6b36ff381ff55e335496526d data/create/advancements/recipes/create.palettes/exposed_copper_tile_stairs_from_exposed_copper_tiles_stonecutting.json
05331b5f1701453ecdfd0b3e6429b22ec209ba67 data/create/advancements/recipes/create.palettes/framed_glass_from_glass_colorless_stonecutting.json
a2146b1cb0dab36728469c0792bc3ec187ea950b data/create/advancements/recipes/create.palettes/framed_glass_pane.json
c89d97bf7dbdc3740c4c3cc9446f0921b9bbe6e3 data/create/advancements/recipes/create.palettes/granite_pillar_from_granite_stonecutting.json
@ -3030,6 +3018,14 @@ ea8ec2e00c9d88b9a58202033c483efa068a15b5 data/create/advancements/recipes/create
5c662131b9d73434a5ee6abda5b6f5b9819e194d data/create/advancements/recipes/create.palettes/ochrum_pillar_from_stone_types_ochrum_stonecutting.json
fc374d88e9f4ffeb54348a611dc470f148c572de data/create/advancements/recipes/create.palettes/ornate_iron_window.json
47aebe2078baf3b0c22f09934461f7376ebbea39 data/create/advancements/recipes/create.palettes/ornate_iron_window_pane.json
f252ece4cb4229302f9f7cb490d3a2722856660a data/create/advancements/recipes/create.palettes/oxidized_copper_shingle_slab.json
71c3e234e634292b28a4409179d9c96982d88631 data/create/advancements/recipes/create.palettes/oxidized_copper_shingle_slab_from_oxidized_copper_shingles_stonecutting.json
a0cca91653064ca509a1dc499ff6d9fd8ae80584 data/create/advancements/recipes/create.palettes/oxidized_copper_shingle_stairs.json
b089b6900828f642f87c4502293f69e0ce2841a4 data/create/advancements/recipes/create.palettes/oxidized_copper_shingle_stairs_from_oxidized_copper_shingles_stonecutting.json
f35f31c4ce11e8aaf6eef0e840eced22d969c614 data/create/advancements/recipes/create.palettes/oxidized_copper_tile_slab.json
873bedb88243757360f8c49b15eef4d8f28c09da data/create/advancements/recipes/create.palettes/oxidized_copper_tile_slab_from_oxidized_copper_tiles_stonecutting.json
f89386ad5e50a50cfb2d423b9543c1bb7b6fd867 data/create/advancements/recipes/create.palettes/oxidized_copper_tile_stairs.json
18dac4389d7b0fac7287dfa8dd21b65a0b04cfb6 data/create/advancements/recipes/create.palettes/oxidized_copper_tile_stairs_from_oxidized_copper_tiles_stonecutting.json
0b40d3c37e27d9d9297f050ad710af6c17821954 data/create/advancements/recipes/create.palettes/polished_cut_andesite_from_andesite_stonecutting.json
eb1770f5e5f4384e84ae90e566d0d48a857b7748 data/create/advancements/recipes/create.palettes/polished_cut_andesite_from_stone_types_andesite_stonecutting.json
f586b7389c46acb2ade3286ea234e5b37bfd728c data/create/advancements/recipes/create.palettes/polished_cut_andesite_slab.json
@ -3198,6 +3194,8 @@ f9654753495f21ebc977577bd68b48f9342d28eb data/create/advancements/recipes/create
cddfc113bdeb65b6c3b6c03464f8c1b58184a03a data/create/advancements/recipes/create.palettes/polished_cut_veridium_wall.json
3fba2f3cbf33e52859936c79dbe35889e1feca9f data/create/advancements/recipes/create.palettes/polished_cut_veridium_wall_from_stone_types_veridium_stonecutting.json
7530647e53e597277c53f774a48482322b4950e0 data/create/advancements/recipes/create.palettes/polished_cut_veridium_wall_from_veridium_stonecutting.json
57b304371e080df11d87a539b1c5b30721057ce6 data/create/advancements/recipes/create.palettes/rose_quartz_block_from_rose_quartz_stonecutting.json
6afa5267c43c3592a5da7d9f4526b712d5ef5b15 data/create/advancements/recipes/create.palettes/rose_quartz_tiles_from_polished_rose_quartz_stonecutting.json
4436c573f6c2f8f2e3b5de43e405e832546e04e0 data/create/advancements/recipes/create.palettes/scorchia_pillar_from_scorchia_stonecutting.json
3b5e6ce9528b42d64c0250a09ed4e0e3d4102f31 data/create/advancements/recipes/create.palettes/scorchia_pillar_from_stone_types_scorchia_stonecutting.json
a18f7ceb32cf98586d8ddd6e1df329d2a6b1a65d data/create/advancements/recipes/create.palettes/scoria_pillar_from_scoria_stonecutting.json
@ -3322,6 +3320,7 @@ fc5c86d935760cd49916773ca9b3625dabfac841 data/create/advancements/recipes/create
5f9a53d974c34dd146a4bba599349608be0bca07 data/create/advancements/recipes/create.palettes/small_ochrum_brick_wall_from_stone_types_ochrum_stonecutting.json
6eaba6b9654bd90c42fe4cde9de3cc4e59f4dd91 data/create/advancements/recipes/create.palettes/small_ochrum_bricks_from_ochrum_stonecutting.json
c7c4893d0f539dfb37a68752c8d5334bdab47eef data/create/advancements/recipes/create.palettes/small_ochrum_bricks_from_stone_types_ochrum_stonecutting.json
8547f4a498595eb11dde29df4b6f9e9051d2bf5f data/create/advancements/recipes/create.palettes/small_rose_quartz_tiles_from_polished_rose_quartz_stonecutting.json
ece579c71a88be47b633e8c5dd3b4bf37aa459cf data/create/advancements/recipes/create.palettes/small_scorchia_brick_slab.json
cb37044471b3cb8f264ed078ce68069d5fae92ce data/create/advancements/recipes/create.palettes/small_scorchia_brick_slab_from_scorchia_stonecutting.json
1d3911ee4791cd4610e21eb56d64f3b0ad80f68a data/create/advancements/recipes/create.palettes/small_scorchia_brick_slab_from_stone_types_scorchia_stonecutting.json
@ -3383,6 +3382,14 @@ ff8a4ea4ad4e56379f4dfc78909b669c72702680 data/create/advancements/recipes/create
8f719c087e4344de4cb57e06f10ebd49850f17b5 data/create/advancements/recipes/create.palettes/vertical_framed_glass_pane.json
7211458c5fb7116de2e789252da01b08820ec207 data/create/advancements/recipes/create.palettes/warped_window.json
cce0482d2f60d11478bb73c778e157744899b7d3 data/create/advancements/recipes/create.palettes/warped_window_pane.json
7116a947db0270e0948da79fbb89ba8a9585fc06 data/create/advancements/recipes/create.palettes/weathered_copper_shingle_slab.json
3596f5854c2791d92cb0cad28870b4cfffeda7da data/create/advancements/recipes/create.palettes/weathered_copper_shingle_slab_from_weathered_copper_shingles_stonecutting.json
072a42e28fa53adc050b76e68cf513019322b071 data/create/advancements/recipes/create.palettes/weathered_copper_shingle_stairs.json
7e0ecedccf437fc33b061791e46fe9818b2342e1 data/create/advancements/recipes/create.palettes/weathered_copper_shingle_stairs_from_weathered_copper_shingles_stonecutting.json
11147672814885dd3752eff396018d76f1275092 data/create/advancements/recipes/create.palettes/weathered_copper_tile_slab.json
6e197869c90b2ee996fac4735336183939d1fe2b data/create/advancements/recipes/create.palettes/weathered_copper_tile_slab_from_weathered_copper_tiles_stonecutting.json
5ff8d9ec43683be5be130f980091222ffccfb2d9 data/create/advancements/recipes/create.palettes/weathered_copper_tile_stairs.json
2a058814de30b03625e90da7188cea7cabe7b4a0 data/create/advancements/recipes/create.palettes/weathered_copper_tile_stairs_from_weathered_copper_tiles_stonecutting.json
340b7f0161ec9513273c90f28bf4c7edc18f3c7f data/create/advancements/recipes/decorations/smelting/glass_pane_from_framed_glass_pane.json
6cf30c17433f545140d247414b6d211b904a63be data/create/advancements/recipes/decorations/smelting/glass_pane_from_horizontal_framed_glass_pane.json
d759d42813afa08afa27fdc6b986ad89b735be4a data/create/advancements/recipes/decorations/smelting/glass_pane_from_tiled_glass_pane.json
@ -4062,12 +4069,17 @@ bea832822e0e5f0048eb94649641ea541e11f943 data/create/recipes/copper_shingles_fro
0c52acde7dc4d19349d859d76527b712542d36c5 data/create/recipes/copper_tile_stairs.json
15da07234ee005be984f060520d0cf87bca672f5 data/create/recipes/copper_tile_stairs_from_copper_tiles_stonecutting.json
10fdc13f5b2b745e13e6e4e949a07ceaf4544a26 data/create/recipes/copper_tiles_from_plates_copper_stonecutting.json
89aed29928cdfa7cdde43d4a51fc4387497ddde0 data/create/recipes/copycat_panel_from_zinc_ingot_stonecutting.json
c06a4519139a33250c01297b532ba6ac7d76284c data/create/recipes/copycat_step_from_zinc_ingot_stonecutting.json
eb18d5972484418fa5a768633e68688ad20d2bd7 data/create/recipes/crafting/appliances/copper_backtank.json
5771562086710eb5a3a05d464989d2f23d6c5e86 data/create/recipes/crafting/appliances/copper_diving_boots.json
ec38ddb44e4bf8eaaba6f9d27e8469234fc98528 data/create/recipes/crafting/appliances/copper_diving_helmet.json
c077375d16b4505e52548613fbc9356993556e6b data/create/recipes/crafting/appliances/crafting_blueprint.json
edf96556bb2357f54fd398fe573641afa15239b2 data/create/recipes/crafting/appliances/dough.json
75cdbd88973a8ca943ebe890153b01a344b96b01 data/create/recipes/crafting/appliances/linked_controller.json
9ef7bae26db471741096abd2b02f738202913994 data/create/recipes/crafting/appliances/netherite_backtank.json
e84952517f02a7c1ba10f12e2e0e32b94f720e58 data/create/recipes/crafting/appliances/netherite_diving_boots.json
664421c08143e4eb60332f53da17f70b4be83e74 data/create/recipes/crafting/appliances/netherite_diving_helmet.json
7b5f863dda3d05a79cb85943a178eba0bd8a7dc7 data/create/recipes/crafting/appliances/slime_ball.json
b159ba84428eee6ef6e23df1766f2a18f2c8a63e data/create/recipes/crafting/appliances/tree_fertilizer.json
395f5fc62e27448121e3447a24a752be1a91def2 data/create/recipes/crafting/copper/waxed_copper_shingle_slab_from_honeycomb.json
@ -4119,6 +4131,7 @@ ac71fb7ad49c64bbe37230deeb1b06f7ea76036c data/create/recipes/crafting/kinetics/c
507e4d788144224d977c5f136800b6c9e277f837 data/create/recipes/crafting/kinetics/clockwork_bearing.json
031788926b5d8b77ec061773a11c3cfd2b361cd1 data/create/recipes/crafting/kinetics/clutch.json
a79bb44c6b136ea3d3f28926adf84e37e6aa6aa6 data/create/recipes/crafting/kinetics/cogwheel.json
a0c74542a8cc156e6055cda6aaca7545890b7bef data/create/recipes/crafting/kinetics/contraption_controls.json
11fe2ccc11f470e5735c3e848a944f889697ff73 data/create/recipes/crafting/kinetics/controller_rail.json
397c6c0691a54987b67854673b8d3c16c7f74e14 data/create/recipes/crafting/kinetics/controls.json
3093be508f6597eee2f3230cd9072f12d2821a6f data/create/recipes/crafting/kinetics/copper_valve_handle.json
@ -4131,6 +4144,7 @@ a79bb44c6b136ea3d3f28926adf84e37e6aa6aa6 data/create/recipes/crafting/kinetics/c
0c9f611a3982b04f817136b8bcee2548f2eff450 data/create/recipes/crafting/kinetics/deployer.json
2fe66b3d37ff5b0f7f30d5baa4efd713dd8b502a data/create/recipes/crafting/kinetics/depot.json
37012670f9913fbaf83a44a5655693390dcf4a2b data/create/recipes/crafting/kinetics/display_board.json
37c7e1769d99c39109c6bf1fd7e42b15c90ba851 data/create/recipes/crafting/kinetics/elevator_pulley.json
93940e00c442077ce101dca50dbc28e0f1178560 data/create/recipes/crafting/kinetics/empty_blaze_burner.json
882d1f0f2a05a067cc6c5d73440464310514f95b data/create/recipes/crafting/kinetics/encased_chain_drive.json
665cf36bbca980b538eee76c87e1d80dffca0669 data/create/recipes/crafting/kinetics/encased_fan.json
@ -5709,6 +5723,7 @@ ac265a674626e0e832330086fd18fe0be37fc327 data/create/recipes/weathered_copper_ti
5942a571f79c40524bbf408775cf91de4715f2b6 data/create/recipes/weathered_copper_tile_stairs_from_weathered_copper_tiles_stonecutting.json
2a2700b43614f86d3294726595cb28ed7dca4387 data/create/tags/blocks/brittle.json
d99d5c67bdffff60789a19bd51a5c5267c75e0a4 data/create/tags/blocks/casing.json
74700d556ca80c7a1db5fd4efb09c3ddb26cad66 data/create/tags/blocks/contraption_inventory_deny.json
bc203f09dd7f48965d146d0bd035fb904cb75e7d data/create/tags/blocks/copycat_allow.json
d4a3b66f4b763b9a2dcdea74b7273f0ae85cb335 data/create/tags/blocks/copycat_deny.json
2b4c93e5a752ebf54217594766f30d8d60cb4343 data/create/tags/blocks/fan_transparent.json

View file

@ -1061,6 +1061,7 @@
"create.minecart_coupling.removed": "Removed all couplings from minecart",
"create.minecart_coupling.too_far": "Minecarts are too far apart",
"create.contraptions.moving_container": "Moving %1$s",
"create.contraptions.movement_mode": "Movement Mode",
"create.contraptions.movement_mode.move_place": "Always Place when Stopped",
"create.contraptions.movement_mode.move_place_returned": "Place only in Starting Position",

View file

@ -0,0 +1,34 @@
{
"parent": "minecraft:recipes/root",
"rewards": {
"recipes": [
"create:copycat_panel_from_zinc_ingot_stonecutting"
]
},
"criteria": {
"has_zinc_ingot": {
"trigger": "minecraft:inventory_changed",
"conditions": {
"items": [
{
"items": [
"create:zinc_ingot"
]
}
]
}
},
"has_the_recipe": {
"trigger": "minecraft:recipe_unlocked",
"conditions": {
"recipe": "create:copycat_panel_from_zinc_ingot_stonecutting"
}
}
},
"requirements": [
[
"has_zinc_ingot",
"has_the_recipe"
]
]
}

View file

@ -0,0 +1,34 @@
{
"parent": "minecraft:recipes/root",
"rewards": {
"recipes": [
"create:copycat_step_from_zinc_ingot_stonecutting"
]
},
"criteria": {
"has_zinc_ingot": {
"trigger": "minecraft:inventory_changed",
"conditions": {
"items": [
{
"items": [
"create:zinc_ingot"
]
}
]
}
},
"has_the_recipe": {
"trigger": "minecraft:recipe_unlocked",
"conditions": {
"recipe": "create:copycat_step_from_zinc_ingot_stonecutting"
}
}
},
"requirements": [
[
"has_zinc_ingot",
"has_the_recipe"
]
]
}

View file

@ -0,0 +1,34 @@
{
"parent": "minecraft:recipes/root",
"rewards": {
"recipes": [
"create:crafting/appliances/netherite_backtank"
]
},
"criteria": {
"has_item": {
"trigger": "minecraft:inventory_changed",
"conditions": {
"items": [
{
"items": [
"create:copper_backtank"
]
}
]
}
},
"has_the_recipe": {
"trigger": "minecraft:recipe_unlocked",
"conditions": {
"recipe": "create:crafting/appliances/netherite_backtank"
}
}
},
"requirements": [
[
"has_item",
"has_the_recipe"
]
]
}

View file

@ -0,0 +1,34 @@
{
"parent": "minecraft:recipes/root",
"rewards": {
"recipes": [
"create:crafting/appliances/netherite_diving_boots"
]
},
"criteria": {
"has_item": {
"trigger": "minecraft:inventory_changed",
"conditions": {
"items": [
{
"items": [
"create:copper_diving_boots"
]
}
]
}
},
"has_the_recipe": {
"trigger": "minecraft:recipe_unlocked",
"conditions": {
"recipe": "create:crafting/appliances/netherite_diving_boots"
}
}
},
"requirements": [
[
"has_item",
"has_the_recipe"
]
]
}

View file

@ -0,0 +1,34 @@
{
"parent": "minecraft:recipes/root",
"rewards": {
"recipes": [
"create:crafting/appliances/netherite_diving_helmet"
]
},
"criteria": {
"has_item": {
"trigger": "minecraft:inventory_changed",
"conditions": {
"items": [
{
"items": [
"create:copper_diving_helmet"
]
}
]
}
},
"has_the_recipe": {
"trigger": "minecraft:recipe_unlocked",
"conditions": {
"recipe": "create:crafting/appliances/netherite_diving_helmet"
}
}
},
"requirements": [
[
"has_item",
"has_the_recipe"
]
]
}

View file

@ -0,0 +1,34 @@
{
"parent": "minecraft:recipes/root",
"rewards": {
"recipes": [
"create:crafting/kinetics/contraption_controls"
]
},
"criteria": {
"has_item": {
"trigger": "minecraft:inventory_changed",
"conditions": {
"items": [
{
"items": [
"create:andesite_alloy"
]
}
]
}
},
"has_the_recipe": {
"trigger": "minecraft:recipe_unlocked",
"conditions": {
"recipe": "create:crafting/kinetics/contraption_controls"
}
}
},
"requirements": [
[
"has_item",
"has_the_recipe"
]
]
}

View file

@ -0,0 +1,32 @@
{
"parent": "minecraft:recipes/root",
"rewards": {
"recipes": [
"create:crafting/kinetics/elevator_pulley"
]
},
"criteria": {
"has_item": {
"trigger": "minecraft:inventory_changed",
"conditions": {
"items": [
{
"tag": "forge:ingots/brass"
}
]
}
},
"has_the_recipe": {
"trigger": "minecraft:recipe_unlocked",
"conditions": {
"recipe": "create:crafting/kinetics/elevator_pulley"
}
}
},
"requirements": [
[
"has_item",
"has_the_recipe"
]
]
}

View file

@ -0,0 +1,8 @@
{
"type": "minecraft:stonecutting",
"ingredient": {
"item": "create:zinc_ingot"
},
"result": "create:copycat_panel",
"count": 4
}

View file

@ -0,0 +1,8 @@
{
"type": "minecraft:stonecutting",
"ingredient": {
"item": "create:zinc_ingot"
},
"result": "create:copycat_step",
"count": 4
}

View file

@ -0,0 +1,12 @@
{
"type": "minecraft:smithing",
"base": {
"item": "create:copper_backtank"
},
"addition": {
"tag": "forge:ingots/netherite"
},
"result": {
"item": "create:netherite_backtank"
}
}

View file

@ -0,0 +1,12 @@
{
"type": "minecraft:smithing",
"base": {
"item": "create:copper_diving_boots"
},
"addition": {
"tag": "forge:ingots/netherite"
},
"result": {
"item": "create:netherite_diving_boots"
}
}

View file

@ -0,0 +1,12 @@
{
"type": "minecraft:smithing",
"base": {
"item": "create:copper_diving_helmet"
},
"addition": {
"tag": "forge:ingots/netherite"
},
"result": {
"item": "create:netherite_diving_helmet"
}
}

View file

@ -0,0 +1,22 @@
{
"type": "minecraft:crafting_shaped",
"pattern": [
"B",
"C",
"I"
],
"key": {
"B": {
"tag": "minecraft:buttons"
},
"C": {
"item": "create:andesite_casing"
},
"I": {
"item": "create:electron_tube"
}
},
"result": {
"item": "create:contraption_controls"
}
}

View file

@ -0,0 +1,22 @@
{
"type": "minecraft:crafting_shaped",
"pattern": [
"B",
"C",
"I"
],
"key": {
"B": {
"item": "create:brass_casing"
},
"C": {
"item": "minecraft:dried_kelp_block"
},
"I": {
"tag": "forge:plates/iron"
}
},
"result": {
"item": "create:elevator_pulley"
}
}

View file

@ -0,0 +1,4 @@
{
"replace": false,
"values": []
}

View file

@ -1780,6 +1780,7 @@ public class AllBlocks {
.transform(BuilderTransformers.copycat())
.onRegister(CreateRegistrate.blockModel(() -> CopycatStepModel::new))
.item()
.recipe((c, p) -> p.stonecutting(DataIngredient.items(AllItems.ZINC_INGOT), c::get, 4))
.transform(customItemModel("copycat_base", "step"))
.register();
@ -1788,6 +1789,7 @@ public class AllBlocks {
.transform(BuilderTransformers.copycat())
.onRegister(CreateRegistrate.blockModel(() -> CopycatPanelModel::new))
.item()
.recipe((c, p) -> p.stonecutting(DataIngredient.items(AllItems.ZINC_INGOT), c::get, 4))
.transform(customItemModel("copycat_base", "panel"))
.register();
@ -2122,6 +2124,10 @@ public class AllBlocks {
});
// Materials
static {
REGISTRATE.creativeModeTab(() -> AllCreativeModeTabs.PALETTES_CREATIVE_TAB);
}
public static final BlockEntry<Block> ZINC_ORE = REGISTRATE.block("zinc_ore", Block::new)
.initialProperties(() -> Blocks.GOLD_ORE)

View file

@ -93,7 +93,7 @@ public class AllPartialModels {
ARM_HEAD = block("mechanical_arm/head"), ARM_CLAW_BASE = block("mechanical_arm/claw_base"),
ARM_CLAW_GRIP = block("mechanical_arm/claw_grip"),
MECHANICAL_PUMP_ARROW = block("mechanical_pump/arrow"), MECHANICAL_PUMP_COG = block("mechanical_pump/cog"),
MECHANICAL_PUMP_COG = block("mechanical_pump/cog"),
FLUID_PIPE_CASING = block("fluid_pipe/casing"), FLUID_VALVE_POINTER = block("fluid_valve/pointer"),
SPOUT_TOP = block("spout/top"), SPOUT_MIDDLE = block("spout/middle"), SPOUT_BOTTOM = block("spout/bottom"),

View file

@ -110,7 +110,7 @@ public class AllShapes {
.add(5, -1, 6, 11, 0, 8)
.forHorizontal(SOUTH),
PUMP = shape(2, 0, 2, 14, 5, 14).add(4, 0, 4, 12, 16, 12)
.add(3, 12, 3, 13, 16, 13)
.add(3, 11, 3, 13, 16, 13)
.forDirectional(Direction.UP),
CRUSHING_WHEEL_CONTROLLER_COLLISION = shape(0, 0, 0, 16, 13, 16).forDirectional(Direction.DOWN),

View file

@ -87,6 +87,7 @@ public class AllTags {
WRENCH_PICKUP,
COPYCAT_ALLOW,
COPYCAT_DENY,
CONTRAPTION_INVENTORY_DENY,
RELOCATION_NOT_SUPPORTED(FORGE),
WG_STONE(FORGE),

View file

@ -83,10 +83,9 @@ public class Create {
public static final CreateRegistrate REGISTRATE = CreateRegistrate.create(ID);
static {
// TODO 0.5.1: choose color palette
REGISTRATE.setTooltipModifierFactory(item -> {
return new ItemDescription.Modifier(item, Palette.BLUE)
.andThen(TooltipModifier.mapNull(KineticStats.create(item)));
return new ItemDescription.Modifier(item, Palette.STANDARD_CREATE)
.andThen(TooltipModifier.mapNull(KineticStats.create(item)));
});
}

View file

@ -84,7 +84,7 @@ public abstract class PortableStorageInterfaceBlockEntity extends SmartBlockEnti
}
}
transferTimer = Math.min(transferTimer, ANIMATION * 2 + getTransferTimeout());
transferTimer = Math.min(transferTimer, ANIMATION * 2 + timeUnit);
boolean timerCanDecrement = transferTimer > ANIMATION || transferTimer > 0 && keepAlive == 0
&& (isVirtual() || !level.isClientSide || transferTimer != ANIMATION);
@ -180,7 +180,7 @@ public abstract class PortableStorageInterfaceBlockEntity extends SmartBlockEnti
}
public void startConnecting() {
transferTimer = getTransferTimeout() + ANIMATION * 2;
transferTimer = 6 + ANIMATION * 2;
}
public void onContentTransferred() {

View file

@ -278,9 +278,12 @@ public abstract class AbstractContraptionEntity extends Entity implements IEntit
InteractionHand interactionHand) {
int indexOfSeat = contraption.getSeats()
.indexOf(localPos);
if (indexOfSeat == -1 || AllItems.WRENCH.isIn(player.getItemInHand(interactionHand)))
return contraption.interactors.containsKey(localPos) && contraption.interactors.get(localPos)
.handlePlayerInteraction(player, interactionHand, localPos, this);
if (indexOfSeat == -1 || AllItems.WRENCH.isIn(player.getItemInHand(interactionHand))) {
if (contraption.interactors.containsKey(localPos))
return contraption.interactors.get(localPos)
.handlePlayerInteraction(player, interactionHand, localPos, this);
return contraption.storage.handlePlayerStorageInteraction(contraption, player, localPos);
}
if (player.isPassenger())
return false;

View file

@ -1,6 +1,7 @@
package com.simibubi.create.content.contraptions.components.structureMovement;
import com.simibubi.create.AllBlockEntityTypes;
import com.simibubi.create.AllTags.AllBlockTags;
import com.simibubi.create.content.contraptions.components.crafter.MechanicalCrafterBlockEntity;
import com.simibubi.create.content.contraptions.processing.ProcessingInventory;
import com.simibubi.create.content.logistics.block.inventories.BottomlessItemHandler;
@ -15,6 +16,7 @@ import net.minecraft.world.level.block.entity.BarrelBlockEntity;
import net.minecraft.world.level.block.entity.BlockEntity;
import net.minecraft.world.level.block.entity.ChestBlockEntity;
import net.minecraft.world.level.block.entity.ShulkerBoxBlockEntity;
import net.minecraft.world.level.block.state.BlockState;
import net.minecraftforge.common.util.LazyOptional;
import net.minecraftforge.items.CapabilityItemHandler;
import net.minecraftforge.items.IItemHandler;
@ -47,9 +49,30 @@ public class MountedStorage {
if (be instanceof ItemVaultBlockEntity)
return true;
LazyOptional<IItemHandler> capability = be.getCapability(CapabilityItemHandler.ITEM_HANDLER_CAPABILITY);
IItemHandler handler = capability.orElse(null);
return handler instanceof ItemStackHandler && !(handler instanceof ProcessingInventory);
try {
LazyOptional<IItemHandler> capability = be.getCapability(CapabilityItemHandler.ITEM_HANDLER_CAPABILITY);
IItemHandler handler = capability.orElse(null);
if (handler instanceof ItemStackHandler)
return !(handler instanceof ProcessingInventory);
return canUseModdedInventory(be, handler);
} catch (Exception e) {
return false;
}
}
public static boolean canUseModdedInventory(BlockEntity be, IItemHandler handler) {
if (!(handler instanceof IItemHandlerModifiable validItemHandler))
return false;
BlockState blockState = be.getBlockState();
if (AllBlockTags.CONTRAPTION_INVENTORY_DENY.matches(blockState))
return false;
// There doesn't appear to be much of a standard for tagging chests/barrels
String blockId = blockState.getBlock()
.getRegistryName()
.getPath();
return blockId.endsWith("_chest") || blockId.endsWith("_barrel");
}
public MountedStorage(BlockEntity be) {
@ -182,7 +205,7 @@ public class MountedStorage {
public boolean isValid() {
return valid;
}
public boolean canUseForFuel() {
return !noFuel;
}

View file

@ -0,0 +1,68 @@
package com.simibubi.create.content.contraptions.components.structureMovement;
import java.util.List;
import java.util.function.Supplier;
import com.google.common.collect.ImmutableList;
import com.simibubi.create.foundation.utility.Lang;
import net.minecraft.network.chat.Component;
import net.minecraft.util.Mth;
import net.minecraft.world.MenuProvider;
import net.minecraft.world.entity.player.Inventory;
import net.minecraft.world.entity.player.Player;
import net.minecraft.world.inventory.AbstractContainerMenu;
import net.minecraft.world.inventory.ChestMenu;
import net.minecraft.world.inventory.MenuType;
import net.minecraftforge.items.IItemHandlerModifiable;
import net.minecraftforge.items.wrapper.RecipeWrapper;
public class MountedStorageInteraction {
public static final List<MenuType<?>> menus = ImmutableList.of(MenuType.GENERIC_9x1, MenuType.GENERIC_9x2,
MenuType.GENERIC_9x3, MenuType.GENERIC_9x4, MenuType.GENERIC_9x5, MenuType.GENERIC_9x6);
public static MenuProvider createMenuProvider(Component displayName, IItemHandlerModifiable handler,
int slotCount, Supplier<Boolean> stillValid) {
int rows = Mth.clamp(slotCount / 9, 1, 6);
MenuType<?> menuType = menus.get(rows - 1);
Component menuName = Lang.translateDirect("contraptions.moving_container", displayName);
return new MenuProvider() {
@Override
public AbstractContainerMenu createMenu(int pContainerId, Inventory pPlayerInventory, Player pPlayer) {
return new ChestMenu(menuType, pContainerId, pPlayerInventory, new StorageInteractionContainer(handler, stillValid),
rows);
}
@Override
public Component getDisplayName() {
return menuName;
}
};
}
public static class StorageInteractionContainer extends RecipeWrapper {
private Supplier<Boolean> stillValid;
public StorageInteractionContainer(IItemHandlerModifiable inv, Supplier<Boolean> stillValid) {
super(inv);
this.stillValid = stillValid;
}
@Override
public boolean stillValid(Player player) {
return stillValid.get();
}
@Override
public int getMaxStackSize() {
return 64;
}
}
}

View file

@ -6,27 +6,38 @@ import java.util.Collection;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.function.Supplier;
import java.util.stream.Collectors;
import com.simibubi.create.content.contraptions.components.structureMovement.Contraption.ContraptionInvWrapper;
import com.simibubi.create.content.contraptions.fluids.tank.FluidTankBlockEntity;
import com.simibubi.create.foundation.fluid.CombinedTankWrapper;
import com.simibubi.create.foundation.utility.Components;
import com.simibubi.create.foundation.utility.NBTHelper;
import net.minecraft.core.BlockPos;
import net.minecraft.core.Direction;
import net.minecraft.nbt.CompoundTag;
import net.minecraft.nbt.ListTag;
import net.minecraft.nbt.NbtUtils;
import net.minecraft.nbt.Tag;
import net.minecraft.network.chat.Component;
import net.minecraft.sounds.SoundEvents;
import net.minecraft.sounds.SoundSource;
import net.minecraft.world.entity.player.Player;
import net.minecraft.world.item.ItemStack;
import net.minecraft.world.level.block.ChestBlock;
import net.minecraft.world.level.block.entity.BlockEntity;
import net.minecraft.world.level.block.state.properties.ChestType;
import net.minecraft.world.level.levelgen.structure.templatesystem.StructureTemplate.StructureBlockInfo;
import net.minecraft.world.phys.Vec3;
import net.minecraftforge.fluids.FluidStack;
import net.minecraftforge.fluids.IFluidTank;
import net.minecraftforge.fluids.capability.IFluidHandler;
import net.minecraftforge.fluids.capability.IFluidHandler.FluidAction;
import net.minecraftforge.fluids.capability.templates.FluidTank;
import net.minecraftforge.items.IItemHandlerModifiable;
import net.minecraftforge.items.wrapper.CombinedInvWrapper;
public class MountedStorageManager {
@ -202,4 +213,50 @@ public class MountedStorageManager {
return fluidInventory;
}
public boolean handlePlayerStorageInteraction(Contraption contraption, Player player, BlockPos localPos) {
if (player.level.isClientSide()) {
BlockEntity localBE = contraption.presentBlockEntities.get(localPos);
return MountedStorage.canUseAsStorage(localBE);
}
MountedStorageManager storageManager = contraption.getStorageForSpawnPacket();
MountedStorage storage = storageManager.storage.get(localPos);
if (storage == null || storage.getItemHandler() == null)
return false;
IItemHandlerModifiable handler = storage.getItemHandler();
StructureBlockInfo info = contraption.getBlocks()
.get(localPos);
if (info != null && info.state.hasProperty(ChestBlock.TYPE)) {
ChestType chestType = info.state.getValue(ChestBlock.TYPE);
Direction facing = info.state.getOptionalValue(ChestBlock.FACING)
.orElse(Direction.SOUTH);
Direction connectedDirection =
chestType == ChestType.LEFT ? facing.getClockWise() : facing.getCounterClockWise();
if (chestType != ChestType.SINGLE) {
MountedStorage storage2 = storageManager.storage.get(localPos.relative(connectedDirection));
if (storage2 != null && storage2.getItemHandler() != null)
handler = chestType == ChestType.RIGHT ? new CombinedInvWrapper(handler, storage2.getItemHandler())
: new CombinedInvWrapper(storage2.getItemHandler(), handler);
}
}
int slotCount = handler.getSlots();
if (slotCount == 0)
return false;
if (slotCount % 9 != 0)
return false;
Supplier<Boolean> stillValid = () -> contraption.entity.isAlive()
&& player.distanceToSqr(contraption.entity.toGlobalVector(Vec3.atCenterOf(localPos), 0)) < 64;
Component name = info != null ? info.state.getBlock()
.getName() : Components.literal("Container");
player.openMenu(MountedStorageInteraction.createMenuProvider(name, handler, slotCount, stillValid));
Vec3 soundPos = contraption.entity.toGlobalVector(Vec3.atCenterOf(localPos), 0);
player.level.playSound(null, new BlockPos(soundPos), SoundEvents.BARREL_OPEN, SoundSource.BLOCKS, 0.75f, 1f);
return true;
}
}

View file

@ -90,9 +90,13 @@ public class ElevatorContactBlock extends WrenchableDirectionalBlock
if (pState.getValue(CALLING))
return;
ElevatorColumn elevatorColumn = ElevatorColumn.getOrCreate(pLevel, getColumnCoords(pLevel, pPos));
callToContactAndUpdate(elevatorColumn, pState, pLevel, pPos);
}
public void callToContactAndUpdate(ElevatorColumn elevatorColumn, BlockState pState, Level pLevel, BlockPos pPos) {
pLevel.setBlock(pPos, pState.cycle(CALLING), 2);
ElevatorColumn elevatorColumn = ElevatorColumn.getOrCreate(pLevel, getColumnCoords(pLevel, pPos));
for (BlockPos otherPos : elevatorColumn.getContacts()) {
if (otherPos.equals(pPos))
continue;

View file

@ -1,6 +1,5 @@
package com.simibubi.create.content.contraptions.components.structureMovement.elevator;
import com.simibubi.create.AllBlocks;
import com.simibubi.create.content.contraptions.components.structureMovement.AbstractContraptionEntity;
import com.simibubi.create.foundation.networking.SimplePacketBase;
@ -41,7 +40,7 @@ public class ElevatorTargetFloorPacket extends SimplePacketBase {
.getEntity(entityId);
if (!(entityByID instanceof AbstractContraptionEntity ace))
return;
if (!(ace.getContraption()instanceof ElevatorContraption ec))
if (!(ace.getContraption() instanceof ElevatorContraption ec))
return;
if (ace.distanceToSqr(sender) > 50 * 50)
return;
@ -53,18 +52,12 @@ public class ElevatorTargetFloorPacket extends SimplePacketBase {
if (ec.isTargetUnreachable(targetY))
return;
for (BlockPos otherPos : elevatorColumn.getContacts()) {
BlockState otherState = level.getBlockState(otherPos);
if (!AllBlocks.ELEVATOR_CONTACT.has(otherState))
continue;
level.setBlock(otherPos, otherState.setValue(ElevatorContactBlock.CALLING, otherPos.getY() == targetY),
2);
AllBlocks.ELEVATOR_CONTACT.get()
.scheduleActivation(level, otherPos);
}
BlockPos pos = elevatorColumn.contactAt(targetY);
BlockState blockState = level.getBlockState(pos);
if (!(blockState.getBlock() instanceof ElevatorContactBlock ecb))
return;
elevatorColumn.target(targetY);
elevatorColumn.markDirty();
ecb.callToContactAndUpdate(elevatorColumn, blockState, level, pos);
});
return true;
}

View file

@ -201,7 +201,7 @@ public class PipeConnection {
particleSplashNextTick = false;
}
float flowSpeed = 1 / 32f + Mth.clamp(pressure.get(flow.inbound) / 512f, 0, 1) * 31 / 32f;
float flowSpeed = 1 / 32f + Mth.clamp(pressure.get(flow.inbound) / 128f, 0, 1) * 31 / 32f;
flow.progress.setValue(Math.min(flow.progress.getValue() + flowSpeed, 1));
if (flow.progress.getValue() >= 1)
flow.complete = true;

View file

@ -32,6 +32,7 @@ import net.minecraft.world.level.block.state.properties.BlockStateProperties;
import net.minecraft.world.level.material.FluidState;
import net.minecraft.world.level.material.Fluids;
import net.minecraft.world.level.pathfinder.PathComputationType;
import net.minecraft.world.phys.Vec3;
import net.minecraft.world.phys.shapes.CollisionContext;
import net.minecraft.world.phys.shapes.VoxelShape;
import net.minecraft.world.ticks.TickPriority;
@ -107,20 +108,33 @@ public class PumpBlock extends DirectionalKineticBlock
Player player = context.getPlayer();
toPlace = ProperWaterloggedBlock.withWater(level, toPlace, pos);
if (player != null && player.isSteppingCarefully())
return toPlace;
Direction nearestLookingDirection = context.getNearestLookingDirection();
Direction targetDirection = context.getPlayer() != null && context.getPlayer()
.isShiftKeyDown() ? nearestLookingDirection : nearestLookingDirection.getOpposite();
Direction bestConnectedDirection = null;
double bestDistance = Double.MAX_VALUE;
for (Direction d : Iterate.directions) {
BlockPos adjPos = pos.relative(d);
BlockState adjState = level.getBlockState(adjPos);
if (!FluidPipeBlock.canConnectTo(level, adjPos, adjState, d))
continue;
toPlace = toPlace.setValue(FACING, d);
if (context.getClickedFace() == d.getOpposite())
break;
double distance = Vec3.atLowerCornerOf(d.getNormal())
.distanceTo(Vec3.atLowerCornerOf(targetDirection.getNormal()));
if (distance > bestDistance)
continue;
bestDistance = distance;
bestConnectedDirection = d;
}
return toPlace;
if (bestConnectedDirection == null)
return toPlace;
if (bestConnectedDirection.getAxis() == targetDirection.getAxis())
return toPlace;
if (player.isSteppingCarefully() && bestConnectedDirection.getAxis() != targetDirection.getAxis())
return toPlace;
return toPlace.setValue(FACING, bestConnectedDirection);
}
public static boolean isPump(BlockState state) {

View file

@ -21,8 +21,6 @@ import com.simibubi.create.foundation.utility.BlockFace;
import com.simibubi.create.foundation.utility.Couple;
import com.simibubi.create.foundation.utility.Iterate;
import com.simibubi.create.foundation.utility.Pair;
import com.simibubi.create.foundation.utility.animation.LerpedFloat;
import com.simibubi.create.foundation.utility.animation.LerpedFloat.Chaser;
import net.minecraft.core.BlockPos;
import net.minecraft.core.Direction;
@ -38,15 +36,14 @@ import net.minecraftforge.fluids.capability.IFluidHandler;
public class PumpBlockEntity extends KineticBlockEntity {
LerpedFloat arrowDirection;
Couple<MutableBoolean> sidesToUpdate;
boolean pressureUpdate;
boolean reversed;
// Backcompat- flips any pump blockstate that loads with reversed=true
boolean scheduleFlip;
public PumpBlockEntity(BlockEntityType<?> typeIn, BlockPos pos, BlockState state) {
super(typeIn, pos, state);
arrowDirection = LerpedFloat.linear()
.startWithValue(1);
sidesToUpdate = Couple.create(MutableBoolean::new);
}
@ -58,55 +55,36 @@ public class PumpBlockEntity extends KineticBlockEntity {
registerAwardables(behaviours, AllAdvancements.PUMP);
}
@Override
public void initialize() {
super.initialize();
reversed = getSpeed() < 0;
}
@Override
public void tick() {
super.tick();
float speed = getSpeed();
if (level.isClientSide) {
if (speed == 0)
return;
arrowDirection.chase(speed >= 0 ? 1 : -1, .5f, Chaser.EXP);
arrowDirection.tickChaser();
if (!isVirtual())
return;
if (level.isClientSide && !isVirtual())
return;
if (scheduleFlip) {
level.setBlockAndUpdate(worldPosition,
getBlockState().setValue(PumpBlock.FACING, getBlockState().getValue(PumpBlock.FACING)
.getOpposite()));
scheduleFlip = false;
}
// if (pressureUpdate)
// updatePressureChange();
sidesToUpdate.forEachWithContext((update, isFront) -> {
if (update.isFalse())
return;
update.setFalse();
distributePressureTo(isFront ? getFront() : getFront().getOpposite());
});
if (speed == 0)
return;
if (speed < 0 != reversed) {
reversed = speed < 0;
updatePressureChange();
return;
}
}
@Override
public void onSpeedChanged(float previousSpeed) {
super.onSpeedChanged(previousSpeed);
if (previousSpeed == getSpeed())
if (Math.abs(previousSpeed) == Math.abs(getSpeed()))
return;
if (speed != 0) {
reversed = speed < 0;
if (speed != 0)
award(AllAdvancements.PUMP);
}
if (level.isClientSide && !isVirtual())
return;
@ -126,6 +104,13 @@ public class PumpBlockEntity extends KineticBlockEntity {
sidesToUpdate.forEach(MutableBoolean::setTrue);
}
@Override
protected void read(CompoundTag compound, boolean clientPacket) {
super.read(compound, clientPacket);
if (compound.getBoolean("Reversed"))
scheduleFlip = true;
}
protected void distributePressureTo(Direction side) {
if (getSpeed() == 0)
return;
@ -216,7 +201,7 @@ public class PumpBlockEntity extends KineticBlockEntity {
float pressure = Math.abs(getSpeed());
for (Set<BlockFace> set : validFaces.values()) {
int parallelBranches = set.size();
int parallelBranches = Math.max(1, set.size() - 1);
for (BlockFace face : set) {
BlockPos pipePos = face.getPos();
Direction pipeSide = face.getFace();
@ -309,18 +294,6 @@ public class PumpBlockEntity extends KineticBlockEntity {
return FluidPropagator.isOpenEnd(world, blockFace.getPos(), face);
}
@Override
public void write(CompoundTag compound, boolean clientPacket) {
compound.putBoolean("Reversed", reversed);
super.write(compound, clientPacket);
}
@Override
protected void read(CompoundTag compound, boolean clientPacket) {
reversed = compound.getBoolean("Reversed");
super.read(compound, clientPacket);
}
public void updatePipesOnSide(Direction side) {
if (!isSideAccessible(side))
return;
@ -359,7 +332,7 @@ public class PumpBlockEntity extends KineticBlockEntity {
}
public boolean isPullingOnSide(boolean front) {
return front == reversed;
return !front;
}
class PumpFluidTransferBehaviour extends FluidTransportBehaviour {

View file

@ -3,74 +3,28 @@ package com.simibubi.create.content.contraptions.fluids;
import com.jozufozu.flywheel.api.Instancer;
import com.jozufozu.flywheel.api.MaterialManager;
import com.jozufozu.flywheel.api.instance.DynamicInstance;
import com.jozufozu.flywheel.core.Materials;
import com.jozufozu.flywheel.core.materials.model.ModelData;
import com.simibubi.create.AllPartialModels;
import com.simibubi.create.content.contraptions.base.SingleRotatingInstance;
import com.simibubi.create.content.contraptions.base.flwdata.RotatingData;
import com.simibubi.create.foundation.utility.AngleHelper;
import com.simibubi.create.foundation.utility.AnimationTickHolder;
import net.minecraft.core.Direction;
import net.minecraft.util.Mth;
import net.minecraft.world.level.block.state.BlockState;
import net.minecraft.world.level.block.state.properties.BlockStateProperties;
public class PumpCogInstance extends SingleRotatingInstance<PumpBlockEntity> implements DynamicInstance {
private final ModelData[] arrows = new ModelData[2];
private final Direction direction = blockState.getValue(PumpBlock.FACING);
public PumpCogInstance(MaterialManager materialManager, PumpBlockEntity blockEntity) {
super(materialManager, blockEntity);
}
@Override
public void init() {
super.init();
materialManager.defaultSolid()
.material(Materials.TRANSFORMED)
.getModel(AllPartialModels.MECHANICAL_PUMP_ARROW, blockState)
.createInstances(arrows);
public PumpCogInstance(MaterialManager materialManager, PumpBlockEntity blockEntity) {
super(materialManager, blockEntity);
}
@Override
public void beginFrame() {}
@Override
public void beginFrame() {
float angle = Mth.lerp(blockEntity.arrowDirection.getValue(AnimationTickHolder.getPartialTicks()), 0, 90) - 90;
for (int i = 0, arrowsLength = arrows.length; i < arrowsLength; i++) {
arrows[i].loadIdentity()
.translate(getInstancePosition())
.centre()
.rotateY(AngleHelper.horizontalAngle(direction) + 180)
.rotateX(-AngleHelper.verticalAngle(direction) - 90)
.unCentre()
.translate(.5, 14 / 16f, .5)
.rotateY(90 * i)
.rotateZ(angle)
.translateBack(.5, 14 / 16f, .5);
}
}
@Override
public void updateLight() {
super.updateLight();
relight(pos, arrows);
}
@Override
protected Instancer<RotatingData> getModel() {
protected Instancer<RotatingData> getModel() {
BlockState referenceState = blockEntity.getBlockState();
Direction facing = referenceState.getValue(BlockStateProperties.FACING);
return getRotatingMaterial().getModel(AllPartialModels.MECHANICAL_PUMP_COG, referenceState, facing);
}
@Override
public void remove() {
super.remove();
for (ModelData arrow : arrows) {
arrow.delete();
}
}
}

View file

@ -1,20 +1,12 @@
package com.simibubi.create.content.contraptions.fluids;
import com.jozufozu.flywheel.backend.Backend;
import com.mojang.blaze3d.vertex.PoseStack;
import com.simibubi.create.AllPartialModels;
import com.simibubi.create.content.contraptions.base.KineticBlockEntityRenderer;
import com.simibubi.create.foundation.render.CachedBufferer;
import com.simibubi.create.foundation.render.SuperByteBuffer;
import com.simibubi.create.foundation.utility.AngleHelper;
import net.minecraft.client.renderer.MultiBufferSource;
import net.minecraft.client.renderer.RenderType;
import net.minecraft.client.renderer.blockentity.BlockEntityRendererProvider;
import net.minecraft.core.Direction;
import net.minecraft.util.Mth;
import net.minecraft.world.level.block.state.BlockState;
import net.minecraft.world.phys.Vec3;
public class PumpRenderer extends KineticBlockEntityRenderer<PumpBlockEntity> {
@ -22,30 +14,6 @@ public class PumpRenderer extends KineticBlockEntityRenderer<PumpBlockEntity> {
super(context);
}
@Override
protected void renderSafe(PumpBlockEntity be, float partialTicks, PoseStack ms, MultiBufferSource buffer,
int light, int overlay) {
super.renderSafe(be, partialTicks, ms, buffer, light, overlay);
if (Backend.canUseInstancing(be.getLevel())) return;
Vec3 rotationOffset = new Vec3(.5, 14 / 16f, .5);
BlockState blockState = be.getBlockState();
float angle = Mth.lerp(be.arrowDirection.getValue(partialTicks), 0, 90) - 90;
SuperByteBuffer arrow = CachedBufferer.partial(AllPartialModels.MECHANICAL_PUMP_ARROW, blockState);
for (float yRot : new float[] { 0, 90 }) {
Direction direction = blockState.getValue(PumpBlock.FACING);
arrow.centre()
.rotateY(AngleHelper.horizontalAngle(direction) + 180)
.rotateX(-AngleHelper.verticalAngle(direction) - 90)
.unCentre()
.translate(rotationOffset)
.rotateY(yRot)
.rotateZ(angle)
.translateBack(rotationOffset)
.light(light)
.renderInto(ms, buffer.getBuffer(RenderType.solid()));
}
}
@Override
protected SuperByteBuffer getRotatedModel(PumpBlockEntity be, BlockState state) {
return CachedBufferer.partialFacing(AllPartialModels.MECHANICAL_PUMP_COG, state);

Some files were not shown because too many files have changed in this diff Show more