mirror of
https://github.com/Creators-of-Create/Create.git
synced 2024-11-13 05:21:46 +01:00
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:
commit
5f1a67e4ce
115 changed files with 873 additions and 474 deletions
|
@ -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
|
||||
|
|
|
@ -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",
|
||||
|
|
|
@ -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"
|
||||
]
|
||||
]
|
||||
}
|
|
@ -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"
|
||||
]
|
||||
]
|
||||
}
|
|
@ -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"
|
||||
]
|
||||
]
|
||||
}
|
|
@ -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"
|
||||
]
|
||||
]
|
||||
}
|
|
@ -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"
|
||||
]
|
||||
]
|
||||
}
|
|
@ -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"
|
||||
]
|
||||
]
|
||||
}
|
|
@ -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"
|
||||
]
|
||||
]
|
||||
}
|
|
@ -0,0 +1,8 @@
|
|||
{
|
||||
"type": "minecraft:stonecutting",
|
||||
"ingredient": {
|
||||
"item": "create:zinc_ingot"
|
||||
},
|
||||
"result": "create:copycat_panel",
|
||||
"count": 4
|
||||
}
|
|
@ -0,0 +1,8 @@
|
|||
{
|
||||
"type": "minecraft:stonecutting",
|
||||
"ingredient": {
|
||||
"item": "create:zinc_ingot"
|
||||
},
|
||||
"result": "create:copycat_step",
|
||||
"count": 4
|
||||
}
|
|
@ -0,0 +1,12 @@
|
|||
{
|
||||
"type": "minecraft:smithing",
|
||||
"base": {
|
||||
"item": "create:copper_backtank"
|
||||
},
|
||||
"addition": {
|
||||
"tag": "forge:ingots/netherite"
|
||||
},
|
||||
"result": {
|
||||
"item": "create:netherite_backtank"
|
||||
}
|
||||
}
|
|
@ -0,0 +1,12 @@
|
|||
{
|
||||
"type": "minecraft:smithing",
|
||||
"base": {
|
||||
"item": "create:copper_diving_boots"
|
||||
},
|
||||
"addition": {
|
||||
"tag": "forge:ingots/netherite"
|
||||
},
|
||||
"result": {
|
||||
"item": "create:netherite_diving_boots"
|
||||
}
|
||||
}
|
|
@ -0,0 +1,12 @@
|
|||
{
|
||||
"type": "minecraft:smithing",
|
||||
"base": {
|
||||
"item": "create:copper_diving_helmet"
|
||||
},
|
||||
"addition": {
|
||||
"tag": "forge:ingots/netherite"
|
||||
},
|
||||
"result": {
|
||||
"item": "create:netherite_diving_helmet"
|
||||
}
|
||||
}
|
|
@ -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"
|
||||
}
|
||||
}
|
|
@ -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"
|
||||
}
|
||||
}
|
|
@ -0,0 +1,4 @@
|
|||
{
|
||||
"replace": false,
|
||||
"values": []
|
||||
}
|
|
@ -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)
|
||||
|
|
|
@ -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"),
|
||||
|
|
|
@ -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),
|
||||
|
||||
|
|
|
@ -87,6 +87,7 @@ public class AllTags {
|
|||
WRENCH_PICKUP,
|
||||
COPYCAT_ALLOW,
|
||||
COPYCAT_DENY,
|
||||
CONTRAPTION_INVENTORY_DENY,
|
||||
|
||||
RELOCATION_NOT_SUPPORTED(FORGE),
|
||||
WG_STONE(FORGE),
|
||||
|
|
|
@ -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)));
|
||||
});
|
||||
}
|
||||
|
||||
|
|
|
@ -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() {
|
||||
|
|
|
@ -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;
|
||||
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
|
@ -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;
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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) {
|
||||
|
|
|
@ -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 {
|
||||
|
|
|
@ -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();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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
Loading…
Reference in a new issue