Item registrates, and more porty

- All Items are now using registrate
- Blockzapper now renders an outline around its affected area
- Ported rainbow debug ™️
- Reworked the custom item model/renderer system
- Schematics now preview their structure again
- SuperByteBuffers now support being rendered into non-BufferBuilders
This commit is contained in:
simibubi 2020-05-28 01:29:26 +02:00
parent 8d8f96c778
commit 3d68bec18a
233 changed files with 1595 additions and 1705 deletions

View file

@ -274,7 +274,7 @@ e8b0a401c10d1ba67ed71ba31bd5f9bc28571b65 assets\create\blockstates\powered_toggl
c29213b77ac0c78d8979c5f6188d2b265696f9b9 assets\create\blockstates\redstone_link.json c29213b77ac0c78d8979c5f6188d2b265696f9b9 assets\create\blockstates\redstone_link.json
e2990fe70ad5d10437a376e70e167d1856277cc1 assets\create\blockstates\rope.json e2990fe70ad5d10437a376e70e167d1856277cc1 assets\create\blockstates\rope.json
e14d5f7252105934295b4e156ec0e6d62d3d6b1c assets\create\blockstates\rope_pulley.json e14d5f7252105934295b4e156ec0e6d62d3d6b1c assets\create\blockstates\rope_pulley.json
d42b4ead9307a83e2a106cfa440572575e8664b2 assets\create\blockstates\rotation_chassis.json 0133b3765943096c2541538ba927d49501f89e2f assets\create\blockstates\rotation_chassis.json
cc4cf3420fa290cb844f9cf4dfdd836aa9b70500 assets\create\blockstates\rotation_speed_controller.json cc4cf3420fa290cb844f9cf4dfdd836aa9b70500 assets\create\blockstates\rotation_speed_controller.json
56b63575c87065bc82eb9410175c501cdf959c66 assets\create\blockstates\saw.json 56b63575c87065bc82eb9410175c501cdf959c66 assets\create\blockstates\saw.json
36592a6542332b35445931e8e9531adf786b63ba assets\create\blockstates\schematicannon.json 36592a6542332b35445931e8e9531adf786b63ba assets\create\blockstates\schematicannon.json
@ -323,8 +323,8 @@ c60c3115fd6eeaa3a696428a87a74d184ab7d62d assets\create\blockstates\weathered_lim
c77b46d8b459e5c7cc495393546f3fcca8a1fa1d assets\create\blockstates\weathered_limestone_pillar.json c77b46d8b459e5c7cc495393546f3fcca8a1fa1d assets\create\blockstates\weathered_limestone_pillar.json
7f39521b211441f5c3e06d60c5978cebe16cacfb assets\create\blockstates\zinc_block.json 7f39521b211441f5c3e06d60c5978cebe16cacfb assets\create\blockstates\zinc_block.json
b7181bcd8182b2f17088e5aa881f374c9c65470c assets\create\blockstates\zinc_ore.json b7181bcd8182b2f17088e5aa881f374c9c65470c assets\create\blockstates\zinc_ore.json
efa942851f247891194d2c6ecdd8724a23b05aa0 assets\create\lang\en_ud.json ed3d1d71c739bbf457acc152301514e2bb8d221b assets\create\lang\en_ud.json
fe4c49a84016a3861a86e116df2c7603d6d4b91f assets\create\lang\en_us.json b60610388c3cfb638bf3d4a635cd3ac9d33beab0 assets\create\lang\en_us.json
846200eb548d3bfa2e77b41039de159b4b6cfb45 assets\create\models\block\acacia_window.json 846200eb548d3bfa2e77b41039de159b4b6cfb45 assets\create\models\block\acacia_window.json
1930fa3a3c98d53dd19e4ee7f55bc27fd47aa281 assets\create\models\block\acacia_window_pane_noside.json 1930fa3a3c98d53dd19e4ee7f55bc27fd47aa281 assets\create\models\block\acacia_window_pane_noside.json
1763ea2c9b981d187f5031ba608f3d5d3be3986a assets\create\models\block\acacia_window_pane_noside_alt.json 1763ea2c9b981d187f5031ba608f3d5d3be3986a assets\create\models\block\acacia_window_pane_noside_alt.json
@ -900,6 +900,7 @@ cbc0ebadda4497663437f99622914de678d0ffaf assets\create\models\item\acacia_window
96fcec285c0c26a8cb55e126f8c7053c70ad188b assets\create\models\item\adjustable_pulse_repeater.json 96fcec285c0c26a8cb55e126f8c7053c70ad188b assets\create\models\item\adjustable_pulse_repeater.json
30292e874dd36e45eaeebb8d0bb8c4867866a38b assets\create\models\item\adjustable_repeater.json 30292e874dd36e45eaeebb8d0bb8c4867866a38b assets\create\models\item\adjustable_repeater.json
e7759d9b3cd64d2719a58dc35fc75ca65b9e14fa assets\create\models\item\analog_lever.json e7759d9b3cd64d2719a58dc35fc75ca65b9e14fa assets\create\models\item\analog_lever.json
168786b05674b17fb1eea530e3575a6f34edc798 assets\create\models\item\andesite_alloy.json
a513af38f164a48fd44693b70a93012f3546caff assets\create\models\item\andesite_bricks.json a513af38f164a48fd44693b70a93012f3546caff assets\create\models\item\andesite_bricks.json
851090d21c6e6c67444324d975c6b3270eaf4ff2 assets\create\models\item\andesite_bricks_slab.json 851090d21c6e6c67444324d975c6b3270eaf4ff2 assets\create\models\item\andesite_bricks_slab.json
d283f86cd05ed378efd82ce46cf49bc83783069b assets\create\models\item\andesite_bricks_stairs.json d283f86cd05ed378efd82ce46cf49bc83783069b assets\create\models\item\andesite_bricks_stairs.json
@ -911,12 +912,17 @@ b0f664dd6de3d0ee9afcb6223fbcd53b97fa0d65 assets\create\models\item\andesite_cobb
4856d13a72ec0af9f10226b4a4bf0567eb580b9a assets\create\models\item\andesite_cobblestone_wall.json 4856d13a72ec0af9f10226b4a4bf0567eb580b9a assets\create\models\item\andesite_cobblestone_wall.json
75b8b00c2418b9660d35a7fabd0774925cf1c02f assets\create\models\item\andesite_pillar.json 75b8b00c2418b9660d35a7fabd0774925cf1c02f assets\create\models\item\andesite_pillar.json
bf1fc6bdf7fca6f1958a2d3e96202c1cecb50669 assets\create\models\item\basin.json bf1fc6bdf7fca6f1958a2d3e96202c1cecb50669 assets\create\models\item\basin.json
1da382e7e58eaa9788f5b1d92221ccac573e068f assets\create\models\item\belt_connector.json
695a69d5854e2eb134b55d855bd2b7b18808a01d assets\create\models\item\belt_observer.json 695a69d5854e2eb134b55d855bd2b7b18808a01d assets\create\models\item\belt_observer.json
5006164d5bdb17cc5ec9759d7cdaf218e2b45f04 assets\create\models\item\belt_tunnel.json 5006164d5bdb17cc5ec9759d7cdaf218e2b45f04 assets\create\models\item\belt_tunnel.json
9044243882cfd49a2827e1b910a4c9b0e46daa47 assets\create\models\item\birch_window.json 9044243882cfd49a2827e1b910a4c9b0e46daa47 assets\create\models\item\birch_window.json
6ed49f59ea91068ef68720f43e67a9237594bdf0 assets\create\models\item\birch_window_pane.json 6ed49f59ea91068ef68720f43e67a9237594bdf0 assets\create\models\item\birch_window_pane.json
17d340c3678bd24cb085ba49490b2b4cb341a9e7 assets\create\models\item\brass_block.json 17d340c3678bd24cb085ba49490b2b4cb341a9e7 assets\create\models\item\brass_block.json
f5a18f4279c2e845a5967b1c2f9e807c2bb77afb assets\create\models\item\brass_casing.json f5a18f4279c2e845a5967b1c2f9e807c2bb77afb assets\create\models\item\brass_casing.json
361f75a79de5007d7a99ad0a38103c9aa8c3017c assets\create\models\item\brass_hand.json
1786bdffa2ab5a07c88d2797db3d7b54461323c4 assets\create\models\item\brass_ingot.json
a37be4a0ec9bf6c381527403c57ced4f81abd67c assets\create\models\item\brass_nugget.json
14ea6ee4db6e7e76446e331a70b6b6bec31e8eb7 assets\create\models\item\brass_sheet.json
7fcb2a4d0bbe434f269b5bcaffebe410913297be assets\create\models\item\cart_assembler.json 7fcb2a4d0bbe434f269b5bcaffebe410913297be assets\create\models\item\cart_assembler.json
99d64b76b3baa84c3bd4b96ccd3376ca12425950 assets\create\models\item\chiseled_dark_scoria.json 99d64b76b3baa84c3bd4b96ccd3376ca12425950 assets\create\models\item\chiseled_dark_scoria.json
83d3571eacde52568786802b268f24c6578c1e5d assets\create\models\item\chiseled_dolomite.json 83d3571eacde52568786802b268f24c6578c1e5d assets\create\models\item\chiseled_dolomite.json
@ -929,10 +935,19 @@ b1531a7bd3f7f27b9587d13e818a93dc2d088bc8 assets\create\models\item\clockwork_bea
dcb09deae110077bcddf090996b51cc66e9a7de3 assets\create\models\item\cogwheel.json dcb09deae110077bcddf090996b51cc66e9a7de3 assets\create\models\item\cogwheel.json
965a90a882d85dba93b30af9bce7ecf8e68ce747 assets\create\models\item\copper_block.json 965a90a882d85dba93b30af9bce7ecf8e68ce747 assets\create\models\item\copper_block.json
759bcb5fe7dfdd628716f9b4ff19a5ab00393381 assets\create\models\item\copper_casing.json 759bcb5fe7dfdd628716f9b4ff19a5ab00393381 assets\create\models\item\copper_casing.json
c5bcfba46f5824654dedaa2c5d5f42deb29e3baf assets\create\models\item\copper_ingot.json
3cdb321193355af630ee0e0b18bf24a9469aabad assets\create\models\item\copper_nugget.json
51be7da59368681522de870f1e09036dac55aa77 assets\create\models\item\copper_ore.json 51be7da59368681522de870f1e09036dac55aa77 assets\create\models\item\copper_ore.json
200ef8378a9c014571c414433d4aef73a204dc01 assets\create\models\item\copper_sheet.json
d7cb2f7bac8fae893fc5179af8140786a908f3f5 assets\create\models\item\copper_shingles.json d7cb2f7bac8fae893fc5179af8140786a908f3f5 assets\create\models\item\copper_shingles.json
4e9126b349d55c65aa5407f05700579e52101c1f assets\create\models\item\crafter_slot_cover.json
7b333dea353afaa27b182aedc647c9e9e34e92ef assets\create\models\item\creative_crate.json 7b333dea353afaa27b182aedc647c9e9e34e92ef assets\create\models\item\creative_crate.json
5b39403f6c81f05e566b621b62e267267de47c41 assets\create\models\item\creative_motor.json 5b39403f6c81f05e566b621b62e267267de47c41 assets\create\models\item\creative_motor.json
19c8492ced64a872a040005dd212a9a14e20477c assets\create\models\item\crushed_brass.json
8167f2a6d05d65a4ebd809b9c114027862afb38e assets\create\models\item\crushed_copper_ore.json
371f1c74cf327c3c48a4ba1cffd5f6003ba5ab77 assets\create\models\item\crushed_gold_ore.json
604931d2906bc545a468987a4f151d64f20e79de assets\create\models\item\crushed_iron_ore.json
8b9c0aa8aaf979ec85eac59b27799cc1c0cf427a assets\create\models\item\crushed_zinc_ore.json
823c91f63565db54ec3944a1e90e7aee18e41062 assets\create\models\item\crushing_wheel.json 823c91f63565db54ec3944a1e90e7aee18e41062 assets\create\models\item\crushing_wheel.json
dae5cffa4e1263d6a113469f79fba8695fa8232a assets\create\models\item\cuckoo_clock.json dae5cffa4e1263d6a113469f79fba8695fa8232a assets\create\models\item\cuckoo_clock.json
f786a43e296d9f10d7c302fe3ae9cddf4ba9984e assets\create\models\item\dark_oak_window.json f786a43e296d9f10d7c302fe3ae9cddf4ba9984e assets\create\models\item\dark_oak_window.json
@ -947,6 +962,7 @@ b50e3471476783be80f28bb4e3543f5a426b9eb6 assets\create\models\item\dark_scoria_b
e67fe11e9036c81f0f54d368b41a971822a84a32 assets\create\models\item\dark_scoria_cobblestone_stairs.json e67fe11e9036c81f0f54d368b41a971822a84a32 assets\create\models\item\dark_scoria_cobblestone_stairs.json
59c87e6a439fbcbbbb254e07e7b48209ea31e40c assets\create\models\item\dark_scoria_cobblestone_wall.json 59c87e6a439fbcbbbb254e07e7b48209ea31e40c assets\create\models\item\dark_scoria_cobblestone_wall.json
f5b2995929ac9dca9857d4618660ffa7778d5618 assets\create\models\item\dark_scoria_pillar.json f5b2995929ac9dca9857d4618660ffa7778d5618 assets\create\models\item\dark_scoria_pillar.json
f06f56ffb1cd7c9a2b81c65f7796726692e5cc59 assets\create\models\item\deforester.json
2104c1276259ab67b94f3d4fe97e14b6bc6941ac assets\create\models\item\deployer.json 2104c1276259ab67b94f3d4fe97e14b6bc6941ac assets\create\models\item\deployer.json
a97ca9b6fc3e10a9c9409b27458a852222045e4e assets\create\models\item\diorite_bricks.json a97ca9b6fc3e10a9c9409b27458a852222045e4e assets\create\models\item\diorite_bricks.json
7a28bb619d37a37ed82509d2ff395d76b4435961 assets\create\models\item\diorite_bricks_slab.json 7a28bb619d37a37ed82509d2ff395d76b4435961 assets\create\models\item\diorite_bricks_slab.json
@ -967,7 +983,10 @@ f92bc71df40567367d08798a6ea45e7e8d0b07b0 assets\create\models\item\dolomite_cobb
be7de1e1529fb2a2e842204136520a760676d4e9 assets\create\models\item\dolomite_cobblestone_stairs.json be7de1e1529fb2a2e842204136520a760676d4e9 assets\create\models\item\dolomite_cobblestone_stairs.json
6b03f2be8fa1e62a89d59859e7d40f9e45ab8b65 assets\create\models\item\dolomite_cobblestone_wall.json 6b03f2be8fa1e62a89d59859e7d40f9e45ab8b65 assets\create\models\item\dolomite_cobblestone_wall.json
e974cd23a5456baef8b634f2d21fd8c3822931ab assets\create\models\item\dolomite_pillar.json e974cd23a5456baef8b634f2d21fd8c3822931ab assets\create\models\item\dolomite_pillar.json
82b73fafdb8bf4f0706012d5baab44cd0e1aa7bc assets\create\models\item\dough.json
a2b3820eb87b5e3eaf0c315c4482ba24d9ebd610 assets\create\models\item\drill.json a2b3820eb87b5e3eaf0c315c4482ba24d9ebd610 assets\create\models\item\drill.json
36139f3de5fc9e57cb96f2d2daad108bc0635b7b assets\create\models\item\electron_tube.json
3bbf9f6b33ef075fb2e1d20d58a6169e2e942314 assets\create\models\item\empty_schematic.json
f2d6b88c3174de01e16da555236727efc33b490c assets\create\models\item\encased_belt.json f2d6b88c3174de01e16da555236727efc33b490c assets\create\models\item\encased_belt.json
250bd0716cc1f04b03892ab74eb0b3a0f32a6158 assets\create\models\item\encased_fan.json 250bd0716cc1f04b03892ab74eb0b3a0f32a6158 assets\create\models\item\encased_fan.json
e0f9ad7e7d790e9e21a38fa57395fd3ff892359b assets\create\models\item\encased_shaft.json e0f9ad7e7d790e9e21a38fa57395fd3ff892359b assets\create\models\item\encased_shaft.json
@ -1013,6 +1032,7 @@ d62b93d3c274d280f3eec22a28b5175943411d25 assets\create\models\item\framed_glass.
1041d462c6e856f7f3f2365c299c0599703d1ed7 assets\create\models\item\framed_glass_pane.json 1041d462c6e856f7f3f2365c299c0599703d1ed7 assets\create\models\item\framed_glass_pane.json
2dc08da54182756cd3520f1420d0506ab50063e1 assets\create\models\item\funnel.json 2dc08da54182756cd3520f1420d0506ab50063e1 assets\create\models\item\funnel.json
0bee2855dc9bad52e941153b87e9c35797c246ee assets\create\models\item\furnace_engine.json 0bee2855dc9bad52e941153b87e9c35797c246ee assets\create\models\item\furnace_engine.json
090edb6a728fc3803e870d647c7c4e826faadca0 assets\create\models\item\furnace_minecart_contraption.json
2c1608c114ccc285a84e936dc3f1233c535e1a26 assets\create\models\item\gabbro.json 2c1608c114ccc285a84e936dc3f1233c535e1a26 assets\create\models\item\gabbro.json
c35900cae8508c292a73239e560cebae17980f96 assets\create\models\item\gabbro_bricks.json c35900cae8508c292a73239e560cebae17980f96 assets\create\models\item\gabbro_bricks.json
b10971277417369f421324b28f0a4b47ce4c8625 assets\create\models\item\gabbro_bricks_slab.json b10971277417369f421324b28f0a4b47ce4c8625 assets\create\models\item\gabbro_bricks_slab.json
@ -1025,6 +1045,7 @@ b3d7398dbc16c450928bd76b772c273382687447 assets\create\models\item\gabbro_cobble
20950b692eecfccd77d96678bb3d909d51f6d787 assets\create\models\item\gabbro_pillar.json 20950b692eecfccd77d96678bb3d909d51f6d787 assets\create\models\item\gabbro_pillar.json
6ab0d17f3d02678ed992e188ff09f6b2c00b5b03 assets\create\models\item\gearbox.json 6ab0d17f3d02678ed992e188ff09f6b2c00b5b03 assets\create\models\item\gearbox.json
2fe29893d74c176ea35aed73a169c13dd4ddb2a8 assets\create\models\item\gearshift.json 2fe29893d74c176ea35aed73a169c13dd4ddb2a8 assets\create\models\item\gearshift.json
52108a61865dab38133b9f916496ca680ae364ea assets\create\models\item\golden_sheet.json
46d813bcb6676078347383295bb7dbda1d9dd060 assets\create\models\item\granite_bricks.json 46d813bcb6676078347383295bb7dbda1d9dd060 assets\create\models\item\granite_bricks.json
032a31c66d3de63595d478165d54b4f562e9831d assets\create\models\item\granite_bricks_slab.json 032a31c66d3de63595d478165d54b4f562e9831d assets\create\models\item\granite_bricks_slab.json
9d7a989d644af91a4ca5985396375863cc5de6a7 assets\create\models\item\granite_bricks_stairs.json 9d7a989d644af91a4ca5985396375863cc5de6a7 assets\create\models\item\granite_bricks_stairs.json
@ -1034,12 +1055,17 @@ c1bb87fdbbefaf74e1ead186c43417a051ab3965 assets\create\models\item\granite_cobbl
3c5f83809f945134a861d4ea600a1708de58a422 assets\create\models\item\granite_cobblestone_stairs.json 3c5f83809f945134a861d4ea600a1708de58a422 assets\create\models\item\granite_cobblestone_stairs.json
e2d8561a8048fe6144362d13478bba4825588810 assets\create\models\item\granite_cobblestone_wall.json e2d8561a8048fe6144362d13478bba4825588810 assets\create\models\item\granite_cobblestone_wall.json
b84a947a1b297513c85bb8d2dbbb780304c95e43 assets\create\models\item\granite_pillar.json b84a947a1b297513c85bb8d2dbbb780304c95e43 assets\create\models\item\granite_pillar.json
cfab82a2cf7495d21778c1de9730a26afbdd523d assets\create\models\item\handheld_blockzapper.json
dee43bf1a9c211a752fac2c07aeba123f7f0c914 assets\create\models\item\handheld_worldshaper.json
398b1a7c76c7bdb6a23b1248fdce98f6d835467f assets\create\models\item\hand_crank.json 398b1a7c76c7bdb6a23b1248fdce98f6d835467f assets\create\models\item\hand_crank.json
74d745d5e702d3561921d3abb763534cee7d1cf7 assets\create\models\item\harvester.json 74d745d5e702d3561921d3abb763534cee7d1cf7 assets\create\models\item\harvester.json
e7ec65ad5be13cae5f7d60836b8df9e4a5baad56 assets\create\models\item\horizontal_framed_glass.json e7ec65ad5be13cae5f7d60836b8df9e4a5baad56 assets\create\models\item\horizontal_framed_glass.json
f0e3b2b8a553b6e61746c922c27302dabfff71b6 assets\create\models\item\horizontal_framed_glass_pane.json f0e3b2b8a553b6e61746c922c27302dabfff71b6 assets\create\models\item\horizontal_framed_glass_pane.json
771d439eac70b52f593fa7381f2c48729fbdaec7 assets\create\models\item\integrated_circuit.json
d254f47bc185f2a2f01608a875aa63ed2c4ceb0f assets\create\models\item\iron_sheet.json
83fa8699318e51f838b483b40b3e897c34ed53d1 assets\create\models\item\jungle_window.json 83fa8699318e51f838b483b40b3e897c34ed53d1 assets\create\models\item\jungle_window.json
34dc05da3edef554dad1cfde834773aecd861293 assets\create\models\item\jungle_window_pane.json 34dc05da3edef554dad1cfde834773aecd861293 assets\create\models\item\jungle_window_pane.json
0c9b16c3f5f0a5f77110b3fc2467bde8c1b288b7 assets\create\models\item\lapis_sheet.json
bcaaf60d9a853cce90169dabcb36d29a3ce19e18 assets\create\models\item\large_cogwheel.json bcaaf60d9a853cce90169dabcb36d29a3ce19e18 assets\create\models\item\large_cogwheel.json
281e2b055c6eb6994ca306c8957fc80a98fb5473 assets\create\models\item\layered_andesite.json 281e2b055c6eb6994ca306c8957fc80a98fb5473 assets\create\models\item\layered_andesite.json
7afeb6170b37cb464ea91be18928d21970d556d3 assets\create\models\item\layered_dark_scoria.json 7afeb6170b37cb464ea91be18928d21970d556d3 assets\create\models\item\layered_dark_scoria.json
@ -1069,6 +1095,7 @@ eb0053df13e362e0a05be65252944f0c94eab3db assets\create\models\item\linked_extrac
f8d0d4b2a890ea7a69ab0c390947b48fe0478d3f assets\create\models\item\mechanical_piston.json f8d0d4b2a890ea7a69ab0c390947b48fe0478d3f assets\create\models\item\mechanical_piston.json
6c2acb80e53256fbb85f76851f335f9248ace6da assets\create\models\item\mechanical_press.json 6c2acb80e53256fbb85f76851f335f9248ace6da assets\create\models\item\mechanical_press.json
0eb5726c8c0de462f432411c210d6132b2c446a4 assets\create\models\item\millstone.json 0eb5726c8c0de462f432411c210d6132b2c446a4 assets\create\models\item\millstone.json
1134bc8ecdfefe5d30ee4973c37aa9a349c368b4 assets\create\models\item\minecart_contraption.json
dc43c88dc8ae1f425e1c10f422b09d97719af5bc assets\create\models\item\mossy_andesite.json dc43c88dc8ae1f425e1c10f422b09d97719af5bc assets\create\models\item\mossy_andesite.json
4ce9aabf9fa9e9e6af6b4339291e635708bdbcdf assets\create\models\item\mossy_dark_scoria.json 4ce9aabf9fa9e9e6af6b4339291e635708bdbcdf assets\create\models\item\mossy_dark_scoria.json
d084f03d068d0b8c3b7c4d00014c168f61836770 assets\create\models\item\mossy_diorite.json d084f03d068d0b8c3b7c4d00014c168f61836770 assets\create\models\item\mossy_diorite.json
@ -1148,6 +1175,7 @@ cee4881472e679583d4ab8c2b3d21280093926af assets\create\models\item\polished_gabb
6c899db964025a4e61245063ba2b917c5e14e5c0 assets\create\models\item\polished_limestone_slab.json 6c899db964025a4e61245063ba2b917c5e14e5c0 assets\create\models\item\polished_limestone_slab.json
7b7e357c0d9abd524d267b197c3c7c8a031da493 assets\create\models\item\polished_limestone_stairs.json 7b7e357c0d9abd524d267b197c3c7c8a031da493 assets\create\models\item\polished_limestone_stairs.json
64119ad6c26e988b3c0886e572b3a6cd16617d8e assets\create\models\item\polished_limestone_wall.json 64119ad6c26e988b3c0886e572b3a6cd16617d8e assets\create\models\item\polished_limestone_wall.json
c2cf33c3b01db2403193c0f187e90d0268d7e82d assets\create\models\item\polished_rose_quartz.json
7f4ada06f5fc6647e6ba7fe3195efc116bfb2189 assets\create\models\item\polished_scoria.json 7f4ada06f5fc6647e6ba7fe3195efc116bfb2189 assets\create\models\item\polished_scoria.json
143139799880ed94c0b41bacfe3dc0a821d96c49 assets\create\models\item\polished_scoria_slab.json 143139799880ed94c0b41bacfe3dc0a821d96c49 assets\create\models\item\polished_scoria_slab.json
e95125318055b8557afd7d108488cf0bdd81fe49 assets\create\models\item\polished_scoria_stairs.json e95125318055b8557afd7d108488cf0bdd81fe49 assets\create\models\item\polished_scoria_stairs.json
@ -1157,16 +1185,24 @@ e95125318055b8557afd7d108488cf0bdd81fe49 assets\create\models\item\polished_scor
6d92ee7112aa20e8a1adfe73d8933031c299bed1 assets\create\models\item\polished_weathered_limestone_stairs.json 6d92ee7112aa20e8a1adfe73d8933031c299bed1 assets\create\models\item\polished_weathered_limestone_stairs.json
b4995fb4799f33508cd6bf2ded80c0b3e866ad43 assets\create\models\item\polished_weathered_limestone_wall.json b4995fb4799f33508cd6bf2ded80c0b3e866ad43 assets\create\models\item\polished_weathered_limestone_wall.json
ef2c9dcd5f6385a0f0cdc2e9120c984827863100 assets\create\models\item\portable_storage_interface.json ef2c9dcd5f6385a0f0cdc2e9120c984827863100 assets\create\models\item\portable_storage_interface.json
d3cfc1a1137c4bc98848947d425d2972df144c95 assets\create\models\item\powdered_obsidian.json
1e501c1f2e9250aaaadcf17db62646d08177d4e1 assets\create\models\item\powered_latch.json 1e501c1f2e9250aaaadcf17db62646d08177d4e1 assets\create\models\item\powered_latch.json
3a6dfc7f36e31ebfcd650c3144a7f2210e8a4f9f assets\create\models\item\powered_toggle_latch.json 3a6dfc7f36e31ebfcd650c3144a7f2210e8a4f9f assets\create\models\item\powered_toggle_latch.json
16f363038d5afeae34e0724a6a9f0b8f6e65424a assets\create\models\item\propeller.json
4b8a27ff05ed5331889dfc4b0b4562f3e94b0dfe assets\create\models\item\pulse_repeater.json 4b8a27ff05ed5331889dfc4b0b4562f3e94b0dfe assets\create\models\item\pulse_repeater.json
b9a4ac219a27e60a82f55129f2df5ae6183981e2 assets\create\models\item\redstone_contact.json b9a4ac219a27e60a82f55129f2df5ae6183981e2 assets\create\models\item\redstone_contact.json
52e561abeb954d0349e640566de92ef80ccbf919 assets\create\models\item\redstone_link.json 52e561abeb954d0349e640566de92ef80ccbf919 assets\create\models\item\redstone_link.json
ba99e2fdb64892f4f479a8ac51c226cb5f71f659 assets\create\models\item\red_sand_paper.json
d9dd4546f4f4c6ed5fef66de9d272d469db4e81f assets\create\models\item\refined_radiance.json
6daff6b82b33374d7add65e352e05ecb2fd9ebdd assets\create\models\item\rope_pulley.json 6daff6b82b33374d7add65e352e05ecb2fd9ebdd assets\create\models\item\rope_pulley.json
fc54acc37695f21ef650c8310110407647e9a023 assets\create\models\item\rose_quartz.json
1c76eabeac012b18ef0b7cf2ec7ed794877c1d98 assets\create\models\item\rotation_chassis.json 1c76eabeac012b18ef0b7cf2ec7ed794877c1d98 assets\create\models\item\rotation_chassis.json
acfbf487ee65c2c58d89cb2644e33fda75751fde assets\create\models\item\rotation_speed_controller.json acfbf487ee65c2c58d89cb2644e33fda75751fde assets\create\models\item\rotation_speed_controller.json
be86c8156d55d2f128feb66abd70923b3be765cc assets\create\models\item\sand_paper.json
03027a6080a9f1c2f0d8e4eb09a0f6647bf860de assets\create\models\item\saw.json 03027a6080a9f1c2f0d8e4eb09a0f6647bf860de assets\create\models\item\saw.json
69196df5122a27573112dad49b334dea96aafed0 assets\create\models\item\schematic.json
0a1c4080ca572106c19a0ba6e2df4baba5f45d35 assets\create\models\item\schematicannon.json 0a1c4080ca572106c19a0ba6e2df4baba5f45d35 assets\create\models\item\schematicannon.json
533483999f61e3b091af567a473875247edaedb3 assets\create\models\item\schematic_and_quill.json
8dd5caa4d7a0ee45bd9b39e09c4503159933d089 assets\create\models\item\schematic_table.json 8dd5caa4d7a0ee45bd9b39e09c4503159933d089 assets\create\models\item\schematic_table.json
22a6dfdc3cbb1b6ac20ec123b490e15c72dfbfcf assets\create\models\item\scoria.json 22a6dfdc3cbb1b6ac20ec123b490e15c72dfbfcf assets\create\models\item\scoria.json
44a99d0a4ec37dd33ea184e0f4b4bd54289eb19f assets\create\models\item\scoria_bricks.json 44a99d0a4ec37dd33ea184e0f4b4bd54289eb19f assets\create\models\item\scoria_bricks.json
@ -1179,6 +1215,7 @@ fe8c7476b1386fc05a57a93319f71455ba4cf29b assets\create\models\item\scoria_cobble
b0061419cf7b7bd2dd548ff00ee28f1227ee2663 assets\create\models\item\scoria_cobblestone_wall.json b0061419cf7b7bd2dd548ff00ee28f1227ee2663 assets\create\models\item\scoria_cobblestone_wall.json
1f0cfa084107c05b010556f609371285295a0d12 assets\create\models\item\scoria_pillar.json 1f0cfa084107c05b010556f609371285295a0d12 assets\create\models\item\scoria_pillar.json
0df94333da5700f01dcf4ffa46e3f3bf26bb8cf7 assets\create\models\item\sequenced_gearshift.json 0df94333da5700f01dcf4ffa46e3f3bf26bb8cf7 assets\create\models\item\sequenced_gearshift.json
da72ccdc893fbdd3efa9c22143b88eb756c20e44 assets\create\models\item\shadow_steel.json
106ae694f7e03a218c37003dca8291b1d39b3c55 assets\create\models\item\shaft.json 106ae694f7e03a218c37003dca8291b1d39b3c55 assets\create\models\item\shaft.json
d6fb0d38b1b5bcc199b52ac8889eaecd167f6725 assets\create\models\item\speedometer.json d6fb0d38b1b5bcc199b52ac8889eaecd167f6725 assets\create\models\item\speedometer.json
b305e81f1dc5272634745b6e822af40955a2ef28 assets\create\models\item\spruce_window.json b305e81f1dc5272634745b6e822af40955a2ef28 assets\create\models\item\spruce_window.json
@ -1186,14 +1223,18 @@ b305e81f1dc5272634745b6e822af40955a2ef28 assets\create\models\item\spruce_window
891abc24593d53d282773eca5534065056d89b4c assets\create\models\item\sticky_mechanical_piston.json 891abc24593d53d282773eca5534065056d89b4c assets\create\models\item\sticky_mechanical_piston.json
bbb5773adc23128c70174bfc531af936e6e063e3 assets\create\models\item\stockpile_switch.json bbb5773adc23128c70174bfc531af936e6e063e3 assets\create\models\item\stockpile_switch.json
bab8f78c319b2a79ed55c5d2a94b521ddaa44996 assets\create\models\item\stressometer.json bab8f78c319b2a79ed55c5d2a94b521ddaa44996 assets\create\models\item\stressometer.json
29d571a061e3addf92ee51bfc55d96edc3a517a5 assets\create\models\item\super_glue.json
b1d3d00ff05908feacad06a86800da96cc9bc65d assets\create\models\item\tiled_glass.json b1d3d00ff05908feacad06a86800da96cc9bc65d assets\create\models\item\tiled_glass.json
8a2a81a8cbc52b6021e57107d79a32f73b82d8fe assets\create\models\item\tiled_glass_pane.json 8a2a81a8cbc52b6021e57107d79a32f73b82d8fe assets\create\models\item\tiled_glass_pane.json
f368a48b20fa0948a4dc61cb7169f2a4c8720d65 assets\create\models\item\translation_chassis.json f368a48b20fa0948a4dc61cb7169f2a4c8720d65 assets\create\models\item\translation_chassis.json
2b7e6213706c9f107a74971818bafad8902c081c assets\create\models\item\translation_chassis_secondary.json 2b7e6213706c9f107a74971818bafad8902c081c assets\create\models\item\translation_chassis_secondary.json
a9f6592275a4c8592e3c88a95fbe88bd93de67c6 assets\create\models\item\transposer.json a9f6592275a4c8592e3c88a95fbe88bd93de67c6 assets\create\models\item\transposer.json
c081317f106a2b04700aafde12c57445844c20ab assets\create\models\item\tree_fertilizer.json
fb24881c4e92bbb7ffa54a71e0af6b1c66d84829 assets\create\models\item\turntable.json fb24881c4e92bbb7ffa54a71e0af6b1c66d84829 assets\create\models\item\turntable.json
32f49b724af10c8d7e2ed5a3c82280e83b75f789 assets\create\models\item\vertical_framed_glass.json 32f49b724af10c8d7e2ed5a3c82280e83b75f789 assets\create\models\item\vertical_framed_glass.json
5e331da9d4086412f5722923e3008246ed286a00 assets\create\models\item\vertical_framed_glass_pane.json 5e331da9d4086412f5722923e3008246ed286a00 assets\create\models\item\vertical_framed_glass_pane.json
00c2929de9b7171656bea74e1a6d694c6a45b075 assets\create\models\item\vertical_gearbox.json
2d4a31321cc13f62f5fd73aabdc5fd97e635bfbc assets\create\models\item\wand_of_symmetry.json
ae20383b0b0806431d0fdd8ffdd16fe2b0cc61ad assets\create\models\item\water_wheel.json ae20383b0b0806431d0fdd8ffdd16fe2b0cc61ad assets\create\models\item\water_wheel.json
1d097a315c2817d16c241c86f66bd48e5e52f4b4 assets\create\models\item\weathered_limestone.json 1d097a315c2817d16c241c86f66bd48e5e52f4b4 assets\create\models\item\weathered_limestone.json
fcc8ab312989ec485e2d86b856d81dbafaf0e930 assets\create\models\item\weathered_limestone_bricks.json fcc8ab312989ec485e2d86b856d81dbafaf0e930 assets\create\models\item\weathered_limestone_bricks.json
@ -1205,7 +1246,12 @@ def7382f3216c59d835ab64f534678f3d31ecc51 assets\create\models\item\weathered_lim
3d26cb5616182ba6926d0bf703119ebfbeacbe31 assets\create\models\item\weathered_limestone_cobblestone_stairs.json 3d26cb5616182ba6926d0bf703119ebfbeacbe31 assets\create\models\item\weathered_limestone_cobblestone_stairs.json
62cba55cef305e8fcbc545363919f75d702a617b assets\create\models\item\weathered_limestone_cobblestone_wall.json 62cba55cef305e8fcbc545363919f75d702a617b assets\create\models\item\weathered_limestone_cobblestone_wall.json
40bed7f5e9e97da45c5d9cebc3fcf87b2b13a808 assets\create\models\item\weathered_limestone_pillar.json 40bed7f5e9e97da45c5d9cebc3fcf87b2b13a808 assets\create\models\item\weathered_limestone_pillar.json
8914910270736f8f15364c623cd08d4638383cc5 assets\create\models\item\wheat_flour.json
0cc80844db689404d4722c93f1002b0bed05edcd assets\create\models\item\whisk.json
2527b52413965a3e84b4718e08a9b8bb30a741ea assets\create\models\item\wrench.json
9365b5cf29e35d070d077c54520f6cc780aeb842 assets\create\models\item\zinc_block.json 9365b5cf29e35d070d077c54520f6cc780aeb842 assets\create\models\item\zinc_block.json
9dfaa12884667458f8f727ae7666e7e4e50181d9 assets\create\models\item\zinc_ingot.json
9f9455ccb5fc9e3cbfce73862b46078346a522a5 assets\create\models\item\zinc_nugget.json
b1689617190c05ef34bd18456b0c7ae09bb3210f assets\create\models\item\zinc_ore.json b1689617190c05ef34bd18456b0c7ae09bb3210f assets\create\models\item\zinc_ore.json
187921fa131b06721bfaf63f2623a28c141aae9a data\create\advancements\andesite_alloy.json 187921fa131b06721bfaf63f2623a28c141aae9a data\create\advancements\andesite_alloy.json
0ea2db7173b5be28b289ea7c9a6a0cf5805c60c7 data\create\advancements\andesite_casing.json 0ea2db7173b5be28b289ea7c9a6a0cf5805c60c7 data\create\advancements\andesite_casing.json
@ -1244,11 +1290,11 @@ c1f162e773518f6b1481221e3e63f9ba33fed647 data\create\advancements\shadow_steel.j
290e1248254abcfd7f1e73906be25662331378ec data\create\advancements\shifting_gears.json 290e1248254abcfd7f1e73906be25662331378ec data\create\advancements\shifting_gears.json
7eac9a5f9f96087a74cab1576c59b1b4a9f99ffe data\create\advancements\speed_gauge.json 7eac9a5f9f96087a74cab1576c59b1b4a9f99ffe data\create\advancements\speed_gauge.json
b457a54be7202999be24bb6bcce534f310489412 data\create\advancements\stress_gauge.json b457a54be7202999be24bb6bcce534f310489412 data\create\advancements\stress_gauge.json
5e460cc958989e6e72ac5d6604430711d8099690 data\create\advancements\symmetry_wand.json 1d7fb82b7c05914b399167dc58b84da10f1a5ae3 data\create\advancements\symmetry_wand.json
ff5f41874304e709d6f3a59da00edd033047b81b data\create\advancements\upgraded_zapper.json 6b815a2e05e3cd09354e05578515a0060675b67a data\create\advancements\upgraded_zapper.json
50935316d27336ef0858d5a7c5ccc563d288a494 data\create\advancements\water_wheel.json 50935316d27336ef0858d5a7c5ccc563d288a494 data\create\advancements\water_wheel.json
4513d0c4dd40c948028a3fc8e6f3b4d0356c0a90 data\create\advancements\wrench.json 4513d0c4dd40c948028a3fc8e6f3b4d0356c0a90 data\create\advancements\wrench.json
d9bc04a6d11fb4fac6ed43982d3db5d34e8bdc65 data\create\advancements\zapper.json 33c1224f4f6a7bb0a3439eb0f8b8af9341b62574 data\create\advancements\zapper.json
aa22b35bb0564055114dcec6dca8a2d603de2481 data\create\loot_tables\blocks\acacia_window.json aa22b35bb0564055114dcec6dca8a2d603de2481 data\create\loot_tables\blocks\acacia_window.json
6bd966ac4678affb255d64fe0aea7fc0f2448757 data\create\loot_tables\blocks\acacia_window_pane.json 6bd966ac4678affb255d64fe0aea7fc0f2448757 data\create\loot_tables\blocks\acacia_window_pane.json
191b117d0a25940248ed54d419ea0bb0afb482d0 data\create\loot_tables\blocks\adjustable_crate.json 191b117d0a25940248ed54d419ea0bb0afb482d0 data\create\loot_tables\blocks\adjustable_crate.json
@ -1369,7 +1415,7 @@ e4d0fe35d3441a5815bd4e1357329b284e63ecd8 data\create\loot_tables\blocks\fancy_we
f37526c092c645045c22674dea6c7b1ec503c9c3 data\create\loot_tables\blocks\flywheel.json f37526c092c645045c22674dea6c7b1ec503c9c3 data\create\loot_tables\blocks\flywheel.json
8fbd865f350c615031ec3f56eb98b51ce3008de3 data\create\loot_tables\blocks\framed_glass.json 8fbd865f350c615031ec3f56eb98b51ce3008de3 data\create\loot_tables\blocks\framed_glass.json
44c8bc7271fa367ff052bef242e1ae26fb435175 data\create\loot_tables\blocks\framed_glass_pane.json 44c8bc7271fa367ff052bef242e1ae26fb435175 data\create\loot_tables\blocks\framed_glass_pane.json
205f5899101262f31f5c1a88bb7d954918d08d04 data\create\loot_tables\blocks\funnel.json ed895ef7dcb97ad9b00d80a4fa9c331229dd532e data\create\loot_tables\blocks\funnel.json
4063880eda871fe63a4eb549a19daecabce849e5 data\create\loot_tables\blocks\furnace_engine.json 4063880eda871fe63a4eb549a19daecabce849e5 data\create\loot_tables\blocks\furnace_engine.json
1070cba1c0f46cf7ebe31089f35333f5eadda6e4 data\create\loot_tables\blocks\gabbro.json 1070cba1c0f46cf7ebe31089f35333f5eadda6e4 data\create\loot_tables\blocks\gabbro.json
0356e003d8890d31b89d0ad98e32aae892da71f9 data\create\loot_tables\blocks\gabbro_bricks.json 0356e003d8890d31b89d0ad98e32aae892da71f9 data\create\loot_tables\blocks\gabbro_bricks.json
@ -1578,22 +1624,18 @@ d5ea262a0f5fb210612d22521818e26cf08e591a data\forge\tags\blocks\ores\zinc.json
ff1900963bc4cd8ceffa78d58ef1952ceacb2fb7 data\forge\tags\blocks\storage_blocks\brass.json ff1900963bc4cd8ceffa78d58ef1952ceacb2fb7 data\forge\tags\blocks\storage_blocks\brass.json
f6c8f34ceb475546dba5cc6ff288863ea795d20b data\forge\tags\blocks\storage_blocks\copper.json f6c8f34ceb475546dba5cc6ff288863ea795d20b data\forge\tags\blocks\storage_blocks\copper.json
7f71a774800111e50b42de0e6159ed2d2a807d32 data\forge\tags\blocks\storage_blocks\zinc.json 7f71a774800111e50b42de0e6159ed2d2a807d32 data\forge\tags\blocks\storage_blocks\zinc.json
689000fe8dde7ac020ac84875f01a27331ce8f3b data\forge\tags\items\ingots.json
2dfd21017cb51d4bdc18d977a7d16f103cc3a985 data\forge\tags\items\ingots\brass.json 2dfd21017cb51d4bdc18d977a7d16f103cc3a985 data\forge\tags\items\ingots\brass.json
8e0ca32df10a50544f54fbe3dbfe485971b23315 data\forge\tags\items\ingots\copper.json 8e0ca32df10a50544f54fbe3dbfe485971b23315 data\forge\tags\items\ingots\copper.json
2f9ac80569a5cc168061742f9e3c36277d4d056e data\forge\tags\items\ingots\zinc.json 2f9ac80569a5cc168061742f9e3c36277d4d056e data\forge\tags\items\ingots\zinc.json
28e41220b4d933cb95fe7e4f8d1b062f5922e29c data\forge\tags\items\nuggets.json
cc82188fe8d986f4457301ed4f75ae833d263601 data\forge\tags\items\nuggets\brass.json cc82188fe8d986f4457301ed4f75ae833d263601 data\forge\tags\items\nuggets\brass.json
7affb30e30a252566a77467994b0c99331f1076c data\forge\tags\items\nuggets\copper.json 7affb30e30a252566a77467994b0c99331f1076c data\forge\tags\items\nuggets\copper.json
0d8cb5092ee6ec01ea09324c80d649ba05549799 data\forge\tags\items\nuggets\zinc.json 0d8cb5092ee6ec01ea09324c80d649ba05549799 data\forge\tags\items\nuggets\zinc.json
4a0b13a9835106de9a1dd0a71a02372abb48e7b6 data\forge\tags\items\ores\copper.json 4a0b13a9835106de9a1dd0a71a02372abb48e7b6 data\forge\tags\items\ores\copper.json
d5ea262a0f5fb210612d22521818e26cf08e591a data\forge\tags\items\ores\zinc.json d5ea262a0f5fb210612d22521818e26cf08e591a data\forge\tags\items\ores\zinc.json
9db8fecba63944baec58a6059a3c4ce29ef79313 data\forge\tags\items\plates.json
39f0d70ec10597e85df7c4783bbc5e0e4a5ffb80 data\forge\tags\items\plates\brass.json 39f0d70ec10597e85df7c4783bbc5e0e4a5ffb80 data\forge\tags\items\plates\brass.json
c3dab5fe379bc1b7b10d4a0ba7009eee1b75a27c data\forge\tags\items\plates\copper.json c3dab5fe379bc1b7b10d4a0ba7009eee1b75a27c data\forge\tags\items\plates\copper.json
e5d4131644a084c9dd724e5f0dfa2a418ffee45d data\forge\tags\items\plates\gold.json fb9bfb4c84ed9cf2da8c4b2fbc4cd4d9f37d3016 data\forge\tags\items\plates\gold.json
04d947ed7a5066f3cfe75a8dc564fe2dca8a9c93 data\forge\tags\items\plates\iron.json 04d947ed7a5066f3cfe75a8dc564fe2dca8a9c93 data\forge\tags\items\plates\iron.json
56c0ccf7a6995f41f21e6ab5c0088e61b12e23fc data\forge\tags\items\plates\lapis.json
ff1900963bc4cd8ceffa78d58ef1952ceacb2fb7 data\forge\tags\items\storage_blocks\brass.json ff1900963bc4cd8ceffa78d58ef1952ceacb2fb7 data\forge\tags\items\storage_blocks\brass.json
f6c8f34ceb475546dba5cc6ff288863ea795d20b data\forge\tags\items\storage_blocks\copper.json f6c8f34ceb475546dba5cc6ff288863ea795d20b data\forge\tags\items\storage_blocks\copper.json
7f71a774800111e50b42de0e6159ed2d2a807d32 data\forge\tags\items\storage_blocks\zinc.json 7f71a774800111e50b42de0e6159ed2d2a807d32 data\forge\tags\items\storage_blocks\zinc.json

View file

@ -29,8 +29,8 @@
}, },
{ {
"when": { "when": {
"axis": "x", "sticky_south": "true",
"sticky_south": "true" "axis": "x"
}, },
"apply": { "apply": {
"model": "create:block/rotation_chassis_side_x_sticky", "model": "create:block/rotation_chassis_side_x_sticky",
@ -39,8 +39,8 @@
}, },
{ {
"when": { "when": {
"axis": "y", "sticky_south": "true",
"sticky_south": "true" "axis": "y"
}, },
"apply": { "apply": {
"model": "create:block/rotation_chassis_side_y_sticky" "model": "create:block/rotation_chassis_side_y_sticky"
@ -48,8 +48,8 @@
}, },
{ {
"when": { "when": {
"axis": "z", "sticky_south": "true",
"sticky_south": "true" "axis": "z"
}, },
"apply": { "apply": {
"model": "create:block/rotation_chassis_side_x_sticky", "model": "create:block/rotation_chassis_side_x_sticky",
@ -59,8 +59,8 @@
}, },
{ {
"when": { "when": {
"axis": "x", "sticky_south": "false",
"sticky_south": "false" "axis": "x"
}, },
"apply": { "apply": {
"model": "create:block/rotation_chassis_side_x", "model": "create:block/rotation_chassis_side_x",
@ -69,8 +69,8 @@
}, },
{ {
"when": { "when": {
"axis": "y", "sticky_south": "false",
"sticky_south": "false" "axis": "y"
}, },
"apply": { "apply": {
"model": "create:block/rotation_chassis_side_y" "model": "create:block/rotation_chassis_side_y"
@ -78,8 +78,8 @@
}, },
{ {
"when": { "when": {
"axis": "z", "sticky_south": "false",
"sticky_south": "false" "axis": "z"
}, },
"apply": { "apply": {
"model": "create:block/rotation_chassis_side_x", "model": "create:block/rotation_chassis_side_x",
@ -207,8 +207,8 @@
}, },
{ {
"when": { "when": {
"sticky_east": "true", "axis": "x",
"axis": "x" "sticky_east": "true"
}, },
"apply": { "apply": {
"model": "create:block/rotation_chassis_side_x_sticky", "model": "create:block/rotation_chassis_side_x_sticky",
@ -217,8 +217,8 @@
}, },
{ {
"when": { "when": {
"sticky_east": "true", "axis": "y",
"axis": "y" "sticky_east": "true"
}, },
"apply": { "apply": {
"model": "create:block/rotation_chassis_side_y_sticky", "model": "create:block/rotation_chassis_side_y_sticky",
@ -227,8 +227,8 @@
}, },
{ {
"when": { "when": {
"sticky_east": "true", "axis": "z",
"axis": "z" "sticky_east": "true"
}, },
"apply": { "apply": {
"model": "create:block/rotation_chassis_side_z_sticky" "model": "create:block/rotation_chassis_side_z_sticky"
@ -236,8 +236,8 @@
}, },
{ {
"when": { "when": {
"sticky_east": "false", "axis": "x",
"axis": "x" "sticky_east": "false"
}, },
"apply": { "apply": {
"model": "create:block/rotation_chassis_side_x", "model": "create:block/rotation_chassis_side_x",
@ -246,8 +246,8 @@
}, },
{ {
"when": { "when": {
"sticky_east": "false", "axis": "y",
"axis": "y" "sticky_east": "false"
}, },
"apply": { "apply": {
"model": "create:block/rotation_chassis_side_y", "model": "create:block/rotation_chassis_side_y",
@ -256,8 +256,8 @@
}, },
{ {
"when": { "when": {
"sticky_east": "false", "axis": "z",
"axis": "z" "sticky_east": "false"
}, },
"apply": { "apply": {
"model": "create:block/rotation_chassis_side_z" "model": "create:block/rotation_chassis_side_z"

View file

@ -323,5 +323,55 @@
"block.create.weathered_limestone_cobblestone_wall": "\u05DF\u05DF\u0250M \u01DDuo\u0287s\u01DD\u05DFqqo\u0186 \u01DDuo\u0287s\u01DD\u026F\u0131\uA780 p\u01DD\u0279\u01DD\u0265\u0287\u0250\u01DDM", "block.create.weathered_limestone_cobblestone_wall": "\u05DF\u05DF\u0250M \u01DDuo\u0287s\u01DD\u05DFqqo\u0186 \u01DDuo\u0287s\u01DD\u026F\u0131\uA780 p\u01DD\u0279\u01DD\u0265\u0287\u0250\u01DDM",
"block.create.weathered_limestone_pillar": "\u0279\u0250\u05DF\u05DF\u0131\u0500 \u01DDuo\u0287s\u01DD\u026F\u0131\uA780 p\u01DD\u0279\u01DD\u0265\u0287\u0250\u01DDM", "block.create.weathered_limestone_pillar": "\u0279\u0250\u05DF\u05DF\u0131\u0500 \u01DDuo\u0287s\u01DD\u026F\u0131\uA780 p\u01DD\u0279\u01DD\u0265\u0287\u0250\u01DDM",
"block.create.zinc_block": "\u029E\u0254o\u05DF\u15FA \u0254u\u0131Z", "block.create.zinc_block": "\u029E\u0254o\u05DF\u15FA \u0254u\u0131Z",
"block.create.zinc_ore": "\u01DD\u0279O \u0254u\u0131Z" "block.create.zinc_ore": "\u01DD\u0279O \u0254u\u0131Z",
"item.create.andesite_alloy": "\u028Eo\u05DF\u05DF\u2C6F \u01DD\u0287\u0131s\u01DDpu\u2C6F",
"item.create.attribute_filter": "\u0279\u01DD\u0287\u05DF\u0131\u2132 \u01DD\u0287nq\u0131\u0279\u0287\u0287\u2C6F",
"item.create.belt_connector": "\u0287\u05DF\u01DD\u15FA \u05DF\u0250\u0254\u0131u\u0250\u0265\u0254\u01DDW",
"item.create.brass_hand": "pu\u0250H ss\u0250\u0279\u15FA",
"item.create.brass_ingot": "\u0287obuI ss\u0250\u0279\u15FA",
"item.create.brass_nugget": "\u0287\u01DDbbnN ss\u0250\u0279\u15FA",
"item.create.brass_sheet": "\u0287\u01DD\u01DD\u0265S ss\u0250\u0279\u15FA",
"item.create.chromatic_compound": "punod\u026Fo\u0186 \u0254\u0131\u0287\u0250\u026Fo\u0279\u0265\u0186",
"item.create.copper_ingot": "\u0287obuI \u0279\u01DDddo\u0186",
"item.create.copper_nugget": "\u0287\u01DDbbnN \u0279\u01DDddo\u0186",
"item.create.copper_sheet": "\u0287\u01DD\u01DD\u0265S \u0279\u01DDddo\u0186",
"item.create.crafter_slot_cover": "\u0279\u01DD\u028Co\u0186 \u0287o\u05DFS \u0279\u01DD\u0287\u025F\u0250\u0279\u0186",
"item.create.crushed_brass": "ss\u0250\u0279\u15FA p\u01DD\u0265sn\u0279\u0186",
"item.create.crushed_copper_ore": "\u01DD\u0279O \u0279\u01DDddo\u0186 p\u01DD\u0265sn\u0279\u0186",
"item.create.crushed_gold_ore": "\u01DD\u0279O p\u05DFo\u2141 p\u01DD\u0265sn\u0279\u0186",
"item.create.crushed_iron_ore": "\u01DD\u0279O uo\u0279I p\u01DD\u0265sn\u0279\u0186",
"item.create.crushed_zinc_ore": "\u01DD\u0279O \u0254u\u0131Z p\u01DD\u0265sn\u0279\u0186",
"item.create.deforester": "\u0279\u01DD\u0287s\u01DD\u0279o\u025F\u01DD\u15E1",
"item.create.dough": "\u0265bno\u15E1",
"item.create.electron_tube": "\u01DDqn\u27D8 uo\u0279\u0287\u0254\u01DD\u05DF\u018E",
"item.create.empty_schematic": "\u0254\u0131\u0287\u0250\u026F\u01DD\u0265\u0254S \u028E\u0287d\u026F\u018E",
"item.create.filter": "\u0279\u01DD\u0287\u05DF\u0131\u2132",
"item.create.furnace_minecart_contraption": "uo\u0131\u0287d\u0250\u0279\u0287uo\u0186 \u0287\u0279\u0250\u0254\u01DDu\u0131W \u01DD\u0254\u0250u\u0279n\u2132",
"item.create.goggles": "s\u01DD\u05DFbbo\u2141 s,\u0279\u01DD\u01DDu\u0131bu\u018E",
"item.create.golden_sheet": "\u0287\u01DD\u01DD\u0265S u\u01DDp\u05DFo\u2141",
"item.create.handheld_blockzapper": "\u0279\u01DDdd\u0250z\u029E\u0254o\u05DF\u15FA p\u05DF\u01DD\u0265pu\u0250H",
"item.create.handheld_worldshaper": "\u0279\u01DDd\u0250\u0265sp\u05DF\u0279oM p\u05DF\u01DD\u0265pu\u0250H",
"item.create.integrated_circuit": "\u0287\u0131n\u0254\u0279\u0131\u0186 p\u01DD\u0287\u0250\u0279b\u01DD\u0287uI",
"item.create.iron_sheet": "\u0287\u01DD\u01DD\u0265S uo\u0279I",
"item.create.lapis_sheet": "\u0287\u01DD\u01DD\u0265S s\u0131d\u0250\uA780",
"item.create.minecart_contraption": "uo\u0131\u0287d\u0250\u0279\u0287uo\u0186 \u0287\u0279\u0250\u0254\u01DDu\u0131W",
"item.create.polished_rose_quartz": "z\u0287\u0279\u0250n\u1F49 \u01DDso\u1D1A p\u01DD\u0265s\u0131\u05DFo\u0500",
"item.create.powdered_obsidian": "u\u0250\u0131p\u0131sqO p\u01DD\u0279\u01DDp\u028Do\u0500",
"item.create.propeller": "\u0279\u01DD\u05DF\u05DF\u01DDdo\u0279\u0500",
"item.create.red_sand_paper": "\u0279\u01DDd\u0250\u0500 pu\u0250S p\u01DD\u1D1A",
"item.create.refined_radiance": "\u01DD\u0254u\u0250\u0131p\u0250\u1D1A p\u01DDu\u0131\u025F\u01DD\u1D1A",
"item.create.rose_quartz": "z\u0287\u0279\u0250n\u1F49 \u01DDso\u1D1A",
"item.create.sand_paper": "\u0279\u01DDd\u0250\u0500 pu\u0250S",
"item.create.schematic": "\u0254\u0131\u0287\u0250\u026F\u01DD\u0265\u0254S",
"item.create.schematic_and_quill": "\u05DF\u05DF\u0131n\u1F49 pu\u2C6F \u0254\u0131\u0287\u0250\u026F\u01DD\u0265\u0254S",
"item.create.shadow_steel": "\u05DF\u01DD\u01DD\u0287S \u028Dop\u0250\u0265S",
"item.create.super_glue": "\u01DDn\u05DF\u2141 \u0279\u01DDdnS",
"item.create.tree_fertilizer": "\u0279\u01DDz\u0131\u05DF\u0131\u0287\u0279\u01DD\u2132 \u01DD\u01DD\u0279\u27D8",
"item.create.vertical_gearbox": "xoq\u0279\u0250\u01DD\u2141 \u05DF\u0250\u0254\u0131\u0287\u0279\u01DD\u039B",
"item.create.wand_of_symmetry": "\u028E\u0279\u0287\u01DD\u026F\u026F\u028ES \u025FO pu\u0250M",
"item.create.wheat_flour": "\u0279no\u05DF\u2132 \u0287\u0250\u01DD\u0265M",
"item.create.whisk": "\u029Es\u0131\u0265M",
"item.create.wrench": "\u0265\u0254u\u01DD\u0279M",
"item.create.zinc_ingot": "\u0287obuI \u0254u\u0131Z",
"item.create.zinc_nugget": "\u0287\u01DDbbnN \u0254u\u0131Z"
} }

View file

@ -328,6 +328,57 @@
"block.create.zinc_block": "Zinc Block", "block.create.zinc_block": "Zinc Block",
"block.create.zinc_ore": "Zinc Ore", "block.create.zinc_ore": "Zinc Ore",
"item.create.andesite_alloy": "Andesite Alloy",
"item.create.attribute_filter": "Attribute Filter",
"item.create.belt_connector": "Mechanical Belt",
"item.create.brass_hand": "Brass Hand",
"item.create.brass_ingot": "Brass Ingot",
"item.create.brass_nugget": "Brass Nugget",
"item.create.brass_sheet": "Brass Sheet",
"item.create.chromatic_compound": "Chromatic Compound",
"item.create.copper_ingot": "Copper Ingot",
"item.create.copper_nugget": "Copper Nugget",
"item.create.copper_sheet": "Copper Sheet",
"item.create.crafter_slot_cover": "Crafter Slot Cover",
"item.create.crushed_brass": "Crushed Brass",
"item.create.crushed_copper_ore": "Crushed Copper Ore",
"item.create.crushed_gold_ore": "Crushed Gold Ore",
"item.create.crushed_iron_ore": "Crushed Iron Ore",
"item.create.crushed_zinc_ore": "Crushed Zinc Ore",
"item.create.deforester": "Deforester",
"item.create.dough": "Dough",
"item.create.electron_tube": "Electron Tube",
"item.create.empty_schematic": "Empty Schematic",
"item.create.filter": "Filter",
"item.create.furnace_minecart_contraption": "Furnace Minecart Contraption",
"item.create.goggles": "Engineer's Goggles",
"item.create.golden_sheet": "Golden Sheet",
"item.create.handheld_blockzapper": "Handheld Blockzapper",
"item.create.handheld_worldshaper": "Handheld Worldshaper",
"item.create.integrated_circuit": "Integrated Circuit",
"item.create.iron_sheet": "Iron Sheet",
"item.create.lapis_sheet": "Lapis Sheet",
"item.create.minecart_contraption": "Minecart Contraption",
"item.create.polished_rose_quartz": "Polished Rose Quartz",
"item.create.powdered_obsidian": "Powdered Obsidian",
"item.create.propeller": "Propeller",
"item.create.red_sand_paper": "Red Sand Paper",
"item.create.refined_radiance": "Refined Radiance",
"item.create.rose_quartz": "Rose Quartz",
"item.create.sand_paper": "Sand Paper",
"item.create.schematic": "Schematic",
"item.create.schematic_and_quill": "Schematic And Quill",
"item.create.shadow_steel": "Shadow Steel",
"item.create.super_glue": "Super Glue",
"item.create.tree_fertilizer": "Tree Fertilizer",
"item.create.vertical_gearbox": "Vertical Gearbox",
"item.create.wand_of_symmetry": "Wand Of Symmetry",
"item.create.wheat_flour": "Wheat Flour",
"item.create.whisk": "Whisk",
"item.create.wrench": "Wrench",
"item.create.zinc_ingot": "Zinc Ingot",
"item.create.zinc_nugget": "Zinc Nugget",
"_": "->------------------------] We aren't in Registrate yet [------------------------<-", "_": "->------------------------] We aren't in Registrate yet [------------------------<-",

View file

@ -1,6 +1,6 @@
{ {
"parent": "item/generated", "parent": "item/generated",
"textures": { "textures": {
"layer0": "create:item/crushed_iron" "layer0": "create:item/belt_connector"
} }
} }

View file

@ -0,0 +1,6 @@
{
"parent": "item/generated",
"textures": {
"layer0": "create:item/crafter_slot_cover"
}
}

View file

@ -0,0 +1,6 @@
{
"parent": "item/generated",
"textures": {
"layer0": "create:item/crushed_copper_ore"
}
}

View file

@ -1,6 +1,6 @@
{ {
"parent": "item/generated", "parent": "item/generated",
"textures": { "textures": {
"layer0": "create:item/blueprint_filled" "layer0": "create:item/crushed_gold_ore"
} }
} }

View file

@ -0,0 +1,6 @@
{
"parent": "item/generated",
"textures": {
"layer0": "create:item/crushed_iron_ore"
}
}

View file

@ -0,0 +1,6 @@
{
"parent": "item/generated",
"textures": {
"layer0": "create:item/crushed_zinc_ore"
}
}

View file

@ -0,0 +1,3 @@
{
"parent": "create:item/deforester/item"
}

View file

@ -1,6 +1,6 @@
{ {
"parent": "item/generated", "parent": "item/generated",
"textures": { "textures": {
"layer0": "create:item/crushed_copper" "layer0": "create:item/empty_schematic"
} }
} }

View file

@ -0,0 +1,6 @@
{
"parent": "item/generated",
"textures": {
"layer0": "create:item/furnace_minecart_contraption"
}
}

View file

@ -1,6 +1,6 @@
{ {
"parent": "item/generated", "parent": "item/generated",
"textures": { "textures": {
"layer0": "create:item/crushed_gold" "layer0": "create:item/golden_sheet"
} }
} }

View file

@ -0,0 +1,3 @@
{
"parent": "create:item/handheld_blockzapper/item"
}

View file

@ -0,0 +1,3 @@
{
"parent": "create:item/handheld_worldshaper/item"
}

View file

@ -1,6 +1,6 @@
{ {
"parent": "item/generated", "parent": "item/generated",
"textures": { "textures": {
"layer0": "create:item/gold_sheet" "layer0": "create:item/lapis_sheet"
} }
} }

View file

@ -0,0 +1,6 @@
{
"parent": "item/generated",
"textures": {
"layer0": "create:item/powdered_obsidian"
}
}

View file

@ -1,6 +1,6 @@
{ {
"parent": "item/generated", "parent": "item/generated",
"textures": { "textures": {
"layer0": "create:item/flour" "layer0": "create:item/schematic"
} }
} }

View file

@ -1,6 +1,6 @@
{ {
"parent": "item/generated", "parent": "item/generated",
"textures": { "textures": {
"layer0": "create:item/blueprint_and_quill" "layer0": "create:item/schematic_and_quill"
} }
} }

View file

@ -0,0 +1,3 @@
{
"parent": "create:block/gearbox/item_vertical"
}

View file

@ -0,0 +1,3 @@
{
"parent": "create:item/wand_of_symmetry/item"
}

View file

@ -1,6 +1,6 @@
{ {
"parent": "item/generated", "parent": "item/generated",
"textures": { "textures": {
"layer0": "create:item/belt" "layer0": "create:item/wheat_flour"
} }
} }

View file

@ -0,0 +1,3 @@
{
"parent": "create:item/wrench/item"
}

View file

@ -2,7 +2,7 @@
"parent": "create:refined_radiance", "parent": "create:refined_radiance",
"display": { "display": {
"icon": { "icon": {
"item": "create:symmetry_wand" "item": "create:wand_of_symmetry"
}, },
"title": { "title": {
"translate": "advancement.create.symmetry_wand" "translate": "advancement.create.symmetry_wand"
@ -21,7 +21,7 @@
"conditions": { "conditions": {
"items": [ "items": [
{ {
"item": "create:symmetry_wand" "item": "create:wand_of_symmetry"
} }
] ]
} }

View file

@ -2,7 +2,7 @@
"parent": "create:zapper", "parent": "create:zapper",
"display": { "display": {
"icon": { "icon": {
"item": "create:placement_handgun", "item": "create:handheld_blockzapper",
"nbt": "{Retriever:\"Chromatic\",Scope:\"Chromatic\",Amplifier:\"Chromatic\",Body:\"Chromatic\",Accelerator:\"Chromatic\"}" "nbt": "{Retriever:\"Chromatic\",Scope:\"Chromatic\",Amplifier:\"Chromatic\",Body:\"Chromatic\",Accelerator:\"Chromatic\"}"
}, },
"title": { "title": {

View file

@ -2,7 +2,7 @@
"parent": "create:refined_radiance", "parent": "create:refined_radiance",
"display": { "display": {
"icon": { "icon": {
"item": "create:placement_handgun" "item": "create:handheld_blockzapper"
}, },
"title": { "title": {
"translate": "advancement.create.zapper" "translate": "advancement.create.zapper"
@ -21,7 +21,7 @@
"conditions": { "conditions": {
"items": [ "items": [
{ {
"item": "create:placement_handgun" "item": "create:handheld_blockzapper"
} }
] ]
} }

View file

@ -1,8 +0,0 @@
{
"replace": false,
"values": [
"#forge:ingots/copper",
"#forge:ingots/zinc",
"#forge:ingots/brass"
]
}

View file

@ -1,8 +0,0 @@
{
"replace": false,
"values": [
"#forge:nuggets/copper",
"#forge:nuggets/zinc",
"#forge:nuggets/brass"
]
}

View file

@ -1,10 +0,0 @@
{
"replace": false,
"values": [
"#forge:plates/iron",
"#forge:plates/gold",
"#forge:plates/copper",
"#forge:plates/brass",
"#forge:plates/lapis"
]
}

View file

@ -1,6 +1,6 @@
{ {
"replace": false, "replace": false,
"values": [ "values": [
"create:gold_sheet" "create:golden_sheet"
] ]
} }

View file

@ -1,6 +0,0 @@
{
"replace": false,
"values": [
"create:lapis_plate"
]
}

View file

@ -1,32 +0,0 @@
package com.simibubi.create;
import com.simibubi.create.foundation.utility.Lang;
import net.minecraft.block.Block;
import net.minecraft.block.BlockState;
import net.minecraft.tags.BlockTags;
import net.minecraft.tags.Tag;
import net.minecraft.util.ResourceLocation;
public enum AllBlockTags {
WINDMILL_SAILS, FAN_HEATERS, WINDOWABLE,
;
public Tag<Block> tag;
private AllBlockTags() {
this("");
}
private AllBlockTags(String path) {
tag = new BlockTags.Wrapper(
new ResourceLocation(Create.ID, (path.isEmpty() ? "" : path + "/") + Lang.asId(name())));
}
public boolean matches(BlockState block) {
return tag.contains(block.getBlock());
}
}

View file

@ -1,5 +1,7 @@
package com.simibubi.create; package com.simibubi.create;
import static com.simibubi.create.AllTags.forgeItemTag;
import static com.simibubi.create.AllTags.tagBlockAndItem;
import static com.simibubi.create.content.AllSections.SCHEMATICS; import static com.simibubi.create.content.AllSections.SCHEMATICS;
import static com.simibubi.create.foundation.data.BlockStateGen.oxidizedBlockstate; import static com.simibubi.create.foundation.data.BlockStateGen.oxidizedBlockstate;
import static com.simibubi.create.foundation.data.CreateRegistrate.connectedTextures; import static com.simibubi.create.foundation.data.CreateRegistrate.connectedTextures;
@ -100,26 +102,17 @@ import com.simibubi.create.foundation.data.CreateRegistrate;
import com.simibubi.create.foundation.data.ModelGen; import com.simibubi.create.foundation.data.ModelGen;
import com.simibubi.create.foundation.data.SharedProperties; import com.simibubi.create.foundation.data.SharedProperties;
import com.simibubi.create.foundation.worldgen.OxidizingBlock; import com.simibubi.create.foundation.worldgen.OxidizingBlock;
import com.tterrag.registrate.builders.BlockBuilder;
import com.tterrag.registrate.builders.ItemBuilder;
import com.tterrag.registrate.util.DataIngredient; import com.tterrag.registrate.util.DataIngredient;
import com.tterrag.registrate.util.entry.BlockEntry; import com.tterrag.registrate.util.entry.BlockEntry;
import com.tterrag.registrate.util.nullness.NonNullFunction;
import net.minecraft.block.Block; import net.minecraft.block.Block;
import net.minecraft.block.Blocks; import net.minecraft.block.Blocks;
import net.minecraft.block.SoundType; import net.minecraft.block.SoundType;
import net.minecraft.block.material.MaterialColor; import net.minecraft.block.material.MaterialColor;
import net.minecraft.client.renderer.RenderType; import net.minecraft.client.renderer.RenderType;
import net.minecraft.item.BlockItem;
import net.minecraft.item.Item;
import net.minecraft.state.properties.PistonType; import net.minecraft.state.properties.PistonType;
import net.minecraft.tags.BlockTags; import net.minecraft.tags.BlockTags;
import net.minecraft.tags.ItemTags;
import net.minecraft.tags.Tag;
import net.minecraft.tags.TagCollection;
import net.minecraft.util.Direction.Axis; import net.minecraft.util.Direction.Axis;
import net.minecraft.util.ResourceLocation;
import net.minecraftforge.client.model.generators.ConfiguredModel; import net.minecraftforge.client.model.generators.ConfiguredModel;
import net.minecraftforge.common.ToolType; import net.minecraftforge.common.ToolType;
@ -242,7 +235,7 @@ public class AllBlocks {
.initialProperties(SharedProperties.beltMaterial, MaterialColor.GRAY) .initialProperties(SharedProperties.beltMaterial, MaterialColor.GRAY)
.properties(p -> p.sound(SoundType.CLOTH)) .properties(p -> p.sound(SoundType.CLOTH))
.transform(StressConfigDefaults.setImpact(1.0)) .transform(StressConfigDefaults.setImpact(1.0))
.transform(CreateRegistrate.blockColors(() -> BeltColor::new)) .onRegister(CreateRegistrate.blockColors(() -> BeltColor::new))
.blockstate(new BeltGenerator()::generate) .blockstate(new BeltGenerator()::generate)
.register(); .register();
@ -460,7 +453,7 @@ public class AllBlocks {
REGISTRATE.block("translation_chassis", LinearChassisBlock::new) REGISTRATE.block("translation_chassis", LinearChassisBlock::new)
.initialProperties(SharedProperties::wooden) .initialProperties(SharedProperties::wooden)
.blockstate(BlockStateGen.linearChassis()) .blockstate(BlockStateGen.linearChassis())
.transform(connectedTextures(new ChassisCTBehaviour())) .onRegister(connectedTextures(new ChassisCTBehaviour()))
.lang("Linear Chassis") .lang("Linear Chassis")
.simpleItem() .simpleItem()
.register(); .register();
@ -469,7 +462,7 @@ public class AllBlocks {
REGISTRATE.block("translation_chassis_secondary", LinearChassisBlock::new) REGISTRATE.block("translation_chassis_secondary", LinearChassisBlock::new)
.initialProperties(SharedProperties::wooden) .initialProperties(SharedProperties::wooden)
.blockstate(BlockStateGen.linearChassis()) .blockstate(BlockStateGen.linearChassis())
.transform(connectedTextures(new ChassisCTBehaviour())) .onRegister(connectedTextures(new ChassisCTBehaviour()))
.lang("Secondary Linear Chassis") .lang("Secondary Linear Chassis")
.simpleItem() .simpleItem()
.register(); .register();
@ -557,7 +550,7 @@ public class AllBlocks {
.properties(p -> p.nonOpaque()) .properties(p -> p.nonOpaque())
.blockstate(BlockStateGen.horizontalBlockProvider(true)) .blockstate(BlockStateGen.horizontalBlockProvider(true))
.transform(StressConfigDefaults.setImpact(2.0)) .transform(StressConfigDefaults.setImpact(2.0))
.transform(CreateRegistrate.connectedTextures(new CrafterCTBehaviour())) .onRegister(CreateRegistrate.connectedTextures(new CrafterCTBehaviour()))
.addLayer(() -> RenderType::getCutoutMipped) .addLayer(() -> RenderType::getCutoutMipped)
.item() .item()
.transform(customItemModel()) .transform(customItemModel())
@ -841,30 +834,7 @@ public class AllBlocks {
.recipe((ctx, prov) -> prov.square(DataIngredient.tag(forgeItemTag("ingots/brass")), ctx, false)) .recipe((ctx, prov) -> prov.square(DataIngredient.tag(forgeItemTag("ingots/brass")), ctx, false))
.register(); .register();
// Utility // Load this class
private static <T extends Block, P> NonNullFunction<BlockBuilder<T, P>, ItemBuilder<BlockItem, BlockBuilder<T, P>>> tagBlockAndItem(
String tagName) {
return b -> b.tag(forgeBlockTag(tagName))
.item()
.tag(forgeItemTag(tagName));
}
private static Tag<Block> forgeBlockTag(String name) {
return forgeTag(BlockTags.getCollection(), name);
}
private static Tag<Item> forgeItemTag(String name) {
return forgeTag(ItemTags.getCollection(), name);
}
private static <T> Tag<T> forgeTag(TagCollection<T> collection, String name) {
return tag(collection, "forge", name);
}
private static <T> Tag<T> tag(TagCollection<T> collection, String domain, String name) {
return collection.getOrCreate(new ResourceLocation(domain, name));
}
public static void register() {} public static void register() {}

View file

@ -1,25 +0,0 @@
package com.simibubi.create;
import com.simibubi.create.foundation.utility.Lang;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
import net.minecraft.tags.ItemTags;
import net.minecraft.tags.Tag;
import net.minecraft.util.ResourceLocation;
public enum AllItemTags {
;
public Tag<Item> tag;
private AllItemTags(String path) {
tag = new ItemTags.Wrapper(new ResourceLocation(Create.ID, path + "/" + Lang.asId(name())));
}
public boolean matches(ItemStack item) {
return tag.contains(item.getItem());
}
}

View file

@ -1,249 +0,0 @@
package com.simibubi.create;
import java.util.HashSet;
import java.util.Set;
import java.util.function.Function;
import com.simibubi.create.content.AllSections;
import com.simibubi.create.content.contraptions.components.structureMovement.glue.SuperGlueItem;
import com.simibubi.create.content.contraptions.components.structureMovement.mounted.MinecartContraptionItem;
import com.simibubi.create.content.contraptions.goggles.GogglesItem;
import com.simibubi.create.content.contraptions.relays.belt.item.BeltConnectorItem;
import com.simibubi.create.content.contraptions.relays.gearbox.VerticalGearboxItem;
import com.simibubi.create.content.contraptions.wrench.WrenchItem;
import com.simibubi.create.content.curiosities.ChromaticCompoundCubeItem;
import com.simibubi.create.content.curiosities.RefinedRadianceItem;
import com.simibubi.create.content.curiosities.ShadowSteelItem;
import com.simibubi.create.content.curiosities.TreeFertilizerItem;
import com.simibubi.create.content.curiosities.symmetry.SymmetryWandItem;
import com.simibubi.create.content.curiosities.tools.DeforesterItem;
import com.simibubi.create.content.curiosities.tools.SandPaperItem;
import com.simibubi.create.content.curiosities.zapper.blockzapper.BlockzapperItem;
import com.simibubi.create.content.curiosities.zapper.terrainzapper.TerrainzapperItem;
import com.simibubi.create.content.logistics.item.filter.FilterItem;
import com.simibubi.create.content.schematics.item.SchematicAndQuillItem;
import com.simibubi.create.content.schematics.item.SchematicItem;
import com.simibubi.create.foundation.data.ITaggable;
import com.simibubi.create.foundation.item.IHaveCustomItemModel;
import com.simibubi.create.foundation.item.IItemWithColorHandler;
import com.simibubi.create.foundation.utility.Lang;
import net.minecraft.client.Minecraft;
import net.minecraft.client.renderer.color.ItemColors;
import net.minecraft.client.renderer.tileentity.ItemStackTileEntityRenderer;
import net.minecraft.entity.item.minecart.AbstractMinecartEntity.Type;
import net.minecraft.item.Item;
import net.minecraft.item.Item.Properties;
import net.minecraft.item.ItemStack;
import net.minecraft.item.Rarity;
import net.minecraft.util.ResourceLocation;
import net.minecraftforge.api.distmarker.Dist;
import net.minecraftforge.api.distmarker.OnlyIn;
import net.minecraftforge.event.RegistryEvent;
import net.minecraftforge.fml.common.Mod.EventBusSubscriber;
import net.minecraftforge.fml.common.Mod.EventBusSubscriber.Bus;
import net.minecraftforge.registries.IForgeRegistry;
@EventBusSubscriber(value = Dist.CLIENT, bus = Bus.MOD)
public enum AllItems {
_1_(AllSections.MATERIALS),
COPPER_NUGGET((TaggedItem) new TaggedItem().withForgeTags("nuggets/copper")),
ZINC_NUGGET((TaggedItem) new TaggedItem().withForgeTags("nuggets/zinc")),
BRASS_NUGGET((TaggedItem) new TaggedItem().withForgeTags("nuggets/brass")),
IRON_SHEET((TaggedItem) new TaggedItem().withForgeTags("plates/iron")),
GOLD_SHEET((TaggedItem) new TaggedItem().withForgeTags("plates/gold")),
COPPER_SHEET((TaggedItem) new TaggedItem().withForgeTags("plates/copper")),
BRASS_SHEET((TaggedItem) new TaggedItem().withForgeTags("plates/brass")),
LAPIS_PLATE((TaggedItem) new TaggedItem().withForgeTags("plates/lapis")),
CRUSHED_IRON,
CRUSHED_GOLD,
CRUSHED_COPPER,
CRUSHED_ZINC,
CRUSHED_BRASS,
ANDESITE_ALLOY,
COPPER_INGOT((TaggedItem) new TaggedItem().withForgeTags("ingots/copper")),
ZINC_INGOT((TaggedItem) new TaggedItem().withForgeTags("ingots/zinc")),
BRASS_INGOT((TaggedItem) new TaggedItem().withForgeTags("ingots/brass")),
FLOUR,
DOUGH,
OBSIDIAN_DUST,
ROSE_QUARTZ,
POLISHED_ROSE_QUARTZ,
CHROMATIC_COMPOUND(ChromaticCompoundCubeItem::new, rarity(Rarity.UNCOMMON)),
SHADOW_STEEL(ShadowSteelItem::new, rarity(Rarity.UNCOMMON)),
REFINED_RADIANCE(RefinedRadianceItem::new, rarity(Rarity.UNCOMMON)),
ELECTRON_TUBE,
INTEGRATED_CIRCUIT,
_2_(AllSections.KINETICS),
BELT_CONNECTOR(BeltConnectorItem::new),
VERTICAL_GEARBOX(VerticalGearboxItem::new),
PROPELLER,
WHISK,
BRASS_HAND,
SLOT_COVER,
SUPER_GLUE(SuperGlueItem::new),
SAND_PAPER(SandPaperItem::new),
RED_SAND_PAPER(SandPaperItem::new),
WRENCH(WrenchItem::new),
GOGGLES(GogglesItem::new),
MINECART_CONTRAPTION(p -> new MinecartContraptionItem(Type.RIDEABLE, p)),
FURNACE_MINECART_CONTRAPTION(p -> new MinecartContraptionItem(Type.FURNACE, p)),
_3_(AllSections.LOGISTICS),
FILTER(FilterItem::new),
PROPERTY_FILTER(FilterItem::new),
_4_(AllSections.CURIOSITIES),
TREE_FERTILIZER(TreeFertilizerItem::new),
PLACEMENT_HANDGUN(BlockzapperItem::new),
TERRAIN_ZAPPER(TerrainzapperItem::new),
DEFORESTER(DeforesterItem::new),
SYMMETRY_WAND(SymmetryWandItem::new),
_5_(AllSections.SCHEMATICS),
EMPTY_BLUEPRINT(Item::new, stackSize(1)),
BLUEPRINT_AND_QUILL(SchematicAndQuillItem::new, stackSize(1)),
BLUEPRINT(SchematicItem::new),
;
private static class SectionTracker {
static AllSections currentSection;
}
// Common
public AllSections section;
private Function<Properties, Properties> specialProperties;
private TaggedItem taggedItem;
private Item item;
AllItems(AllSections section) {
SectionTracker.currentSection = section;
taggedItem = new TaggedItem(null);
}
AllItems(Function<Properties, Item> itemSupplier) {
this(new TaggedItem(itemSupplier), Function.identity());
}
AllItems(Function<Properties, Item> itemSupplier, Function<Properties, Properties> specialProperties) {
this(new TaggedItem(itemSupplier), specialProperties);
}
AllItems() {
this(new TaggedItem(Item::new));
}
AllItems(TaggedItem taggedItemIn) {
this(taggedItemIn, Function.identity());
}
AllItems(TaggedItem taggedItemIn, Function<Properties, Properties> specialProperties) {
this.taggedItem = taggedItemIn;
this.section = SectionTracker.currentSection;
this.specialProperties = specialProperties;
}
private static Function<Properties, Properties> rarity(Rarity rarity) {
return p -> p.rarity(rarity);
}
private static Function<Properties, Properties> stackSize(int stackSize) {
return p -> p.maxStackSize(stackSize);
}
private static Properties defaultProperties(AllItems item) {
return includeInItemGroup().setISTER(() -> item::getRenderer);
}
public static Properties includeInItemGroup() {
return new Properties().group(Create.baseCreativeTab);
}
public static void register(RegistryEvent.Register<Item> event) {
IForgeRegistry<Item> registry = event.getRegistry();
for (AllItems entry : values()) {
if (entry.taggedItem == null || entry.taggedItem.getItemSupplier() == null)
continue;
entry.item = entry.taggedItem.getItemSupplier().apply(new Properties());
entry.item =
entry.taggedItem.getItemSupplier().apply(entry.specialProperties.apply(defaultProperties(entry)));
entry.item.setRegistryName(Create.ID, Lang.asId(entry.name()));
registry.register(entry.item);
}
}
public Item get() {
return item;
}
public TaggedItem getTaggable() {
return taggedItem;
}
public boolean typeOf(ItemStack stack) {
return stack.getItem() == item;
}
public ItemStack asStack() {
return new ItemStack(item);
}
public static class TaggedItem extends ITaggable.Impl {
private Set<ResourceLocation> tagSetItem = new HashSet<>();
private Function<Properties, Item> itemSupplier;
public TaggedItem() {
this(Item::new);
}
public TaggedItem(Function<Properties, Item> itemSupplierIn) {
this.itemSupplier = itemSupplierIn;
}
public Function<Properties, Item> getItemSupplier() {
return itemSupplier;
}
@Override
public Set<ResourceLocation> getTagSet(TagType<?> type) {
return tagSetItem;
}
}
// Client
@OnlyIn(Dist.CLIENT)
public ItemStackTileEntityRenderer getRenderer() {
if (!(item instanceof IHaveCustomItemModel))
return null;
IHaveCustomItemModel specialItem = (IHaveCustomItemModel) item;
return specialItem.createModel(null).getRenderer();
}
@OnlyIn(Dist.CLIENT)
@Deprecated // Use CreateRegistrate#itemColor when porting AllItems
public static void registerColorHandlers() {
ItemColors itemColors = Minecraft.getInstance().getItemColors();
for (AllItems item : values()) {
if (item.item instanceof IItemWithColorHandler) {
itemColors.register(((IItemWithColorHandler) item.item).getColorHandler(), item.item);
}
}
}
}

View file

@ -0,0 +1,241 @@
package com.simibubi.create;
import static com.simibubi.create.AllTags.forgeItemTag;
import static com.simibubi.create.content.AllSections.CURIOSITIES;
import static com.simibubi.create.content.AllSections.KINETICS;
import static com.simibubi.create.content.AllSections.LOGISTICS;
import static com.simibubi.create.content.AllSections.MATERIALS;
import static com.simibubi.create.content.AllSections.SCHEMATICS;
import com.simibubi.create.content.contraptions.components.structureMovement.glue.SuperGlueItem;
import com.simibubi.create.content.contraptions.components.structureMovement.mounted.MinecartContraptionItem;
import com.simibubi.create.content.contraptions.goggles.GogglesItem;
import com.simibubi.create.content.contraptions.relays.belt.item.BeltConnectorItem;
import com.simibubi.create.content.contraptions.relays.gearbox.VerticalGearboxItem;
import com.simibubi.create.content.contraptions.wrench.WrenchItem;
import com.simibubi.create.content.contraptions.wrench.WrenchModel;
import com.simibubi.create.content.curiosities.ChromaticCompoundColor;
import com.simibubi.create.content.curiosities.ChromaticCompoundItem;
import com.simibubi.create.content.curiosities.RefinedRadianceItem;
import com.simibubi.create.content.curiosities.ShadowSteelItem;
import com.simibubi.create.content.curiosities.TreeFertilizerItem;
import com.simibubi.create.content.curiosities.symmetry.SymmetryWandItem;
import com.simibubi.create.content.curiosities.symmetry.client.SymmetryWandModel;
import com.simibubi.create.content.curiosities.tools.DeforesterItem;
import com.simibubi.create.content.curiosities.tools.DeforesterModel;
import com.simibubi.create.content.curiosities.tools.SandPaperItem;
import com.simibubi.create.content.curiosities.tools.SandPaperItemRenderer.SandPaperModel;
import com.simibubi.create.content.curiosities.zapper.blockzapper.BlockzapperItem;
import com.simibubi.create.content.curiosities.zapper.blockzapper.BlockzapperModel;
import com.simibubi.create.content.curiosities.zapper.terrainzapper.WorldshaperItem;
import com.simibubi.create.content.curiosities.zapper.terrainzapper.WorldshaperModel;
import com.simibubi.create.content.logistics.item.filter.FilterItem;
import com.simibubi.create.content.schematics.item.SchematicAndQuillItem;
import com.simibubi.create.content.schematics.item.SchematicItem;
import com.simibubi.create.foundation.data.AssetLookup;
import com.simibubi.create.foundation.data.CreateRegistrate;
import com.tterrag.registrate.util.entry.ItemEntry;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
import net.minecraft.item.Rarity;
import net.minecraft.tags.Tag;
public class AllItemsNew {
private static final CreateRegistrate REGISTRATE = Create.registrate()
.itemGroup(() -> Create.baseCreativeTab);
// Schematics
static {
REGISTRATE.startSection(MATERIALS);
}
public static final ItemEntry<Item>
COPPER_NUGGET = taggedIngredient("copper_nugget", forgeItemTag("nuggets/copper")),
ZINC_NUGGET = taggedIngredient("zinc_nugget", forgeItemTag("nuggets/zinc")),
BRASS_NUGGET = taggedIngredient("brass_nugget", forgeItemTag("nuggets/brass")),
COPPER_SHEET = taggedIngredient("copper_sheet", forgeItemTag("plates/copper")),
BRASS_SHEET = taggedIngredient("brass_sheet", forgeItemTag("plates/brass")),
IRON_SHEET = taggedIngredient("iron_sheet", forgeItemTag("plates/iron")),
GOLDEN_SHEET = taggedIngredient("golden_sheet", forgeItemTag("plates/gold")),
LAPIS_SHEET = ingredient("lapis_sheet"),
CRUSHED_IRON = ingredient("crushed_iron_ore"),
CRUSHED_GOLD = ingredient("crushed_gold_ore"),
CRUSHED_COPPER = ingredient("crushed_copper_ore"),
CRUSHED_ZINC = ingredient("crushed_zinc_ore"),
CRUSHED_BRASS = ingredient("crushed_brass"),
ANDESITE_ALLOY = ingredient("andesite_alloy"),
COPPER_INGOT = taggedIngredient("copper_ingot", forgeItemTag("ingots/copper")),
ZINC_INGOT = taggedIngredient("zinc_ingot", forgeItemTag("ingots/zinc")),
BRASS_INGOT = taggedIngredient("brass_ingot", forgeItemTag("ingots/brass")),
WHEAT_FLOUR = ingredient("wheat_flour"),
DOUGH = ingredient("dough"),
POWDERED_OBSIDIAN = ingredient("powdered_obsidian"),
ROSE_QUARTZ = ingredient("rose_quartz"),
POLISHED_ROSE_QUARTZ = ingredient("polished_rose_quartz"),
PROPELLER = ingredient("propeller"),
WHISK = ingredient("whisk"),
BRASS_HAND = ingredient("brass_hand"),
CRAFTER_SLOT_COVER = ingredient("crafter_slot_cover");
public static final ItemEntry<ChromaticCompoundItem> CHROMATIC_COMPOUND =
REGISTRATE.item("chromatic_compound", ChromaticCompoundItem::new)
.properties(p -> p.rarity(Rarity.UNCOMMON))
.model(AssetLookup.existingItemModel())
.onRegister(CreateRegistrate.itemColors(() -> ChromaticCompoundColor::new))
.register();
public static final ItemEntry<ShadowSteelItem> SHADOW_STEEL = REGISTRATE.item("shadow_steel", ShadowSteelItem::new)
.properties(p -> p.rarity(Rarity.UNCOMMON))
.register();
public static final ItemEntry<RefinedRadianceItem> REFINED_RADIANCE =
REGISTRATE.item("refined_radiance", RefinedRadianceItem::new)
.properties(p -> p.rarity(Rarity.UNCOMMON))
.register();
public static final ItemEntry<Item>
ELECTRON_TUBE = ingredient("electron_tube"), INTEGRATED_CIRCUIT = ingredient("integrated_circuit");
// Kinetics
static {
REGISTRATE.startSection(KINETICS);
}
public static final ItemEntry<BeltConnectorItem> BELT_CONNECTOR =
REGISTRATE.item("belt_connector", BeltConnectorItem::new)
.lang("Mechanical Belt")
.register();
public static final ItemEntry<VerticalGearboxItem> VERTICAL_GEARBOX = REGISTRATE.item("vertical_gearbox", VerticalGearboxItem::new)
.model(AssetLookup.customItemModel("gearbox", "item_vertical"))
.register();
public static final ItemEntry<SuperGlueItem> SUPER_GLUE = REGISTRATE.item("super_glue", SuperGlueItem::new)
.register();
public static final ItemEntry<SandPaperItem> SAND_PAPER = REGISTRATE.item("sand_paper", SandPaperItem::new)
.transform(CreateRegistrate.customRenderedItem(() -> SandPaperModel::new))
.register();
public static final ItemEntry<SandPaperItem> RED_SAND_PAPER = REGISTRATE.item("red_sand_paper", SandPaperItem::new)
.transform(CreateRegistrate.customRenderedItem(() -> SandPaperModel::new))
.register();
public static final ItemEntry<WrenchItem> WRENCH = REGISTRATE.item("wrench", WrenchItem::new)
.transform(CreateRegistrate.customRenderedItem(() -> WrenchModel::new))
.model(AssetLookup.itemModelWithPartials())
.register();
public static final ItemEntry<GogglesItem> GOGGLES = REGISTRATE.item("goggles", GogglesItem::new)
.model(AssetLookup.existingItemModel())
.lang("Engineer's Goggles")
.register();
public static final ItemEntry<MinecartContraptionItem> MINECART_CONTRAPTION =
REGISTRATE.item("minecart_contraption", MinecartContraptionItem::rideable)
.register();
public static final ItemEntry<MinecartContraptionItem> FURNACE_MINECART_CONTRAPTION =
REGISTRATE.item("furnace_minecart_contraption", MinecartContraptionItem::furnace)
.register();
// Logistics
static {
REGISTRATE.startSection(LOGISTICS);
}
public static final ItemEntry<FilterItem> FILTER = REGISTRATE.item("filter", FilterItem::regular)
.model(AssetLookup.existingItemModel())
.register();
public static final ItemEntry<FilterItem> ATTRIBUTE_FILTER =
REGISTRATE.item("attribute_filter", FilterItem::attribute)
.model(AssetLookup.existingItemModel())
.register();
// Curiosities
static {
REGISTRATE.startSection(CURIOSITIES);
}
public static final ItemEntry<TreeFertilizerItem> TREE_FERTILIZER =
REGISTRATE.item("tree_fertilizer", TreeFertilizerItem::new)
.register();
public static final ItemEntry<BlockzapperItem> BLOCKZAPPER =
REGISTRATE.item("handheld_blockzapper", BlockzapperItem::new)
.transform(CreateRegistrate.customRenderedItem(() -> BlockzapperModel::new))
.model(AssetLookup.itemModelWithPartials())
.register();
public static final ItemEntry<WorldshaperItem> WORLDSHAPER =
REGISTRATE.item("handheld_worldshaper", WorldshaperItem::new)
.transform(CreateRegistrate.customRenderedItem(() -> WorldshaperModel::new))
.model(AssetLookup.itemModelWithPartials())
.register();
public static final ItemEntry<DeforesterItem> DEFORESTER = REGISTRATE.item("deforester", DeforesterItem::new)
.transform(CreateRegistrate.customRenderedItem(() -> DeforesterModel::new))
.model(AssetLookup.itemModelWithPartials())
.register();
public static final ItemEntry<SymmetryWandItem> WAND_OF_SYMMETRY =
REGISTRATE.item("wand_of_symmetry", SymmetryWandItem::new)
.transform(CreateRegistrate.customRenderedItem(() -> SymmetryWandModel::new))
.model(AssetLookup.itemModelWithPartials())
.register();
// Schematics
static {
REGISTRATE.startSection(SCHEMATICS);
}
public static final ItemEntry<Item> EMPTY_SCHEMATIC = REGISTRATE.item("empty_schematic", Item::new)
.properties(p -> p.maxStackSize(1))
.register();
public static final ItemEntry<SchematicAndQuillItem> SCHEMATIC_AND_QUILL =
REGISTRATE.item("schematic_and_quill", SchematicAndQuillItem::new)
.properties(p -> p.maxStackSize(1))
.register();
public static final ItemEntry<SchematicItem> SCHEMATIC = REGISTRATE.item("schematic", SchematicItem::new)
.properties(p -> p.maxStackSize(1))
.register();
// Shortcuts
private static ItemEntry<Item> ingredient(String name) {
return REGISTRATE.item(name, Item::new)
.register();
}
private static ItemEntry<Item> taggedIngredient(String name, Tag<Item> tag) {
return REGISTRATE.item(name, Item::new)
.tag(tag)
.register();
}
// Helper
public static boolean typeOf(ItemEntry<?> entry, ItemStack stack) {
return stack != null && stack.getItem() == entry.get();
}
// Load this class
public static void register() {}
}

View file

@ -9,8 +9,8 @@ import java.util.IdentityHashMap;
import java.util.Map; import java.util.Map;
import com.simibubi.create.content.palettes.PaletteBlockPatterns; import com.simibubi.create.content.palettes.PaletteBlockPatterns;
import com.simibubi.create.content.palettes.PaletteStoneVariants;
import com.simibubi.create.content.palettes.PaletteBlockPatterns.CTs; import com.simibubi.create.content.palettes.PaletteBlockPatterns.CTs;
import com.simibubi.create.content.palettes.PaletteStoneVariants;
import com.simibubi.create.foundation.block.connected.CTSpriteShiftEntry; import com.simibubi.create.foundation.block.connected.CTSpriteShiftEntry;
import com.simibubi.create.foundation.block.connected.CTSpriteShifter.CTType; import com.simibubi.create.foundation.block.connected.CTSpriteShifter.CTType;
import com.simibubi.create.foundation.block.render.SpriteShiftEntry; import com.simibubi.create.foundation.block.render.SpriteShiftEntry;

View file

@ -0,0 +1,65 @@
package com.simibubi.create;
import com.simibubi.create.foundation.utility.Lang;
import com.tterrag.registrate.builders.BlockBuilder;
import com.tterrag.registrate.builders.ItemBuilder;
import com.tterrag.registrate.util.nullness.NonNullFunction;
import net.minecraft.block.Block;
import net.minecraft.block.BlockState;
import net.minecraft.item.BlockItem;
import net.minecraft.item.Item;
import net.minecraft.tags.BlockTags;
import net.minecraft.tags.ItemTags;
import net.minecraft.tags.Tag;
import net.minecraft.tags.TagCollection;
import net.minecraft.util.ResourceLocation;
public class AllTags {
public static <T extends Block, P> NonNullFunction<BlockBuilder<T, P>, ItemBuilder<BlockItem, BlockBuilder<T, P>>> tagBlockAndItem(
String tagName) {
return b -> b.tag(forgeBlockTag(tagName))
.item()
.tag(forgeItemTag(tagName));
}
public static Tag<Block> forgeBlockTag(String name) {
return forgeTag(BlockTags.getCollection(), name);
}
public static Tag<Item> forgeItemTag(String name) {
return forgeTag(ItemTags.getCollection(), name);
}
public static <T> Tag<T> forgeTag(TagCollection<T> collection, String name) {
return tag(collection, "forge", name);
}
public static <T> Tag<T> tag(TagCollection<T> collection, String domain, String name) {
return collection.getOrCreate(new ResourceLocation(domain, name));
}
public static enum AllItemTags {
;
}
public static enum AllBlockTags {
WINDMILL_SAILS, FAN_HEATERS, WINDOWABLE,;
public Tag<Block> tag;
private AllBlockTags() {
this("");
}
private AllBlockTags(String path) {
tag = new BlockTags.Wrapper(
new ResourceLocation(Create.ID, (path.isEmpty() ? "" : path + "/") + Lang.asId(name())));
}
public boolean matches(BlockState block) {
return tag.contains(block.getBlock());
}
}
}

View file

@ -4,22 +4,22 @@ import java.util.function.Function;
import java.util.function.Supplier; import java.util.function.Supplier;
import com.simibubi.create.content.contraptions.base.KineticTileEntityRenderer; import com.simibubi.create.content.contraptions.base.KineticTileEntityRenderer;
import com.simibubi.create.content.contraptions.components.actors.DrillTileEntity;
import com.simibubi.create.content.contraptions.components.actors.DrillRenderer; import com.simibubi.create.content.contraptions.components.actors.DrillRenderer;
import com.simibubi.create.content.contraptions.components.actors.DrillTileEntity;
import com.simibubi.create.content.contraptions.components.actors.HarvesterRenderer; import com.simibubi.create.content.contraptions.components.actors.HarvesterRenderer;
import com.simibubi.create.content.contraptions.components.actors.HarvesterTileEntity; import com.simibubi.create.content.contraptions.components.actors.HarvesterTileEntity;
import com.simibubi.create.content.contraptions.components.clock.CuckooClockRenderer; import com.simibubi.create.content.contraptions.components.clock.CuckooClockRenderer;
import com.simibubi.create.content.contraptions.components.clock.CuckooClockTileEntity; import com.simibubi.create.content.contraptions.components.clock.CuckooClockTileEntity;
import com.simibubi.create.content.contraptions.components.crafter.MechanicalCrafterTileEntity;
import com.simibubi.create.content.contraptions.components.crafter.MechanicalCrafterRenderer; import com.simibubi.create.content.contraptions.components.crafter.MechanicalCrafterRenderer;
import com.simibubi.create.content.contraptions.components.crank.HandCrankTileEntity; import com.simibubi.create.content.contraptions.components.crafter.MechanicalCrafterTileEntity;
import com.simibubi.create.content.contraptions.components.crank.HandCrankRenderer; 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; import com.simibubi.create.content.contraptions.components.crusher.CrushingWheelControllerTileEntity;
import com.simibubi.create.content.contraptions.components.crusher.CrushingWheelTileEntity; import com.simibubi.create.content.contraptions.components.crusher.CrushingWheelTileEntity;
import com.simibubi.create.content.contraptions.components.deployer.DeployerTileEntity;
import com.simibubi.create.content.contraptions.components.deployer.DeployerRenderer; import com.simibubi.create.content.contraptions.components.deployer.DeployerRenderer;
import com.simibubi.create.content.contraptions.components.fan.EncasedFanTileEntity; import com.simibubi.create.content.contraptions.components.deployer.DeployerTileEntity;
import com.simibubi.create.content.contraptions.components.fan.EncasedFanRenderer; import com.simibubi.create.content.contraptions.components.fan.EncasedFanRenderer;
import com.simibubi.create.content.contraptions.components.fan.EncasedFanTileEntity;
import com.simibubi.create.content.contraptions.components.fan.NozzleTileEntity; import com.simibubi.create.content.contraptions.components.fan.NozzleTileEntity;
import com.simibubi.create.content.contraptions.components.flywheel.FlywheelRenderer; import com.simibubi.create.content.contraptions.components.flywheel.FlywheelRenderer;
import com.simibubi.create.content.contraptions.components.flywheel.FlywheelTileEntity; import com.simibubi.create.content.contraptions.components.flywheel.FlywheelTileEntity;
@ -27,49 +27,49 @@ import com.simibubi.create.content.contraptions.components.flywheel.engine.Engin
import com.simibubi.create.content.contraptions.components.flywheel.engine.FurnaceEngineTileEntity; import com.simibubi.create.content.contraptions.components.flywheel.engine.FurnaceEngineTileEntity;
import com.simibubi.create.content.contraptions.components.millstone.MillstoneRenderer; import com.simibubi.create.content.contraptions.components.millstone.MillstoneRenderer;
import com.simibubi.create.content.contraptions.components.millstone.MillstoneTileEntity; import com.simibubi.create.content.contraptions.components.millstone.MillstoneTileEntity;
import com.simibubi.create.content.contraptions.components.mixer.MechanicalMixerTileEntity;
import com.simibubi.create.content.contraptions.components.mixer.MechanicalMixerRenderer; import com.simibubi.create.content.contraptions.components.mixer.MechanicalMixerRenderer;
import com.simibubi.create.content.contraptions.components.motor.CreativeMotorTileEntity; import com.simibubi.create.content.contraptions.components.mixer.MechanicalMixerTileEntity;
import com.simibubi.create.content.contraptions.components.motor.CreativeMotorRenderer; import com.simibubi.create.content.contraptions.components.motor.CreativeMotorRenderer;
import com.simibubi.create.content.contraptions.components.press.MechanicalPressTileEntity; import com.simibubi.create.content.contraptions.components.motor.CreativeMotorTileEntity;
import com.simibubi.create.content.contraptions.components.press.MechanicalPressRenderer; import com.simibubi.create.content.contraptions.components.press.MechanicalPressRenderer;
import com.simibubi.create.content.contraptions.components.saw.SawTileEntity; import com.simibubi.create.content.contraptions.components.press.MechanicalPressTileEntity;
import com.simibubi.create.content.contraptions.components.saw.SawRenderer; import com.simibubi.create.content.contraptions.components.saw.SawRenderer;
import com.simibubi.create.content.contraptions.components.saw.SawTileEntity;
import com.simibubi.create.content.contraptions.components.structureMovement.bearing.BearingRenderer; import com.simibubi.create.content.contraptions.components.structureMovement.bearing.BearingRenderer;
import com.simibubi.create.content.contraptions.components.structureMovement.bearing.ClockworkBearingTileEntity; import com.simibubi.create.content.contraptions.components.structureMovement.bearing.ClockworkBearingTileEntity;
import com.simibubi.create.content.contraptions.components.structureMovement.bearing.MechanicalBearingTileEntity; import com.simibubi.create.content.contraptions.components.structureMovement.bearing.MechanicalBearingTileEntity;
import com.simibubi.create.content.contraptions.components.structureMovement.chassis.ChassisTileEntity; import com.simibubi.create.content.contraptions.components.structureMovement.chassis.ChassisTileEntity;
import com.simibubi.create.content.contraptions.components.structureMovement.mounted.CartAssemblerTileEntity; import com.simibubi.create.content.contraptions.components.structureMovement.mounted.CartAssemblerTileEntity;
import com.simibubi.create.content.contraptions.components.structureMovement.piston.MechanicalPistonTileEntity;
import com.simibubi.create.content.contraptions.components.structureMovement.piston.MechanicalPistonRenderer; import com.simibubi.create.content.contraptions.components.structureMovement.piston.MechanicalPistonRenderer;
import com.simibubi.create.content.contraptions.components.structureMovement.piston.MechanicalPistonTileEntity;
import com.simibubi.create.content.contraptions.components.structureMovement.pulley.PulleyRenderer; import com.simibubi.create.content.contraptions.components.structureMovement.pulley.PulleyRenderer;
import com.simibubi.create.content.contraptions.components.structureMovement.pulley.PulleyTileEntity; import com.simibubi.create.content.contraptions.components.structureMovement.pulley.PulleyTileEntity;
import com.simibubi.create.content.contraptions.components.turntable.TurntableTileEntity; import com.simibubi.create.content.contraptions.components.turntable.TurntableTileEntity;
import com.simibubi.create.content.contraptions.components.waterwheel.WaterWheelTileEntity; import com.simibubi.create.content.contraptions.components.waterwheel.WaterWheelTileEntity;
import com.simibubi.create.content.contraptions.processing.BasinTileEntity;
import com.simibubi.create.content.contraptions.processing.BasinRenderer; import com.simibubi.create.content.contraptions.processing.BasinRenderer;
import com.simibubi.create.content.contraptions.processing.BasinTileEntity;
import com.simibubi.create.content.contraptions.relays.advanced.SpeedControllerRenderer; import com.simibubi.create.content.contraptions.relays.advanced.SpeedControllerRenderer;
import com.simibubi.create.content.contraptions.relays.advanced.SpeedControllerTileEntity; import com.simibubi.create.content.contraptions.relays.advanced.SpeedControllerTileEntity;
import com.simibubi.create.content.contraptions.relays.advanced.sequencer.SequencedGearshiftTileEntity; import com.simibubi.create.content.contraptions.relays.advanced.sequencer.SequencedGearshiftTileEntity;
import com.simibubi.create.content.contraptions.relays.belt.BeltTileEntity;
import com.simibubi.create.content.contraptions.relays.belt.BeltRenderer; import com.simibubi.create.content.contraptions.relays.belt.BeltRenderer;
import com.simibubi.create.content.contraptions.relays.belt.BeltTileEntity;
import com.simibubi.create.content.contraptions.relays.elementary.SimpleKineticTileEntity; import com.simibubi.create.content.contraptions.relays.elementary.SimpleKineticTileEntity;
import com.simibubi.create.content.contraptions.relays.encased.AdjustablePulleyTileEntity; import com.simibubi.create.content.contraptions.relays.encased.AdjustablePulleyTileEntity;
import com.simibubi.create.content.contraptions.relays.encased.ClutchTileEntity; import com.simibubi.create.content.contraptions.relays.encased.ClutchTileEntity;
import com.simibubi.create.content.contraptions.relays.encased.EncasedShaftTileEntity;
import com.simibubi.create.content.contraptions.relays.encased.EncasedShaftRenderer; import com.simibubi.create.content.contraptions.relays.encased.EncasedShaftRenderer;
import com.simibubi.create.content.contraptions.relays.encased.EncasedShaftTileEntity;
import com.simibubi.create.content.contraptions.relays.encased.SplitShaftRenderer; import com.simibubi.create.content.contraptions.relays.encased.SplitShaftRenderer;
import com.simibubi.create.content.contraptions.relays.gauge.GaugeBlock; import com.simibubi.create.content.contraptions.relays.gauge.GaugeBlock;
import com.simibubi.create.content.contraptions.relays.gauge.GaugeRenderer; import com.simibubi.create.content.contraptions.relays.gauge.GaugeRenderer;
import com.simibubi.create.content.contraptions.relays.gauge.SpeedGaugeTileEntity; import com.simibubi.create.content.contraptions.relays.gauge.SpeedGaugeTileEntity;
import com.simibubi.create.content.contraptions.relays.gauge.StressGaugeTileEntity; import com.simibubi.create.content.contraptions.relays.gauge.StressGaugeTileEntity;
import com.simibubi.create.content.contraptions.relays.gearbox.GearboxTileEntity;
import com.simibubi.create.content.contraptions.relays.gearbox.GearboxRenderer; import com.simibubi.create.content.contraptions.relays.gearbox.GearboxRenderer;
import com.simibubi.create.content.contraptions.relays.gearbox.GearboxTileEntity;
import com.simibubi.create.content.contraptions.relays.gearbox.GearshiftTileEntity; import com.simibubi.create.content.contraptions.relays.gearbox.GearshiftTileEntity;
import com.simibubi.create.content.logistics.block.belts.observer.BeltObserverTileEntity;
import com.simibubi.create.content.logistics.block.belts.observer.BeltObserverRenderer; import com.simibubi.create.content.logistics.block.belts.observer.BeltObserverRenderer;
import com.simibubi.create.content.logistics.block.belts.tunnel.BeltTunnelTileEntity; import com.simibubi.create.content.logistics.block.belts.observer.BeltObserverTileEntity;
import com.simibubi.create.content.logistics.block.belts.tunnel.BeltTunnelRenderer; import com.simibubi.create.content.logistics.block.belts.tunnel.BeltTunnelRenderer;
import com.simibubi.create.content.logistics.block.belts.tunnel.BeltTunnelTileEntity;
import com.simibubi.create.content.logistics.block.diodes.AdjustablePulseRepeaterTileEntity; import com.simibubi.create.content.logistics.block.diodes.AdjustablePulseRepeaterTileEntity;
import com.simibubi.create.content.logistics.block.diodes.AdjustableRepeaterRenderer; import com.simibubi.create.content.logistics.block.diodes.AdjustableRepeaterRenderer;
import com.simibubi.create.content.logistics.block.diodes.AdjustableRepeaterTileEntity; import com.simibubi.create.content.logistics.block.diodes.AdjustableRepeaterTileEntity;
@ -78,8 +78,8 @@ import com.simibubi.create.content.logistics.block.extractor.LinkedExtractorTile
import com.simibubi.create.content.logistics.block.funnel.FunnelTileEntity; import com.simibubi.create.content.logistics.block.funnel.FunnelTileEntity;
import com.simibubi.create.content.logistics.block.inventories.AdjustableCrateTileEntity; import com.simibubi.create.content.logistics.block.inventories.AdjustableCrateTileEntity;
import com.simibubi.create.content.logistics.block.inventories.CreativeCrateTileEntity; import com.simibubi.create.content.logistics.block.inventories.CreativeCrateTileEntity;
import com.simibubi.create.content.logistics.block.redstone.AnalogLeverTileEntity;
import com.simibubi.create.content.logistics.block.redstone.AnalogLeverRenderer; import com.simibubi.create.content.logistics.block.redstone.AnalogLeverRenderer;
import com.simibubi.create.content.logistics.block.redstone.AnalogLeverTileEntity;
import com.simibubi.create.content.logistics.block.redstone.RedstoneLinkTileEntity; import com.simibubi.create.content.logistics.block.redstone.RedstoneLinkTileEntity;
import com.simibubi.create.content.logistics.block.redstone.StockpileSwitchTileEntity; import com.simibubi.create.content.logistics.block.redstone.StockpileSwitchTileEntity;
import com.simibubi.create.content.logistics.block.transposer.LinkedTransposerTileEntity; import com.simibubi.create.content.logistics.block.transposer.LinkedTransposerTileEntity;

View file

@ -4,7 +4,6 @@ import java.util.ArrayList;
import java.util.List; import java.util.List;
import com.mojang.blaze3d.matrix.MatrixStack; import com.mojang.blaze3d.matrix.MatrixStack;
import com.mojang.blaze3d.systems.RenderSystem;
import com.simibubi.create.content.contraptions.KineticDebugger; import com.simibubi.create.content.contraptions.KineticDebugger;
import com.simibubi.create.content.contraptions.base.KineticTileEntityRenderer; import com.simibubi.create.content.contraptions.base.KineticTileEntityRenderer;
import com.simibubi.create.content.contraptions.components.turntable.TurntableHandler; import com.simibubi.create.content.contraptions.components.turntable.TurntableHandler;
@ -17,7 +16,6 @@ import com.simibubi.create.foundation.utility.AnimationTickHolder;
import net.minecraft.client.Minecraft; import net.minecraft.client.Minecraft;
import net.minecraft.client.renderer.ActiveRenderInfo; import net.minecraft.client.renderer.ActiveRenderInfo;
import net.minecraft.client.renderer.Atlases;
import net.minecraft.client.renderer.IRenderTypeBuffer; import net.minecraft.client.renderer.IRenderTypeBuffer;
import net.minecraft.client.renderer.texture.OverlayTexture; import net.minecraft.client.renderer.texture.OverlayTexture;
import net.minecraft.item.ItemStack; import net.minecraft.item.ItemStack;
@ -74,9 +72,8 @@ public class ClientEvents {
.getBufferBuilders() .getBufferBuilders()
.getEntityVertexConsumers(); .getEntityVertexConsumers();
CreateClient.schematicHandler.render(ms, buffer, 0xF000F0, OverlayTexture.DEFAULT_UV); CreateClient.schematicHandler.render(ms, buffer);
CreateClient.outliner.renderOutlines(ms, buffer); CreateClient.outliner.renderOutlines(ms, buffer);
KineticDebugger.renderSourceOutline(ms, buffer);
ms.pop(); ms.pop();
buffer.draw(); buffer.draw();
} }

View file

@ -13,7 +13,6 @@ import com.simibubi.create.foundation.advancement.AllAdvancements;
import com.simibubi.create.foundation.advancement.AllTriggers; import com.simibubi.create.foundation.advancement.AllTriggers;
import com.simibubi.create.foundation.command.ServerLagger; import com.simibubi.create.foundation.command.ServerLagger;
import com.simibubi.create.foundation.config.AllConfigs; import com.simibubi.create.foundation.config.AllConfigs;
import com.simibubi.create.foundation.data.AllItemsTagProvider;
import com.simibubi.create.foundation.data.CreateRegistrate; import com.simibubi.create.foundation.data.CreateRegistrate;
import com.simibubi.create.foundation.data.LangMerger; import com.simibubi.create.foundation.data.LangMerger;
import com.simibubi.create.foundation.networking.AllPackets; import com.simibubi.create.foundation.networking.AllPackets;
@ -23,7 +22,6 @@ import com.tterrag.registrate.util.NonNullLazyValue;
import net.minecraft.data.DataGenerator; import net.minecraft.data.DataGenerator;
import net.minecraft.entity.EntityType; import net.minecraft.entity.EntityType;
import net.minecraft.inventory.container.ContainerType; import net.minecraft.inventory.container.ContainerType;
import net.minecraft.item.Item;
import net.minecraft.item.ItemGroup; import net.minecraft.item.ItemGroup;
import net.minecraft.item.crafting.IRecipeSerializer; import net.minecraft.item.crafting.IRecipeSerializer;
import net.minecraft.particles.ParticleType; import net.minecraft.particles.ParticleType;
@ -61,9 +59,9 @@ public class Create {
modEventBus.addListener(Create::init); modEventBus.addListener(Create::init);
AllBlocks.register(); AllBlocks.register();
AllItemsNew.register();
AllPaletteBlocks.register(); AllPaletteBlocks.register();
modEventBus.addGenericListener(Item.class, AllItems::register);
modEventBus.addGenericListener(IRecipeSerializer.class, AllRecipeTypes::register); modEventBus.addGenericListener(IRecipeSerializer.class, AllRecipeTypes::register);
modEventBus.addGenericListener(TileEntityType.class, AllTileEntities::register); modEventBus.addGenericListener(TileEntityType.class, AllTileEntities::register);
modEventBus.addGenericListener(ContainerType.class, AllContainerTypes::register); modEventBus.addGenericListener(ContainerType.class, AllContainerTypes::register);
@ -115,7 +113,6 @@ public class Create {
public void gatherData(GatherDataEvent event) { public void gatherData(GatherDataEvent event) {
DataGenerator gen = event.getGenerator(); DataGenerator gen = event.getGenerator();
gen.addProvider(new AllItemsTagProvider(gen));
gen.addProvider(new AllAdvancements(gen)); gen.addProvider(new AllAdvancements(gen));
gen.addProvider(new LangMerger(gen)); gen.addProvider(new LangMerger(gen));
} }

View file

@ -5,19 +5,22 @@ import java.util.List;
import java.util.Map; import java.util.Map;
import java.util.function.Function; import java.util.function.Function;
import com.simibubi.create.content.contraptions.KineticDebugger;
import com.simibubi.create.content.contraptions.base.KineticTileEntityRenderer; import com.simibubi.create.content.contraptions.base.KineticTileEntityRenderer;
import com.simibubi.create.content.contraptions.components.structureMovement.ChassisRangeDisplay; import com.simibubi.create.content.contraptions.components.structureMovement.ChassisRangeDisplay;
import com.simibubi.create.content.contraptions.components.structureMovement.ContraptionRenderer; import com.simibubi.create.content.contraptions.components.structureMovement.ContraptionRenderer;
import com.simibubi.create.content.contraptions.relays.belt.item.BeltConnectorHandler; import com.simibubi.create.content.contraptions.relays.belt.item.BeltConnectorHandler;
import com.simibubi.create.content.curiosities.zapper.ZapperRenderHandler; import com.simibubi.create.content.curiosities.zapper.ZapperRenderHandler;
import com.simibubi.create.content.curiosities.zapper.terrainzapper.TerrainZapperRenderHandler; import com.simibubi.create.content.curiosities.zapper.blockzapper.BlockzapperRenderHandler;
import com.simibubi.create.content.curiosities.zapper.terrainzapper.WorldshaperRenderHandler;
import com.simibubi.create.content.schematics.ClientSchematicLoader; import com.simibubi.create.content.schematics.ClientSchematicLoader;
import com.simibubi.create.content.schematics.client.SchematicAndQuillHandler; import com.simibubi.create.content.schematics.client.SchematicAndQuillHandler;
import com.simibubi.create.content.schematics.client.SchematicHandler; import com.simibubi.create.content.schematics.client.SchematicHandler;
import com.simibubi.create.foundation.ResourceReloadHandler; import com.simibubi.create.foundation.ResourceReloadHandler;
import com.simibubi.create.foundation.block.render.CustomBlockModels; import com.simibubi.create.foundation.block.render.CustomBlockModels;
import com.simibubi.create.foundation.block.render.SpriteShifter; import com.simibubi.create.foundation.block.render.SpriteShifter;
import com.simibubi.create.foundation.item.IHaveCustomItemModel; import com.simibubi.create.foundation.item.CustomItemModels;
import com.simibubi.create.foundation.item.CustomRenderedItems;
import com.simibubi.create.foundation.tileEntity.behaviour.edgeInteraction.EdgeInteractionRenderer; import com.simibubi.create.foundation.tileEntity.behaviour.edgeInteraction.EdgeInteractionRenderer;
import com.simibubi.create.foundation.tileEntity.behaviour.filtering.FilteringRenderer; import com.simibubi.create.foundation.tileEntity.behaviour.filtering.FilteringRenderer;
import com.simibubi.create.foundation.tileEntity.behaviour.linked.LinkRenderer; import com.simibubi.create.foundation.tileEntity.behaviour.linked.LinkRenderer;
@ -31,6 +34,7 @@ import net.minecraft.client.renderer.BlockModelShapes;
import net.minecraft.client.renderer.model.IBakedModel; import net.minecraft.client.renderer.model.IBakedModel;
import net.minecraft.client.renderer.model.ModelResourceLocation; import net.minecraft.client.renderer.model.ModelResourceLocation;
import net.minecraft.inventory.container.PlayerContainer; import net.minecraft.inventory.container.PlayerContainer;
import net.minecraft.item.Item;
import net.minecraft.resources.IReloadableResourceManager; import net.minecraft.resources.IReloadableResourceManager;
import net.minecraft.resources.IResourceManager; import net.minecraft.resources.IResourceManager;
import net.minecraft.util.ResourceLocation; import net.minecraft.util.ResourceLocation;
@ -53,6 +57,8 @@ public class CreateClient {
public static Outliner outliner; public static Outliner outliner;
private static CustomBlockModels customBlockModels; private static CustomBlockModels customBlockModels;
private static CustomItemModels customItemModels;
private static CustomRenderedItems customRenderedItems;
private static AllColorHandlers colorHandlers; private static AllColorHandlers colorHandlers;
public static void addListeners(IEventBus modEventBus) { public static void addListeners(IEventBus modEventBus) {
@ -78,7 +84,6 @@ public class CreateClient {
AllKeys.register(); AllKeys.register();
AllContainerTypes.registerScreenFactories(); AllContainerTypes.registerScreenFactories();
AllTileEntities.registerRenderers(); AllTileEntities.registerRenderers();
AllItems.registerColorHandlers();
AllEntityTypes.registerRenderers(); AllEntityTypes.registerRenderers();
getColorHandler().init(); getColorHandler().init();
@ -92,13 +97,15 @@ public class CreateClient {
schematicSender.tick(); schematicSender.tick();
schematicAndQuillHandler.tick(); schematicAndQuillHandler.tick();
schematicHandler.tick(); schematicHandler.tick();
BeltConnectorHandler.gameTick(); BeltConnectorHandler.tick();
FilteringRenderer.tick(); FilteringRenderer.tick();
LinkRenderer.tick(); LinkRenderer.tick();
ScrollValueRenderer.tick(); ScrollValueRenderer.tick();
ChassisRangeDisplay.tick(); ChassisRangeDisplay.tick();
EdgeInteractionRenderer.tick(); EdgeInteractionRenderer.tick();
TerrainZapperRenderHandler.tick(); WorldshaperRenderHandler.tick();
BlockzapperRenderHandler.tick();
KineticDebugger.tick();
ZapperRenderHandler.tick(); ZapperRenderHandler.tick();
outliner.tickOutlines(); outliner.tickOutlines();
} }
@ -120,33 +127,26 @@ public class CreateClient {
getCustomBlockModels() getCustomBlockModels()
.foreach((block, modelFunc) -> swapModels(modelRegistry, getAllBlockStateModelLocations(block), modelFunc)); .foreach((block, modelFunc) -> swapModels(modelRegistry, getAllBlockStateModelLocations(block), modelFunc));
getCustomItemModels()
// todo modelswap for item registrate .foreach((item, modelFunc) -> swapModels(modelRegistry, getItemModelLocation(item), modelFunc));
for (AllItems item : AllItems.values()) { getCustomRenderedItems().foreach((item, modelFunc) -> {
if (item.get() instanceof IHaveCustomItemModel) swapModels(modelRegistry, getItemModelLocation(item), m -> modelFunc.apply(m)
swapModels(modelRegistry, getItemModelLocation(item), .loadPartials(event));
m -> ((IHaveCustomItemModel) item.get()).createModel(m) });
.loadPartials(event));
}
} }
@OnlyIn(Dist.CLIENT) @OnlyIn(Dist.CLIENT)
public static void onModelRegistry(ModelRegistryEvent event) { public static void onModelRegistry(ModelRegistryEvent event) {
AllBlockPartials.onModelRegistry(event); AllBlockPartials.onModelRegistry(event);
// Register submodels for custom rendered item models getCustomRenderedItems().foreach((item, modelFunc) -> modelFunc.apply(null)
for (AllItems item : AllItems.values()) { .getModelLocations()
if (item.get() instanceof IHaveCustomItemModel) .forEach(ModelLoader::addSpecialModel));
((IHaveCustomItemModel) item.get()).createModel(null)
.getModelLocations()
.forEach(ModelLoader::addSpecialModel);
}
} }
@OnlyIn(Dist.CLIENT) @OnlyIn(Dist.CLIENT)
protected static ModelResourceLocation getItemModelLocation(AllItems item) { protected static ModelResourceLocation getItemModelLocation(Item item) {
return new ModelResourceLocation(item.get() return new ModelResourceLocation(item.getRegistryName(), "inventory");
.getRegistryName(), "inventory");
} }
@OnlyIn(Dist.CLIENT) @OnlyIn(Dist.CLIENT)
@ -165,12 +165,6 @@ public class CreateClient {
return new ModelResourceLocation(block.getRegistryName(), suffix); return new ModelResourceLocation(block.getRegistryName(), suffix);
} }
@OnlyIn(Dist.CLIENT)
protected static <T extends IBakedModel> void swapModels(Map<ResourceLocation, IBakedModel> modelRegistry,
ModelResourceLocation location, Function<IBakedModel, T> factory) {
modelRegistry.put(location, factory.apply(modelRegistry.get(location)));
}
@OnlyIn(Dist.CLIENT) @OnlyIn(Dist.CLIENT)
protected static <T extends IBakedModel> void swapModels(Map<ResourceLocation, IBakedModel> modelRegistry, protected static <T extends IBakedModel> void swapModels(Map<ResourceLocation, IBakedModel> modelRegistry,
List<ModelResourceLocation> locations, Function<IBakedModel, T> factory) { List<ModelResourceLocation> locations, Function<IBakedModel, T> factory) {
@ -179,6 +173,24 @@ public class CreateClient {
}); });
} }
@OnlyIn(Dist.CLIENT)
protected static <T extends IBakedModel> void swapModels(Map<ResourceLocation, IBakedModel> modelRegistry,
ModelResourceLocation location, Function<IBakedModel, T> factory) {
modelRegistry.put(location, factory.apply(modelRegistry.get(location)));
}
public static CustomItemModels getCustomItemModels() {
if (customItemModels == null)
customItemModels = new CustomItemModels();
return customItemModels;
}
public static CustomRenderedItems getCustomRenderedItems() {
if (customRenderedItems == null)
customRenderedItems = new CustomRenderedItems();
return customRenderedItems;
}
public static CustomBlockModels getCustomBlockModels() { public static CustomBlockModels getCustomBlockModels() {
if (customBlockModels == null) if (customBlockModels == null)
customBlockModels = new CustomBlockModels(); customBlockModels = new CustomBlockModels();

View file

@ -5,16 +5,12 @@ import java.util.stream.Collectors;
import com.google.common.base.Predicate; import com.google.common.base.Predicate;
import com.simibubi.create.AllBlocks; import com.simibubi.create.AllBlocks;
import com.simibubi.create.AllItems; import com.simibubi.create.AllItemsNew;
import com.simibubi.create.AllRecipeTypes; import com.simibubi.create.AllRecipeTypes;
import com.simibubi.create.Create; import com.simibubi.create.Create;
import com.simibubi.create.compat.jei.category.BlastingViaFanCategory; import com.simibubi.create.compat.jei.category.BlastingViaFanCategory;
import com.simibubi.create.compat.jei.category.BlockCuttingCategory; import com.simibubi.create.compat.jei.category.BlockCuttingCategory;
import com.simibubi.create.compat.jei.category.BlockCuttingCategory.CondensedBlockCuttingRecipe; import com.simibubi.create.compat.jei.category.BlockCuttingCategory.CondensedBlockCuttingRecipe;
import com.simibubi.create.content.contraptions.components.mixer.MixingRecipe;
import com.simibubi.create.content.contraptions.components.press.MechanicalPressTileEntity;
import com.simibubi.create.content.logistics.block.inventories.AdjustableCrateScreen;
import com.simibubi.create.content.schematics.block.SchematicannonScreen;
import com.simibubi.create.compat.jei.category.BlockzapperUpgradeCategory; import com.simibubi.create.compat.jei.category.BlockzapperUpgradeCategory;
import com.simibubi.create.compat.jei.category.CrushingCategory; import com.simibubi.create.compat.jei.category.CrushingCategory;
import com.simibubi.create.compat.jei.category.MechanicalCraftingCategory; import com.simibubi.create.compat.jei.category.MechanicalCraftingCategory;
@ -27,6 +23,10 @@ import com.simibubi.create.compat.jei.category.PressingCategory;
import com.simibubi.create.compat.jei.category.SawingCategory; import com.simibubi.create.compat.jei.category.SawingCategory;
import com.simibubi.create.compat.jei.category.SmokingViaFanCategory; import com.simibubi.create.compat.jei.category.SmokingViaFanCategory;
import com.simibubi.create.compat.jei.category.SplashingCategory; import com.simibubi.create.compat.jei.category.SplashingCategory;
import com.simibubi.create.content.contraptions.components.mixer.MixingRecipe;
import com.simibubi.create.content.contraptions.components.press.MechanicalPressTileEntity;
import com.simibubi.create.content.logistics.block.inventories.AdjustableCrateScreen;
import com.simibubi.create.content.schematics.block.SchematicannonScreen;
import com.simibubi.create.foundation.utility.Lang; import com.simibubi.create.foundation.utility.Lang;
import mezz.jei.api.IModPlugin; import mezz.jei.api.IModPlugin;
@ -91,7 +91,7 @@ public class CreateJEI implements IModPlugin {
@Override @Override
public void registerItemSubtypes(ISubtypeRegistration registration) { public void registerItemSubtypes(ISubtypeRegistration registration) {
registration.useNbtForSubtypes(AllItems.PLACEMENT_HANDGUN.get()); registration.useNbtForSubtypes(AllItemsNew.BLOCKZAPPER.get());
} }
@Override @Override
@ -159,7 +159,7 @@ public class CreateJEI implements IModPlugin {
registration.addRecipeCatalyst(smokingFan, smokingCategory.getUid()); registration.addRecipeCatalyst(smokingFan, smokingCategory.getUid());
registration.addRecipeCatalyst(blastingFan, blastingCategory.getUid()); registration.addRecipeCatalyst(blastingFan, blastingCategory.getUid());
registration.addRecipeCatalyst(new ItemStack(AllBlocks.MECHANICAL_PRESS.get()), pressingCategory.getUid()); registration.addRecipeCatalyst(new ItemStack(AllBlocks.MECHANICAL_PRESS.get()), pressingCategory.getUid());
registration.addRecipeCatalyst(new ItemStack(AllItems.PLACEMENT_HANDGUN.get()), blockzapperCategory.getUid()); registration.addRecipeCatalyst(new ItemStack(AllItemsNew.BLOCKZAPPER.get()), blockzapperCategory.getUid());
registration.addRecipeCatalyst(new ItemStack(AllBlocks.MECHANICAL_MIXER.get()), mixingCategory.getUid()); registration.addRecipeCatalyst(new ItemStack(AllBlocks.MECHANICAL_MIXER.get()), mixingCategory.getUid());
registration.addRecipeCatalyst(new ItemStack(AllBlocks.BASIN.get()), mixingCategory.getUid()); registration.addRecipeCatalyst(new ItemStack(AllBlocks.BASIN.get()), mixingCategory.getUid());
registration.addRecipeCatalyst(new ItemStack(AllBlocks.SAW.get()), sawingCategory.getUid()); registration.addRecipeCatalyst(new ItemStack(AllBlocks.SAW.get()), sawingCategory.getUid());
@ -167,8 +167,8 @@ public class CreateJEI implements IModPlugin {
registration.addRecipeCatalyst(new ItemStack(Blocks.STONECUTTER), blockCuttingCategory.getUid()); registration.addRecipeCatalyst(new ItemStack(Blocks.STONECUTTER), blockCuttingCategory.getUid());
registration.addRecipeCatalyst(new ItemStack(AllBlocks.MECHANICAL_PRESS.get()), packingCategory.getUid()); registration.addRecipeCatalyst(new ItemStack(AllBlocks.MECHANICAL_PRESS.get()), packingCategory.getUid());
registration.addRecipeCatalyst(new ItemStack(AllBlocks.BASIN.get()), packingCategory.getUid()); registration.addRecipeCatalyst(new ItemStack(AllBlocks.BASIN.get()), packingCategory.getUid());
registration.addRecipeCatalyst(AllItems.SAND_PAPER.asStack(), polishingCategory.getUid()); registration.addRecipeCatalyst(AllItemsNew.SAND_PAPER.asStack(), polishingCategory.getUid());
registration.addRecipeCatalyst(AllItems.RED_SAND_PAPER.asStack(), polishingCategory.getUid()); registration.addRecipeCatalyst(AllItemsNew.RED_SAND_PAPER.asStack(), polishingCategory.getUid());
registration registration
.addRecipeCatalyst(new ItemStack(AllBlocks.MECHANICAL_CRAFTER.get()), .addRecipeCatalyst(new ItemStack(AllBlocks.MECHANICAL_CRAFTER.get()),
mechanicalCraftingCategory.getUid()); mechanicalCraftingCategory.getUid());

View file

@ -1,7 +1,7 @@
package com.simibubi.create.compat.jei.category; package com.simibubi.create.compat.jei.category;
import com.mojang.blaze3d.systems.RenderSystem; import com.mojang.blaze3d.systems.RenderSystem;
import com.simibubi.create.AllItems; import com.simibubi.create.AllItemsNew;
import com.simibubi.create.foundation.gui.GuiGameElement; import com.simibubi.create.foundation.gui.GuiGameElement;
import net.minecraft.fluid.Fluids; import net.minecraft.fluid.Fluids;
@ -11,7 +11,7 @@ import net.minecraft.item.crafting.AbstractCookingRecipe;
public class BlastingViaFanCategory extends ProcessingViaFanCategory<AbstractCookingRecipe> { public class BlastingViaFanCategory extends ProcessingViaFanCategory<AbstractCookingRecipe> {
public BlastingViaFanCategory() { public BlastingViaFanCategory() {
super("blasting_via_fan", doubleItemIcon(AllItems.PROPELLER.get(), Items.LAVA_BUCKET)); super("blasting_via_fan", doubleItemIcon(AllItemsNew.PROPELLER.get(), Items.LAVA_BUCKET));
} }
@Override @Override

View file

@ -8,7 +8,7 @@ import java.util.List;
import java.util.stream.Collectors; import java.util.stream.Collectors;
import com.mojang.blaze3d.systems.RenderSystem; import com.mojang.blaze3d.systems.RenderSystem;
import com.simibubi.create.AllItems; import com.simibubi.create.AllItemsNew;
import com.simibubi.create.compat.jei.ScreenResourceWrapper; import com.simibubi.create.compat.jei.ScreenResourceWrapper;
import com.simibubi.create.content.curiosities.zapper.blockzapper.BlockzapperUpgradeRecipe; import com.simibubi.create.content.curiosities.zapper.blockzapper.BlockzapperUpgradeRecipe;
import com.simibubi.create.foundation.gui.GuiGameElement; import com.simibubi.create.foundation.gui.GuiGameElement;
@ -29,7 +29,7 @@ import net.minecraft.util.text.ITextComponent;
public class BlockzapperUpgradeCategory extends CreateRecipeCategory<BlockzapperUpgradeRecipe> { public class BlockzapperUpgradeCategory extends CreateRecipeCategory<BlockzapperUpgradeRecipe> {
public BlockzapperUpgradeCategory() { public BlockzapperUpgradeCategory() {
super("blockzapper_upgrade", itemIcon(AllItems.PLACEMENT_HANDGUN.get()), super("blockzapper_upgrade", itemIcon(AllItemsNew.BLOCKZAPPER.get()),
new ScreenResourceWrapper(BLOCKZAPPER_UPGRADE_RECIPE)); new ScreenResourceWrapper(BLOCKZAPPER_UPGRADE_RECIPE));
} }

View file

@ -4,7 +4,7 @@ import java.util.Arrays;
import java.util.List; import java.util.List;
import com.simibubi.create.AllBlocks; import com.simibubi.create.AllBlocks;
import com.simibubi.create.AllItems; import com.simibubi.create.AllItemsNew;
import com.simibubi.create.compat.jei.category.animations.AnimatedCrushingWheels; import com.simibubi.create.compat.jei.category.animations.AnimatedCrushingWheels;
import com.simibubi.create.content.contraptions.components.crusher.AbstractCrushingRecipe; import com.simibubi.create.content.contraptions.components.crusher.AbstractCrushingRecipe;
import com.simibubi.create.content.contraptions.processing.ProcessingOutput; import com.simibubi.create.content.contraptions.processing.ProcessingOutput;
@ -20,7 +20,7 @@ public class CrushingCategory extends CreateRecipeCategory<AbstractCrushingRecip
private AnimatedCrushingWheels crushingWheels = new AnimatedCrushingWheels(); private AnimatedCrushingWheels crushingWheels = new AnimatedCrushingWheels();
public CrushingCategory() { public CrushingCategory() {
super("crushing", doubleItemIcon(AllBlocks.CRUSHING_WHEEL.get(), AllItems.CRUSHED_GOLD.get()), super("crushing", doubleItemIcon(AllBlocks.CRUSHING_WHEEL.get(), AllItemsNew.CRUSHED_GOLD.get()),
emptyBackground(177, 100)); emptyBackground(177, 100));
} }

View file

@ -4,7 +4,7 @@ import java.util.Arrays;
import java.util.List; import java.util.List;
import com.simibubi.create.AllBlocks; import com.simibubi.create.AllBlocks;
import com.simibubi.create.AllItems; import com.simibubi.create.AllItemsNew;
import com.simibubi.create.compat.jei.category.animations.AnimatedMillstone; import com.simibubi.create.compat.jei.category.animations.AnimatedMillstone;
import com.simibubi.create.content.contraptions.components.crusher.AbstractCrushingRecipe; import com.simibubi.create.content.contraptions.components.crusher.AbstractCrushingRecipe;
import com.simibubi.create.content.contraptions.processing.ProcessingOutput; import com.simibubi.create.content.contraptions.processing.ProcessingOutput;
@ -20,7 +20,8 @@ public class MillingCategory extends CreateRecipeCategory<AbstractCrushingRecipe
private AnimatedMillstone millstone = new AnimatedMillstone(); private AnimatedMillstone millstone = new AnimatedMillstone();
public MillingCategory() { public MillingCategory() {
super("milling", doubleItemIcon(AllBlocks.MILLSTONE.get(), AllItems.FLOUR.get()), emptyBackground(177, 53)); super("milling", doubleItemIcon(AllBlocks.MILLSTONE.get(), AllItemsNew.WHEAT_FLOUR.get()),
emptyBackground(177, 53));
} }
@Override @Override
@ -38,7 +39,9 @@ public class MillingCategory extends CreateRecipeCategory<AbstractCrushingRecipe
public void setRecipe(IRecipeLayout recipeLayout, AbstractCrushingRecipe recipe, IIngredients ingredients) { public void setRecipe(IRecipeLayout recipeLayout, AbstractCrushingRecipe recipe, IIngredients ingredients) {
IGuiItemStackGroup itemStacks = recipeLayout.getItemStacks(); IGuiItemStackGroup itemStacks = recipeLayout.getItemStacks();
itemStacks.init(0, true, 14, 8); itemStacks.init(0, true, 14, 8);
itemStacks.set(0, Arrays.asList(recipe.getIngredients().get(0).getMatchingStacks())); itemStacks.set(0, Arrays.asList(recipe.getIngredients()
.get(0)
.getMatchingStacks()));
List<ProcessingOutput> results = recipe.getRollableResults(); List<ProcessingOutput> results = recipe.getRollableResults();
boolean single = results.size() == 1; boolean single = results.size() == 1;
@ -47,7 +50,8 @@ public class MillingCategory extends CreateRecipeCategory<AbstractCrushingRecipe
int yOffset = (outputIndex / 2) * -19; int yOffset = (outputIndex / 2) * -19;
itemStacks.init(outputIndex + 1, false, single ? 139 : 133 + xOffset, 27 + yOffset); itemStacks.init(outputIndex + 1, false, single ? 139 : 133 + xOffset, 27 + yOffset);
itemStacks.set(outputIndex + 1, results.get(outputIndex).getStack()); itemStacks.set(outputIndex + 1, results.get(outputIndex)
.getStack());
} }
addStochasticTooltip(itemStacks, results); addStochasticTooltip(itemStacks, results);
@ -55,7 +59,8 @@ public class MillingCategory extends CreateRecipeCategory<AbstractCrushingRecipe
@Override @Override
public void draw(AbstractCrushingRecipe recipe, double mouseX, double mouseY) { public void draw(AbstractCrushingRecipe recipe, double mouseX, double mouseY) {
int size = recipe.getPossibleOutputs().size(); int size = recipe.getPossibleOutputs()
.size();
AllGuiTextures.JEI_SLOT.draw(14, 8); AllGuiTextures.JEI_SLOT.draw(14, 8);
AllGuiTextures.JEI_ARROW.draw(85, 32); AllGuiTextures.JEI_ARROW.draw(85, 32);

View file

@ -4,7 +4,7 @@ import java.util.ArrayList;
import java.util.Arrays; import java.util.Arrays;
import java.util.List; import java.util.List;
import com.simibubi.create.AllItems; import com.simibubi.create.AllItemsNew;
import com.simibubi.create.compat.jei.ConversionRecipe; import com.simibubi.create.compat.jei.ConversionRecipe;
import com.simibubi.create.content.contraptions.processing.ProcessingOutput; import com.simibubi.create.content.contraptions.processing.ProcessingOutput;
import com.simibubi.create.foundation.gui.AllGuiTextures; import com.simibubi.create.foundation.gui.AllGuiTextures;
@ -18,13 +18,13 @@ public class MysteriousItemConversionCategory extends CreateRecipeCategory<Conve
public static List<ConversionRecipe> getRecipes() { public static List<ConversionRecipe> getRecipes() {
List<ConversionRecipe> recipes = new ArrayList<>(); List<ConversionRecipe> recipes = new ArrayList<>();
recipes.add(ConversionRecipe.create(AllItems.CHROMATIC_COMPOUND.asStack(), AllItems.SHADOW_STEEL.asStack())); recipes.add(ConversionRecipe.create(AllItemsNew.CHROMATIC_COMPOUND.asStack(), AllItemsNew.SHADOW_STEEL.asStack()));
recipes.add(ConversionRecipe.create(AllItems.CHROMATIC_COMPOUND.asStack(), AllItems.REFINED_RADIANCE.asStack())); recipes.add(ConversionRecipe.create(AllItemsNew.CHROMATIC_COMPOUND.asStack(), AllItemsNew.REFINED_RADIANCE.asStack()));
return recipes; return recipes;
} }
public MysteriousItemConversionCategory() { public MysteriousItemConversionCategory() {
super("mystery_conversion", itemIcon(AllItems.CHROMATIC_COMPOUND.get()), emptyBackground(177, 50)); super("mystery_conversion", itemIcon(AllItemsNew.CHROMATIC_COMPOUND.get()), emptyBackground(177, 50));
} }
@Override @Override

View file

@ -4,7 +4,7 @@ import java.util.Arrays;
import java.util.List; import java.util.List;
import com.mojang.blaze3d.systems.RenderSystem; import com.mojang.blaze3d.systems.RenderSystem;
import com.simibubi.create.AllItems; import com.simibubi.create.AllItemsNew;
import com.simibubi.create.content.contraptions.processing.ProcessingOutput; import com.simibubi.create.content.contraptions.processing.ProcessingOutput;
import com.simibubi.create.content.curiosities.tools.SandPaperPolishingRecipe; import com.simibubi.create.content.curiosities.tools.SandPaperPolishingRecipe;
import com.simibubi.create.foundation.gui.AllGuiTextures; import com.simibubi.create.foundation.gui.AllGuiTextures;
@ -25,8 +25,8 @@ public class PolishingCategory extends CreateRecipeCategory<SandPaperPolishingRe
private ItemStack renderedSandpaper; private ItemStack renderedSandpaper;
public PolishingCategory() { public PolishingCategory() {
super("sandpaper_polishing", itemIcon(AllItems.SAND_PAPER.get()), emptyBackground(177, 55)); super("sandpaper_polishing", itemIcon(AllItemsNew.SAND_PAPER.get()), emptyBackground(177, 55));
renderedSandpaper = AllItems.SAND_PAPER.asStack(); renderedSandpaper = AllItemsNew.SAND_PAPER.asStack();
} }
@Override @Override

View file

@ -4,7 +4,7 @@ import java.util.Arrays;
import java.util.List; import java.util.List;
import com.simibubi.create.AllBlocks; import com.simibubi.create.AllBlocks;
import com.simibubi.create.AllItems; import com.simibubi.create.AllItemsNew;
import com.simibubi.create.compat.jei.category.animations.AnimatedPress; import com.simibubi.create.compat.jei.category.animations.AnimatedPress;
import com.simibubi.create.content.contraptions.components.press.PressingRecipe; import com.simibubi.create.content.contraptions.components.press.PressingRecipe;
import com.simibubi.create.content.contraptions.processing.ProcessingOutput; import com.simibubi.create.content.contraptions.processing.ProcessingOutput;
@ -20,7 +20,7 @@ public class PressingCategory extends CreateRecipeCategory<PressingRecipe> {
private AnimatedPress press = new AnimatedPress(false); private AnimatedPress press = new AnimatedPress(false);
public PressingCategory() { public PressingCategory() {
super("pressing", doubleItemIcon(AllBlocks.MECHANICAL_PRESS.get(), AllItems.IRON_SHEET.get()), super("pressing", doubleItemIcon(AllBlocks.MECHANICAL_PRESS.get(), AllItemsNew.IRON_SHEET.get()),
emptyBackground(177, 70)); emptyBackground(177, 70));
} }

View file

@ -1,6 +1,6 @@
package com.simibubi.create.compat.jei.category; package com.simibubi.create.compat.jei.category;
import com.simibubi.create.AllItems; import com.simibubi.create.AllItemsNew;
import com.simibubi.create.foundation.gui.GuiGameElement; import com.simibubi.create.foundation.gui.GuiGameElement;
import net.minecraft.block.Blocks; import net.minecraft.block.Blocks;
@ -10,7 +10,7 @@ import net.minecraft.item.crafting.SmokingRecipe;
public class SmokingViaFanCategory extends ProcessingViaFanCategory<SmokingRecipe> { public class SmokingViaFanCategory extends ProcessingViaFanCategory<SmokingRecipe> {
public SmokingViaFanCategory() { public SmokingViaFanCategory() {
super("smoking_via_fan", doubleItemIcon(AllItems.PROPELLER.get(), Items.BLAZE_POWDER)); super("smoking_via_fan", doubleItemIcon(AllItemsNew.PROPELLER.get(), Items.BLAZE_POWDER));
} }
@Override @Override

View file

@ -4,7 +4,7 @@ import java.util.Arrays;
import java.util.List; import java.util.List;
import com.mojang.blaze3d.systems.RenderSystem; import com.mojang.blaze3d.systems.RenderSystem;
import com.simibubi.create.AllItems; import com.simibubi.create.AllItemsNew;
import com.simibubi.create.content.contraptions.components.fan.SplashingRecipe; import com.simibubi.create.content.contraptions.components.fan.SplashingRecipe;
import com.simibubi.create.content.contraptions.processing.ProcessingOutput; import com.simibubi.create.content.contraptions.processing.ProcessingOutput;
import com.simibubi.create.foundation.gui.AllGuiTextures; import com.simibubi.create.foundation.gui.AllGuiTextures;
@ -20,7 +20,7 @@ import net.minecraft.item.Items;
public class SplashingCategory extends ProcessingViaFanCategory<SplashingRecipe> { public class SplashingCategory extends ProcessingViaFanCategory<SplashingRecipe> {
public SplashingCategory() { public SplashingCategory() {
super("splashing", doubleItemIcon(AllItems.PROPELLER.get(), Items.WATER_BUCKET)); super("splashing", doubleItemIcon(AllItemsNew.PROPELLER.get(), Items.WATER_BUCKET));
} }
@Override @Override

View file

@ -1,6 +1,5 @@
package com.simibubi.create.content; package com.simibubi.create.content;
import com.simibubi.create.AllItems;
import com.simibubi.create.Create; import com.simibubi.create.Create;
import com.simibubi.create.foundation.item.ItemDescription.Palette; import com.simibubi.create.foundation.item.ItemDescription.Palette;
@ -52,14 +51,13 @@ public enum AllSections {
} }
static AllSections ofItem(Item item) { static AllSections ofItem(Item item) {
for (AllItems allItems : AllItems.values()) return Create.registrate()
if (allItems.get() == item) .getSection(item);
return allItems.section;
return UNASSIGNED;
} }
static AllSections ofBlock(Block block) { static AllSections ofBlock(Block block) {
return Create.registrate().getSection(block); return Create.registrate()
.getSection(block);
} }
} }

View file

@ -1,29 +1,29 @@
package com.simibubi.create.content.contraptions; package com.simibubi.create.content.contraptions;
import com.mojang.blaze3d.matrix.MatrixStack; import com.simibubi.create.CreateClient;
import com.mojang.blaze3d.vertex.IVertexBuilder;
import com.simibubi.create.content.contraptions.base.IRotate; import com.simibubi.create.content.contraptions.base.IRotate;
import com.simibubi.create.content.contraptions.base.KineticTileEntity; import com.simibubi.create.content.contraptions.base.KineticTileEntity;
import com.simibubi.create.foundation.config.AllConfigs; import com.simibubi.create.foundation.config.AllConfigs;
import com.simibubi.create.foundation.utility.ColorHelper;
import com.simibubi.create.foundation.utility.VecHelper;
import net.minecraft.block.BlockState; import net.minecraft.block.BlockState;
import net.minecraft.client.Minecraft; import net.minecraft.client.Minecraft;
import net.minecraft.client.renderer.IRenderTypeBuffer;
import net.minecraft.client.renderer.RenderType;
import net.minecraft.client.renderer.WorldRenderer;
import net.minecraft.client.world.ClientWorld; import net.minecraft.client.world.ClientWorld;
import net.minecraft.tileentity.TileEntity; import net.minecraft.tileentity.TileEntity;
import net.minecraft.util.Direction;
import net.minecraft.util.Direction.Axis; import net.minecraft.util.Direction.Axis;
import net.minecraft.util.Direction.AxisDirection;
import net.minecraft.util.math.BlockPos; import net.minecraft.util.math.BlockPos;
import net.minecraft.util.math.BlockRayTraceResult; import net.minecraft.util.math.BlockRayTraceResult;
import net.minecraft.util.math.RayTraceResult; import net.minecraft.util.math.RayTraceResult;
import net.minecraft.util.math.Vec3i; import net.minecraft.util.math.Vec3d;
import net.minecraft.util.math.shapes.VoxelShape; import net.minecraft.util.math.shapes.VoxelShape;
import net.minecraft.world.World; import net.minecraft.world.World;
public class KineticDebugger { public class KineticDebugger {
public static void renderSourceOutline(MatrixStack ms, IRenderTypeBuffer buffer) { public static void tick() {
if (!isActive()) if (!isActive())
return; return;
KineticTileEntity te = getSelectedTE(); KineticTileEntity te = getSelectedTE();
@ -33,39 +33,24 @@ public class KineticDebugger {
World world = Minecraft.getInstance().world; World world = Minecraft.getInstance().world;
BlockPos toOutline = te.hasSource() ? te.source : te.getPos(); BlockPos toOutline = te.hasSource() ? te.source : te.getPos();
BlockState state = te.getBlockState(); BlockState state = te.getBlockState();
VoxelShape shape = world.getBlockState(toOutline).getShape(world, toOutline); VoxelShape shape = world.getBlockState(toOutline)
.getRenderShape(world, toOutline);
IVertexBuilder vb = buffer.getBuffer(RenderType.getLines()); if (te.getTheoreticalSpeed() != 0)
CreateClient.outliner.chaseAABB("kineticSource", shape.getBoundingBox()
ms.push(); .offset(toOutline))
ms.translate(toOutline.getX(), toOutline.getY(), toOutline.getZ()); .lineWidth(1 / 16f)
float f = 1 + 1 / 128f; .colored(te.hasSource() ? ColorHelper.colorFromLong(te.network) : 0xffcc00);
ms.scale(f, f, f);
WorldRenderer.func_228431_a_(ms, vb, shape, 0, 0, 0, te.hasSource() ? .5f : 1, .75f, .75f, 1);
Vec3i offset = te.getPos().subtract(toOutline);
ms.translate(offset.getX(), offset.getY(), offset.getZ());
if (state.getBlock() instanceof IRotate) { if (state.getBlock() instanceof IRotate) {
Axis axis = ((IRotate)state.getBlock()).getRotationAxis(state); Axis axis = ((IRotate) state.getBlock()).getRotationAxis(state);
switch (axis) { Vec3d vec = new Vec3d(Direction.getFacingFromAxis(AxisDirection.POSITIVE, axis)
case X: .getDirectionVec());
vb.vertex(ms.peek().getModel(), 0, 0.5f, 0.5f).color(1f, 1f, 1f, 1f).endVertex(); Vec3d center = VecHelper.getCenterOf(te.getPos());
vb.vertex(ms.peek().getModel(), 1, 0.5f, 0.5f).color(1f, 1f, 1f, 1f).endVertex(); CreateClient.outliner.showLine("rotationAxis", center.add(vec), center.subtract(vec))
break; .lineWidth(1 / 16f);
case Y:
vb.vertex(ms.peek().getModel(), 0.5f, 0, 0.5f).color(1f, 1f, 1f, 1f).endVertex();
vb.vertex(ms.peek().getModel(), 0.5f, 1, 0.5f).color(1f, 1f, 1f, 1f).endVertex();
break;
case Z:
vb.vertex(ms.peek().getModel(), 0.5f, 0.5f, 0).color(1f, 1f, 1f, 1f).endVertex();
vb.vertex(ms.peek().getModel(), 0.5f, 0.5f, 1).color(1f, 1f, 1f, 1f).endVertex();
break;
}
} }
ms.pop();
} }
public static boolean isActive() { public static boolean isActive() {

View file

@ -1,7 +1,7 @@
package com.simibubi.create.content.contraptions.components.crafter; package com.simibubi.create.content.contraptions.components.crafter;
import com.simibubi.create.AllBlocks; import com.simibubi.create.AllBlocks;
import com.simibubi.create.AllItems; import com.simibubi.create.AllItemsNew;
import com.simibubi.create.content.contraptions.base.HorizontalKineticBlock; import com.simibubi.create.content.contraptions.base.HorizontalKineticBlock;
import com.simibubi.create.content.contraptions.components.crafter.ConnectedInputHandler.ConnectedInput; import com.simibubi.create.content.contraptions.components.crafter.ConnectedInputHandler.ConnectedInput;
import com.simibubi.create.content.contraptions.components.crafter.MechanicalCrafterTileEntity.Phase; import com.simibubi.create.content.contraptions.components.crafter.MechanicalCrafterTileEntity.Phase;
@ -109,7 +109,7 @@ public class MechanicalCrafterBlock extends HorizontalKineticBlock implements IT
MechanicalCrafterTileEntity crafter = CrafterHelper.getCrafter(worldIn, pos); MechanicalCrafterTileEntity crafter = CrafterHelper.getCrafter(worldIn, pos);
if (crafter != null) { if (crafter != null) {
if (crafter.covered) if (crafter.covered)
Block.spawnAsEntity(worldIn, pos, AllItems.SLOT_COVER.asStack()); Block.spawnAsEntity(worldIn, pos, AllItemsNew.CRAFTER_SLOT_COVER.asStack());
crafter.ejectWholeGrid(); crafter.ejectWholeGrid();
} }
@ -172,7 +172,7 @@ public class MechanicalCrafterBlock extends HorizontalKineticBlock implements IT
if (!(te instanceof MechanicalCrafterTileEntity)) if (!(te instanceof MechanicalCrafterTileEntity))
return ActionResultType.PASS; return ActionResultType.PASS;
MechanicalCrafterTileEntity crafter = (MechanicalCrafterTileEntity) te; MechanicalCrafterTileEntity crafter = (MechanicalCrafterTileEntity) te;
boolean wrenched = AllItems.WRENCH.typeOf(heldItem); boolean wrenched = AllItemsNew.typeOf(AllItemsNew.WRENCH, heldItem);
if (hit.getFace() == state.get(HORIZONTAL_FACING)) { if (hit.getFace() == state.get(HORIZONTAL_FACING)) {
@ -185,7 +185,7 @@ public class MechanicalCrafterBlock extends HorizontalKineticBlock implements IT
if (worldIn.isRemote) if (worldIn.isRemote)
return ActionResultType.SUCCESS; return ActionResultType.SUCCESS;
if (AllItems.SLOT_COVER.typeOf(heldItem)) { if (AllItemsNew.typeOf(AllItemsNew.CRAFTER_SLOT_COVER, heldItem)) {
if (crafter.covered) if (crafter.covered)
return ActionResultType.PASS; return ActionResultType.PASS;
crafter.covered = true; crafter.covered = true;
@ -216,7 +216,7 @@ public class MechanicalCrafterBlock extends HorizontalKineticBlock implements IT
crafter.markDirty(); crafter.markDirty();
crafter.sendData(); crafter.sendData();
if (!player.isCreative()) if (!player.isCreative())
player.inventory.placeItemBackInInventory(worldIn, AllItems.SLOT_COVER.asStack()); player.inventory.placeItemBackInInventory(worldIn, AllItemsNew.CRAFTER_SLOT_COVER.asStack());
return ActionResultType.SUCCESS; return ActionResultType.SUCCESS;
} }
return ActionResultType.PASS; return ActionResultType.PASS;
@ -233,11 +233,6 @@ public class MechanicalCrafterBlock extends HorizontalKineticBlock implements IT
return ActionResultType.PASS; return ActionResultType.PASS;
} }
// @Override // TODO 1.15 register layer
// public BlockRenderLayer getRenderLayer() {
// return BlockRenderLayer.CUTOUT_MIPPED;
// }
@Override @Override
public float getParticleTargetRadius() { public float getParticleTargetRadius() {
return .85f; return .85f;

View file

@ -9,7 +9,7 @@ import java.util.List;
import org.apache.commons.lang3.tuple.Pair; import org.apache.commons.lang3.tuple.Pair;
import com.simibubi.create.AllBlocks; import com.simibubi.create.AllBlocks;
import com.simibubi.create.AllItems; import com.simibubi.create.AllItemsNew;
import com.simibubi.create.AllTileEntities; import com.simibubi.create.AllTileEntities;
import com.simibubi.create.content.contraptions.base.KineticTileEntity; 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.ConnectedInputHandler.ConnectedInput;
@ -98,7 +98,7 @@ public class MechanicalCrafterTileEntity extends KineticTileEntity {
inserting = new InsertingBehaviour(this, Attachments.toward(this::getTargetFacing)); inserting = new InsertingBehaviour(this, Attachments.toward(this::getTargetFacing));
connectivity = new EdgeInteractionBehaviour(this, ConnectedInputHandler::toggleConnection) connectivity = new EdgeInteractionBehaviour(this, ConnectedInputHandler::toggleConnection)
.connectivity(ConnectedInputHandler::shouldConnect) .connectivity(ConnectedInputHandler::shouldConnect)
.require(AllItems.WRENCH.get()); .require(AllItemsNew.WRENCH.get());
behaviours.add(inserting); behaviours.add(inserting);
behaviours.add(connectivity); behaviours.add(connectivity);
} }

View file

@ -172,11 +172,6 @@ public class CrushingWheelBlock extends RotatedPillarKineticBlock implements ITE
return face.getAxis() == state.get(AXIS); return face.getAxis() == state.get(AXIS);
} }
// @Override // TODO 1.15 register layer
// public BlockRenderLayer getRenderLayer() {
// return BlockRenderLayer.CUTOUT;
// }
@Override @Override
protected boolean hasStaticPart() { protected boolean hasStaticPart() {
return false; return false;

View file

@ -1,6 +1,6 @@
package com.simibubi.create.content.contraptions.components.deployer; package com.simibubi.create.content.contraptions.components.deployer;
import com.simibubi.create.AllItems; import com.simibubi.create.AllItemsNew;
import com.simibubi.create.AllShapes; import com.simibubi.create.AllShapes;
import com.simibubi.create.content.contraptions.base.DirectionalAxisKineticBlock; import com.simibubi.create.content.contraptions.base.DirectionalAxisKineticBlock;
import com.simibubi.create.content.contraptions.components.structureMovement.IPortableBlock; import com.simibubi.create.content.contraptions.components.structureMovement.IPortableBlock;
@ -24,8 +24,7 @@ import net.minecraft.util.math.shapes.VoxelShape;
import net.minecraft.world.IBlockReader; import net.minecraft.world.IBlockReader;
import net.minecraft.world.World; import net.minecraft.world.World;
public class DeployerBlock extends DirectionalAxisKineticBlock public class DeployerBlock extends DirectionalAxisKineticBlock implements ITE<DeployerTileEntity>, IPortableBlock {
implements ITE<DeployerTileEntity>, IPortableBlock {
public static MovementBehaviour MOVEMENT = new DeployerMovementBehaviour(); public static MovementBehaviour MOVEMENT = new DeployerMovementBehaviour();
@ -82,9 +81,10 @@ public class DeployerBlock extends DirectionalAxisKineticBlock
@Override @Override
public ActionResultType onUse(BlockState state, World worldIn, BlockPos pos, PlayerEntity player, Hand handIn, public ActionResultType onUse(BlockState state, World worldIn, BlockPos pos, PlayerEntity player, Hand handIn,
BlockRayTraceResult hit) { BlockRayTraceResult hit) {
ItemStack heldByPlayer = player.getHeldItem(handIn).copy(); ItemStack heldByPlayer = player.getHeldItem(handIn)
if (AllItems.WRENCH.typeOf(heldByPlayer)) .copy();
if (AllItemsNew.typeOf(AllItemsNew.WRENCH, heldByPlayer))
return ActionResultType.PASS; return ActionResultType.PASS;
if (hit.getFace() != state.get(FACING)) if (hit.getFace() != state.get(FACING))
@ -93,7 +93,8 @@ public class DeployerBlock extends DirectionalAxisKineticBlock
return ActionResultType.SUCCESS; return ActionResultType.SUCCESS;
withTileEntityDo(worldIn, pos, te -> { withTileEntityDo(worldIn, pos, te -> {
ItemStack heldByDeployer = te.player.getHeldItemMainhand().copy(); ItemStack heldByDeployer = te.player.getHeldItemMainhand()
.copy();
if (heldByDeployer.isEmpty() && heldByPlayer.isEmpty()) if (heldByDeployer.isEmpty() && heldByPlayer.isEmpty())
return; return;

View file

@ -67,11 +67,6 @@ public class EncasedFanBlock extends DirectionalKineticBlock implements ITE<Enca
return newState; return newState;
} }
// @Override // TODO 1.15 register layer
// public BlockRenderLayer getRenderLayer() {
// return BlockRenderLayer.CUTOUT;
// }
@Override @Override
public Axis getRotationAxis(BlockState state) { public Axis getRotationAxis(BlockState state) {
return state.get(FACING).getAxis(); return state.get(FACING).getAxis();

View file

@ -1,6 +1,6 @@
package com.simibubi.create.content.contraptions.components.fan; package com.simibubi.create.content.contraptions.components.fan;
import com.simibubi.create.AllBlockTags; import com.simibubi.create.AllTags.AllBlockTags;
import com.simibubi.create.AllTileEntities; import com.simibubi.create.AllTileEntities;
import com.simibubi.create.content.contraptions.base.GeneratingKineticTileEntity; import com.simibubi.create.content.contraptions.base.GeneratingKineticTileEntity;
import com.simibubi.create.foundation.config.AllConfigs; import com.simibubi.create.foundation.config.AllConfigs;

View file

@ -45,11 +45,6 @@ public class MechanicalMixerBlock extends KineticBlock implements ITE<Mechanical
return AllShapes.MECHANICAL_PROCESSOR_SHAPE; return AllShapes.MECHANICAL_PROCESSOR_SHAPE;
} }
// @Override // TODO 1.15 register layer
// public BlockRenderLayer getRenderLayer() {
// return BlockRenderLayer.CUTOUT_MIPPED;
// }
@Override @Override
public Axis getRotationAxis(BlockState state) { public Axis getRotationAxis(BlockState state) {
return Axis.Y; return Axis.Y;

View file

@ -6,10 +6,10 @@ import java.util.LinkedList;
import java.util.List; import java.util.List;
import com.simibubi.create.AllRecipeTypes; import com.simibubi.create.AllRecipeTypes;
import com.simibubi.create.content.contraptions.processing.BasinTileEntity.BasinInputInventory;
import com.simibubi.create.content.contraptions.processing.ProcessingIngredient; import com.simibubi.create.content.contraptions.processing.ProcessingIngredient;
import com.simibubi.create.content.contraptions.processing.ProcessingOutput; import com.simibubi.create.content.contraptions.processing.ProcessingOutput;
import com.simibubi.create.content.contraptions.processing.ProcessingRecipe; import com.simibubi.create.content.contraptions.processing.ProcessingRecipe;
import com.simibubi.create.content.contraptions.processing.BasinTileEntity.BasinInputInventory;
import net.minecraft.item.ItemStack; import net.minecraft.item.ItemStack;
import net.minecraft.item.crafting.IRecipe; import net.minecraft.item.crafting.IRecipe;

View file

@ -8,11 +8,11 @@ import com.simibubi.create.AllBlocks;
import com.simibubi.create.AllShapes; import com.simibubi.create.AllShapes;
import com.simibubi.create.content.contraptions.base.HorizontalKineticBlock; import com.simibubi.create.content.contraptions.base.HorizontalKineticBlock;
import com.simibubi.create.content.contraptions.components.press.MechanicalPressTileEntity.Mode; import com.simibubi.create.content.contraptions.components.press.MechanicalPressTileEntity.Mode;
import com.simibubi.create.content.contraptions.relays.belt.BeltBlock;
import com.simibubi.create.content.contraptions.relays.belt.BeltTileEntity;
import com.simibubi.create.content.contraptions.relays.belt.AllBeltAttachments.BeltAttachmentState; import com.simibubi.create.content.contraptions.relays.belt.AllBeltAttachments.BeltAttachmentState;
import com.simibubi.create.content.contraptions.relays.belt.AllBeltAttachments.IBeltAttachment; import com.simibubi.create.content.contraptions.relays.belt.AllBeltAttachments.IBeltAttachment;
import com.simibubi.create.content.contraptions.relays.belt.BeltBlock;
import com.simibubi.create.content.contraptions.relays.belt.BeltBlock.Slope; import com.simibubi.create.content.contraptions.relays.belt.BeltBlock.Slope;
import com.simibubi.create.content.contraptions.relays.belt.BeltTileEntity;
import com.simibubi.create.content.contraptions.relays.belt.transport.TransportedItemStack; import com.simibubi.create.content.contraptions.relays.belt.transport.TransportedItemStack;
import com.simibubi.create.foundation.block.ITE; import com.simibubi.create.foundation.block.ITE;
import com.simibubi.create.foundation.item.ItemHelper; import com.simibubi.create.foundation.item.ItemHelper;

View file

@ -15,9 +15,9 @@ import com.simibubi.create.content.contraptions.components.structureMovement.cha
import com.simibubi.create.content.contraptions.components.structureMovement.piston.MechanicalPistonBlock; import com.simibubi.create.content.contraptions.components.structureMovement.piston.MechanicalPistonBlock;
import com.simibubi.create.content.contraptions.components.structureMovement.piston.MechanicalPistonBlock.PistonState; import com.simibubi.create.content.contraptions.components.structureMovement.piston.MechanicalPistonBlock.PistonState;
import com.simibubi.create.content.contraptions.components.structureMovement.pulley.PulleyBlock; import com.simibubi.create.content.contraptions.components.structureMovement.pulley.PulleyBlock;
import com.simibubi.create.content.contraptions.components.structureMovement.pulley.PulleyTileEntity;
import com.simibubi.create.content.contraptions.components.structureMovement.pulley.PulleyBlock.MagnetBlock; import com.simibubi.create.content.contraptions.components.structureMovement.pulley.PulleyBlock.MagnetBlock;
import com.simibubi.create.content.contraptions.components.structureMovement.pulley.PulleyBlock.RopeBlock; import com.simibubi.create.content.contraptions.components.structureMovement.pulley.PulleyBlock.RopeBlock;
import com.simibubi.create.content.contraptions.components.structureMovement.pulley.PulleyTileEntity;
import com.simibubi.create.content.logistics.block.AttachedLogisticalBlock; import com.simibubi.create.content.logistics.block.AttachedLogisticalBlock;
import com.simibubi.create.content.logistics.block.extractor.ExtractorBlock; import com.simibubi.create.content.logistics.block.extractor.ExtractorBlock;
import com.simibubi.create.content.logistics.block.funnel.FunnelBlock; import com.simibubi.create.content.logistics.block.funnel.FunnelBlock;

View file

@ -10,7 +10,7 @@ import java.util.Map;
import java.util.Set; import java.util.Set;
import com.mojang.datafixers.util.Pair; import com.mojang.datafixers.util.Pair;
import com.simibubi.create.AllItems; import com.simibubi.create.AllItemsNew;
import com.simibubi.create.AllKeys; import com.simibubi.create.AllKeys;
import com.simibubi.create.AllSpecialTextures; import com.simibubi.create.AllSpecialTextures;
import com.simibubi.create.CreateClient; import com.simibubi.create.CreateClient;
@ -90,7 +90,7 @@ public class ChassisRangeDisplay {
public static void tick() { public static void tick() {
PlayerEntity player = Minecraft.getInstance().player; PlayerEntity player = Minecraft.getInstance().player;
World world = Minecraft.getInstance().world; World world = Minecraft.getInstance().world;
boolean hasWrench = AllItems.WRENCH.typeOf(player.getHeldItemMainhand()); boolean hasWrench = AllItemsNew.typeOf(AllItemsNew.WRENCH, player.getHeldItemMainhand());
for (Iterator<BlockPos> iterator = entries.keySet() for (Iterator<BlockPos> iterator = entries.keySet()
.iterator(); iterator.hasNext();) { .iterator(); iterator.hasNext();) {

View file

@ -28,12 +28,12 @@ import com.simibubi.create.content.contraptions.components.structureMovement.cha
import com.simibubi.create.content.contraptions.components.structureMovement.glue.SuperGlueEntity; import com.simibubi.create.content.contraptions.components.structureMovement.glue.SuperGlueEntity;
import com.simibubi.create.content.contraptions.components.structureMovement.glue.SuperGlueHandler; import com.simibubi.create.content.contraptions.components.structureMovement.glue.SuperGlueHandler;
import com.simibubi.create.content.contraptions.components.structureMovement.piston.MechanicalPistonBlock; import com.simibubi.create.content.contraptions.components.structureMovement.piston.MechanicalPistonBlock;
import com.simibubi.create.content.contraptions.components.structureMovement.piston.PistonExtensionPoleBlock;
import com.simibubi.create.content.contraptions.components.structureMovement.piston.MechanicalPistonBlock.PistonState; import com.simibubi.create.content.contraptions.components.structureMovement.piston.MechanicalPistonBlock.PistonState;
import com.simibubi.create.content.contraptions.components.structureMovement.piston.PistonExtensionPoleBlock;
import com.simibubi.create.content.contraptions.components.structureMovement.pulley.PulleyBlock; import com.simibubi.create.content.contraptions.components.structureMovement.pulley.PulleyBlock;
import com.simibubi.create.content.contraptions.components.structureMovement.pulley.PulleyTileEntity;
import com.simibubi.create.content.contraptions.components.structureMovement.pulley.PulleyBlock.MagnetBlock; import com.simibubi.create.content.contraptions.components.structureMovement.pulley.PulleyBlock.MagnetBlock;
import com.simibubi.create.content.contraptions.components.structureMovement.pulley.PulleyBlock.RopeBlock; import com.simibubi.create.content.contraptions.components.structureMovement.pulley.PulleyBlock.RopeBlock;
import com.simibubi.create.content.contraptions.components.structureMovement.pulley.PulleyTileEntity;
import com.simibubi.create.content.contraptions.relays.belt.BeltBlock; import com.simibubi.create.content.contraptions.relays.belt.BeltBlock;
import com.simibubi.create.content.logistics.block.inventories.AdjustableCrateBlock; import com.simibubi.create.content.logistics.block.inventories.AdjustableCrateBlock;
import com.simibubi.create.content.logistics.block.redstone.RedstoneContactBlock; import com.simibubi.create.content.logistics.block.redstone.RedstoneContactBlock;

View file

@ -12,8 +12,8 @@ import org.apache.commons.lang3.tuple.MutablePair;
import com.google.common.collect.ImmutableSet; import com.google.common.collect.ImmutableSet;
import com.simibubi.create.AllEntityTypes; import com.simibubi.create.AllEntityTypes;
import com.simibubi.create.content.contraptions.components.structureMovement.bearing.BearingContraption; import com.simibubi.create.content.contraptions.components.structureMovement.bearing.BearingContraption;
import com.simibubi.create.content.contraptions.components.structureMovement.mounted.MountedContraption;
import com.simibubi.create.content.contraptions.components.structureMovement.mounted.CartAssemblerTileEntity.CartMovementMode; import com.simibubi.create.content.contraptions.components.structureMovement.mounted.CartAssemblerTileEntity.CartMovementMode;
import com.simibubi.create.content.contraptions.components.structureMovement.mounted.MountedContraption;
import com.simibubi.create.content.contraptions.components.structureMovement.piston.LinearActuatorTileEntity; import com.simibubi.create.content.contraptions.components.structureMovement.piston.LinearActuatorTileEntity;
import com.simibubi.create.foundation.item.ItemHelper; import com.simibubi.create.foundation.item.ItemHelper;
import com.simibubi.create.foundation.networking.AllPackets; import com.simibubi.create.foundation.networking.AllPackets;

View file

@ -2,7 +2,7 @@ package com.simibubi.create.content.contraptions.components.structureMovement.be
import org.apache.commons.lang3.tuple.Pair; import org.apache.commons.lang3.tuple.Pair;
import com.simibubi.create.AllBlockTags; import com.simibubi.create.AllTags.AllBlockTags;
import com.simibubi.create.content.contraptions.components.structureMovement.AllContraptionTypes; import com.simibubi.create.content.contraptions.components.structureMovement.AllContraptionTypes;
import com.simibubi.create.content.contraptions.components.structureMovement.Contraption; import com.simibubi.create.content.contraptions.components.structureMovement.Contraption;

View file

@ -1,6 +1,6 @@
package com.simibubi.create.content.contraptions.components.structureMovement.chassis; package com.simibubi.create.content.contraptions.components.structureMovement.chassis;
import com.simibubi.create.AllItems; import com.simibubi.create.AllItemsNew;
import com.simibubi.create.AllSoundEvents; import com.simibubi.create.AllSoundEvents;
import com.simibubi.create.content.contraptions.wrench.IWrenchable; import com.simibubi.create.content.contraptions.wrench.IWrenchable;
@ -42,12 +42,13 @@ public abstract class AbstractChassisBlock extends RotatedPillarBlock implements
@Override @Override
public ActionResultType onUse(BlockState state, World worldIn, BlockPos pos, PlayerEntity player, Hand handIn, public ActionResultType onUse(BlockState state, World worldIn, BlockPos pos, PlayerEntity player, Hand handIn,
BlockRayTraceResult hit) { BlockRayTraceResult hit) {
if (!player.isAllowEdit()) if (!player.isAllowEdit())
return ActionResultType.PASS; return ActionResultType.PASS;
ItemStack heldItem = player.getHeldItem(handIn); ItemStack heldItem = player.getHeldItem(handIn);
boolean isSlimeBall = heldItem.getItem().isIn(Tags.Items.SLIMEBALLS) || AllItems.SUPER_GLUE.typeOf(heldItem); boolean isSlimeBall = heldItem.getItem()
.isIn(Tags.Items.SLIMEBALLS) || AllItemsNew.typeOf(AllItemsNew.SUPER_GLUE, heldItem);
BooleanProperty affectedSide = getGlueableSide(state, hit.getFace()); BooleanProperty affectedSide = getGlueableSide(state, hit.getFace());
if (affectedSide == null) if (affectedSide == null)

View file

@ -5,7 +5,7 @@ import javax.annotation.Nullable;
import org.apache.commons.lang3.Validate; import org.apache.commons.lang3.Validate;
import com.simibubi.create.AllEntityTypes; import com.simibubi.create.AllEntityTypes;
import com.simibubi.create.AllItems; import com.simibubi.create.AllItemsNew;
import com.simibubi.create.AllSoundEvents; import com.simibubi.create.AllSoundEvents;
import com.simibubi.create.content.contraptions.components.structureMovement.BlockMovementTraits; import com.simibubi.create.content.contraptions.components.structureMovement.BlockMovementTraits;
import com.simibubi.create.content.schematics.ISpecialEntityItemRequirement; import com.simibubi.create.content.schematics.ISpecialEntityItemRequirement;
@ -225,7 +225,7 @@ public class SuperGlueEntity extends Entity implements IEntityAdditionalSpawnDat
@Override @Override
public ItemStack getPickedResult(RayTraceResult target) { public ItemStack getPickedResult(RayTraceResult target) {
return AllItems.SUPER_GLUE.asStack(); return AllItemsNew.SUPER_GLUE.asStack();
} }
@Override @Override
@ -386,7 +386,7 @@ public class SuperGlueEntity extends Entity implements IEntityAdditionalSpawnDat
@Override @Override
public ItemRequirement getRequiredItems() { public ItemRequirement getRequiredItems() {
return new ItemRequirement(ItemUseType.DAMAGE, AllItems.SUPER_GLUE.get()); return new ItemRequirement(ItemUseType.DAMAGE, AllItemsNew.SUPER_GLUE.get());
} }
} }

View file

@ -4,7 +4,7 @@ import java.util.HashMap;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
import com.simibubi.create.AllItems; import com.simibubi.create.AllItemsNew;
import com.simibubi.create.foundation.networking.AllPackets; import com.simibubi.create.foundation.networking.AllPackets;
import com.simibubi.create.foundation.utility.worldWrappers.RayTraceWorld; import com.simibubi.create.foundation.utility.worldWrappers.RayTraceWorld;
@ -55,7 +55,7 @@ public class SuperGlueHandler {
Map<Direction, SuperGlueEntity> gatheredGlue = gatherGlue(world, pos); Map<Direction, SuperGlueEntity> gatheredGlue = gatherGlue(world, pos);
for (Direction direction : gatheredGlue.keySet()) for (Direction direction : gatheredGlue.keySet())
AllPackets.channel.send(PacketDistributor.TRACKING_ENTITY_AND_SELF.with(() -> entity), AllPackets.channel.send(PacketDistributor.TRACKING_ENTITY_AND_SELF.with(() -> entity),
new GlueEffectPacket(pos, direction, true)); new GlueEffectPacket(pos, direction, true));
if (entity instanceof PlayerEntity) if (entity instanceof PlayerEntity)
glueInOffHandAppliesOnBlockPlace(event, pos, (PlayerEntity) entity); glueInOffHandAppliesOnBlockPlace(event, pos, (PlayerEntity) entity);
@ -63,10 +63,11 @@ public class SuperGlueHandler {
public static void glueInOffHandAppliesOnBlockPlace(EntityPlaceEvent event, BlockPos pos, PlayerEntity placer) { public static void glueInOffHandAppliesOnBlockPlace(EntityPlaceEvent event, BlockPos pos, PlayerEntity placer) {
ItemStack itemstack = placer.getHeldItemOffhand(); ItemStack itemstack = placer.getHeldItemOffhand();
if (!AllItems.SUPER_GLUE.typeOf(itemstack)) if (!AllItemsNew.typeOf(AllItemsNew.SUPER_GLUE, itemstack))
return; return;
double distance = placer.getAttribute(PlayerEntity.REACH_DISTANCE).getValue(); double distance = placer.getAttribute(PlayerEntity.REACH_DISTANCE)
.getValue();
Vec3d start = placer.getEyePosition(1); Vec3d start = placer.getEyePosition(1);
Vec3d look = placer.getLook(1); Vec3d look = placer.getLook(1);
Vec3d end = start.add(look.x * distance, look.y * distance, look.z * distance); Vec3d end = start.add(look.x * distance, look.y * distance, look.z * distance);
@ -74,14 +75,16 @@ public class SuperGlueHandler {
RayTraceWorld rayTraceWorld = RayTraceWorld rayTraceWorld =
new RayTraceWorld(world, (p, state) -> p.equals(pos) ? Blocks.AIR.getDefaultState() : state); new RayTraceWorld(world, (p, state) -> p.equals(pos) ? Blocks.AIR.getDefaultState() : state);
BlockRayTraceResult ray = rayTraceWorld.rayTraceBlocks(new RayTraceContext(start, end, BlockRayTraceResult ray = rayTraceWorld.rayTraceBlocks(
RayTraceContext.BlockMode.OUTLINE, RayTraceContext.FluidMode.NONE, placer)); new RayTraceContext(start, end, RayTraceContext.BlockMode.OUTLINE, RayTraceContext.FluidMode.NONE, placer));
Direction face = ray.getFace(); Direction face = ray.getFace();
if (ray == null || face == null || ray.getType() == Type.MISS) if (ray == null || face == null || ray.getType() == Type.MISS)
return; return;
if (!ray.getPos().offset(face).equals(pos)) { if (!ray.getPos()
.offset(face)
.equals(pos)) {
event.setCanceled(true); event.setCanceled(true);
return; return;
} }
@ -96,7 +99,7 @@ public class SuperGlueHandler {
entity.playPlaceSound(); entity.playPlaceSound();
world.addEntity(entity); world.addEntity(entity);
AllPackets.channel.send(PacketDistributor.TRACKING_ENTITY_AND_SELF.with(() -> entity), AllPackets.channel.send(PacketDistributor.TRACKING_ENTITY_AND_SELF.with(() -> entity),
new GlueEffectPacket(ray.getPos(), face, true)); new GlueEffectPacket(ray.getPos(), face, true));
} }
itemstack.damageItem(1, placer, SuperGlueItem::onBroken); itemstack.damageItem(1, placer, SuperGlueItem::onBroken);
} }

View file

@ -1,9 +1,11 @@
package com.simibubi.create.content.contraptions.components.structureMovement.glue; package com.simibubi.create.content.contraptions.components.structureMovement.glue;
import static com.simibubi.create.AllItemsNew.typeOf;
import com.mojang.blaze3d.matrix.MatrixStack; import com.mojang.blaze3d.matrix.MatrixStack;
import com.mojang.blaze3d.matrix.MatrixStack.Entry; import com.mojang.blaze3d.matrix.MatrixStack.Entry;
import com.mojang.blaze3d.vertex.IVertexBuilder; import com.mojang.blaze3d.vertex.IVertexBuilder;
import com.simibubi.create.AllItems; import com.simibubi.create.AllItemsNew;
import com.simibubi.create.Create; import com.simibubi.create.Create;
import com.simibubi.create.foundation.utility.AngleHelper; import com.simibubi.create.foundation.utility.AngleHelper;
import com.simibubi.create.foundation.utility.VecHelper; import com.simibubi.create.foundation.utility.VecHelper;
@ -52,8 +54,8 @@ public class SuperGlueRenderer extends EntityRenderer<SuperGlueEntity> {
PlayerEntity player = Minecraft.getInstance().player; PlayerEntity player = Minecraft.getInstance().player;
boolean visible = isVisible(entity); boolean visible = isVisible(entity);
boolean holdingGlue = AllItems.SUPER_GLUE.typeOf(player.getHeldItemMainhand()) boolean holdingGlue = typeOf(AllItemsNew.SUPER_GLUE, player.getHeldItemMainhand())
|| AllItems.SUPER_GLUE.typeOf(player.getHeldItemOffhand()); || typeOf(AllItemsNew.SUPER_GLUE, player.getHeldItemOffhand());
if (!visible && !holdingGlue) if (!visible && !holdingGlue)
return; return;

View file

@ -4,7 +4,7 @@ import java.util.List;
import javax.annotation.Nullable; import javax.annotation.Nullable;
import com.simibubi.create.AllItems; import com.simibubi.create.AllItemsNew;
import com.simibubi.create.content.contraptions.components.structureMovement.Contraption; import com.simibubi.create.content.contraptions.components.structureMovement.Contraption;
import com.simibubi.create.content.contraptions.components.structureMovement.ContraptionEntity; import com.simibubi.create.content.contraptions.components.structureMovement.ContraptionEntity;
@ -39,7 +39,15 @@ public class MinecartContraptionItem extends Item {
private final AbstractMinecartEntity.Type minecartType; private final AbstractMinecartEntity.Type minecartType;
public MinecartContraptionItem(Type minecartTypeIn, Properties builder) { public static MinecartContraptionItem rideable(Properties builder) {
return new MinecartContraptionItem(Type.RIDEABLE, builder);
}
public static MinecartContraptionItem furnace(Properties builder) {
return new MinecartContraptionItem(Type.FURNACE, builder);
}
private MinecartContraptionItem(Type minecartTypeIn, Properties builder) {
super(builder); super(builder);
this.minecartType = minecartTypeIn; this.minecartType = minecartTypeIn;
DispenserBlock.registerDispenseBehavior(this, DISPENSER_BEHAVIOR); DispenserBlock.registerDispenseBehavior(this, DISPENSER_BEHAVIOR);
@ -51,16 +59,18 @@ public class MinecartContraptionItem extends Item {
@Override @Override
public ItemStack dispenseStack(IBlockSource source, ItemStack stack) { public ItemStack dispenseStack(IBlockSource source, ItemStack stack) {
Direction direction = source.getBlockState().get(DispenserBlock.FACING); Direction direction = source.getBlockState()
.get(DispenserBlock.FACING);
World world = source.getWorld(); World world = source.getWorld();
double d0 = source.getX() + (double) direction.getXOffset() * 1.125D; double d0 = source.getX() + (double) direction.getXOffset() * 1.125D;
double d1 = Math.floor(source.getY()) + (double) direction.getYOffset(); double d1 = Math.floor(source.getY()) + (double) direction.getYOffset();
double d2 = source.getZ() + (double) direction.getZOffset() * 1.125D; double d2 = source.getZ() + (double) direction.getZOffset() * 1.125D;
BlockPos blockpos = source.getBlockPos().offset(direction); BlockPos blockpos = source.getBlockPos()
.offset(direction);
BlockState blockstate = world.getBlockState(blockpos); BlockState blockstate = world.getBlockState(blockpos);
RailShape railshape = blockstate.getBlock() instanceof AbstractRailBlock RailShape railshape = blockstate.getBlock() instanceof AbstractRailBlock
? ((AbstractRailBlock) blockstate.getBlock()).getRailDirection(blockstate, world, blockpos, null) ? ((AbstractRailBlock) blockstate.getBlock()).getRailDirection(blockstate, world, blockpos, null)
: RailShape.NORTH_SOUTH; : RailShape.NORTH_SOUTH;
double d3; double d3;
if (blockstate.isIn(BlockTags.RAILS)) { if (blockstate.isIn(BlockTags.RAILS)) {
if (railshape.isAscending()) { if (railshape.isAscending()) {
@ -69,15 +79,16 @@ public class MinecartContraptionItem extends Item {
d3 = 0.1D; d3 = 0.1D;
} }
} else { } else {
if (!blockstate.isAir(world, blockpos) || !world.getBlockState(blockpos.down()).isIn(BlockTags.RAILS)) { if (!blockstate.isAir(world, blockpos) || !world.getBlockState(blockpos.down())
.isIn(BlockTags.RAILS)) {
return this.behaviourDefaultDispenseItem.dispense(source, stack); return this.behaviourDefaultDispenseItem.dispense(source, stack);
} }
BlockState blockstate1 = world.getBlockState(blockpos.down()); BlockState blockstate1 = world.getBlockState(blockpos.down());
RailShape railshape1 = blockstate1.getBlock() instanceof AbstractRailBlock RailShape railshape1 = blockstate1.getBlock() instanceof AbstractRailBlock
? ((AbstractRailBlock) blockstate1.getBlock()).getRailDirection(blockstate1, world, ? ((AbstractRailBlock) blockstate1.getBlock()).getRailDirection(blockstate1, world, blockpos.down(),
blockpos.down(), null) null)
: RailShape.NORTH_SOUTH; : RailShape.NORTH_SOUTH;
if (direction != Direction.DOWN && railshape1.isAscending()) { if (direction != Direction.DOWN && railshape1.isAscending()) {
d3 = -0.4D; d3 = -0.4D;
} else { } else {
@ -86,7 +97,7 @@ public class MinecartContraptionItem extends Item {
} }
AbstractMinecartEntity abstractminecartentity = AbstractMinecartEntity.create(world, d0, d1 + d3, d2, AbstractMinecartEntity abstractminecartentity = AbstractMinecartEntity.create(world, d0, d1 + d3, d2,
((MinecartContraptionItem) stack.getItem()).minecartType); ((MinecartContraptionItem) stack.getItem()).minecartType);
if (stack.hasDisplayName()) if (stack.hasDisplayName())
abstractminecartentity.setCustomName(stack.getDisplayName()); abstractminecartentity.setCustomName(stack.getDisplayName());
world.addEntity(abstractminecartentity); world.addEntity(abstractminecartentity);
@ -98,7 +109,8 @@ public class MinecartContraptionItem extends Item {
@Override @Override
protected void playDispenseSound(IBlockSource source) { protected void playDispenseSound(IBlockSource source) {
source.getWorld().playEvent(1000, source.getBlockPos(), 0); source.getWorld()
.playEvent(1000, source.getBlockPos(), 0);
} }
}; };
@ -114,23 +126,22 @@ public class MinecartContraptionItem extends Item {
ItemStack itemstack = context.getItem(); ItemStack itemstack = context.getItem();
if (!world.isRemote) { if (!world.isRemote) {
RailShape railshape = blockstate.getBlock() instanceof AbstractRailBlock RailShape railshape = blockstate.getBlock() instanceof AbstractRailBlock
? ((AbstractRailBlock) blockstate.getBlock()).getRailDirection(blockstate, world, blockpos, ? ((AbstractRailBlock) blockstate.getBlock()).getRailDirection(blockstate, world, blockpos, null)
null) : RailShape.NORTH_SOUTH;
: RailShape.NORTH_SOUTH;
double d0 = 0.0D; double d0 = 0.0D;
if (railshape.isAscending()) { if (railshape.isAscending()) {
d0 = 0.5D; d0 = 0.5D;
} }
AbstractMinecartEntity abstractminecartentity = AbstractMinecartEntity.create(world, AbstractMinecartEntity abstractminecartentity =
(double) blockpos.getX() + 0.5D, (double) blockpos.getY() + 0.0625D + d0, AbstractMinecartEntity.create(world, (double) blockpos.getX() + 0.5D,
(double) blockpos.getZ() + 0.5D, this.minecartType); (double) blockpos.getY() + 0.0625D + d0, (double) blockpos.getZ() + 0.5D, this.minecartType);
if (itemstack.hasDisplayName()) if (itemstack.hasDisplayName())
abstractminecartentity.setCustomName(itemstack.getDisplayName()); abstractminecartentity.setCustomName(itemstack.getDisplayName());
PlayerEntity player = context.getPlayer(); PlayerEntity player = context.getPlayer();
world.addEntity(abstractminecartentity); world.addEntity(abstractminecartentity);
addContraptionToMinecart(world, itemstack, abstractminecartentity, addContraptionToMinecart(world, itemstack, abstractminecartentity,
player == null ? null : player.getHorizontalFacing()); player == null ? null : player.getHorizontalFacing());
} }
itemstack.shrink(1); itemstack.shrink(1);
@ -139,7 +150,7 @@ public class MinecartContraptionItem extends Item {
} }
public static void addContraptionToMinecart(World world, ItemStack itemstack, AbstractMinecartEntity cart, public static void addContraptionToMinecart(World world, ItemStack itemstack, AbstractMinecartEntity cart,
@Nullable Direction newFacing) { @Nullable Direction newFacing) {
CompoundNBT tag = itemstack.getOrCreateTag(); CompoundNBT tag = itemstack.getOrCreateTag();
if (tag.contains("Contraption")) { if (tag.contains("Contraption")) {
CompoundNBT contraptionTag = tag.getCompound("Contraption"); CompoundNBT contraptionTag = tag.getCompound("Contraption");
@ -164,8 +175,7 @@ public class MinecartContraptionItem extends Item {
} }
@Override @Override
public void fillItemGroup(ItemGroup group, NonNullList<ItemStack> items) { public void fillItemGroup(ItemGroup group, NonNullList<ItemStack> items) {}
}
@SubscribeEvent @SubscribeEvent
public static void wrenchCanBeUsedToPickUpMinecartContraptions(PlayerInteractEvent.EntityInteract event) { public static void wrenchCanBeUsedToPickUpMinecartContraptions(PlayerInteractEvent.EntityInteract event) {
@ -175,7 +185,7 @@ public class MinecartContraptionItem extends Item {
return; return;
ItemStack wrench = player.getHeldItem(event.getHand()); ItemStack wrench = player.getHeldItem(event.getHand());
if (!AllItems.WRENCH.typeOf(wrench)) if (!AllItemsNew.typeOf(AllItemsNew.WRENCH, wrench))
return; return;
if (entity instanceof ContraptionEntity) if (entity instanceof ContraptionEntity)
entity = entity.getRidingEntity(); entity = entity.getRidingEntity();
@ -202,13 +212,16 @@ public class MinecartContraptionItem extends Item {
public static ItemStack create(Type type, ContraptionEntity entity) { public static ItemStack create(Type type, ContraptionEntity entity) {
ItemStack stack = ItemStack stack =
(type == Type.RIDEABLE ? AllItems.MINECART_CONTRAPTION : AllItems.FURNACE_MINECART_CONTRAPTION).asStack(); (type == Type.RIDEABLE ? AllItemsNew.MINECART_CONTRAPTION : AllItemsNew.FURNACE_MINECART_CONTRAPTION)
CompoundNBT tag = entity.getContraption().writeNBT(); .asStack();
CompoundNBT tag = entity.getContraption()
.writeNBT();
tag.remove("UUID"); tag.remove("UUID");
tag.remove("Pos"); tag.remove("Pos");
tag.remove("Motion"); tag.remove("Motion");
tag.putFloat("InitialAngle", entity.getInitialAngle()); tag.putFloat("InitialAngle", entity.getInitialAngle());
stack.getOrCreateTag().put("Contraption", tag); stack.getOrCreateTag()
.put("Contraption", tag);
return stack; return stack;
} }

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