mirror of
https://github.com/Creators-of-Create/Create.git
synced 2024-11-09 03:23:09 +01:00
More logistical errands
- Arms can no longer feed random junk to a jukebox - Arms are no longer oblivious to hot-swapped blocks in its target areas - Arms can now directly extract from and insert to Deployers and Crafters - Arms can now feed blaze burners - Fixed brass funnels deleting items inserted into a full or stalled inventory - Fixed brass funnels in hopper mode not showing amounts on filters when transferring between server-only inventories - Arms & Deployers can now be paused using a redstone signal; stopping them after their next completed cycle - Fixed zapper tools not applying changes when the screen is closed using the confirm button - Reorganized valve handle registration - Added more preliminary recipes
This commit is contained in:
parent
1b84bbf16f
commit
9852d84fb8
73 changed files with 1389 additions and 130 deletions
|
@ -1486,20 +1486,26 @@ bec8c280b717306f87050b08a418feab53be71cb data/create/advancements/recipes/create
|
|||
5af08853632fb5970fe542b3ecbde0ad16d64714 data/create/advancements/recipes/create.base/crafting/kinetics/belt_connector.json
|
||||
80d87f1dde60adb5334e0cff25a9f0b7f67c1526 data/create/advancements/recipes/create.base/crafting/kinetics/black_seat.json
|
||||
771e2fc2f3be2867f6d83af8030ed321c0b8ab8d data/create/advancements/recipes/create.base/crafting/kinetics/black_seat_from_other_seat.json
|
||||
86d3e8ba30723ad87e32a589171a35ca907b5db9 data/create/advancements/recipes/create.base/crafting/kinetics/black_valve_handle_from_other_valve_handle.json
|
||||
ffbe212a442084b0688bbee82ad71c482c9b032c data/create/advancements/recipes/create.base/crafting/kinetics/blue_seat.json
|
||||
2cc2a11839ad826340fcc7bca1aa1a4d92953b96 data/create/advancements/recipes/create.base/crafting/kinetics/blue_seat_from_other_seat.json
|
||||
17ffdf52575a3905a8b6372f749858604334c5f0 data/create/advancements/recipes/create.base/crafting/kinetics/blue_valve_handle_from_other_valve_handle.json
|
||||
0a49cc7cb958c64de1dd35b0acd30070d6a0d81d data/create/advancements/recipes/create.base/crafting/kinetics/brass_hand.json
|
||||
3d16de97e9821ea473d6fc8b22026cca9e9e172b data/create/advancements/recipes/create.base/crafting/kinetics/brown_seat.json
|
||||
5a53f4229ce56608207d430c7f87ee44f8d41f6f data/create/advancements/recipes/create.base/crafting/kinetics/brown_seat_from_other_seat.json
|
||||
d12c6127aa397138d490ccfcf31148fb3754b7a6 data/create/advancements/recipes/create.base/crafting/kinetics/brown_valve_handle_from_other_valve_handle.json
|
||||
d3ca638ffbca177b4970f046f6c42770e757e33e data/create/advancements/recipes/create.base/crafting/kinetics/cart_assembler.json
|
||||
1afaa6917411aa5c9fb1355588b481552bb0e3f8 data/create/advancements/recipes/create.base/crafting/kinetics/chute.json
|
||||
a49a70403523bc9d4eadffdac5507806aca9fd9d data/create/advancements/recipes/create.base/crafting/kinetics/clockwork_bearing.json
|
||||
403fd0da8ee42a52234e544cf532e454fb80137b data/create/advancements/recipes/create.base/crafting/kinetics/clutch.json
|
||||
5bbaac432fce5435c8c3df56ec81d31a0b76a4ee data/create/advancements/recipes/create.base/crafting/kinetics/cogwheel.json
|
||||
27930edef02aac6e74bfab62128688ecfb575008 data/create/advancements/recipes/create.base/crafting/kinetics/copper_valve_handle.json
|
||||
512e4d45657f6df3df2639040e8c5e76f9119f17 data/create/advancements/recipes/create.base/crafting/kinetics/copper_valve_handle_from_others.json
|
||||
7b80f6b25e1e21e9545120592bc1a3561ee49603 data/create/advancements/recipes/create.base/crafting/kinetics/crafter_slot_cover.json
|
||||
7f55c18bdf5eafe2be65c7afb46ec40777f1aed8 data/create/advancements/recipes/create.base/crafting/kinetics/cuckoo_clock.json
|
||||
44cf4c0a792e8742a030c82f92a529ade059b475 data/create/advancements/recipes/create.base/crafting/kinetics/cyan_seat.json
|
||||
80dc8151d0b9dff01a8a2abf6b84057c9ef5b908 data/create/advancements/recipes/create.base/crafting/kinetics/cyan_seat_from_other_seat.json
|
||||
2691122d20392bffa45a2b39c84555c90fe07e7d data/create/advancements/recipes/create.base/crafting/kinetics/cyan_valve_handle_from_other_valve_handle.json
|
||||
9698f2e43c3edcf6bdc31f4b893cdaee2298476c data/create/advancements/recipes/create.base/crafting/kinetics/deployer.json
|
||||
9840f103d4094b04ebf8c1ffbe154e5698dd4d25 data/create/advancements/recipes/create.base/crafting/kinetics/depot.json
|
||||
81a3fe7e87c26767e3be6f97ea1de50f1cd74b65 data/create/advancements/recipes/create.base/crafting/kinetics/empty_blaze_burner.json
|
||||
|
@ -1508,26 +1514,33 @@ a49a70403523bc9d4eadffdac5507806aca9fd9d data/create/advancements/recipes/create
|
|||
40bbc4d9df2911721a58481f68a6bd8cfcfbeb98 data/create/advancements/recipes/create.base/crafting/kinetics/filter.json
|
||||
11d89eca0ccb0f1a8cd27acc9fc0c10d7bf83285 data/create/advancements/recipes/create.base/crafting/kinetics/fluid_pipe.json
|
||||
a2b33e972c7130cbf105f34d88dd7a9a53d5465c data/create/advancements/recipes/create.base/crafting/kinetics/fluid_tank.json
|
||||
a91b11ae44d9b1f479c6dee1f1a4580104059287 data/create/advancements/recipes/create.base/crafting/kinetics/fluid_valve.json
|
||||
dae9e65a089955c0367dc1453e104c3153ebad79 data/create/advancements/recipes/create.base/crafting/kinetics/gearbox.json
|
||||
8f9819912605cb2499cb3e79ecb0e709b0e38c19 data/create/advancements/recipes/create.base/crafting/kinetics/gearboxfrom_conversion.json
|
||||
94b8a1f976b9f853cb6e24b0cef72d2e16c3282f data/create/advancements/recipes/create.base/crafting/kinetics/gearshift.json
|
||||
1609e317d4dcd830be7356301f6685d71d87d34c data/create/advancements/recipes/create.base/crafting/kinetics/goggles.json
|
||||
585378d03f5ae23e43a587468d183951e3fa58a9 data/create/advancements/recipes/create.base/crafting/kinetics/gray_seat.json
|
||||
f0a0c371c6851a5418b4b9480797677c8e871372 data/create/advancements/recipes/create.base/crafting/kinetics/gray_seat_from_other_seat.json
|
||||
c023b9221d7983487d21e5ecc7d92246cfc7e791 data/create/advancements/recipes/create.base/crafting/kinetics/gray_valve_handle_from_other_valve_handle.json
|
||||
72194ca0c9820e8b098534007df7f2b2d3813af6 data/create/advancements/recipes/create.base/crafting/kinetics/green_seat.json
|
||||
2ba23f019a110a3e035a49e56ee8156fc11d74c0 data/create/advancements/recipes/create.base/crafting/kinetics/green_seat_from_other_seat.json
|
||||
9af3d92d11c3f520df3e22f3069042bf34585010 data/create/advancements/recipes/create.base/crafting/kinetics/green_valve_handle_from_other_valve_handle.json
|
||||
dbb96a4db4ef8172af73a626bed9727278d804bd data/create/advancements/recipes/create.base/crafting/kinetics/hand_crank.json
|
||||
a71b626b6ee58a4eabee56f67c48f041a1323506 data/create/advancements/recipes/create.base/crafting/kinetics/large_cogwheel.json
|
||||
eb007bb079bbe6b6aaad2ca90f5af84261e3f8ea data/create/advancements/recipes/create.base/crafting/kinetics/light_blue_seat.json
|
||||
571da50fbf5f2fcd3363b3dab91e7233e0ebffa0 data/create/advancements/recipes/create.base/crafting/kinetics/light_blue_seat_from_other_seat.json
|
||||
ddd80e84a7d595bbb3cf405a902ebbfd4ea5263c data/create/advancements/recipes/create.base/crafting/kinetics/light_blue_valve_handle_from_other_valve_handle.json
|
||||
e72a9e36ee72b838d83dee29129085c9717bd1c0 data/create/advancements/recipes/create.base/crafting/kinetics/light_gray_seat.json
|
||||
b670caaa6822ba7d9dc59ab4b6f21ab7d1ab2482 data/create/advancements/recipes/create.base/crafting/kinetics/light_gray_seat_from_other_seat.json
|
||||
ef79bf45e7aa43374d05a258ccb62a8243047fbb data/create/advancements/recipes/create.base/crafting/kinetics/light_gray_valve_handle_from_other_valve_handle.json
|
||||
471b41b1beb16be7885b32e3ab5e37e835888ed3 data/create/advancements/recipes/create.base/crafting/kinetics/lime_seat.json
|
||||
7621220bcda54b559156a5dfb047de3429f1d4d2 data/create/advancements/recipes/create.base/crafting/kinetics/lime_seat_from_other_seat.json
|
||||
0ce3062d3094ac20cc191b37fe948b54afe1f939 data/create/advancements/recipes/create.base/crafting/kinetics/lime_valve_handle_from_other_valve_handle.json
|
||||
4375ad2e70aa1311d86093983b4342fcc25fa3f8 data/create/advancements/recipes/create.base/crafting/kinetics/linear_chassis.json
|
||||
88cf153c96c72c6945f4de7c11523bfd82905e61 data/create/advancements/recipes/create.base/crafting/kinetics/linear_chassisfrom_conversion.json
|
||||
bf36904e7e691a150379561fb6f945123ebd3978 data/create/advancements/recipes/create.base/crafting/kinetics/magenta_seat.json
|
||||
da90875fb845ee952ca2cb71f96b8de4f6420c21 data/create/advancements/recipes/create.base/crafting/kinetics/magenta_seat_from_other_seat.json
|
||||
8ae8701f89b0881fbf9fcdf18b550e4bdf8d1483 data/create/advancements/recipes/create.base/crafting/kinetics/magenta_valve_handle_from_other_valve_handle.json
|
||||
3264bf9c4adeea21b250c65a78a7ef9c15fa9720 data/create/advancements/recipes/create.base/crafting/kinetics/mechanical_bearing.json
|
||||
d096f7343b42827c4832bf6c68e7d0135e21c8a9 data/create/advancements/recipes/create.base/crafting/kinetics/mechanical_crafter.json
|
||||
8e8bb7aa8da72913a69bc4792cfc61f8cf827386 data/create/advancements/recipes/create.base/crafting/kinetics/mechanical_drill.json
|
||||
|
@ -1543,15 +1556,19 @@ d38e8ff9dd33558227678d69393b57a360caa28e data/create/advancements/recipes/create
|
|||
afeb2a152697b68bc953986d6886cbe527c6d2b5 data/create/advancements/recipes/create.base/crafting/kinetics/nozzle.json
|
||||
ccd49c33260333ba850d0b843c4913cb6371eee9 data/create/advancements/recipes/create.base/crafting/kinetics/orange_seat.json
|
||||
0556cca38a52f819e7f786ffbf284d5ef3364d0a data/create/advancements/recipes/create.base/crafting/kinetics/orange_seat_from_other_seat.json
|
||||
58c0a2742e8f10e45a09cb97e40b542a58c7134b data/create/advancements/recipes/create.base/crafting/kinetics/orange_valve_handle_from_other_valve_handle.json
|
||||
460240d4e8437b35c24262c5724884ae213e1b9c data/create/advancements/recipes/create.base/crafting/kinetics/pink_seat.json
|
||||
ca21e2192a2fea0f112764f96c928d337762158b data/create/advancements/recipes/create.base/crafting/kinetics/pink_seat_from_other_seat.json
|
||||
6c11444884679c4dd03d43f5893fca5cdc271915 data/create/advancements/recipes/create.base/crafting/kinetics/pink_valve_handle_from_other_valve_handle.json
|
||||
960d03f13b383fca0d9b7d3a2885da346d97c4ef data/create/advancements/recipes/create.base/crafting/kinetics/piston_extension_pole.json
|
||||
02258b70f1db3d91f0ccb5a5ffd362349f8f359d data/create/advancements/recipes/create.base/crafting/kinetics/propeller.json
|
||||
d2a430820a87c24104729eede57628c6a92b277e data/create/advancements/recipes/create.base/crafting/kinetics/purple_seat.json
|
||||
8eb1319984a8bf9502d8fddb717b11a1ee082f39 data/create/advancements/recipes/create.base/crafting/kinetics/purple_seat_from_other_seat.json
|
||||
a295c929f7c9b31fd97607f8f6a1f8c56c16c7c8 data/create/advancements/recipes/create.base/crafting/kinetics/purple_valve_handle_from_other_valve_handle.json
|
||||
f80c4cf0e9c649609a8e615d2eefc603cec316cf data/create/advancements/recipes/create.base/crafting/kinetics/radial_chassis.json
|
||||
f639481c8e1485019bf120463e67811b6d2d8ef9 data/create/advancements/recipes/create.base/crafting/kinetics/red_seat.json
|
||||
038e18d0815e7de55fc8fcb5fe7127cdad62210f data/create/advancements/recipes/create.base/crafting/kinetics/red_seat_from_other_seat.json
|
||||
dba0696069fe0850120dc6e1ca1ab741b0fe6d21 data/create/advancements/recipes/create.base/crafting/kinetics/red_valve_handle_from_other_valve_handle.json
|
||||
74522fbb454832fc0eefa5f52b82b7d7d4e9b7fb data/create/advancements/recipes/create.base/crafting/kinetics/rope_pulley.json
|
||||
48e29ec1b301bf4857db06913ee340f49d61cdf9 data/create/advancements/recipes/create.base/crafting/kinetics/rotation_speed_controller.json
|
||||
b463cf9343f8d08b8ed3e87f46a19facadd657b0 data/create/advancements/recipes/create.base/crafting/kinetics/secondary_linear_chassisfrom_conversion.json
|
||||
|
@ -1569,9 +1586,11 @@ f3fc3d4fee0712906f833aa17185f0bacb21922f data/create/advancements/recipes/create
|
|||
7c146cc51139c2a8e287a60c8d645fa6f6f48cb1 data/create/advancements/recipes/create.base/crafting/kinetics/whisk.json
|
||||
37e545b016a7c5cd283168ac71ace6467a5ad3ef data/create/advancements/recipes/create.base/crafting/kinetics/white_seat.json
|
||||
856760c4b120f7b29a94dd22fe04d62df061d409 data/create/advancements/recipes/create.base/crafting/kinetics/white_seat_from_other_seat.json
|
||||
b73e6f8b89e6ef94167b6fa3d0837a27222edb01 data/create/advancements/recipes/create.base/crafting/kinetics/white_valve_handle_from_other_valve_handle.json
|
||||
ddbe7ae23f48dcaee3ad44a0e597c24380b51682 data/create/advancements/recipes/create.base/crafting/kinetics/wrench.json
|
||||
14c1cac4545f544a78bfd80cf7dd6355794c6679 data/create/advancements/recipes/create.base/crafting/kinetics/yellow_seat.json
|
||||
e8c2001863d9819d2a2c1fddeda41a4f126a5c09 data/create/advancements/recipes/create.base/crafting/kinetics/yellow_seat_from_other_seat.json
|
||||
f05bbae1e39eabb51dffa0babecf07f5de2cee3d data/create/advancements/recipes/create.base/crafting/kinetics/yellow_valve_handle_from_other_valve_handle.json
|
||||
afc74c4dda92c4976703a1c488182188c3482839 data/create/advancements/recipes/create.base/crafting/logistics/adjustable_crate.json
|
||||
146d55f3c5c9247c9992278873c6b8be890d733f data/create/advancements/recipes/create.base/crafting/logistics/adjustable_pulse_repeater.json
|
||||
4793d335955c9d6c293e1358dc227eac93a5fe61 data/create/advancements/recipes/create.base/crafting/logistics/adjustable_repeater.json
|
||||
|
@ -2444,20 +2463,26 @@ cf1f3a6306d47025cebe153cf05949ef69ccbe5a data/create/recipes/crafting/kinetics/a
|
|||
dcf98e667d321fb4bd9fa6dfec7927a84cdbd5d6 data/create/recipes/crafting/kinetics/belt_connector.json
|
||||
1123903a11b13448b61cf8f8a5dc2e8013d39ac0 data/create/recipes/crafting/kinetics/black_seat.json
|
||||
a6243a671bf852a6f92e1927e234ecf23b1c903d data/create/recipes/crafting/kinetics/black_seat_from_other_seat.json
|
||||
c237d1cd362454b25d3756e742c4a2237b5ec2db data/create/recipes/crafting/kinetics/black_valve_handle_from_other_valve_handle.json
|
||||
0b747fc291b86fa14f86569160d56a48a15c69d3 data/create/recipes/crafting/kinetics/blue_seat.json
|
||||
30240bae036699b8c9404893983cb7b70332159e data/create/recipes/crafting/kinetics/blue_seat_from_other_seat.json
|
||||
249c1f67d8b56262d286a027d50023e5d672b1c9 data/create/recipes/crafting/kinetics/blue_valve_handle_from_other_valve_handle.json
|
||||
23fe800a45e81a08eb0aa732c5cb52e4e8ebfe86 data/create/recipes/crafting/kinetics/brass_hand.json
|
||||
c50077a130bc43cd3659faa02ce95789399478b2 data/create/recipes/crafting/kinetics/brown_seat.json
|
||||
a3c99b38fc8896c9971a5e9dcbae747786ff610d data/create/recipes/crafting/kinetics/brown_seat_from_other_seat.json
|
||||
43233c87cfb80d57345a561c3dd2646c8d3c0d8a data/create/recipes/crafting/kinetics/brown_valve_handle_from_other_valve_handle.json
|
||||
860796dce8756c4cd234f18bbe52108f3b2254c2 data/create/recipes/crafting/kinetics/cart_assembler.json
|
||||
3bc3510b64e576d68b19f4ceb5d9bd6591dbcf6c data/create/recipes/crafting/kinetics/chute.json
|
||||
a80e3eabbeba2931d0d58dd9492018a0d78da8b5 data/create/recipes/crafting/kinetics/clockwork_bearing.json
|
||||
501ad764d087b40ce36f3d4256b0d5ee25b2081e data/create/recipes/crafting/kinetics/clutch.json
|
||||
e46bcc6778ff5118252fe6371ef817ae1302253a data/create/recipes/crafting/kinetics/cogwheel.json
|
||||
3093be508f6597eee2f3230cd9072f12d2821a6f data/create/recipes/crafting/kinetics/copper_valve_handle.json
|
||||
886caa21481e62d44d70fd103f8d29f9bac64d60 data/create/recipes/crafting/kinetics/copper_valve_handle_from_others.json
|
||||
59db5170cec390fe6c20a27d6154deebe044580c data/create/recipes/crafting/kinetics/crafter_slot_cover.json
|
||||
cc2ab4b619aa55c03db18b67a62e12b6089e7019 data/create/recipes/crafting/kinetics/cuckoo_clock.json
|
||||
f11892864a26c4ba79eb46d890a1a4bd96a1ad93 data/create/recipes/crafting/kinetics/cyan_seat.json
|
||||
8c35fd379244f72f73e1be6115ed8f5f5484f599 data/create/recipes/crafting/kinetics/cyan_seat_from_other_seat.json
|
||||
dc62d932f6a3723e050cb043fea233efd685f775 data/create/recipes/crafting/kinetics/cyan_valve_handle_from_other_valve_handle.json
|
||||
ad1c3ce1e98b8483512bdd754f2e5930c7b3ae85 data/create/recipes/crafting/kinetics/deployer.json
|
||||
be86df1c4d7af14bc5dcfe044d07c03b6c6d2a75 data/create/recipes/crafting/kinetics/depot.json
|
||||
9c5d30f25a130d591b924c50e5c83e3b787c2758 data/create/recipes/crafting/kinetics/empty_blaze_burner.json
|
||||
|
@ -2466,6 +2491,7 @@ e416a453316cc6a2f68795b0ab9c91a842d72510 data/create/recipes/crafting/kinetics/e
|
|||
0dd0cc11eaa6789fc612af3231ed247893852178 data/create/recipes/crafting/kinetics/filter.json
|
||||
30ae02825e54c0cc07be8f4decf9d432e7d61ba2 data/create/recipes/crafting/kinetics/fluid_pipe.json
|
||||
86ad4d2820e8e2b01de8d977af7796119dfb7430 data/create/recipes/crafting/kinetics/fluid_tank.json
|
||||
3dad2a849796df268cd3a06ed37376f2cc529957 data/create/recipes/crafting/kinetics/fluid_valve.json
|
||||
84153bd478c0e63a04c77579d6595043f604b7ab data/create/recipes/crafting/kinetics/furnace_minecart_from_contraption_cart.json
|
||||
5eb05cdf88bccdaddfe7ebfbd8b70d1196d422a6 data/create/recipes/crafting/kinetics/gearbox.json
|
||||
b5da8c58f6b8aba525ae8a12ad906db37b78a566 data/create/recipes/crafting/kinetics/gearboxfrom_conversion.json
|
||||
|
@ -2473,20 +2499,26 @@ b5da8c58f6b8aba525ae8a12ad906db37b78a566 data/create/recipes/crafting/kinetics/g
|
|||
5b07af1b09125f874500c3fb140efda90061a19e data/create/recipes/crafting/kinetics/goggles.json
|
||||
beb7715310352988d5a58d1b39c62f02544795f8 data/create/recipes/crafting/kinetics/gray_seat.json
|
||||
14e8927183f91c09a2d96fd68d1a722d192b29e8 data/create/recipes/crafting/kinetics/gray_seat_from_other_seat.json
|
||||
b7fa20d10c0e0e7270b1c0d6f3881b8e25b39bea data/create/recipes/crafting/kinetics/gray_valve_handle_from_other_valve_handle.json
|
||||
9899501f18e7f3452d4ab4bf658079ab414aa176 data/create/recipes/crafting/kinetics/green_seat.json
|
||||
6f65a84e00f25d956a6ae834678ff781569b243a data/create/recipes/crafting/kinetics/green_seat_from_other_seat.json
|
||||
63edaccace961a65aa7bd406d36894c7ca4816b8 data/create/recipes/crafting/kinetics/green_valve_handle_from_other_valve_handle.json
|
||||
9af4b862db77034f61d2d35e45db00f8dda6dc4b data/create/recipes/crafting/kinetics/hand_crank.json
|
||||
237541c1c318b8426734c1c43be31fbd01413d39 data/create/recipes/crafting/kinetics/large_cogwheel.json
|
||||
a33e3301fc6d3a446e61a1c4b8a93aff079baeba data/create/recipes/crafting/kinetics/light_blue_seat.json
|
||||
958bb5d3aeb8d8e5dbf5d97cf5fd9ff5151575dc data/create/recipes/crafting/kinetics/light_blue_seat_from_other_seat.json
|
||||
df1942d27ce3d0548872fe39d3cac24af3122b61 data/create/recipes/crafting/kinetics/light_blue_valve_handle_from_other_valve_handle.json
|
||||
9531407075ad027e01063aeabc40ae3e4c100df3 data/create/recipes/crafting/kinetics/light_gray_seat.json
|
||||
fb66f55b31a60f2168d3b9e80a56ecadebb1db75 data/create/recipes/crafting/kinetics/light_gray_seat_from_other_seat.json
|
||||
e78fec9814d6d0c5c4669c17a8f4d86979972624 data/create/recipes/crafting/kinetics/light_gray_valve_handle_from_other_valve_handle.json
|
||||
3e18f619a50c1e5fabd6d3acc6d029e4cfec661f data/create/recipes/crafting/kinetics/lime_seat.json
|
||||
d214afbd44e580f5fd1ebb4f16f07ffe34d87cba data/create/recipes/crafting/kinetics/lime_seat_from_other_seat.json
|
||||
505a6d895319b1c73509045ecf5d9dc4e8554cde data/create/recipes/crafting/kinetics/lime_valve_handle_from_other_valve_handle.json
|
||||
61332f88f51bbd465ee0da879e706b994710d949 data/create/recipes/crafting/kinetics/linear_chassis.json
|
||||
9bf76daab65d048a135d70db522989ebc77ccaf1 data/create/recipes/crafting/kinetics/linear_chassisfrom_conversion.json
|
||||
d7d96071874a87edf7bbdcf7a462f95a130d2991 data/create/recipes/crafting/kinetics/magenta_seat.json
|
||||
5836881feef8fa8b18e4cceb9c3a9a2748b8cf3a data/create/recipes/crafting/kinetics/magenta_seat_from_other_seat.json
|
||||
2ea43d6527dcb734578067ff442ec20395b0093b data/create/recipes/crafting/kinetics/magenta_valve_handle_from_other_valve_handle.json
|
||||
946389078db31de69a7dc4fec5feebddf48dcfc3 data/create/recipes/crafting/kinetics/mechanical_bearing.json
|
||||
a5c7aad0d86cbb66b8688d295e62547da4a2ce0f data/create/recipes/crafting/kinetics/mechanical_crafter.json
|
||||
4372830100d39c4a89ff397a62b01940e1a28cb3 data/create/recipes/crafting/kinetics/mechanical_drill.json
|
||||
|
@ -2503,15 +2535,19 @@ be4c7fdb0ba1e9ee6d3dcf200dc2718ad83ec8fb data/create/recipes/crafting/kinetics/m
|
|||
6b1b626394d7269a6861a836992ccdb344b6e7dd data/create/recipes/crafting/kinetics/nozzle.json
|
||||
9c41cd91a0716d591ed6d1b5128ec731b418850f data/create/recipes/crafting/kinetics/orange_seat.json
|
||||
a8da214f0a521be1204b669f118348a142bc9a3d data/create/recipes/crafting/kinetics/orange_seat_from_other_seat.json
|
||||
2fa6b1dd7fe3c8d5bb60345d6b7c5213a54d7e31 data/create/recipes/crafting/kinetics/orange_valve_handle_from_other_valve_handle.json
|
||||
af871a02d363a619fff8e9dde753aa417b265a80 data/create/recipes/crafting/kinetics/pink_seat.json
|
||||
840dc5aac716e3d1b79883e8db4bf56f2dc427f9 data/create/recipes/crafting/kinetics/pink_seat_from_other_seat.json
|
||||
7e73bcde2b599f1ae5a241dd707c8ab6ce8c5a6e data/create/recipes/crafting/kinetics/pink_valve_handle_from_other_valve_handle.json
|
||||
5399c3496a90bed9428c48fdd334ad4f763cbf9a data/create/recipes/crafting/kinetics/piston_extension_pole.json
|
||||
16199a6729005a279854cb1838401f6e73bdebae data/create/recipes/crafting/kinetics/propeller.json
|
||||
76ba751b65d312d1b34229d76fff2111b593091a data/create/recipes/crafting/kinetics/purple_seat.json
|
||||
e6c462d64e1de9c7fca95f9c9a25b8d1575979da data/create/recipes/crafting/kinetics/purple_seat_from_other_seat.json
|
||||
9332957af2e72dee5fc78abcf1995773e08f7561 data/create/recipes/crafting/kinetics/purple_valve_handle_from_other_valve_handle.json
|
||||
af84b939ced1c0254a27469f857f571afbadc4f6 data/create/recipes/crafting/kinetics/radial_chassis.json
|
||||
1059f08b016e1c222f13bd9976d0fcd8fc982619 data/create/recipes/crafting/kinetics/red_seat.json
|
||||
0827e86e4b5f9d7023ccc19922bcbbaefd5b42d8 data/create/recipes/crafting/kinetics/red_seat_from_other_seat.json
|
||||
5a10019d23726940152e26af3239d55d16bc7880 data/create/recipes/crafting/kinetics/red_valve_handle_from_other_valve_handle.json
|
||||
af525e135eb927b64462120d201ecae7a7ec61ed data/create/recipes/crafting/kinetics/rope_pulley.json
|
||||
e9f1597d40f62c2247b319303f375f0da271346f data/create/recipes/crafting/kinetics/rotation_speed_controller.json
|
||||
66922e18791c87fadb7629cdf32d3dd2f50ccd13 data/create/recipes/crafting/kinetics/secondary_linear_chassisfrom_conversion.json
|
||||
|
@ -2529,9 +2565,11 @@ af5854ee2fa3be195ad9abcdeebe6ed7306b651c data/create/recipes/crafting/kinetics/s
|
|||
f508d510576c93712e7f5265345a32e8818bbf0d data/create/recipes/crafting/kinetics/whisk.json
|
||||
f4d88aa2edea548d29cf2678a111d8bb5db7720a data/create/recipes/crafting/kinetics/white_seat.json
|
||||
7e0d276cd56f04f35d02c25810bffdf8fc297fcd data/create/recipes/crafting/kinetics/white_seat_from_other_seat.json
|
||||
4d3890621caa0bdbb752a395c1f5761dbbc1121e data/create/recipes/crafting/kinetics/white_valve_handle_from_other_valve_handle.json
|
||||
3ec8bb5660656f1c676035d8ba5460462c1d1865 data/create/recipes/crafting/kinetics/wrench.json
|
||||
5579e58473474c4e59efd1ee39ddf0140d66b618 data/create/recipes/crafting/kinetics/yellow_seat.json
|
||||
f055d233ac7ee9eac840a658afa01bedd793ff38 data/create/recipes/crafting/kinetics/yellow_seat_from_other_seat.json
|
||||
19c5c8bddeec51c9b47183c728e9ec4313c54410 data/create/recipes/crafting/kinetics/yellow_valve_handle_from_other_valve_handle.json
|
||||
3f6f3a547dc06c9462da880360f29b49ac3f5e2a data/create/recipes/crafting/logistics/adjustable_crate.json
|
||||
c465151b64381e2222203bf069b717435fdc2b26 data/create/recipes/crafting/logistics/adjustable_pulse_repeater.json
|
||||
34bcdffae0b104829161c86b7d161068f890daa2 data/create/recipes/crafting/logistics/adjustable_repeater.json
|
||||
|
@ -3095,15 +3133,17 @@ d3fdb8ece6cb072a93ddb64a0baad5ac952117a4 data/create/recipes/weathered_limestone
|
|||
0f3c993eb6dd3f37953f304b8fad15bf60469ef4 data/create/recipes/weathered_limestone_cobblestone_wall_from_weathered_limestone_cobblestone_stonecutting.json
|
||||
6eceb25fabbb6b389ca35de3b829ad061c9c456a data/create/recipes/weathered_limestone_pillar.json
|
||||
11667414f73bc2d00bda7c5c1a7d2934bf6e9165 data/create/recipes/weathered_limestone_pillar_from_weathered_limestone_stonecutting.json
|
||||
6d73642c6c64a8f7ebe6041218ac5a9fe2379e52 data/create/tags/blocks/brittle.json
|
||||
f9ecec40e11a87de73c9dc7c2963c1cb10b1a180 data/create/tags/blocks/brittle.json
|
||||
246ee2ec4e778e38a362f319506564886d4e0e76 data/create/tags/blocks/fan_heaters.json
|
||||
798ef82869dbe22682121504a372e95607a785dc data/create/tags/blocks/fan_transparent.json
|
||||
6cdeeac1689f7b5bfd9bc40b462143d8eaf3ad0b data/create/tags/blocks/seats.json
|
||||
50936b211d94167a35ec78c89954082a336b6269 data/create/tags/blocks/valve_handles.json
|
||||
7fa13854a216ee49c0ae3b1e0e23c4cd1fbc4859 data/create/tags/blocks/windmill_sails.json
|
||||
081f5aa35602fc27af2ca01ea9f2fd5e7eb284dc data/create/tags/items/create_ingots.json
|
||||
d2dc4ff179ef7b2aa9276455c196e15d44aa95a8 data/create/tags/items/crushed_ores.json
|
||||
6cdeeac1689f7b5bfd9bc40b462143d8eaf3ad0b data/create/tags/items/seats.json
|
||||
abbe5d7cc9d1705509257888154ed7ca23292586 data/create/tags/items/upright_on_belt.json
|
||||
50936b211d94167a35ec78c89954082a336b6269 data/create/tags/items/valve_handles.json
|
||||
16bcb8fcbe9170c2c11f1ca8d99d8b36cd812bbd data/forge/tags/blocks/glass/colorless.json
|
||||
81ced867d24ec814942909965dd4576eff1db685 data/forge/tags/blocks/glass_panes.json
|
||||
4a0b13a9835106de9a1dd0a71a02372abb48e7b6 data/forge/tags/blocks/ores/copper.json
|
||||
|
|
|
@ -0,0 +1,32 @@
|
|||
{
|
||||
"parent": "minecraft:recipes/root",
|
||||
"rewards": {
|
||||
"recipes": [
|
||||
"create:crafting/kinetics/black_valve_handle_from_other_valve_handle"
|
||||
]
|
||||
},
|
||||
"criteria": {
|
||||
"has_valve": {
|
||||
"trigger": "minecraft:inventory_changed",
|
||||
"conditions": {
|
||||
"items": [
|
||||
{
|
||||
"tag": "create:valve_handles"
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
"has_the_recipe": {
|
||||
"trigger": "minecraft:recipe_unlocked",
|
||||
"conditions": {
|
||||
"recipe": "create:crafting/kinetics/black_valve_handle_from_other_valve_handle"
|
||||
}
|
||||
}
|
||||
},
|
||||
"requirements": [
|
||||
[
|
||||
"has_valve",
|
||||
"has_the_recipe"
|
||||
]
|
||||
]
|
||||
}
|
|
@ -0,0 +1,32 @@
|
|||
{
|
||||
"parent": "minecraft:recipes/root",
|
||||
"rewards": {
|
||||
"recipes": [
|
||||
"create:crafting/kinetics/blue_valve_handle_from_other_valve_handle"
|
||||
]
|
||||
},
|
||||
"criteria": {
|
||||
"has_valve": {
|
||||
"trigger": "minecraft:inventory_changed",
|
||||
"conditions": {
|
||||
"items": [
|
||||
{
|
||||
"tag": "create:valve_handles"
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
"has_the_recipe": {
|
||||
"trigger": "minecraft:recipe_unlocked",
|
||||
"conditions": {
|
||||
"recipe": "create:crafting/kinetics/blue_valve_handle_from_other_valve_handle"
|
||||
}
|
||||
}
|
||||
},
|
||||
"requirements": [
|
||||
[
|
||||
"has_valve",
|
||||
"has_the_recipe"
|
||||
]
|
||||
]
|
||||
}
|
|
@ -0,0 +1,32 @@
|
|||
{
|
||||
"parent": "minecraft:recipes/root",
|
||||
"rewards": {
|
||||
"recipes": [
|
||||
"create:crafting/kinetics/brown_valve_handle_from_other_valve_handle"
|
||||
]
|
||||
},
|
||||
"criteria": {
|
||||
"has_valve": {
|
||||
"trigger": "minecraft:inventory_changed",
|
||||
"conditions": {
|
||||
"items": [
|
||||
{
|
||||
"tag": "create:valve_handles"
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
"has_the_recipe": {
|
||||
"trigger": "minecraft:recipe_unlocked",
|
||||
"conditions": {
|
||||
"recipe": "create:crafting/kinetics/brown_valve_handle_from_other_valve_handle"
|
||||
}
|
||||
}
|
||||
},
|
||||
"requirements": [
|
||||
[
|
||||
"has_valve",
|
||||
"has_the_recipe"
|
||||
]
|
||||
]
|
||||
}
|
|
@ -0,0 +1,32 @@
|
|||
{
|
||||
"parent": "minecraft:recipes/root",
|
||||
"rewards": {
|
||||
"recipes": [
|
||||
"create:crafting/kinetics/copper_valve_handle"
|
||||
]
|
||||
},
|
||||
"criteria": {
|
||||
"has_item": {
|
||||
"trigger": "minecraft:inventory_changed",
|
||||
"conditions": {
|
||||
"items": [
|
||||
{
|
||||
"tag": "forge:ingots/copper"
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
"has_the_recipe": {
|
||||
"trigger": "minecraft:recipe_unlocked",
|
||||
"conditions": {
|
||||
"recipe": "create:crafting/kinetics/copper_valve_handle"
|
||||
}
|
||||
}
|
||||
},
|
||||
"requirements": [
|
||||
[
|
||||
"has_item",
|
||||
"has_the_recipe"
|
||||
]
|
||||
]
|
||||
}
|
|
@ -0,0 +1,32 @@
|
|||
{
|
||||
"parent": "minecraft:recipes/root",
|
||||
"rewards": {
|
||||
"recipes": [
|
||||
"create:crafting/kinetics/copper_valve_handle_from_others"
|
||||
]
|
||||
},
|
||||
"criteria": {
|
||||
"has_item": {
|
||||
"trigger": "minecraft:inventory_changed",
|
||||
"conditions": {
|
||||
"items": [
|
||||
{
|
||||
"tag": "forge:ingots/copper"
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
"has_the_recipe": {
|
||||
"trigger": "minecraft:recipe_unlocked",
|
||||
"conditions": {
|
||||
"recipe": "create:crafting/kinetics/copper_valve_handle_from_others"
|
||||
}
|
||||
}
|
||||
},
|
||||
"requirements": [
|
||||
[
|
||||
"has_item",
|
||||
"has_the_recipe"
|
||||
]
|
||||
]
|
||||
}
|
|
@ -0,0 +1,32 @@
|
|||
{
|
||||
"parent": "minecraft:recipes/root",
|
||||
"rewards": {
|
||||
"recipes": [
|
||||
"create:crafting/kinetics/cyan_valve_handle_from_other_valve_handle"
|
||||
]
|
||||
},
|
||||
"criteria": {
|
||||
"has_valve": {
|
||||
"trigger": "minecraft:inventory_changed",
|
||||
"conditions": {
|
||||
"items": [
|
||||
{
|
||||
"tag": "create:valve_handles"
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
"has_the_recipe": {
|
||||
"trigger": "minecraft:recipe_unlocked",
|
||||
"conditions": {
|
||||
"recipe": "create:crafting/kinetics/cyan_valve_handle_from_other_valve_handle"
|
||||
}
|
||||
}
|
||||
},
|
||||
"requirements": [
|
||||
[
|
||||
"has_valve",
|
||||
"has_the_recipe"
|
||||
]
|
||||
]
|
||||
}
|
|
@ -0,0 +1,32 @@
|
|||
{
|
||||
"parent": "minecraft:recipes/root",
|
||||
"rewards": {
|
||||
"recipes": [
|
||||
"create:crafting/kinetics/fluid_valve"
|
||||
]
|
||||
},
|
||||
"criteria": {
|
||||
"has_item": {
|
||||
"trigger": "minecraft:inventory_changed",
|
||||
"conditions": {
|
||||
"items": [
|
||||
{
|
||||
"tag": "forge:ingots/copper"
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
"has_the_recipe": {
|
||||
"trigger": "minecraft:recipe_unlocked",
|
||||
"conditions": {
|
||||
"recipe": "create:crafting/kinetics/fluid_valve"
|
||||
}
|
||||
}
|
||||
},
|
||||
"requirements": [
|
||||
[
|
||||
"has_item",
|
||||
"has_the_recipe"
|
||||
]
|
||||
]
|
||||
}
|
|
@ -0,0 +1,32 @@
|
|||
{
|
||||
"parent": "minecraft:recipes/root",
|
||||
"rewards": {
|
||||
"recipes": [
|
||||
"create:crafting/kinetics/gray_valve_handle_from_other_valve_handle"
|
||||
]
|
||||
},
|
||||
"criteria": {
|
||||
"has_valve": {
|
||||
"trigger": "minecraft:inventory_changed",
|
||||
"conditions": {
|
||||
"items": [
|
||||
{
|
||||
"tag": "create:valve_handles"
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
"has_the_recipe": {
|
||||
"trigger": "minecraft:recipe_unlocked",
|
||||
"conditions": {
|
||||
"recipe": "create:crafting/kinetics/gray_valve_handle_from_other_valve_handle"
|
||||
}
|
||||
}
|
||||
},
|
||||
"requirements": [
|
||||
[
|
||||
"has_valve",
|
||||
"has_the_recipe"
|
||||
]
|
||||
]
|
||||
}
|
|
@ -0,0 +1,32 @@
|
|||
{
|
||||
"parent": "minecraft:recipes/root",
|
||||
"rewards": {
|
||||
"recipes": [
|
||||
"create:crafting/kinetics/green_valve_handle_from_other_valve_handle"
|
||||
]
|
||||
},
|
||||
"criteria": {
|
||||
"has_valve": {
|
||||
"trigger": "minecraft:inventory_changed",
|
||||
"conditions": {
|
||||
"items": [
|
||||
{
|
||||
"tag": "create:valve_handles"
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
"has_the_recipe": {
|
||||
"trigger": "minecraft:recipe_unlocked",
|
||||
"conditions": {
|
||||
"recipe": "create:crafting/kinetics/green_valve_handle_from_other_valve_handle"
|
||||
}
|
||||
}
|
||||
},
|
||||
"requirements": [
|
||||
[
|
||||
"has_valve",
|
||||
"has_the_recipe"
|
||||
]
|
||||
]
|
||||
}
|
|
@ -0,0 +1,32 @@
|
|||
{
|
||||
"parent": "minecraft:recipes/root",
|
||||
"rewards": {
|
||||
"recipes": [
|
||||
"create:crafting/kinetics/light_blue_valve_handle_from_other_valve_handle"
|
||||
]
|
||||
},
|
||||
"criteria": {
|
||||
"has_valve": {
|
||||
"trigger": "minecraft:inventory_changed",
|
||||
"conditions": {
|
||||
"items": [
|
||||
{
|
||||
"tag": "create:valve_handles"
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
"has_the_recipe": {
|
||||
"trigger": "minecraft:recipe_unlocked",
|
||||
"conditions": {
|
||||
"recipe": "create:crafting/kinetics/light_blue_valve_handle_from_other_valve_handle"
|
||||
}
|
||||
}
|
||||
},
|
||||
"requirements": [
|
||||
[
|
||||
"has_valve",
|
||||
"has_the_recipe"
|
||||
]
|
||||
]
|
||||
}
|
|
@ -0,0 +1,32 @@
|
|||
{
|
||||
"parent": "minecraft:recipes/root",
|
||||
"rewards": {
|
||||
"recipes": [
|
||||
"create:crafting/kinetics/light_gray_valve_handle_from_other_valve_handle"
|
||||
]
|
||||
},
|
||||
"criteria": {
|
||||
"has_valve": {
|
||||
"trigger": "minecraft:inventory_changed",
|
||||
"conditions": {
|
||||
"items": [
|
||||
{
|
||||
"tag": "create:valve_handles"
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
"has_the_recipe": {
|
||||
"trigger": "minecraft:recipe_unlocked",
|
||||
"conditions": {
|
||||
"recipe": "create:crafting/kinetics/light_gray_valve_handle_from_other_valve_handle"
|
||||
}
|
||||
}
|
||||
},
|
||||
"requirements": [
|
||||
[
|
||||
"has_valve",
|
||||
"has_the_recipe"
|
||||
]
|
||||
]
|
||||
}
|
|
@ -0,0 +1,32 @@
|
|||
{
|
||||
"parent": "minecraft:recipes/root",
|
||||
"rewards": {
|
||||
"recipes": [
|
||||
"create:crafting/kinetics/lime_valve_handle_from_other_valve_handle"
|
||||
]
|
||||
},
|
||||
"criteria": {
|
||||
"has_valve": {
|
||||
"trigger": "minecraft:inventory_changed",
|
||||
"conditions": {
|
||||
"items": [
|
||||
{
|
||||
"tag": "create:valve_handles"
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
"has_the_recipe": {
|
||||
"trigger": "minecraft:recipe_unlocked",
|
||||
"conditions": {
|
||||
"recipe": "create:crafting/kinetics/lime_valve_handle_from_other_valve_handle"
|
||||
}
|
||||
}
|
||||
},
|
||||
"requirements": [
|
||||
[
|
||||
"has_valve",
|
||||
"has_the_recipe"
|
||||
]
|
||||
]
|
||||
}
|
|
@ -0,0 +1,32 @@
|
|||
{
|
||||
"parent": "minecraft:recipes/root",
|
||||
"rewards": {
|
||||
"recipes": [
|
||||
"create:crafting/kinetics/magenta_valve_handle_from_other_valve_handle"
|
||||
]
|
||||
},
|
||||
"criteria": {
|
||||
"has_valve": {
|
||||
"trigger": "minecraft:inventory_changed",
|
||||
"conditions": {
|
||||
"items": [
|
||||
{
|
||||
"tag": "create:valve_handles"
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
"has_the_recipe": {
|
||||
"trigger": "minecraft:recipe_unlocked",
|
||||
"conditions": {
|
||||
"recipe": "create:crafting/kinetics/magenta_valve_handle_from_other_valve_handle"
|
||||
}
|
||||
}
|
||||
},
|
||||
"requirements": [
|
||||
[
|
||||
"has_valve",
|
||||
"has_the_recipe"
|
||||
]
|
||||
]
|
||||
}
|
|
@ -0,0 +1,32 @@
|
|||
{
|
||||
"parent": "minecraft:recipes/root",
|
||||
"rewards": {
|
||||
"recipes": [
|
||||
"create:crafting/kinetics/orange_valve_handle_from_other_valve_handle"
|
||||
]
|
||||
},
|
||||
"criteria": {
|
||||
"has_valve": {
|
||||
"trigger": "minecraft:inventory_changed",
|
||||
"conditions": {
|
||||
"items": [
|
||||
{
|
||||
"tag": "create:valve_handles"
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
"has_the_recipe": {
|
||||
"trigger": "minecraft:recipe_unlocked",
|
||||
"conditions": {
|
||||
"recipe": "create:crafting/kinetics/orange_valve_handle_from_other_valve_handle"
|
||||
}
|
||||
}
|
||||
},
|
||||
"requirements": [
|
||||
[
|
||||
"has_valve",
|
||||
"has_the_recipe"
|
||||
]
|
||||
]
|
||||
}
|
|
@ -0,0 +1,32 @@
|
|||
{
|
||||
"parent": "minecraft:recipes/root",
|
||||
"rewards": {
|
||||
"recipes": [
|
||||
"create:crafting/kinetics/pink_valve_handle_from_other_valve_handle"
|
||||
]
|
||||
},
|
||||
"criteria": {
|
||||
"has_valve": {
|
||||
"trigger": "minecraft:inventory_changed",
|
||||
"conditions": {
|
||||
"items": [
|
||||
{
|
||||
"tag": "create:valve_handles"
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
"has_the_recipe": {
|
||||
"trigger": "minecraft:recipe_unlocked",
|
||||
"conditions": {
|
||||
"recipe": "create:crafting/kinetics/pink_valve_handle_from_other_valve_handle"
|
||||
}
|
||||
}
|
||||
},
|
||||
"requirements": [
|
||||
[
|
||||
"has_valve",
|
||||
"has_the_recipe"
|
||||
]
|
||||
]
|
||||
}
|
|
@ -0,0 +1,32 @@
|
|||
{
|
||||
"parent": "minecraft:recipes/root",
|
||||
"rewards": {
|
||||
"recipes": [
|
||||
"create:crafting/kinetics/purple_valve_handle_from_other_valve_handle"
|
||||
]
|
||||
},
|
||||
"criteria": {
|
||||
"has_valve": {
|
||||
"trigger": "minecraft:inventory_changed",
|
||||
"conditions": {
|
||||
"items": [
|
||||
{
|
||||
"tag": "create:valve_handles"
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
"has_the_recipe": {
|
||||
"trigger": "minecraft:recipe_unlocked",
|
||||
"conditions": {
|
||||
"recipe": "create:crafting/kinetics/purple_valve_handle_from_other_valve_handle"
|
||||
}
|
||||
}
|
||||
},
|
||||
"requirements": [
|
||||
[
|
||||
"has_valve",
|
||||
"has_the_recipe"
|
||||
]
|
||||
]
|
||||
}
|
|
@ -0,0 +1,32 @@
|
|||
{
|
||||
"parent": "minecraft:recipes/root",
|
||||
"rewards": {
|
||||
"recipes": [
|
||||
"create:crafting/kinetics/red_valve_handle_from_other_valve_handle"
|
||||
]
|
||||
},
|
||||
"criteria": {
|
||||
"has_valve": {
|
||||
"trigger": "minecraft:inventory_changed",
|
||||
"conditions": {
|
||||
"items": [
|
||||
{
|
||||
"tag": "create:valve_handles"
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
"has_the_recipe": {
|
||||
"trigger": "minecraft:recipe_unlocked",
|
||||
"conditions": {
|
||||
"recipe": "create:crafting/kinetics/red_valve_handle_from_other_valve_handle"
|
||||
}
|
||||
}
|
||||
},
|
||||
"requirements": [
|
||||
[
|
||||
"has_valve",
|
||||
"has_the_recipe"
|
||||
]
|
||||
]
|
||||
}
|
|
@ -0,0 +1,32 @@
|
|||
{
|
||||
"parent": "minecraft:recipes/root",
|
||||
"rewards": {
|
||||
"recipes": [
|
||||
"create:crafting/kinetics/white_valve_handle_from_other_valve_handle"
|
||||
]
|
||||
},
|
||||
"criteria": {
|
||||
"has_valve": {
|
||||
"trigger": "minecraft:inventory_changed",
|
||||
"conditions": {
|
||||
"items": [
|
||||
{
|
||||
"tag": "create:valve_handles"
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
"has_the_recipe": {
|
||||
"trigger": "minecraft:recipe_unlocked",
|
||||
"conditions": {
|
||||
"recipe": "create:crafting/kinetics/white_valve_handle_from_other_valve_handle"
|
||||
}
|
||||
}
|
||||
},
|
||||
"requirements": [
|
||||
[
|
||||
"has_valve",
|
||||
"has_the_recipe"
|
||||
]
|
||||
]
|
||||
}
|
|
@ -0,0 +1,32 @@
|
|||
{
|
||||
"parent": "minecraft:recipes/root",
|
||||
"rewards": {
|
||||
"recipes": [
|
||||
"create:crafting/kinetics/yellow_valve_handle_from_other_valve_handle"
|
||||
]
|
||||
},
|
||||
"criteria": {
|
||||
"has_valve": {
|
||||
"trigger": "minecraft:inventory_changed",
|
||||
"conditions": {
|
||||
"items": [
|
||||
{
|
||||
"tag": "create:valve_handles"
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
"has_the_recipe": {
|
||||
"trigger": "minecraft:recipe_unlocked",
|
||||
"conditions": {
|
||||
"recipe": "create:crafting/kinetics/yellow_valve_handle_from_other_valve_handle"
|
||||
}
|
||||
}
|
||||
},
|
||||
"requirements": [
|
||||
[
|
||||
"has_valve",
|
||||
"has_the_recipe"
|
||||
]
|
||||
]
|
||||
}
|
|
@ -0,0 +1,18 @@
|
|||
{
|
||||
"type": "minecraft:crafting_shaped",
|
||||
"pattern": [
|
||||
"#",
|
||||
"-"
|
||||
],
|
||||
"key": {
|
||||
"#": {
|
||||
"tag": "forge:dyes/black"
|
||||
},
|
||||
"-": {
|
||||
"tag": "create:valve_handles"
|
||||
}
|
||||
},
|
||||
"result": {
|
||||
"item": "create:black_valve_handle"
|
||||
}
|
||||
}
|
|
@ -0,0 +1,18 @@
|
|||
{
|
||||
"type": "minecraft:crafting_shaped",
|
||||
"pattern": [
|
||||
"#",
|
||||
"-"
|
||||
],
|
||||
"key": {
|
||||
"#": {
|
||||
"tag": "forge:dyes/blue"
|
||||
},
|
||||
"-": {
|
||||
"tag": "create:valve_handles"
|
||||
}
|
||||
},
|
||||
"result": {
|
||||
"item": "create:blue_valve_handle"
|
||||
}
|
||||
}
|
|
@ -0,0 +1,18 @@
|
|||
{
|
||||
"type": "minecraft:crafting_shaped",
|
||||
"pattern": [
|
||||
"#",
|
||||
"-"
|
||||
],
|
||||
"key": {
|
||||
"#": {
|
||||
"tag": "forge:dyes/brown"
|
||||
},
|
||||
"-": {
|
||||
"tag": "create:valve_handles"
|
||||
}
|
||||
},
|
||||
"result": {
|
||||
"item": "create:brown_valve_handle"
|
||||
}
|
||||
}
|
|
@ -0,0 +1,18 @@
|
|||
{
|
||||
"type": "minecraft:crafting_shaped",
|
||||
"pattern": [
|
||||
"CCC",
|
||||
" S "
|
||||
],
|
||||
"key": {
|
||||
"S": {
|
||||
"item": "create:andesite_alloy"
|
||||
},
|
||||
"C": {
|
||||
"tag": "forge:plates/copper"
|
||||
}
|
||||
},
|
||||
"result": {
|
||||
"item": "create:copper_valve_handle"
|
||||
}
|
||||
}
|
|
@ -0,0 +1,11 @@
|
|||
{
|
||||
"type": "minecraft:crafting_shapeless",
|
||||
"ingredients": [
|
||||
{
|
||||
"tag": "create:valve_handles"
|
||||
}
|
||||
],
|
||||
"result": {
|
||||
"item": "create:copper_valve_handle"
|
||||
}
|
||||
}
|
|
@ -0,0 +1,18 @@
|
|||
{
|
||||
"type": "minecraft:crafting_shaped",
|
||||
"pattern": [
|
||||
"#",
|
||||
"-"
|
||||
],
|
||||
"key": {
|
||||
"#": {
|
||||
"tag": "forge:dyes/cyan"
|
||||
},
|
||||
"-": {
|
||||
"tag": "create:valve_handles"
|
||||
}
|
||||
},
|
||||
"result": {
|
||||
"item": "create:cyan_valve_handle"
|
||||
}
|
||||
}
|
|
@ -0,0 +1,22 @@
|
|||
{
|
||||
"type": "minecraft:crafting_shaped",
|
||||
"pattern": [
|
||||
"I",
|
||||
"S",
|
||||
"P"
|
||||
],
|
||||
"key": {
|
||||
"P": {
|
||||
"item": "create:shaft"
|
||||
},
|
||||
"S": {
|
||||
"item": "create:fluid_pipe"
|
||||
},
|
||||
"I": {
|
||||
"tag": "forge:plates/iron"
|
||||
}
|
||||
},
|
||||
"result": {
|
||||
"item": "create:fluid_valve"
|
||||
}
|
||||
}
|
|
@ -0,0 +1,18 @@
|
|||
{
|
||||
"type": "minecraft:crafting_shaped",
|
||||
"pattern": [
|
||||
"#",
|
||||
"-"
|
||||
],
|
||||
"key": {
|
||||
"#": {
|
||||
"tag": "forge:dyes/gray"
|
||||
},
|
||||
"-": {
|
||||
"tag": "create:valve_handles"
|
||||
}
|
||||
},
|
||||
"result": {
|
||||
"item": "create:gray_valve_handle"
|
||||
}
|
||||
}
|
|
@ -0,0 +1,18 @@
|
|||
{
|
||||
"type": "minecraft:crafting_shaped",
|
||||
"pattern": [
|
||||
"#",
|
||||
"-"
|
||||
],
|
||||
"key": {
|
||||
"#": {
|
||||
"tag": "forge:dyes/green"
|
||||
},
|
||||
"-": {
|
||||
"tag": "create:valve_handles"
|
||||
}
|
||||
},
|
||||
"result": {
|
||||
"item": "create:green_valve_handle"
|
||||
}
|
||||
}
|
|
@ -0,0 +1,18 @@
|
|||
{
|
||||
"type": "minecraft:crafting_shaped",
|
||||
"pattern": [
|
||||
"#",
|
||||
"-"
|
||||
],
|
||||
"key": {
|
||||
"#": {
|
||||
"tag": "forge:dyes/light_blue"
|
||||
},
|
||||
"-": {
|
||||
"tag": "create:valve_handles"
|
||||
}
|
||||
},
|
||||
"result": {
|
||||
"item": "create:light_blue_valve_handle"
|
||||
}
|
||||
}
|
|
@ -0,0 +1,18 @@
|
|||
{
|
||||
"type": "minecraft:crafting_shaped",
|
||||
"pattern": [
|
||||
"#",
|
||||
"-"
|
||||
],
|
||||
"key": {
|
||||
"#": {
|
||||
"tag": "forge:dyes/light_gray"
|
||||
},
|
||||
"-": {
|
||||
"tag": "create:valve_handles"
|
||||
}
|
||||
},
|
||||
"result": {
|
||||
"item": "create:light_gray_valve_handle"
|
||||
}
|
||||
}
|
|
@ -0,0 +1,18 @@
|
|||
{
|
||||
"type": "minecraft:crafting_shaped",
|
||||
"pattern": [
|
||||
"#",
|
||||
"-"
|
||||
],
|
||||
"key": {
|
||||
"#": {
|
||||
"tag": "forge:dyes/lime"
|
||||
},
|
||||
"-": {
|
||||
"tag": "create:valve_handles"
|
||||
}
|
||||
},
|
||||
"result": {
|
||||
"item": "create:lime_valve_handle"
|
||||
}
|
||||
}
|
|
@ -0,0 +1,18 @@
|
|||
{
|
||||
"type": "minecraft:crafting_shaped",
|
||||
"pattern": [
|
||||
"#",
|
||||
"-"
|
||||
],
|
||||
"key": {
|
||||
"#": {
|
||||
"tag": "forge:dyes/magenta"
|
||||
},
|
||||
"-": {
|
||||
"tag": "create:valve_handles"
|
||||
}
|
||||
},
|
||||
"result": {
|
||||
"item": "create:magenta_valve_handle"
|
||||
}
|
||||
}
|
|
@ -0,0 +1,18 @@
|
|||
{
|
||||
"type": "minecraft:crafting_shaped",
|
||||
"pattern": [
|
||||
"#",
|
||||
"-"
|
||||
],
|
||||
"key": {
|
||||
"#": {
|
||||
"tag": "forge:dyes/orange"
|
||||
},
|
||||
"-": {
|
||||
"tag": "create:valve_handles"
|
||||
}
|
||||
},
|
||||
"result": {
|
||||
"item": "create:orange_valve_handle"
|
||||
}
|
||||
}
|
|
@ -0,0 +1,18 @@
|
|||
{
|
||||
"type": "minecraft:crafting_shaped",
|
||||
"pattern": [
|
||||
"#",
|
||||
"-"
|
||||
],
|
||||
"key": {
|
||||
"#": {
|
||||
"tag": "forge:dyes/pink"
|
||||
},
|
||||
"-": {
|
||||
"tag": "create:valve_handles"
|
||||
}
|
||||
},
|
||||
"result": {
|
||||
"item": "create:pink_valve_handle"
|
||||
}
|
||||
}
|
|
@ -0,0 +1,18 @@
|
|||
{
|
||||
"type": "minecraft:crafting_shaped",
|
||||
"pattern": [
|
||||
"#",
|
||||
"-"
|
||||
],
|
||||
"key": {
|
||||
"#": {
|
||||
"tag": "forge:dyes/purple"
|
||||
},
|
||||
"-": {
|
||||
"tag": "create:valve_handles"
|
||||
}
|
||||
},
|
||||
"result": {
|
||||
"item": "create:purple_valve_handle"
|
||||
}
|
||||
}
|
|
@ -0,0 +1,18 @@
|
|||
{
|
||||
"type": "minecraft:crafting_shaped",
|
||||
"pattern": [
|
||||
"#",
|
||||
"-"
|
||||
],
|
||||
"key": {
|
||||
"#": {
|
||||
"tag": "forge:dyes/red"
|
||||
},
|
||||
"-": {
|
||||
"tag": "create:valve_handles"
|
||||
}
|
||||
},
|
||||
"result": {
|
||||
"item": "create:red_valve_handle"
|
||||
}
|
||||
}
|
|
@ -0,0 +1,18 @@
|
|||
{
|
||||
"type": "minecraft:crafting_shaped",
|
||||
"pattern": [
|
||||
"#",
|
||||
"-"
|
||||
],
|
||||
"key": {
|
||||
"#": {
|
||||
"tag": "forge:dyes/white"
|
||||
},
|
||||
"-": {
|
||||
"tag": "create:valve_handles"
|
||||
}
|
||||
},
|
||||
"result": {
|
||||
"item": "create:white_valve_handle"
|
||||
}
|
||||
}
|
|
@ -0,0 +1,18 @@
|
|||
{
|
||||
"type": "minecraft:crafting_shaped",
|
||||
"pattern": [
|
||||
"#",
|
||||
"-"
|
||||
],
|
||||
"key": {
|
||||
"#": {
|
||||
"tag": "forge:dyes/yellow"
|
||||
},
|
||||
"-": {
|
||||
"tag": "create:valve_handles"
|
||||
}
|
||||
},
|
||||
"result": {
|
||||
"item": "create:yellow_valve_handle"
|
||||
}
|
||||
}
|
|
@ -3,6 +3,7 @@
|
|||
"values": [
|
||||
"create:nozzle",
|
||||
"create:hand_crank",
|
||||
"create:copper_valve_handle",
|
||||
"create:white_valve_handle",
|
||||
"create:orange_valve_handle",
|
||||
"create:magenta_valve_handle",
|
||||
|
@ -19,7 +20,6 @@
|
|||
"create:green_valve_handle",
|
||||
"create:red_valve_handle",
|
||||
"create:black_valve_handle",
|
||||
"create:copper_valve_handle",
|
||||
"create:rope",
|
||||
"create:pulley_magnet",
|
||||
"create:furnace_engine",
|
||||
|
|
|
@ -0,0 +1,22 @@
|
|||
{
|
||||
"replace": false,
|
||||
"values": [
|
||||
"create:copper_valve_handle",
|
||||
"create:white_valve_handle",
|
||||
"create:orange_valve_handle",
|
||||
"create:magenta_valve_handle",
|
||||
"create:light_blue_valve_handle",
|
||||
"create:yellow_valve_handle",
|
||||
"create:lime_valve_handle",
|
||||
"create:pink_valve_handle",
|
||||
"create:gray_valve_handle",
|
||||
"create:light_gray_valve_handle",
|
||||
"create:cyan_valve_handle",
|
||||
"create:purple_valve_handle",
|
||||
"create:blue_valve_handle",
|
||||
"create:brown_valve_handle",
|
||||
"create:green_valve_handle",
|
||||
"create:red_valve_handle",
|
||||
"create:black_valve_handle"
|
||||
]
|
||||
}
|
|
@ -0,0 +1,22 @@
|
|||
{
|
||||
"replace": false,
|
||||
"values": [
|
||||
"create:copper_valve_handle",
|
||||
"create:white_valve_handle",
|
||||
"create:orange_valve_handle",
|
||||
"create:magenta_valve_handle",
|
||||
"create:light_blue_valve_handle",
|
||||
"create:yellow_valve_handle",
|
||||
"create:lime_valve_handle",
|
||||
"create:pink_valve_handle",
|
||||
"create:gray_valve_handle",
|
||||
"create:light_gray_valve_handle",
|
||||
"create:cyan_valve_handle",
|
||||
"create:purple_valve_handle",
|
||||
"create:blue_valve_handle",
|
||||
"create:brown_valve_handle",
|
||||
"create:green_valve_handle",
|
||||
"create:red_valve_handle",
|
||||
"create:black_valve_handle"
|
||||
]
|
||||
}
|
|
@ -27,8 +27,8 @@ import com.simibubi.create.content.contraptions.components.actors.SeatMovementBe
|
|||
import com.simibubi.create.content.contraptions.components.clock.CuckooClockBlock;
|
||||
import com.simibubi.create.content.contraptions.components.crafter.CrafterCTBehaviour;
|
||||
import com.simibubi.create.content.contraptions.components.crafter.MechanicalCrafterBlock;
|
||||
import com.simibubi.create.content.contraptions.components.crank.AllValveHandles;
|
||||
import com.simibubi.create.content.contraptions.components.crank.HandCrankBlock;
|
||||
import com.simibubi.create.content.contraptions.components.crank.ValveHandleBlock;
|
||||
import com.simibubi.create.content.contraptions.components.crusher.CrushingWheelBlock;
|
||||
import com.simibubi.create.content.contraptions.components.crusher.CrushingWheelControllerBlock;
|
||||
import com.simibubi.create.content.contraptions.components.deployer.DeployerBlock;
|
||||
|
@ -507,8 +507,28 @@ public class AllBlocks {
|
|||
.transform(customItemModel())
|
||||
.register();
|
||||
|
||||
public static final BlockEntry<ValveHandleBlock> COPPER_VALVE_HANDLE =
|
||||
REGISTRATE.block("copper_valve_handle", ValveHandleBlock::copper)
|
||||
.transform(BuilderTransformers.valveHandle(null))
|
||||
.register();
|
||||
|
||||
public static final BlockEntry<?>[] DYED_VALVE_HANDLES = new BlockEntry<?>[DyeColor.values().length];
|
||||
|
||||
static {
|
||||
AllValveHandles.register(REGISTRATE);
|
||||
for (DyeColor colour : DyeColor.values()) {
|
||||
String colourName = colour.getName();
|
||||
DYED_VALVE_HANDLES[colour.ordinal()] =
|
||||
REGISTRATE.block(colourName + "_valve_handle", ValveHandleBlock::dyed)
|
||||
.transform(BuilderTransformers.valveHandle(colour))
|
||||
.recipe((c, p) -> ShapedRecipeBuilder.shapedRecipe(c.get())
|
||||
.patternLine("#")
|
||||
.patternLine("-")
|
||||
.key('#', DyeHelper.getTagOfDye(colour))
|
||||
.key('-', AllItemTags.VALVE_HANDLES.tag)
|
||||
.addCriterion("has_valve", p.hasItem(AllItemTags.VALVE_HANDLES.tag))
|
||||
.build(p, Create.asResource("crafting/kinetics/" + c.getName() + "_from_other_valve_handle")))
|
||||
.register();
|
||||
}
|
||||
}
|
||||
|
||||
public static final BlockEntry<FluidTankBlock> FLUID_TANK = REGISTRATE.block("fluid_tank", FluidTankBlock::new)
|
||||
|
|
|
@ -65,6 +65,7 @@ public class AllTags {
|
|||
public static enum AllItemTags {
|
||||
CRUSHED_ORES(MOD),
|
||||
SEATS(MOD),
|
||||
VALVE_HANDLES(MOD),
|
||||
UPRIGHT_ON_BELT(MOD),
|
||||
CREATE_INGOTS(MOD),
|
||||
BEACON_PAYMENT(FORGE),
|
||||
|
@ -102,7 +103,7 @@ public class AllTags {
|
|||
}
|
||||
|
||||
public static enum AllBlockTags {
|
||||
WINDMILL_SAILS, FAN_HEATERS, WINDOWABLE, NON_MOVABLE, BRITTLE, SEATS, FAN_TRANSPARENT
|
||||
WINDMILL_SAILS, FAN_HEATERS, WINDOWABLE, NON_MOVABLE, BRITTLE, SEATS, VALVE_HANDLES, FAN_TRANSPARENT
|
||||
|
||||
;
|
||||
|
||||
|
|
|
@ -11,7 +11,6 @@ import com.simibubi.create.content.contraptions.components.clock.CuckooClockRend
|
|||
import com.simibubi.create.content.contraptions.components.clock.CuckooClockTileEntity;
|
||||
import com.simibubi.create.content.contraptions.components.crafter.MechanicalCrafterRenderer;
|
||||
import com.simibubi.create.content.contraptions.components.crafter.MechanicalCrafterTileEntity;
|
||||
import com.simibubi.create.content.contraptions.components.crank.AllValveHandles;
|
||||
import com.simibubi.create.content.contraptions.components.crank.HandCrankRenderer;
|
||||
import com.simibubi.create.content.contraptions.components.crank.HandCrankTileEntity;
|
||||
import com.simibubi.create.content.contraptions.components.crusher.CrushingWheelControllerTileEntity;
|
||||
|
@ -185,8 +184,8 @@ public class AllTileEntities {
|
|||
|
||||
public static final TileEntityEntry<HandCrankTileEntity> HAND_CRANK = Create.registrate()
|
||||
.tileEntity("hand_crank", HandCrankTileEntity::new)
|
||||
.validBlocks(AllBlocks.HAND_CRANK)
|
||||
.validBlocks(AllValveHandles.variants)
|
||||
.validBlocks(AllBlocks.HAND_CRANK, AllBlocks.COPPER_VALVE_HANDLE)
|
||||
.validBlocks(AllBlocks.DYED_VALVE_HANDLES)
|
||||
.renderer(() -> HandCrankRenderer::new)
|
||||
.register();
|
||||
|
||||
|
|
|
@ -183,7 +183,7 @@ public class ConnectedInputHandler {
|
|||
List<IItemHandlerModifiable> list = data.stream()
|
||||
.map(l -> CrafterHelper.getCrafter(world, pos.add(l)))
|
||||
.filter(Predicates.notNull())
|
||||
.map(crafter -> crafter.inventory)
|
||||
.map(crafter -> crafter.getInventory())
|
||||
.collect(Collectors.toList());
|
||||
return new CombinedInvWrapper(Arrays.copyOf(list.toArray(), list.size(), IItemHandlerModifiable[].class));
|
||||
}
|
||||
|
|
|
@ -169,6 +169,9 @@ public class MechanicalCrafterBlock extends HorizontalKineticBlock implements IT
|
|||
MechanicalCrafterTileEntity crafter = (MechanicalCrafterTileEntity) te;
|
||||
boolean wrenched = AllItems.WRENCH.isIn(heldItem);
|
||||
|
||||
if (AllBlocks.MECHANICAL_ARM.isIn(heldItem))
|
||||
return ActionResultType.PASS;
|
||||
|
||||
if (hit.getFace() == state.get(HORIZONTAL_FACING)) {
|
||||
|
||||
if (crafter.phase != Phase.IDLE && !wrenched) {
|
||||
|
@ -202,7 +205,7 @@ public class MechanicalCrafterBlock extends HorizontalKineticBlock implements IT
|
|||
return ActionResultType.SUCCESS;
|
||||
}
|
||||
|
||||
ItemStack inSlot = crafter.inventory.getStackInSlot(0);
|
||||
ItemStack inSlot = crafter.getInventory().getStackInSlot(0);
|
||||
if (inSlot.isEmpty()) {
|
||||
if (crafter.covered && !wrenched) {
|
||||
if (worldIn.isRemote)
|
||||
|
@ -221,7 +224,7 @@ public class MechanicalCrafterBlock extends HorizontalKineticBlock implements IT
|
|||
if (worldIn.isRemote)
|
||||
return ActionResultType.SUCCESS;
|
||||
player.inventory.placeItemBackInInventory(worldIn, inSlot);
|
||||
crafter.inventory.setStackInSlot(0, ItemStack.EMPTY);
|
||||
crafter.getInventory().setStackInSlot(0, ItemStack.EMPTY);
|
||||
return ActionResultType.SUCCESS;
|
||||
}
|
||||
|
||||
|
|
|
@ -65,7 +65,7 @@ public class MechanicalCrafterRenderer extends SafeTileEntityRenderer<Mechanical
|
|||
public void renderItems(MechanicalCrafterTileEntity te, float partialTicks, MatrixStack ms,
|
||||
IRenderTypeBuffer buffer, int light, int overlay) {
|
||||
if (te.phase == Phase.IDLE) {
|
||||
ItemStack stack = te.inventory.getStackInSlot(0);
|
||||
ItemStack stack = te.getInventory().getStackInSlot(0);
|
||||
if (!stack.isEmpty()) {
|
||||
ms.push();
|
||||
ms.translate(0, 0, -1 / 256f);
|
||||
|
|
|
@ -14,6 +14,7 @@ import com.simibubi.create.AllItems;
|
|||
import com.simibubi.create.content.contraptions.base.KineticTileEntity;
|
||||
import com.simibubi.create.content.contraptions.components.crafter.ConnectedInputHandler.ConnectedInput;
|
||||
import com.simibubi.create.content.contraptions.components.crafter.RecipeGridHandler.GroupedItems;
|
||||
import com.simibubi.create.foundation.item.SmartInventory;
|
||||
import com.simibubi.create.foundation.tileEntity.TileEntityBehaviour;
|
||||
import com.simibubi.create.foundation.tileEntity.behaviour.belt.DirectBeltInputBehaviour;
|
||||
import com.simibubi.create.foundation.tileEntity.behaviour.edgeInteraction.EdgeInteractionBehaviour;
|
||||
|
@ -38,7 +39,6 @@ import net.minecraftforge.common.capabilities.Capability;
|
|||
import net.minecraftforge.common.util.LazyOptional;
|
||||
import net.minecraftforge.items.CapabilityItemHandler;
|
||||
import net.minecraftforge.items.IItemHandler;
|
||||
import net.minecraftforge.items.ItemStackHandler;
|
||||
|
||||
public class MechanicalCrafterTileEntity extends KineticTileEntity {
|
||||
|
||||
|
@ -46,34 +46,34 @@ public class MechanicalCrafterTileEntity extends KineticTileEntity {
|
|||
IDLE, ACCEPTING, ASSEMBLING, EXPORTING, WAITING, CRAFTING, INSERTING;
|
||||
}
|
||||
|
||||
protected ItemStackHandler inventory = new ItemStackHandler(1) {
|
||||
static class Inventory extends SmartInventory {
|
||||
|
||||
@Override
|
||||
public int getSlotLimit(int slot) {
|
||||
return 1;
|
||||
private MechanicalCrafterTileEntity te;
|
||||
|
||||
public Inventory(MechanicalCrafterTileEntity te) {
|
||||
super(1, te, 1, false);
|
||||
this.te = te;
|
||||
forbidExtraction();
|
||||
whenContentsChanged(slot -> {
|
||||
if (getStackInSlot(slot).isEmpty())
|
||||
return;
|
||||
if(te.phase == Phase.IDLE)
|
||||
te.checkCompletedRecipe(false);
|
||||
});
|
||||
}
|
||||
|
||||
public ItemStack extractItem(int slot, int amount, boolean simulate) {
|
||||
return ItemStack.EMPTY;
|
||||
};
|
||||
|
||||
|
||||
@Override
|
||||
public ItemStack insertItem(int slot, ItemStack stack, boolean simulate) {
|
||||
if (phase != Phase.IDLE)
|
||||
if (te.phase != Phase.IDLE)
|
||||
return stack;
|
||||
if (covered)
|
||||
if (te.covered)
|
||||
return stack;
|
||||
return super.insertItem(slot, stack, simulate);
|
||||
};
|
||||
|
||||
protected void onContentsChanged(int slot) {
|
||||
if (!getStackInSlot(slot).isEmpty() && phase == Phase.IDLE)
|
||||
checkCompletedRecipe(false);
|
||||
markDirty();
|
||||
sendData();
|
||||
};
|
||||
|
||||
};
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
protected Inventory inventory;
|
||||
protected GroupedItems groupedItems = new GroupedItems();
|
||||
protected ConnectedInput input = new ConnectedInput();
|
||||
protected LazyOptional<IItemHandler> invSupplier = LazyOptional.of(() -> input.getItemHandler(world, pos));
|
||||
|
@ -92,7 +92,8 @@ public class MechanicalCrafterTileEntity extends KineticTileEntity {
|
|||
setLazyTickRate(20);
|
||||
phase = Phase.IDLE;
|
||||
groupedItemsBeforeCraft = new GroupedItems();
|
||||
|
||||
inventory = new Inventory(this);
|
||||
|
||||
// Does not get serialized due to active checking in tick
|
||||
wasPoweredBefore = true;
|
||||
}
|
||||
|
@ -485,4 +486,8 @@ public class MechanicalCrafterTileEntity extends KineticTileEntity {
|
|||
invSupplier = LazyOptional.of(() -> input.getItemHandler(world, pos));
|
||||
}
|
||||
|
||||
public Inventory getInventory() {
|
||||
return inventory;
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -1,35 +0,0 @@
|
|||
package com.simibubi.create.content.contraptions.components.crank;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
import com.simibubi.create.AllTags;
|
||||
import com.simibubi.create.foundation.data.CreateRegistrate;
|
||||
import com.simibubi.create.foundation.data.SharedProperties;
|
||||
import com.tterrag.registrate.util.entry.BlockEntry;
|
||||
|
||||
import net.minecraft.item.DyeColor;
|
||||
|
||||
public class AllValveHandles {
|
||||
private static final List<String> types = new ArrayList<>();
|
||||
static {
|
||||
for (DyeColor color : DyeColor.values())
|
||||
types.add(color.getName());
|
||||
types.add("copper");
|
||||
}
|
||||
public static final BlockEntry<?>[] variants = new BlockEntry[types.size()];
|
||||
|
||||
public static void register(CreateRegistrate registrate) {
|
||||
for (int i = 0; i < variants.length; i++) {
|
||||
String type = types.get(i);
|
||||
variants[i] = registrate.block(type + "_valve_handle", properties -> new ValveHandleBlock(properties, type.equals("copper")))
|
||||
.initialProperties(SharedProperties::softMetal)
|
||||
.blockstate((c, p) -> p.directionalBlock(c.get(), p.models()
|
||||
.withExistingParent(type + "_valve_handle", p.modLoc("block/valve_handle"))
|
||||
.texture("3", p.modLoc("block/valve_handle/valve_handle_" + type))))
|
||||
.tag(AllTags.AllBlockTags.BRITTLE.tag)
|
||||
.simpleItem()
|
||||
.register();
|
||||
}
|
||||
}
|
||||
}
|
|
@ -5,8 +5,8 @@ import com.simibubi.create.AllShapes;
|
|||
import com.simibubi.create.AllTileEntities;
|
||||
import com.simibubi.create.content.contraptions.base.DirectionalKineticBlock;
|
||||
import com.simibubi.create.foundation.block.ITE;
|
||||
|
||||
import com.simibubi.create.foundation.config.AllConfigs;
|
||||
|
||||
import net.minecraft.block.Block;
|
||||
import net.minecraft.block.BlockRenderType;
|
||||
import net.minecraft.block.BlockState;
|
||||
|
|
|
@ -1,8 +1,12 @@
|
|||
package com.simibubi.create.content.contraptions.components.crank;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
import javax.annotation.ParametersAreNonnullByDefault;
|
||||
|
||||
import com.simibubi.create.AllBlockPartials;
|
||||
import com.tterrag.registrate.util.entry.BlockEntry;
|
||||
|
||||
import net.minecraft.item.ItemGroup;
|
||||
import net.minecraft.item.ItemStack;
|
||||
|
@ -12,9 +16,20 @@ import net.minecraftforge.api.distmarker.OnlyIn;
|
|||
|
||||
@ParametersAreNonnullByDefault
|
||||
public class ValveHandleBlock extends HandCrankBlock {
|
||||
|
||||
public static final List<BlockEntry<ValveHandleBlock>> entries = new ArrayList<>();
|
||||
|
||||
private final boolean inCreativeTab;
|
||||
|
||||
public ValveHandleBlock(Properties properties, boolean inCreativeTab) {
|
||||
public static ValveHandleBlock copper(Properties properties) {
|
||||
return new ValveHandleBlock(properties, true);
|
||||
}
|
||||
|
||||
public static ValveHandleBlock dyed(Properties properties) {
|
||||
return new ValveHandleBlock(properties, false);
|
||||
}
|
||||
|
||||
private ValveHandleBlock(Properties properties, boolean inCreativeTab) {
|
||||
super(properties);
|
||||
this.inCreativeTab = inCreativeTab;
|
||||
}
|
||||
|
|
|
@ -11,6 +11,7 @@ import com.simibubi.create.foundation.tileEntity.TileEntityBehaviour;
|
|||
import com.simibubi.create.foundation.tileEntity.behaviour.filtering.FilteringBehaviour;
|
||||
|
||||
import mcp.MethodsReturnNonnullByDefault;
|
||||
import net.minecraft.block.Block;
|
||||
import net.minecraft.block.BlockState;
|
||||
import net.minecraft.block.material.PushReaction;
|
||||
import net.minecraft.entity.player.PlayerEntity;
|
||||
|
@ -107,5 +108,17 @@ public class DeployerBlock extends DirectionalAxisKineticBlock implements ITE<De
|
|||
public Class<DeployerTileEntity> getTileEntityClass() {
|
||||
return DeployerTileEntity.class;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onBlockAdded(BlockState state, World world, BlockPos pos, BlockState oldState, boolean isMoving) {
|
||||
super.onBlockAdded(state, world, pos, oldState, isMoving);
|
||||
withTileEntityDo(world, pos, DeployerTileEntity::redstoneUpdate);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void neighborChanged(BlockState state, World world, BlockPos pos, Block p_220069_4_,
|
||||
BlockPos p_220069_5_, boolean p_220069_6_) {
|
||||
withTileEntityDo(world, pos, DeployerTileEntity::redstoneUpdate);
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -49,6 +49,7 @@ public class DeployerTileEntity extends KineticTileEntity {
|
|||
protected boolean boop = false;
|
||||
protected List<ItemStack> overflowItems = new ArrayList<>();
|
||||
protected FilteringBehaviour filtering;
|
||||
protected boolean redstoneLocked;
|
||||
private LazyOptional<IItemHandlerModifiable> invHandler;
|
||||
private ListNBT deferredInventoryList;
|
||||
|
||||
|
@ -65,6 +66,7 @@ public class DeployerTileEntity extends KineticTileEntity {
|
|||
state = State.WAITING;
|
||||
mode = Mode.USE;
|
||||
heldItem = ItemStack.EMPTY;
|
||||
redstoneLocked = false;
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -148,6 +150,9 @@ public class DeployerTileEntity extends KineticTileEntity {
|
|||
if (mode == Mode.PUNCH && !boop && startBoop(facing))
|
||||
return;
|
||||
|
||||
if (redstoneLocked)
|
||||
return;
|
||||
|
||||
state = State.EXPANDING;
|
||||
Vec3d movementVector = getMovementVector();
|
||||
Vec3d rayOrigin = VecHelper.getCenterOf(pos)
|
||||
|
@ -259,6 +264,8 @@ public class DeployerTileEntity extends KineticTileEntity {
|
|||
state = NBTHelper.readEnum(compound, "State", State.class);
|
||||
mode = NBTHelper.readEnum(compound, "Mode", Mode.class);
|
||||
timer = compound.getInt("Timer");
|
||||
redstoneLocked = compound.getBoolean("Powered");
|
||||
|
||||
deferredInventoryList = compound.getList("Inventory", NBT.TAG_COMPOUND);
|
||||
overflowItems = NBTHelper.readItemList(compound.getList("Overflow", NBT.TAG_COMPOUND));
|
||||
if (compound.contains("HeldItem"))
|
||||
|
@ -280,6 +287,8 @@ public class DeployerTileEntity extends KineticTileEntity {
|
|||
NBTHelper.writeEnum(compound, "Mode", mode);
|
||||
NBTHelper.writeEnum(compound, "State", state);
|
||||
compound.putInt("Timer", timer);
|
||||
compound.putBoolean("Powered", redstoneLocked);
|
||||
|
||||
if (player != null) {
|
||||
compound.put("HeldItem", player.getHeldItemMainhand()
|
||||
.serializeNBT());
|
||||
|
@ -308,6 +317,16 @@ public class DeployerTileEntity extends KineticTileEntity {
|
|||
return new DeployerItemHandler(this);
|
||||
}
|
||||
|
||||
public void redstoneUpdate() {
|
||||
if (world.isRemote)
|
||||
return;
|
||||
boolean blockPowered = world.isBlockPowered(pos);
|
||||
if (blockPowered == redstoneLocked)
|
||||
return;
|
||||
redstoneLocked = blockPowered;
|
||||
sendData();
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean hasFastRenderer() {
|
||||
return false;
|
||||
|
|
|
@ -1,5 +1,7 @@
|
|||
package com.simibubi.create.content.contraptions.components.fan;
|
||||
|
||||
import javax.annotation.Nullable;
|
||||
|
||||
import com.simibubi.create.AllTags.AllBlockTags;
|
||||
import com.simibubi.create.content.contraptions.base.GeneratingKineticTileEntity;
|
||||
import com.simibubi.create.content.contraptions.processing.burner.BlazeBurnerBlock;
|
||||
|
@ -16,8 +18,6 @@ import net.minecraft.util.Direction;
|
|||
import net.minecraft.util.math.BlockPos;
|
||||
import net.minecraft.world.World;
|
||||
|
||||
import javax.annotation.Nullable;
|
||||
|
||||
|
||||
@MethodsReturnNonnullByDefault
|
||||
public class EncasedFanTileEntity extends GeneratingKineticTileEntity implements IAirCurrentSource {
|
||||
|
|
|
@ -1,15 +1,16 @@
|
|||
package com.simibubi.create.content.contraptions.components.fan;
|
||||
|
||||
import javax.annotation.Nullable;
|
||||
|
||||
import com.simibubi.create.foundation.config.AllConfigs;
|
||||
import com.simibubi.create.foundation.config.CKinetics;
|
||||
|
||||
import mcp.MethodsReturnNonnullByDefault;
|
||||
import net.minecraft.util.Direction;
|
||||
import net.minecraft.util.math.BlockPos;
|
||||
import net.minecraft.util.math.MathHelper;
|
||||
import net.minecraft.world.World;
|
||||
|
||||
import javax.annotation.Nullable;
|
||||
|
||||
@MethodsReturnNonnullByDefault
|
||||
public interface IAirCurrentSource {
|
||||
@Nullable
|
||||
|
|
|
@ -1,5 +1,7 @@
|
|||
package com.simibubi.create.content.contraptions.particle;
|
||||
|
||||
import javax.annotation.Nonnull;
|
||||
|
||||
import com.simibubi.create.Create;
|
||||
import com.simibubi.create.content.contraptions.components.fan.IAirCurrentSource;
|
||||
import com.simibubi.create.content.logistics.InWorldProcessing;
|
||||
|
@ -21,8 +23,6 @@ import net.minecraft.util.math.MathHelper;
|
|||
import net.minecraft.util.math.Vec3d;
|
||||
import net.minecraft.world.World;
|
||||
|
||||
import javax.annotation.Nonnull;
|
||||
|
||||
public class AirFlowParticle extends SimpleAnimatedParticle {
|
||||
|
||||
private final IAirCurrentSource source;
|
||||
|
|
|
@ -58,7 +58,7 @@ public class BasinTileEntity extends SmartTileEntity implements ITickableTileEnt
|
|||
public BasinTileEntity(TileEntityType<? extends BasinTileEntity> type) {
|
||||
super(type);
|
||||
inputInventory = new BasinInventory(9, this);
|
||||
inputInventory.whenContentsChanged(() -> contentsChanged = true);
|
||||
inputInventory.whenContentsChanged($ -> contentsChanged = true);
|
||||
outputInventory = new BasinInventory(9, this).forbidInsertion();
|
||||
|
||||
itemCapability = LazyOptional.of(() -> new CombinedInvWrapper(inputInventory, outputInventory));
|
||||
|
|
|
@ -42,6 +42,7 @@ import net.minecraft.world.storage.loot.LootTable;
|
|||
import net.minecraft.world.storage.loot.conditions.BlockStateProperty;
|
||||
import net.minecraft.world.storage.loot.conditions.ILootCondition.IBuilder;
|
||||
import net.minecraft.world.storage.loot.conditions.SurvivesExplosion;
|
||||
import net.minecraftforge.common.util.FakePlayer;
|
||||
|
||||
@MethodsReturnNonnullByDefault
|
||||
@ParametersAreNonnullByDefault
|
||||
|
@ -86,21 +87,29 @@ public class BlazeBurnerBlock extends Block implements ITE<BlazeBurnerTileEntity
|
|||
@Override
|
||||
public ActionResultType onUse(BlockState state, World world, BlockPos pos, PlayerEntity player, Hand hand,
|
||||
BlockRayTraceResult blockRayTraceResult) {
|
||||
if (!hasTileEntity(state))
|
||||
ItemStack heldItem = player.getHeldItem(hand);
|
||||
boolean dontConsume = player.isCreative();
|
||||
boolean forceOverflow = !(player instanceof FakePlayer);
|
||||
|
||||
if (!tryInsert(state, world, pos, dontConsume ? heldItem.copy() : heldItem, forceOverflow, false))
|
||||
return ActionResultType.PASS;
|
||||
return ActionResultType.SUCCESS;
|
||||
}
|
||||
|
||||
public static boolean tryInsert(BlockState state, World world, BlockPos pos, ItemStack stack, boolean forceOverflow, boolean simulate) {
|
||||
if (!state.hasTileEntity())
|
||||
return false;
|
||||
|
||||
TileEntity te = world.getTileEntity(pos);
|
||||
if (!(te instanceof BlazeBurnerTileEntity))
|
||||
return ActionResultType.PASS;
|
||||
return false;
|
||||
BlazeBurnerTileEntity burnerTE = (BlazeBurnerTileEntity) te;
|
||||
|
||||
if (!((BlazeBurnerTileEntity) te).tryUpdateFuel(player.getHeldItem(hand), player))
|
||||
return ActionResultType.PASS;
|
||||
|
||||
if (!player.isCreative())
|
||||
player.getHeldItem(hand)
|
||||
.shrink(1);
|
||||
|
||||
return ActionResultType.SUCCESS;
|
||||
if (!burnerTE.tryUpdateFuel(stack, forceOverflow, simulate))
|
||||
return false;
|
||||
if (!simulate && !world.isRemote)
|
||||
stack.shrink(1);
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
|
@ -5,7 +5,6 @@ import java.util.Random;
|
|||
|
||||
import com.simibubi.create.AllItems;
|
||||
import com.simibubi.create.AllSoundEvents;
|
||||
import com.simibubi.create.content.contraptions.components.deployer.DeployerFakePlayer;
|
||||
import com.simibubi.create.content.contraptions.particle.CubeParticleData;
|
||||
import com.simibubi.create.content.contraptions.processing.burner.BlazeBurnerBlock.HeatLevel;
|
||||
import com.simibubi.create.foundation.tileEntity.SmartTileEntity;
|
||||
|
@ -14,7 +13,6 @@ import com.simibubi.create.foundation.utility.ColorHelper;
|
|||
|
||||
import net.minecraft.client.Minecraft;
|
||||
import net.minecraft.client.entity.player.ClientPlayerEntity;
|
||||
import net.minecraft.entity.player.PlayerEntity;
|
||||
import net.minecraft.entity.projectile.EggEntity;
|
||||
import net.minecraft.item.ItemStack;
|
||||
import net.minecraft.nbt.CompoundNBT;
|
||||
|
@ -171,7 +169,7 @@ public class BlazeBurnerTileEntity extends SmartTileEntity {
|
|||
/**
|
||||
* @return true if the heater updated its burn time and a item should be consumed
|
||||
*/
|
||||
boolean tryUpdateFuel(ItemStack itemStack, PlayerEntity player) {
|
||||
boolean tryUpdateFuel(ItemStack itemStack, boolean forceOverflow, boolean simulate) {
|
||||
FuelType newFuel = FuelType.NONE;
|
||||
int burnTick = ForgeHooks.getBurnTime(itemStack);
|
||||
if (burnTick > 0)
|
||||
|
@ -185,20 +183,22 @@ public class BlazeBurnerTileEntity extends SmartTileEntity {
|
|||
return false;
|
||||
|
||||
if (newFuel == activeFuel) {
|
||||
if (remainingBurnTime + burnTick > maxHeatCapacity && player instanceof DeployerFakePlayer)
|
||||
if (remainingBurnTime + burnTick > maxHeatCapacity && !forceOverflow)
|
||||
return false;
|
||||
|
||||
if (simulate)
|
||||
return true;
|
||||
remainingBurnTime = MathHelper.clamp(remainingBurnTime + burnTick, 0, maxHeatCapacity);
|
||||
} else {
|
||||
if (simulate)
|
||||
return true;
|
||||
activeFuel = newFuel;
|
||||
remainingBurnTime = burnTick;
|
||||
}
|
||||
|
||||
updateHeatLevel();
|
||||
HeatLevel level = getHeatLevel();
|
||||
for (int i = 0; i < 20; i++) {
|
||||
for (int i = 0; i < 20; i++)
|
||||
spawnParticles(level, 1 + (.25 * (i / 4)));
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
|
|
|
@ -100,11 +100,10 @@ public class ZapperScreen extends AbstractSimiScreen {
|
|||
}
|
||||
|
||||
@Override
|
||||
public void onClose() {
|
||||
public void removed() {
|
||||
CompoundNBT nbt = zapper.getTag();
|
||||
writeAdditionalOptions(nbt);
|
||||
AllPackets.channel.sendToServer(new NbtPacket(zapper, offhand ? Hand.OFF_HAND : Hand.MAIN_HAND));
|
||||
super.onClose();
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -122,7 +121,7 @@ public class ZapperScreen extends AbstractSimiScreen {
|
|||
}
|
||||
|
||||
if (confirmButton.isHovered()) {
|
||||
Minecraft.getInstance().player.closeScreen();
|
||||
onClose();
|
||||
return true;
|
||||
}
|
||||
|
||||
|
|
|
@ -7,6 +7,8 @@ import java.util.Collections;
|
|||
import java.util.List;
|
||||
import java.util.Optional;
|
||||
|
||||
import javax.annotation.Nullable;
|
||||
|
||||
import com.simibubi.create.AllRecipeTypes;
|
||||
import com.simibubi.create.content.contraptions.components.fan.SplashingRecipe;
|
||||
import com.simibubi.create.content.contraptions.processing.ProcessingRecipe;
|
||||
|
@ -43,8 +45,6 @@ import net.minecraftforge.items.ItemHandlerHelper;
|
|||
import net.minecraftforge.items.ItemStackHandler;
|
||||
import net.minecraftforge.items.wrapper.RecipeWrapper;
|
||||
|
||||
import javax.annotation.Nullable;
|
||||
|
||||
public class InWorldProcessing {
|
||||
|
||||
public static class SplashingInv extends RecipeWrapper {
|
||||
|
|
|
@ -1,5 +1,11 @@
|
|||
package com.simibubi.create.content.logistics.block.chute;
|
||||
|
||||
import java.util.LinkedList;
|
||||
import java.util.List;
|
||||
|
||||
import javax.annotation.Nullable;
|
||||
import javax.annotation.ParametersAreNonnullByDefault;
|
||||
|
||||
import com.simibubi.create.AllBlocks;
|
||||
import com.simibubi.create.Create;
|
||||
import com.simibubi.create.content.contraptions.components.fan.AirCurrent;
|
||||
|
@ -23,6 +29,7 @@ import com.simibubi.create.foundation.tileEntity.behaviour.belt.TransportedItemS
|
|||
import com.simibubi.create.foundation.utility.BlockHelper;
|
||||
import com.simibubi.create.foundation.utility.Iterate;
|
||||
import com.simibubi.create.foundation.utility.VecHelper;
|
||||
|
||||
import mcp.MethodsReturnNonnullByDefault;
|
||||
import net.minecraft.block.Block;
|
||||
import net.minecraft.block.BlockState;
|
||||
|
@ -47,11 +54,6 @@ import net.minecraftforge.items.CapabilityItemHandler;
|
|||
import net.minecraftforge.items.IItemHandler;
|
||||
import net.minecraftforge.items.ItemHandlerHelper;
|
||||
|
||||
import javax.annotation.Nullable;
|
||||
import javax.annotation.ParametersAreNonnullByDefault;
|
||||
import java.util.LinkedList;
|
||||
import java.util.List;
|
||||
|
||||
@ParametersAreNonnullByDefault
|
||||
@MethodsReturnNonnullByDefault
|
||||
public class ChuteTileEntity extends SmartTileEntity implements IHaveGoggleInformation, IAirCurrentSource {
|
||||
|
|
|
@ -1,5 +1,7 @@
|
|||
package com.simibubi.create.content.logistics.block.depot;
|
||||
|
||||
import javax.annotation.ParametersAreNonnullByDefault;
|
||||
|
||||
import com.simibubi.create.AllBlocks;
|
||||
import com.simibubi.create.AllShapes;
|
||||
import com.simibubi.create.AllTileEntities;
|
||||
|
@ -29,8 +31,6 @@ import net.minecraft.world.IBlockReader;
|
|||
import net.minecraft.world.World;
|
||||
import net.minecraftforge.items.ItemStackHandler;
|
||||
|
||||
import javax.annotation.ParametersAreNonnullByDefault;
|
||||
|
||||
|
||||
@ParametersAreNonnullByDefault
|
||||
@MethodsReturnNonnullByDefault
|
||||
|
|
|
@ -5,7 +5,6 @@ import java.util.function.Function;
|
|||
|
||||
import com.simibubi.create.content.contraptions.relays.belt.BeltHelper;
|
||||
import com.simibubi.create.content.contraptions.relays.belt.transport.TransportedItemStack;
|
||||
import com.simibubi.create.content.logistics.InWorldProcessing;
|
||||
import com.simibubi.create.foundation.tileEntity.SmartTileEntity;
|
||||
import com.simibubi.create.foundation.tileEntity.TileEntityBehaviour;
|
||||
import com.simibubi.create.foundation.tileEntity.behaviour.belt.BeltProcessingBehaviour;
|
||||
|
|
|
@ -24,6 +24,7 @@ import net.minecraft.nbt.CompoundNBT;
|
|||
import net.minecraft.state.properties.BlockStateProperties;
|
||||
import net.minecraft.tileentity.TileEntityType;
|
||||
import net.minecraft.util.Direction;
|
||||
import net.minecraftforge.items.ItemHandlerHelper;
|
||||
|
||||
public class FunnelTileEntity extends SmartTileEntity {
|
||||
|
||||
|
@ -95,9 +96,12 @@ public class FunnelTileEntity extends SmartTileEntity {
|
|||
amountToExtract = 1;
|
||||
|
||||
Predicate<ItemStack> filter = s -> !filtering.isActive() || filtering.test(s);
|
||||
Function<ItemStack, Integer> amountThreshold = s -> s.getMaxStackSize() - invManipulation.simulate()
|
||||
.insert(s)
|
||||
.getCount();
|
||||
Function<ItemStack, Integer> amountThreshold = s -> {
|
||||
int maxStackSize = s.getMaxStackSize();
|
||||
return maxStackSize - invManipulation.simulate()
|
||||
.insert(ItemHandlerHelper.copyStackWithSize(s, maxStackSize))
|
||||
.getCount();
|
||||
};
|
||||
|
||||
if (amountToExtract != -1 && !invManipulation.simulate()
|
||||
.insert(autoExtractor.simulate()
|
||||
|
@ -108,7 +112,7 @@ public class FunnelTileEntity extends SmartTileEntity {
|
|||
ItemStack stack = autoExtractor.extract(amountToExtract, filter, amountThreshold);
|
||||
if (stack.isEmpty())
|
||||
return;
|
||||
|
||||
|
||||
onTransfer(stack);
|
||||
invManipulation.insert(stack);
|
||||
startCooldown();
|
||||
|
@ -192,8 +196,9 @@ public class FunnelTileEntity extends SmartTileEntity {
|
|||
BlockState blockState = getBlockState();
|
||||
boolean pushingToBelt = blockState.getBlock() instanceof HorizontalInteractionFunnelBlock
|
||||
&& blockState.get(HorizontalInteractionFunnelBlock.PUSHING);
|
||||
boolean hopper = FunnelBlock.getFunnelFacing(blockState) == Direction.UP && invManipulation.hasInventory()
|
||||
&& autoExtractor.hasInventory();
|
||||
boolean hopper = FunnelBlock.getFunnelFacing(blockState) == Direction.UP && !world.getBlockState(pos.up())
|
||||
.getMaterial()
|
||||
.isReplaceable();
|
||||
return pushingToBelt || hopper;
|
||||
}
|
||||
|
||||
|
@ -259,9 +264,10 @@ public class FunnelTileEntity extends SmartTileEntity {
|
|||
public double getMaxRenderDistanceSquared() {
|
||||
return hasFlap() ? super.getMaxRenderDistanceSquared() : 64;
|
||||
}
|
||||
|
||||
|
||||
public void onTransfer(ItemStack stack) {
|
||||
AllBlocks.CONTENT_OBSERVER.get().onFunnelTransfer(world, pos, stack);
|
||||
AllBlocks.CONTENT_OBSERVER.get()
|
||||
.onFunnelTransfer(world, pos, stack);
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -58,6 +58,18 @@ public class ArmBlock extends KineticBlock implements ITE<ArmTileEntity> {
|
|||
ISelectionContext p_220053_4_) {
|
||||
return state.get(CEILING) ? AllShapes.MECHANICAL_ARM_CEILING : AllShapes.MECHANICAL_ARM;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onBlockAdded(BlockState state, World world, BlockPos pos, BlockState oldState, boolean isMoving) {
|
||||
super.onBlockAdded(state, world, pos, oldState, isMoving);
|
||||
withTileEntityDo(world, pos, ArmTileEntity::redstoneUpdate);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void neighborChanged(BlockState state, World world, BlockPos pos, Block p_220069_4_,
|
||||
BlockPos p_220069_5_, boolean p_220069_6_) {
|
||||
withTileEntityDo(world, pos, ArmTileEntity::redstoneUpdate);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Axis getRotationAxis(BlockState state) {
|
||||
|
|
|
@ -8,11 +8,16 @@ import com.google.common.collect.ImmutableMap;
|
|||
import com.mojang.blaze3d.matrix.MatrixStack;
|
||||
import com.simibubi.create.AllBlockPartials;
|
||||
import com.simibubi.create.AllBlocks;
|
||||
import com.simibubi.create.content.contraptions.components.crafter.MechanicalCrafterBlock;
|
||||
import com.simibubi.create.content.contraptions.components.crafter.MechanicalCrafterTileEntity;
|
||||
import com.simibubi.create.content.contraptions.components.deployer.DeployerBlock;
|
||||
import com.simibubi.create.content.contraptions.components.saw.SawBlock;
|
||||
import com.simibubi.create.content.contraptions.processing.burner.BlazeBurnerBlock;
|
||||
import com.simibubi.create.content.logistics.block.belts.tunnel.BeltTunnelBlock;
|
||||
import com.simibubi.create.content.logistics.block.funnel.FunnelBlock;
|
||||
import com.simibubi.create.content.logistics.block.funnel.FunnelTileEntity;
|
||||
import com.simibubi.create.foundation.advancement.AllTriggers;
|
||||
import com.simibubi.create.foundation.item.SmartInventory;
|
||||
import com.simibubi.create.foundation.tileEntity.TileEntityBehaviour;
|
||||
import com.simibubi.create.foundation.tileEntity.behaviour.filtering.FilteringBehaviour;
|
||||
import com.simibubi.create.foundation.tileEntity.behaviour.inventory.InvManipulationBehaviour;
|
||||
|
@ -24,6 +29,7 @@ import net.minecraft.block.JukeboxBlock;
|
|||
import net.minecraft.entity.player.PlayerEntity;
|
||||
import net.minecraft.item.Item;
|
||||
import net.minecraft.item.ItemStack;
|
||||
import net.minecraft.item.MusicDiscItem;
|
||||
import net.minecraft.nbt.CompoundNBT;
|
||||
import net.minecraft.nbt.NBTUtil;
|
||||
import net.minecraft.state.properties.BlockStateProperties;
|
||||
|
@ -56,14 +62,17 @@ public abstract class ArmInteractionPoint {
|
|||
|
||||
private static ImmutableMap<ArmInteractionPoint, Supplier<ArmInteractionPoint>> POINTS =
|
||||
ImmutableMap.<ArmInteractionPoint, Supplier<ArmInteractionPoint>>builder()
|
||||
.put(new Saw(), Saw::new)
|
||||
.put(new Belt(), Belt::new)
|
||||
.put(new Depot(), Depot::new)
|
||||
.put(new Saw(), Saw::new)
|
||||
.put(new Chute(), Chute::new)
|
||||
.put(new Jukebox(), Jukebox::new)
|
||||
.put(new Basin(), Basin::new)
|
||||
.put(new Millstone(), Millstone::new)
|
||||
.put(new Funnel(), Funnel::new)
|
||||
.put(new Jukebox(), Jukebox::new)
|
||||
.put(new Crafter(), Crafter::new)
|
||||
.put(new Deployer(), Deployer::new)
|
||||
.put(new Millstone(), Millstone::new)
|
||||
.put(new BlazeBurner(), BlazeBurner::new)
|
||||
.put(new CrushingWheels(), CrushingWheels::new)
|
||||
.build();
|
||||
|
||||
|
@ -90,6 +99,10 @@ public abstract class ArmInteractionPoint {
|
|||
return Direction.DOWN;
|
||||
}
|
||||
|
||||
boolean isStillValid(IBlockReader reader) {
|
||||
return isValid(reader, pos, reader.getBlockState(pos));
|
||||
}
|
||||
|
||||
abstract boolean isValid(IBlockReader reader, BlockPos pos, BlockState state);
|
||||
|
||||
static boolean isInteractable(IBlockReader reader, BlockPos pos, BlockState state) {
|
||||
|
@ -228,6 +241,84 @@ public abstract class ArmInteractionPoint {
|
|||
|
||||
}
|
||||
|
||||
static class Deployer extends ArmInteractionPoint {
|
||||
|
||||
@Override
|
||||
boolean isValid(IBlockReader reader, BlockPos pos, BlockState state) {
|
||||
return AllBlocks.DEPLOYER.has(state);
|
||||
}
|
||||
|
||||
@Override
|
||||
Direction getInteractionDirection() {
|
||||
return state.get(DeployerBlock.FACING)
|
||||
.getOpposite();
|
||||
}
|
||||
|
||||
@Override
|
||||
Vec3d getInteractionPositionVector() {
|
||||
return super.getInteractionPositionVector()
|
||||
.add(new Vec3d(getInteractionDirection().getDirectionVec()).scale(.65f));
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
static class BlazeBurner extends ArmInteractionPoint {
|
||||
|
||||
@Override
|
||||
boolean isValid(IBlockReader reader, BlockPos pos, BlockState state) {
|
||||
return AllBlocks.BLAZE_BURNER.has(state);
|
||||
}
|
||||
|
||||
@Override
|
||||
ItemStack extract(World world, int slot, int amount, boolean simulate) {
|
||||
return ItemStack.EMPTY;
|
||||
}
|
||||
|
||||
@Override
|
||||
ItemStack insert(World world, ItemStack stack, boolean simulate) {
|
||||
boolean success = BlazeBurnerBlock.tryInsert(state, world, pos, stack.copy(), false, simulate);
|
||||
return success ? ItemHandlerHelper.copyStackWithSize(stack, stack.getCount() - 1) : stack;
|
||||
}
|
||||
|
||||
@Override
|
||||
void cycleMode() {}
|
||||
|
||||
}
|
||||
|
||||
static class Crafter extends ArmInteractionPoint {
|
||||
|
||||
@Override
|
||||
boolean isValid(IBlockReader reader, BlockPos pos, BlockState state) {
|
||||
return AllBlocks.MECHANICAL_CRAFTER.has(state);
|
||||
}
|
||||
|
||||
@Override
|
||||
Direction getInteractionDirection() {
|
||||
return state.get(MechanicalCrafterBlock.HORIZONTAL_FACING)
|
||||
.getOpposite();
|
||||
}
|
||||
|
||||
@Override
|
||||
ItemStack extract(World world, int slot, int amount, boolean simulate) {
|
||||
TileEntity te = world.getTileEntity(pos);
|
||||
if (!(te instanceof MechanicalCrafterTileEntity))
|
||||
return ItemStack.EMPTY;
|
||||
MechanicalCrafterTileEntity crafter = (MechanicalCrafterTileEntity) te;
|
||||
SmartInventory inventory = crafter.getInventory();
|
||||
inventory.allowExtraction();
|
||||
ItemStack extract = super.extract(world, slot, amount, simulate);
|
||||
inventory.forbidExtraction();
|
||||
return extract;
|
||||
}
|
||||
|
||||
@Override
|
||||
Vec3d getInteractionPositionVector() {
|
||||
return super.getInteractionPositionVector()
|
||||
.add(new Vec3d(getInteractionDirection().getDirectionVec()).scale(.5f));
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
static class Basin extends ArmInteractionPoint {
|
||||
|
||||
@Override
|
||||
|
@ -261,6 +352,8 @@ public abstract class ArmInteractionPoint {
|
|||
if (!jukeboxTE.getRecord()
|
||||
.isEmpty())
|
||||
return stack;
|
||||
if (!(stack.getItem() instanceof MusicDiscItem))
|
||||
return stack;
|
||||
ItemStack remainder = stack.copy();
|
||||
ItemStack toInsert = remainder.split(1);
|
||||
if (!simulate && !world.isRemote) {
|
||||
|
|
|
@ -60,6 +60,7 @@ public class ArmTileEntity extends KineticTileEntity {
|
|||
protected ScrollOptionBehaviour<SelectionMode> selectionMode;
|
||||
protected int lastInputIndex = -1;
|
||||
protected int lastOutputIndex = -1;
|
||||
protected boolean redstoneLocked;
|
||||
|
||||
enum Phase {
|
||||
SEARCH_INPUTS, MOVE_TO_INPUT, SEARCH_OUTPUTS, MOVE_TO_OUTPUT, DANCING
|
||||
|
@ -79,6 +80,7 @@ public class ArmTileEntity extends KineticTileEntity {
|
|||
previousTarget = ArmAngleTarget.NO_TARGET;
|
||||
previousBaseAngle = previousTarget.baseAngle;
|
||||
updateInteractionPoints = true;
|
||||
redstoneLocked = false;
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -188,6 +190,9 @@ public class ArmTileEntity extends KineticTileEntity {
|
|||
}
|
||||
|
||||
protected void searchForItem() {
|
||||
if (redstoneLocked)
|
||||
return;
|
||||
|
||||
boolean foundInput = false;
|
||||
// for round robin, we start looking after the last used index, for default we
|
||||
// start at 0;
|
||||
|
@ -201,6 +206,8 @@ public class ArmTileEntity extends KineticTileEntity {
|
|||
|
||||
InteractionPoints: for (int i = startIndex; i < scanRange; i++) {
|
||||
ArmInteractionPoint armInteractionPoint = inputs.get(i);
|
||||
if (!armInteractionPoint.isStillValid(world))
|
||||
continue;
|
||||
for (int j = 0; j < armInteractionPoint.getSlotCount(world); j++) {
|
||||
if (getDistributableAmount(armInteractionPoint, j) == 0)
|
||||
continue;
|
||||
|
@ -237,6 +244,9 @@ public class ArmTileEntity extends KineticTileEntity {
|
|||
|
||||
for (int i = startIndex; i < scanRange; i++) {
|
||||
ArmInteractionPoint armInteractionPoint = outputs.get(i);
|
||||
if (!armInteractionPoint.isStillValid(world))
|
||||
continue;
|
||||
|
||||
ItemStack remainder = armInteractionPoint.insert(world, held, true);
|
||||
if (remainder.equals(heldItem, false))
|
||||
continue;
|
||||
|
@ -325,6 +335,18 @@ public class ArmTileEntity extends KineticTileEntity {
|
|||
}
|
||||
return stack;
|
||||
}
|
||||
|
||||
public void redstoneUpdate() {
|
||||
if (world.isRemote)
|
||||
return;
|
||||
boolean blockPowered = world.isBlockPowered(pos);
|
||||
if (blockPowered == redstoneLocked)
|
||||
return;
|
||||
redstoneLocked = blockPowered;
|
||||
sendData();
|
||||
if (!redstoneLocked)
|
||||
searchForItem();
|
||||
}
|
||||
|
||||
protected void initInteractionPoints() {
|
||||
if (!updateInteractionPoints || interactionPointTag == null)
|
||||
|
@ -366,6 +388,7 @@ public class ArmTileEntity extends KineticTileEntity {
|
|||
}
|
||||
|
||||
NBTHelper.writeEnum(compound, "Phase", phase);
|
||||
compound.putBoolean("Powered", redstoneLocked);
|
||||
compound.put("HeldItem", heldItem.serializeNBT());
|
||||
compound.putInt("TargetPointIndex", chasedPointIndex);
|
||||
compound.putFloat("MovementProgress", chasedPointProgress);
|
||||
|
@ -383,6 +406,7 @@ public class ArmTileEntity extends KineticTileEntity {
|
|||
chasedPointIndex = compound.getInt("TargetPointIndex");
|
||||
chasedPointProgress = compound.getFloat("MovementProgress");
|
||||
interactionPointTag = compound.getList("InteractionPoints", NBT.TAG_COMPOUND);
|
||||
redstoneLocked = compound.getBoolean("Powered");
|
||||
|
||||
if (!clientPacket)
|
||||
return;
|
||||
|
|
|
@ -15,7 +15,6 @@ import com.simibubi.create.foundation.gui.widgets.ScrollInput;
|
|||
import com.simibubi.create.foundation.gui.widgets.SelectionScrollInput;
|
||||
import com.simibubi.create.foundation.utility.Lang;
|
||||
|
||||
import net.minecraft.client.Minecraft;
|
||||
import net.minecraft.client.gui.widget.TextFieldWidget;
|
||||
import net.minecraft.item.ItemStack;
|
||||
import net.minecraft.nbt.NBTUtil;
|
||||
|
@ -191,7 +190,7 @@ public class SchematicEditScreen extends AbstractSimiScreen {
|
|||
@Override
|
||||
public boolean mouseClicked(double x, double y, int button) {
|
||||
if (confirmButton.isHovered()) {
|
||||
Minecraft.getInstance().player.closeScreen();
|
||||
onClose();
|
||||
return true;
|
||||
}
|
||||
|
||||
|
|
|
@ -6,8 +6,13 @@ import java.util.HashMap;
|
|||
import java.util.Map;
|
||||
import java.util.function.Function;
|
||||
|
||||
import javax.annotation.Nullable;
|
||||
|
||||
import com.simibubi.create.AllTags.AllBlockTags;
|
||||
import com.simibubi.create.AllTags.AllItemTags;
|
||||
import com.simibubi.create.Create;
|
||||
import com.simibubi.create.content.contraptions.base.CasingBlock;
|
||||
import com.simibubi.create.content.contraptions.components.crank.ValveHandleBlock;
|
||||
import com.simibubi.create.content.contraptions.components.structureMovement.piston.MechanicalPistonGenerator;
|
||||
import com.simibubi.create.content.logistics.block.belts.tunnel.BeltTunnelBlock;
|
||||
import com.simibubi.create.content.logistics.block.belts.tunnel.BeltTunnelBlock.Shape;
|
||||
|
@ -24,6 +29,7 @@ import com.tterrag.registrate.util.nullness.NonNullUnaryOperator;
|
|||
import net.minecraft.block.Block;
|
||||
import net.minecraft.block.BlockState;
|
||||
import net.minecraft.client.renderer.RenderType;
|
||||
import net.minecraft.item.DyeColor;
|
||||
import net.minecraft.state.properties.BlockStateProperties;
|
||||
import net.minecraft.state.properties.PistonType;
|
||||
import net.minecraft.util.Direction;
|
||||
|
@ -44,6 +50,21 @@ public class BuilderTransformers {
|
|||
.transform(ModelGen.customItemModel("cuckoo_clock", "item"));
|
||||
}
|
||||
|
||||
public static <B extends ValveHandleBlock> NonNullUnaryOperator<BlockBuilder<B, CreateRegistrate>> valveHandle(
|
||||
@Nullable DyeColor color) {
|
||||
return b -> b.initialProperties(SharedProperties::softMetal)
|
||||
.blockstate((c, p) -> {
|
||||
String variant = color == null ? "copper" : color.getName();
|
||||
p.directionalBlock(c.get(), p.models()
|
||||
.withExistingParent(variant + "_valve_handle", p.modLoc("block/valve_handle"))
|
||||
.texture("3", p.modLoc("block/valve_handle/valve_handle_" + variant)));
|
||||
})
|
||||
.tag(AllBlockTags.BRITTLE.tag, AllBlockTags.VALVE_HANDLES.tag)
|
||||
.item()
|
||||
.tag(AllItemTags.VALVE_HANDLES.tag)
|
||||
.build();
|
||||
}
|
||||
|
||||
public static <B extends CasingBlock> NonNullUnaryOperator<BlockBuilder<B, CreateRegistrate>> casing(
|
||||
CTSpriteShiftEntry ct) {
|
||||
return b -> b.onRegister(connectedTextures(new StandardCTBehaviour(ct)))
|
||||
|
|
|
@ -8,6 +8,7 @@ import com.google.common.collect.ImmutableList;
|
|||
import com.simibubi.create.AllBlocks;
|
||||
import com.simibubi.create.AllItems;
|
||||
import com.simibubi.create.AllTags;
|
||||
import com.simibubi.create.AllTags.AllItemTags;
|
||||
import com.simibubi.create.Create;
|
||||
import com.simibubi.create.content.AllSections;
|
||||
import com.simibubi.create.content.palettes.AllPaletteBlocks;
|
||||
|
@ -336,6 +337,16 @@ public class StandardRecipeGen extends CreateRecipeProvider {
|
|||
.patternLine("CCC")
|
||||
.patternLine(" S")),
|
||||
|
||||
COPPER_VALVE_HANDLE = create(AllBlocks.COPPER_VALVE_HANDLE).unlockedByTag(I::copper)
|
||||
.viaShaped(b -> b.key('S', I.andesite())
|
||||
.key('C', I.copperSheet())
|
||||
.patternLine("CCC")
|
||||
.patternLine(" S ")),
|
||||
|
||||
COPPER_VALVE_HANDLE_FROM_OTHER_HANDLES = create(AllBlocks.COPPER_VALVE_HANDLE).withSuffix("_from_others")
|
||||
.unlockedByTag(I::copper)
|
||||
.viaShapeless(b -> b.addIngredient(AllItemTags.VALVE_HANDLES.tag)),
|
||||
|
||||
NOZZLE = create(AllBlocks.NOZZLE).unlockedBy(AllBlocks.ENCASED_FAN::get)
|
||||
.viaShaped(b -> b.key('S', I.andesite())
|
||||
.key('C', ItemTags.WOOL)
|
||||
|
@ -416,6 +427,14 @@ public class StandardRecipeGen extends CreateRecipeProvider {
|
|||
.patternLine("P")
|
||||
.patternLine("S")),
|
||||
|
||||
FLUID_VALVE = create(AllBlocks.FLUID_VALVE).unlockedByTag(I::copper)
|
||||
.viaShaped(b -> b.key('P', I.shaft())
|
||||
.key('S', AllBlocks.FLUID_PIPE.get())
|
||||
.key('I', I.ironSheet())
|
||||
.patternLine("I")
|
||||
.patternLine("S")
|
||||
.patternLine("P")),
|
||||
|
||||
SPOUT = create(AllBlocks.SPOUT).unlockedBy(I::copperCasing)
|
||||
.viaShaped(b -> b.key('T', AllBlocks.FLUID_TANK.get())
|
||||
.key('P', Items.DRIED_KELP)
|
||||
|
@ -851,20 +870,22 @@ public class StandardRecipeGen extends CreateRecipeProvider {
|
|||
GeneratedRecipeBuilder create(Supplier<IItemProvider> result) {
|
||||
return new GeneratedRecipeBuilder(currentFolder, result);
|
||||
}
|
||||
|
||||
|
||||
GeneratedRecipeBuilder create(ItemProviderEntry<? extends IItemProvider> result) {
|
||||
return create(result::get);
|
||||
}
|
||||
|
||||
GeneratedRecipe blastCrushedMetal(Supplier<? extends IItemProvider> result,
|
||||
Supplier<? extends IItemProvider> ingredient) {
|
||||
return create(result::get).withSuffix("_from_crushed").viaCooking(ingredient::get)
|
||||
return create(result::get).withSuffix("_from_crushed")
|
||||
.viaCooking(ingredient::get)
|
||||
.rewardXP(.1f)
|
||||
.inBlastFurnace();
|
||||
}
|
||||
|
||||
GeneratedRecipe blastMetalOre(Supplier<? extends IItemProvider> result, Tag<Item> ore) {
|
||||
return create(result::get).withSuffix("_from_ore").viaCookingTag(() -> ore)
|
||||
return create(result::get).withSuffix("_from_ore")
|
||||
.viaCookingTag(() -> ore)
|
||||
.rewardXP(.1f)
|
||||
.inBlastFurnace();
|
||||
}
|
||||
|
|
|
@ -1,5 +1,7 @@
|
|||
package com.simibubi.create.foundation.item;
|
||||
|
||||
import java.util.function.Consumer;
|
||||
|
||||
import javax.annotation.Nonnull;
|
||||
|
||||
import com.simibubi.create.foundation.tileEntity.SyncedTileEntity;
|
||||
|
@ -30,7 +32,7 @@ public class SmartInventory extends RecipeWrapper
|
|||
this.stackSize = stackSize;
|
||||
}
|
||||
|
||||
public SmartInventory whenContentsChanged(Runnable updateCallback) {
|
||||
public SmartInventory whenContentsChanged(Consumer<Integer> updateCallback) {
|
||||
((SyncedStackHandler) inv).whenContentsChange(updateCallback);
|
||||
return this;
|
||||
}
|
||||
|
@ -122,7 +124,7 @@ public class SmartInventory extends RecipeWrapper
|
|||
private SyncedTileEntity te;
|
||||
private boolean stackNonStackables;
|
||||
private int stackSize;
|
||||
private Runnable updateCallback;
|
||||
private Consumer<Integer> updateCallback;
|
||||
|
||||
public SyncedStackHandler(int slots, SyncedTileEntity te, boolean stackNonStackables, int stackSize) {
|
||||
super(slots);
|
||||
|
@ -135,7 +137,7 @@ public class SmartInventory extends RecipeWrapper
|
|||
protected void onContentsChanged(int slot) {
|
||||
super.onContentsChanged(slot);
|
||||
if (updateCallback != null)
|
||||
updateCallback.run();
|
||||
updateCallback.accept(slot);
|
||||
te.notifyUpdate();
|
||||
}
|
||||
|
||||
|
@ -144,7 +146,7 @@ public class SmartInventory extends RecipeWrapper
|
|||
return Math.min(stackNonStackables ? 64 : super.getSlotLimit(slot), stackSize);
|
||||
}
|
||||
|
||||
public void whenContentsChange(Runnable updateCallback) {
|
||||
public void whenContentsChange(Consumer<Integer> updateCallback) {
|
||||
this.updateCallback = updateCallback;
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in a new issue