mirror of
https://github.com/Creators-of-Create/Create.git
synced 2025-03-04 14:54:42 +01:00
Is it November already
- Fixed chain conveyors culling too quickly - Adjusted outline for logistically linked preview - Address box suggestions no longer have duplicates and render above box when necessary - Adjusted display cloth entity collision box - Held clipboards can now copy entries from other in-world clipboards - Fixed logistically linked items not placing the block when sneaking - Postboxes and frogs now open visually when opened - String can now be applied to cardboard blocks in-world - Desk bells can now be spam-clicked - Metal ladders no longer require a wall if another ladder block is above them - Packaged spawn eggs may cause side effects when opened
This commit is contained in:
parent
b80dc29b4f
commit
bc3347d752
92 changed files with 808 additions and 356 deletions
|
@ -1,4 +1,4 @@
|
||||||
// 1.20.1 2024-10-30T19:35:41.3745103 Registrate Provider for create [Recipes, Advancements, Loot Tables, Tags (blocks), Tags (items), Tags (fluids), Tags (entity_types), Blockstates, Item models, Lang (en_us/en_ud)]
|
// 1.20.1 2024-11-01T10:40:15.7618068 Registrate Provider for create [Recipes, Advancements, Loot Tables, Tags (blocks), Tags (items), Tags (fluids), Tags (entity_types), Blockstates, Item models, Lang (en_us/en_ud)]
|
||||||
60bbdf92d2ac9824ea6144955c74043a6005f79d assets/create/blockstates/acacia_window.json
|
60bbdf92d2ac9824ea6144955c74043a6005f79d assets/create/blockstates/acacia_window.json
|
||||||
6a67703c2697d81b7dc83e9d72a66f9c9ff08383 assets/create/blockstates/acacia_window_pane.json
|
6a67703c2697d81b7dc83e9d72a66f9c9ff08383 assets/create/blockstates/acacia_window_pane.json
|
||||||
c3ae87b62e81d8e9476eccd793bb1548d74c66a1 assets/create/blockstates/adjustable_chain_gearshift.json
|
c3ae87b62e81d8e9476eccd793bb1548d74c66a1 assets/create/blockstates/adjustable_chain_gearshift.json
|
||||||
|
@ -27,7 +27,7 @@ a97910c7516e7cedec9e34eca51f1183f1e3e681 assets/create/blockstates/belt.json
|
||||||
2003c43151b731bf19cae58290c63bcb3785848a assets/create/blockstates/birch_window_pane.json
|
2003c43151b731bf19cae58290c63bcb3785848a assets/create/blockstates/birch_window_pane.json
|
||||||
396e4772b041319fc86b50deded74f514945f45d assets/create/blockstates/black_display_cloth.json
|
396e4772b041319fc86b50deded74f514945f45d assets/create/blockstates/black_display_cloth.json
|
||||||
c8b65faf51122eb411f5895e718869da9b260c2e assets/create/blockstates/black_nixie_tube.json
|
c8b65faf51122eb411f5895e718869da9b260c2e assets/create/blockstates/black_nixie_tube.json
|
||||||
edcdce7ec6afbaa00952131df4b3f2c93c2c6919 assets/create/blockstates/black_postbox.json
|
2449479f4d81a6d16bbd1a469daa2d8f9ba2782e assets/create/blockstates/black_postbox.json
|
||||||
980ae9ba3f6d4e0faea8f3878985f9a9dadc0796 assets/create/blockstates/black_sail.json
|
980ae9ba3f6d4e0faea8f3878985f9a9dadc0796 assets/create/blockstates/black_sail.json
|
||||||
da3ad0225984a0dcbfb4ed800e307e45aff5aaa1 assets/create/blockstates/black_seat.json
|
da3ad0225984a0dcbfb4ed800e307e45aff5aaa1 assets/create/blockstates/black_seat.json
|
||||||
0083f6aa3fda2c7ebb2e5f2a032e740cf3ae3846 assets/create/blockstates/black_toolbox.json
|
0083f6aa3fda2c7ebb2e5f2a032e740cf3ae3846 assets/create/blockstates/black_toolbox.json
|
||||||
|
@ -35,7 +35,7 @@ da3ad0225984a0dcbfb4ed800e307e45aff5aaa1 assets/create/blockstates/black_seat.js
|
||||||
06ecd28cd97f4e8200dc396858695cad57b871c8 assets/create/blockstates/blaze_burner.json
|
06ecd28cd97f4e8200dc396858695cad57b871c8 assets/create/blockstates/blaze_burner.json
|
||||||
88793493e0a7e0713b5ea9f3bbb88395d690b873 assets/create/blockstates/blue_display_cloth.json
|
88793493e0a7e0713b5ea9f3bbb88395d690b873 assets/create/blockstates/blue_display_cloth.json
|
||||||
37caf031254b5171a1fbfe9906f4bc65e8dbc909 assets/create/blockstates/blue_nixie_tube.json
|
37caf031254b5171a1fbfe9906f4bc65e8dbc909 assets/create/blockstates/blue_nixie_tube.json
|
||||||
54f6aae1d573b27979689301ef1c2ad4a3bf6e93 assets/create/blockstates/blue_postbox.json
|
eec6f598fc517c5f6b36d13f3928364b16f0ae3d assets/create/blockstates/blue_postbox.json
|
||||||
d540f0f23e0d7c03f8e147cf3eebbaf7caec9f93 assets/create/blockstates/blue_sail.json
|
d540f0f23e0d7c03f8e147cf3eebbaf7caec9f93 assets/create/blockstates/blue_sail.json
|
||||||
d2fdb432bb037de781260c789e905b223fab408c assets/create/blockstates/blue_seat.json
|
d2fdb432bb037de781260c789e905b223fab408c assets/create/blockstates/blue_seat.json
|
||||||
f91092da79b69fece9583ccc15350612f439ee1b assets/create/blockstates/blue_toolbox.json
|
f91092da79b69fece9583ccc15350612f439ee1b assets/create/blockstates/blue_toolbox.json
|
||||||
|
@ -56,7 +56,7 @@ a408005aae4c1caa7aaae5a0ddf9d1ad73cd0254 assets/create/blockstates/brass_funnel.
|
||||||
8ee948f9e87b82bb27aaecc522127fa1297b3d9d assets/create/blockstates/brass_tunnel.json
|
8ee948f9e87b82bb27aaecc522127fa1297b3d9d assets/create/blockstates/brass_tunnel.json
|
||||||
158c380605f071c89b9de21f2b2737449a72aac3 assets/create/blockstates/brown_display_cloth.json
|
158c380605f071c89b9de21f2b2737449a72aac3 assets/create/blockstates/brown_display_cloth.json
|
||||||
debf33346bf410216f21082e1e8d07aa6250b84c assets/create/blockstates/brown_nixie_tube.json
|
debf33346bf410216f21082e1e8d07aa6250b84c assets/create/blockstates/brown_nixie_tube.json
|
||||||
c23d7f691bf532d6b27317c0063289a8bd747de2 assets/create/blockstates/brown_postbox.json
|
ad42a677da8d381d6a8d909a602d73c1b9b3bbb7 assets/create/blockstates/brown_postbox.json
|
||||||
1334fc9e71d9f2a6117f448817263467a9c695de assets/create/blockstates/brown_sail.json
|
1334fc9e71d9f2a6117f448817263467a9c695de assets/create/blockstates/brown_sail.json
|
||||||
19524b2c0672632e63372f405a87dbea35f1d160 assets/create/blockstates/brown_seat.json
|
19524b2c0672632e63372f405a87dbea35f1d160 assets/create/blockstates/brown_seat.json
|
||||||
1ffc38bf682e84aad4cb300c573375eb0cdcc434 assets/create/blockstates/brown_toolbox.json
|
1ffc38bf682e84aad4cb300c573375eb0cdcc434 assets/create/blockstates/brown_toolbox.json
|
||||||
|
@ -219,7 +219,7 @@ c11f09df4a23e951bdf9a345515183f4fac7cde3 assets/create/blockstates/cut_veridium_
|
||||||
3aa6f5e613ff73952e3de00408051f92316e7f81 assets/create/blockstates/cut_veridium_wall.json
|
3aa6f5e613ff73952e3de00408051f92316e7f81 assets/create/blockstates/cut_veridium_wall.json
|
||||||
d6d25beb53a4393839eeb94472c8feb4c80bac6d assets/create/blockstates/cyan_display_cloth.json
|
d6d25beb53a4393839eeb94472c8feb4c80bac6d assets/create/blockstates/cyan_display_cloth.json
|
||||||
bb627b2e78dba6833cf2d357033f253fc89aa1b8 assets/create/blockstates/cyan_nixie_tube.json
|
bb627b2e78dba6833cf2d357033f253fc89aa1b8 assets/create/blockstates/cyan_nixie_tube.json
|
||||||
3406ab8baa7d9e9892c059c27b5ace92aadc2a80 assets/create/blockstates/cyan_postbox.json
|
d7d497e5495cd7e8e74422f42caa27682fd06b2d assets/create/blockstates/cyan_postbox.json
|
||||||
f1061b8f9757374d6608fda07e301a2623e79f72 assets/create/blockstates/cyan_sail.json
|
f1061b8f9757374d6608fda07e301a2623e79f72 assets/create/blockstates/cyan_sail.json
|
||||||
538c6d95da5cc460e99c91647dac61726a91479f assets/create/blockstates/cyan_seat.json
|
538c6d95da5cc460e99c91647dac61726a91479f assets/create/blockstates/cyan_seat.json
|
||||||
c4d84b719762aca46cdb8decddfeb97dcc50676c assets/create/blockstates/cyan_toolbox.json
|
c4d84b719762aca46cdb8decddfeb97dcc50676c assets/create/blockstates/cyan_toolbox.json
|
||||||
|
@ -265,14 +265,14 @@ ff9f56912d8ac4069df90505232820f9c45f5e06 assets/create/blockstates/gantry_carria
|
||||||
e3f2a093c436cb65c5a7ac049a14cc4dadb22526 assets/create/blockstates/granite_pillar.json
|
e3f2a093c436cb65c5a7ac049a14cc4dadb22526 assets/create/blockstates/granite_pillar.json
|
||||||
f4e76daf384e628b76890b72775302d65f651176 assets/create/blockstates/gray_display_cloth.json
|
f4e76daf384e628b76890b72775302d65f651176 assets/create/blockstates/gray_display_cloth.json
|
||||||
921cf220c44a67195c90a30c4c296e65311738da assets/create/blockstates/gray_nixie_tube.json
|
921cf220c44a67195c90a30c4c296e65311738da assets/create/blockstates/gray_nixie_tube.json
|
||||||
f3153de05bb7658cd2d27ed6becea1b2ea687ae3 assets/create/blockstates/gray_postbox.json
|
f09f7a6f184992b21610e244310e22a99a01e247 assets/create/blockstates/gray_postbox.json
|
||||||
30ba031a6b5a327d2a4caa12169676da573c2133 assets/create/blockstates/gray_sail.json
|
30ba031a6b5a327d2a4caa12169676da573c2133 assets/create/blockstates/gray_sail.json
|
||||||
f35a502c4a5e2703e7c6811b3d2ba16a9c47d4c8 assets/create/blockstates/gray_seat.json
|
f35a502c4a5e2703e7c6811b3d2ba16a9c47d4c8 assets/create/blockstates/gray_seat.json
|
||||||
87457e0eddae80225dbb3145f2d120296ea1bfcd assets/create/blockstates/gray_toolbox.json
|
87457e0eddae80225dbb3145f2d120296ea1bfcd assets/create/blockstates/gray_toolbox.json
|
||||||
f18b87db39836eef20154b239d488eebb64b3455 assets/create/blockstates/gray_valve_handle.json
|
f18b87db39836eef20154b239d488eebb64b3455 assets/create/blockstates/gray_valve_handle.json
|
||||||
7d441d117efce42a787c86355fc69dbd052b5db0 assets/create/blockstates/green_display_cloth.json
|
7d441d117efce42a787c86355fc69dbd052b5db0 assets/create/blockstates/green_display_cloth.json
|
||||||
0f0fe2bf83f763e04cd2d7a979beb547feac3191 assets/create/blockstates/green_nixie_tube.json
|
0f0fe2bf83f763e04cd2d7a979beb547feac3191 assets/create/blockstates/green_nixie_tube.json
|
||||||
4446fdbf784366888215251fb082ff9b52c2ea6d assets/create/blockstates/green_postbox.json
|
67aefcca975866a40717725d34770acd8f8908f6 assets/create/blockstates/green_postbox.json
|
||||||
0a2a5fbf2cf084e1be0426a224c291dc22a826fd assets/create/blockstates/green_sail.json
|
0a2a5fbf2cf084e1be0426a224c291dc22a826fd assets/create/blockstates/green_sail.json
|
||||||
b4aede1847d204ecdb7847559066d9d2ffb66903 assets/create/blockstates/green_seat.json
|
b4aede1847d204ecdb7847559066d9d2ffb66903 assets/create/blockstates/green_seat.json
|
||||||
6f080890b3b30c46ba9ceb382c1171940bf4966f assets/create/blockstates/green_toolbox.json
|
6f080890b3b30c46ba9ceb382c1171940bf4966f assets/create/blockstates/green_toolbox.json
|
||||||
|
@ -311,14 +311,14 @@ ca124508c59130d21f23d7b1ef354d78bdd24dd4 assets/create/blockstates/layered_tuff.
|
||||||
fcf02725651ab5973fab1cfc09fdd68cb4b93579 assets/create/blockstates/lectern_controller.json
|
fcf02725651ab5973fab1cfc09fdd68cb4b93579 assets/create/blockstates/lectern_controller.json
|
||||||
2c52c5dff36461c2af7dabce69452fcb3fc13640 assets/create/blockstates/light_blue_display_cloth.json
|
2c52c5dff36461c2af7dabce69452fcb3fc13640 assets/create/blockstates/light_blue_display_cloth.json
|
||||||
5d7e1b08b1ec7c7c11b70db11df09311fcd7cf45 assets/create/blockstates/light_blue_nixie_tube.json
|
5d7e1b08b1ec7c7c11b70db11df09311fcd7cf45 assets/create/blockstates/light_blue_nixie_tube.json
|
||||||
f77864045801c12e9308f9ae75fa7c78de15bb7e assets/create/blockstates/light_blue_postbox.json
|
117eb12e69c9c978474104a749d1071e4980af76 assets/create/blockstates/light_blue_postbox.json
|
||||||
f2354e8cb6086473ac97a5228b99706858dcad8a assets/create/blockstates/light_blue_sail.json
|
f2354e8cb6086473ac97a5228b99706858dcad8a assets/create/blockstates/light_blue_sail.json
|
||||||
6b7045eaf9efe3a90f2d9a6785be6a5fd534b8e7 assets/create/blockstates/light_blue_seat.json
|
6b7045eaf9efe3a90f2d9a6785be6a5fd534b8e7 assets/create/blockstates/light_blue_seat.json
|
||||||
b7065e7871c3c7f1a0656c2f92f82544e606f2fb assets/create/blockstates/light_blue_toolbox.json
|
b7065e7871c3c7f1a0656c2f92f82544e606f2fb assets/create/blockstates/light_blue_toolbox.json
|
||||||
549882a0f4de60906ca870a6197330f81d4e1afe assets/create/blockstates/light_blue_valve_handle.json
|
549882a0f4de60906ca870a6197330f81d4e1afe assets/create/blockstates/light_blue_valve_handle.json
|
||||||
643092c9caa8e586833d9e7fdab7cb059810fb0a assets/create/blockstates/light_gray_display_cloth.json
|
643092c9caa8e586833d9e7fdab7cb059810fb0a assets/create/blockstates/light_gray_display_cloth.json
|
||||||
fa5fb2be73c7c54b70e927b66adf3f4d64c5cb6b assets/create/blockstates/light_gray_nixie_tube.json
|
fa5fb2be73c7c54b70e927b66adf3f4d64c5cb6b assets/create/blockstates/light_gray_nixie_tube.json
|
||||||
63aa0bfbba64796ec0096972585d15d5cbed7508 assets/create/blockstates/light_gray_postbox.json
|
36817126602128d1c463047c9f54a671ed71e04c assets/create/blockstates/light_gray_postbox.json
|
||||||
3d95c9c4442d1bdd660bae382c72c68134db86dd assets/create/blockstates/light_gray_sail.json
|
3d95c9c4442d1bdd660bae382c72c68134db86dd assets/create/blockstates/light_gray_sail.json
|
||||||
8ec5144da4a49dd5b497af07b0d4b88c9c0b6cc0 assets/create/blockstates/light_gray_seat.json
|
8ec5144da4a49dd5b497af07b0d4b88c9c0b6cc0 assets/create/blockstates/light_gray_seat.json
|
||||||
35b151db396069b146d223fbe46be5b0c3dda8a9 assets/create/blockstates/light_gray_toolbox.json
|
35b151db396069b146d223fbe46be5b0c3dda8a9 assets/create/blockstates/light_gray_toolbox.json
|
||||||
|
@ -327,7 +327,7 @@ a6f319c803c03e34bbf841ea52d82f0f7ec7a413 assets/create/blockstates/limestone.jso
|
||||||
7ff65e1c4c8e48a0b694cd17506a192e6a7e6e44 assets/create/blockstates/limestone_pillar.json
|
7ff65e1c4c8e48a0b694cd17506a192e6a7e6e44 assets/create/blockstates/limestone_pillar.json
|
||||||
34d900ed4c9922b82e39b2ee84d24eaffc7017ab assets/create/blockstates/lime_display_cloth.json
|
34d900ed4c9922b82e39b2ee84d24eaffc7017ab assets/create/blockstates/lime_display_cloth.json
|
||||||
7f20b548dd535942b2d6f41c39de7ad4fafe637e assets/create/blockstates/lime_nixie_tube.json
|
7f20b548dd535942b2d6f41c39de7ad4fafe637e assets/create/blockstates/lime_nixie_tube.json
|
||||||
b1b07cbe36064d2755d0f2a4af036ec0506e6995 assets/create/blockstates/lime_postbox.json
|
1478770b73bf498bd6fa35bd40a38027fd6fd4c8 assets/create/blockstates/lime_postbox.json
|
||||||
ad1ec304729fd6d336c0d4d0c27c9345af636695 assets/create/blockstates/lime_sail.json
|
ad1ec304729fd6d336c0d4d0c27c9345af636695 assets/create/blockstates/lime_sail.json
|
||||||
b9934a558e1b495403dc2c71ffb43cce7d396013 assets/create/blockstates/lime_seat.json
|
b9934a558e1b495403dc2c71ffb43cce7d396013 assets/create/blockstates/lime_seat.json
|
||||||
49a02f7fc16697ba1cf16cee7e45ab6bfd8b06ce assets/create/blockstates/lime_toolbox.json
|
49a02f7fc16697ba1cf16cee7e45ab6bfd8b06ce assets/create/blockstates/lime_toolbox.json
|
||||||
|
@ -336,7 +336,7 @@ ba181485f219d3ae23509a7edf28e25d9edb10f4 assets/create/blockstates/lime_valve_ha
|
||||||
e195e82e4d0c1fc20474535bc9068cbb77a5e175 assets/create/blockstates/lit_blaze_burner.json
|
e195e82e4d0c1fc20474535bc9068cbb77a5e175 assets/create/blockstates/lit_blaze_burner.json
|
||||||
66775372786ece9b6300b335cf6acbdd2aa91147 assets/create/blockstates/magenta_display_cloth.json
|
66775372786ece9b6300b335cf6acbdd2aa91147 assets/create/blockstates/magenta_display_cloth.json
|
||||||
296186b196af94e1ab3f7e8a3254f6d31ae47a5c assets/create/blockstates/magenta_nixie_tube.json
|
296186b196af94e1ab3f7e8a3254f6d31ae47a5c assets/create/blockstates/magenta_nixie_tube.json
|
||||||
32cf7fc7e7b36b6ef873658946a40cf7c32d5da8 assets/create/blockstates/magenta_postbox.json
|
f14f13217b4eb7d897e1ed55c790186cc0cecaf5 assets/create/blockstates/magenta_postbox.json
|
||||||
f150922cbed1c05fb3892d4ac91eb471234252e2 assets/create/blockstates/magenta_sail.json
|
f150922cbed1c05fb3892d4ac91eb471234252e2 assets/create/blockstates/magenta_sail.json
|
||||||
bb1ab5c70647933400b3a99ef9d166ba5e3d4709 assets/create/blockstates/magenta_seat.json
|
bb1ab5c70647933400b3a99ef9d166ba5e3d4709 assets/create/blockstates/magenta_seat.json
|
||||||
fcd226c7863262d98765c701538bf9e44d2b177e assets/create/blockstates/magenta_toolbox.json
|
fcd226c7863262d98765c701538bf9e44d2b177e assets/create/blockstates/magenta_toolbox.json
|
||||||
|
@ -370,7 +370,7 @@ ba9c3ecfacbd398048440d247decffeaefc714b5 assets/create/blockstates/mysterious_cu
|
||||||
df91d0ca68934c1afd9858a8d1591dd4cb88df65 assets/create/blockstates/ochrum.json
|
df91d0ca68934c1afd9858a8d1591dd4cb88df65 assets/create/blockstates/ochrum.json
|
||||||
09c9bee3d26edc4b87cb7a5042f125c439ee5956 assets/create/blockstates/ochrum_pillar.json
|
09c9bee3d26edc4b87cb7a5042f125c439ee5956 assets/create/blockstates/ochrum_pillar.json
|
||||||
0042b5a229d8b7bf89333697fb53ffdda32a153b assets/create/blockstates/orange_display_cloth.json
|
0042b5a229d8b7bf89333697fb53ffdda32a153b assets/create/blockstates/orange_display_cloth.json
|
||||||
42799faa0c59e6ed410c1ef42eceef25c323090f assets/create/blockstates/orange_postbox.json
|
8ff85f8171ff60ebf95f574d6c9f275ae6e98ee0 assets/create/blockstates/orange_postbox.json
|
||||||
af4c2c4861d1410e1b7371a5bf3fe09ed3ab0077 assets/create/blockstates/orange_sail.json
|
af4c2c4861d1410e1b7371a5bf3fe09ed3ab0077 assets/create/blockstates/orange_sail.json
|
||||||
aab812cecf7d10d4e7587f4dead8a98238a15f41 assets/create/blockstates/orange_seat.json
|
aab812cecf7d10d4e7587f4dead8a98238a15f41 assets/create/blockstates/orange_seat.json
|
||||||
2bc30ed9907230271b4e2d0786f106f3e1e25029 assets/create/blockstates/orange_toolbox.json
|
2bc30ed9907230271b4e2d0786f106f3e1e25029 assets/create/blockstates/orange_toolbox.json
|
||||||
|
@ -389,7 +389,7 @@ ef3af446b56c69e71a156d5998d9dc8e6d9ea4f5 assets/create/blockstates/packager.json
|
||||||
36742cc6ce052ead143366d31b11e828a525c1b8 assets/create/blockstates/peculiar_bell.json
|
36742cc6ce052ead143366d31b11e828a525c1b8 assets/create/blockstates/peculiar_bell.json
|
||||||
c4de02184f63ed2e7c98cfa5bb30f8c0da10a425 assets/create/blockstates/pink_display_cloth.json
|
c4de02184f63ed2e7c98cfa5bb30f8c0da10a425 assets/create/blockstates/pink_display_cloth.json
|
||||||
53d102e706d53cb2c0dbc0bc11da828084a43519 assets/create/blockstates/pink_nixie_tube.json
|
53d102e706d53cb2c0dbc0bc11da828084a43519 assets/create/blockstates/pink_nixie_tube.json
|
||||||
8889da0684a2fd247a769cadbf94fd45e1c218f2 assets/create/blockstates/pink_postbox.json
|
a238a92b88c32f513c405cde5bd1898d6fe930b7 assets/create/blockstates/pink_postbox.json
|
||||||
213da5c04a33ae8ae7c0a4dec9844bbb6d670e33 assets/create/blockstates/pink_sail.json
|
213da5c04a33ae8ae7c0a4dec9844bbb6d670e33 assets/create/blockstates/pink_sail.json
|
||||||
8d5c80d5dc561240dfe8d7f212ffc33ac4e0fcd8 assets/create/blockstates/pink_seat.json
|
8d5c80d5dc561240dfe8d7f212ffc33ac4e0fcd8 assets/create/blockstates/pink_seat.json
|
||||||
90bd26c7c6933f5ebbe17b0fe58f840e2924a0f5 assets/create/blockstates/pink_toolbox.json
|
90bd26c7c6933f5ebbe17b0fe58f840e2924a0f5 assets/create/blockstates/pink_toolbox.json
|
||||||
|
@ -463,7 +463,7 @@ df7af1e49c53ae99ac3f0b2fca5d948b8ea91938 assets/create/blockstates/pulley_magnet
|
||||||
65bfd8283749117663f7199204691758fd286e38 assets/create/blockstates/pulse_timer.json
|
65bfd8283749117663f7199204691758fd286e38 assets/create/blockstates/pulse_timer.json
|
||||||
285ff4a4289c3c62a7837639130033922127089d assets/create/blockstates/purple_display_cloth.json
|
285ff4a4289c3c62a7837639130033922127089d assets/create/blockstates/purple_display_cloth.json
|
||||||
b658654aa97e8dd2c897f432a601835a3f8aca10 assets/create/blockstates/purple_nixie_tube.json
|
b658654aa97e8dd2c897f432a601835a3f8aca10 assets/create/blockstates/purple_nixie_tube.json
|
||||||
af5db46f49be3c13eeb9bcae1803cc6fb47a1c76 assets/create/blockstates/purple_postbox.json
|
ee36eb7d8b7575f884a1d89c3ee1b4f3a5972a45 assets/create/blockstates/purple_postbox.json
|
||||||
f8f9802df9c0b4e39edeefc3b1abb38255d79801 assets/create/blockstates/purple_sail.json
|
f8f9802df9c0b4e39edeefc3b1abb38255d79801 assets/create/blockstates/purple_sail.json
|
||||||
91b5ab66d7ec5235d278ee2bed6ddd88f39ce81d assets/create/blockstates/purple_seat.json
|
91b5ab66d7ec5235d278ee2bed6ddd88f39ce81d assets/create/blockstates/purple_seat.json
|
||||||
6aa467b3588359fdf5d7201f844193d5b70f20f7 assets/create/blockstates/purple_toolbox.json
|
6aa467b3588359fdf5d7201f844193d5b70f20f7 assets/create/blockstates/purple_toolbox.json
|
||||||
|
@ -476,7 +476,7 @@ ff205f032b36486753dddb1f2029ef8d53e9c86f assets/create/blockstates/redstone_link
|
||||||
9ae6198e13b456ef18582364644071a18cf9324e assets/create/blockstates/redstone_requester.json
|
9ae6198e13b456ef18582364644071a18cf9324e assets/create/blockstates/redstone_requester.json
|
||||||
d8446bc66d6d7da6d3533c961220d3180e4e4c0b assets/create/blockstates/red_display_cloth.json
|
d8446bc66d6d7da6d3533c961220d3180e4e4c0b assets/create/blockstates/red_display_cloth.json
|
||||||
e3fd62e466e3e6e7bd6fc8661f764ba972a466fc assets/create/blockstates/red_nixie_tube.json
|
e3fd62e466e3e6e7bd6fc8661f764ba972a466fc assets/create/blockstates/red_nixie_tube.json
|
||||||
d7535074a636f30247e7bd2f1a21685d3231d321 assets/create/blockstates/red_postbox.json
|
e003cc60f957419c178d5b4ee215485ebeb3191f assets/create/blockstates/red_postbox.json
|
||||||
4c36b562da58ef2af57009da7cf2426059249228 assets/create/blockstates/red_sail.json
|
4c36b562da58ef2af57009da7cf2426059249228 assets/create/blockstates/red_sail.json
|
||||||
145f4e9ffaeff9be180e6c4e4989f2cf44cf0686 assets/create/blockstates/red_seat.json
|
145f4e9ffaeff9be180e6c4e4989f2cf44cf0686 assets/create/blockstates/red_seat.json
|
||||||
380f46b7cb72b13c0f16fd4a4287a1a33adeff41 assets/create/blockstates/red_toolbox.json
|
380f46b7cb72b13c0f16fd4a4287a1a33adeff41 assets/create/blockstates/red_toolbox.json
|
||||||
|
@ -622,7 +622,7 @@ da110f382368257e15431c77164aef82e014e3f8 assets/create/blockstates/weathered_cop
|
||||||
25ce64b7af5d244f194da91ccf964a9bf5762327 assets/create/blockstates/weighted_ejector.json
|
25ce64b7af5d244f194da91ccf964a9bf5762327 assets/create/blockstates/weighted_ejector.json
|
||||||
1c8b590923b1d78f5ae34ef0d8ba487884b696b3 assets/create/blockstates/white_display_cloth.json
|
1c8b590923b1d78f5ae34ef0d8ba487884b696b3 assets/create/blockstates/white_display_cloth.json
|
||||||
2974b34a8cfb0d4e8e010f8bd085584ea631d541 assets/create/blockstates/white_nixie_tube.json
|
2974b34a8cfb0d4e8e010f8bd085584ea631d541 assets/create/blockstates/white_nixie_tube.json
|
||||||
debbed52643d90ab054171f76622e54192be60ad assets/create/blockstates/white_postbox.json
|
f128f18e0baa69c94ac9149960cfe810a6c9ecf9 assets/create/blockstates/white_postbox.json
|
||||||
f079469d186087d23f0d91b384040f777b0088b1 assets/create/blockstates/white_sail.json
|
f079469d186087d23f0d91b384040f777b0088b1 assets/create/blockstates/white_sail.json
|
||||||
317a6463db64b66d215d25b65ab52fe7f26ba9f8 assets/create/blockstates/white_seat.json
|
317a6463db64b66d215d25b65ab52fe7f26ba9f8 assets/create/blockstates/white_seat.json
|
||||||
6cb8c82a429b54d6a87d02eec5cfd1fcd5365f1e assets/create/blockstates/white_toolbox.json
|
6cb8c82a429b54d6a87d02eec5cfd1fcd5365f1e assets/create/blockstates/white_toolbox.json
|
||||||
|
@ -631,15 +631,15 @@ ec2720e3f1bc84304d0c81cd23ff1e155b0c2f2c assets/create/blockstates/windmill_bear
|
||||||
d688e80dfbd5b17970814887c3698fc721981caa assets/create/blockstates/wooden_bracket.json
|
d688e80dfbd5b17970814887c3698fc721981caa assets/create/blockstates/wooden_bracket.json
|
||||||
1ae2558e739350632a0c2f1a93aea5f832b54d62 assets/create/blockstates/yellow_display_cloth.json
|
1ae2558e739350632a0c2f1a93aea5f832b54d62 assets/create/blockstates/yellow_display_cloth.json
|
||||||
157942a838aa02909fb2238ad9ce77edc82f6142 assets/create/blockstates/yellow_nixie_tube.json
|
157942a838aa02909fb2238ad9ce77edc82f6142 assets/create/blockstates/yellow_nixie_tube.json
|
||||||
f99bf11ac6b2d8d2a315f354d7704a938241d95e assets/create/blockstates/yellow_postbox.json
|
c11d93cd5a64e80c7ad2d11d88b656dd7705138b assets/create/blockstates/yellow_postbox.json
|
||||||
68b6e267e93b96dbc0596ea4a1cd26636aa0e04a assets/create/blockstates/yellow_sail.json
|
68b6e267e93b96dbc0596ea4a1cd26636aa0e04a assets/create/blockstates/yellow_sail.json
|
||||||
4face2dd50a30bda0b21742319e701e666d51f8c assets/create/blockstates/yellow_seat.json
|
4face2dd50a30bda0b21742319e701e666d51f8c assets/create/blockstates/yellow_seat.json
|
||||||
b0d8f08968763a5f74e5cd5644377a76a9f39753 assets/create/blockstates/yellow_toolbox.json
|
b0d8f08968763a5f74e5cd5644377a76a9f39753 assets/create/blockstates/yellow_toolbox.json
|
||||||
fe8c497aacc641c2f01cec90bba9f19e59cc2ed2 assets/create/blockstates/yellow_valve_handle.json
|
fe8c497aacc641c2f01cec90bba9f19e59cc2ed2 assets/create/blockstates/yellow_valve_handle.json
|
||||||
e819e93fdcbe9fd9c050a052d2718ff3b3539365 assets/create/blockstates/zinc_block.json
|
e819e93fdcbe9fd9c050a052d2718ff3b3539365 assets/create/blockstates/zinc_block.json
|
||||||
64121dcb216381c83b4fe28aa361ea07c24c9ad0 assets/create/blockstates/zinc_ore.json
|
64121dcb216381c83b4fe28aa361ea07c24c9ad0 assets/create/blockstates/zinc_ore.json
|
||||||
c3de6ad9aa8e75977b93d59a36b2fa2e1e4e9445 assets/create/lang/en_ud.json
|
d5bb760251e65801c7d8d4c7c99149dfc644ae26 assets/create/lang/en_ud.json
|
||||||
3cf9afee452951897c1ca572e5f7c3362f897db3 assets/create/lang/en_us.json
|
71537c153c046d7ac132c20ed36db50daf6e7284 assets/create/lang/en_us.json
|
||||||
a97e1060e00ae701a02e39cd4ef8054cf345fac4 assets/create/models/block/acacia_window.json
|
a97e1060e00ae701a02e39cd4ef8054cf345fac4 assets/create/models/block/acacia_window.json
|
||||||
103e032c0b1a0a6a27c67da8c91179a564bd281c assets/create/models/block/acacia_window_pane_noside.json
|
103e032c0b1a0a6a27c67da8c91179a564bd281c assets/create/models/block/acacia_window_pane_noside.json
|
||||||
fb00b627abda76ad4fea867ca57dbfadd24fffa3 assets/create/models/block/acacia_window_pane_noside_alt.json
|
fb00b627abda76ad4fea867ca57dbfadd24fffa3 assets/create/models/block/acacia_window_pane_noside_alt.json
|
||||||
|
@ -714,14 +714,16 @@ ee71b0992edc2496025c22806e8de3a3243882aa assets/create/models/block/birch_window
|
||||||
cb9d3a0dbac6a884d5ce0dc82085322f8c666707 assets/create/models/block/birch_window_pane_side_alt.json
|
cb9d3a0dbac6a884d5ce0dc82085322f8c666707 assets/create/models/block/birch_window_pane_side_alt.json
|
||||||
b8f853e8289d735f9a2a8b43785fa0995ac99112 assets/create/models/block/black_display_cloth.json
|
b8f853e8289d735f9a2a8b43785fa0995ac99112 assets/create/models/block/black_display_cloth.json
|
||||||
2f040681214af58a97e70d3a6e77a0fc2e02c624 assets/create/models/block/black_nixie_tube.json
|
2f040681214af58a97e70d3a6e77a0fc2e02c624 assets/create/models/block/black_nixie_tube.json
|
||||||
1fe4a9cbcae773f32c07f7cef42f52588ec1c1aa assets/create/models/block/black_postbox.json
|
1fe4a9cbcae773f32c07f7cef42f52588ec1c1aa assets/create/models/block/black_postbox_closed.json
|
||||||
|
3caec00f8aa36393cac8049815b3e8bad12d8dae assets/create/models/block/black_postbox_open.json
|
||||||
62c92a681b5a86a5415cc7a70263ffdc794cdd59 assets/create/models/block/black_sail.json
|
62c92a681b5a86a5415cc7a70263ffdc794cdd59 assets/create/models/block/black_sail.json
|
||||||
443ed49b053fdd7356cd56f0495e18f2570d57d9 assets/create/models/block/black_seat.json
|
443ed49b053fdd7356cd56f0495e18f2570d57d9 assets/create/models/block/black_seat.json
|
||||||
f48989d377de8e5067e807adf7e38da781e37ed9 assets/create/models/block/black_toolbox.json
|
f48989d377de8e5067e807adf7e38da781e37ed9 assets/create/models/block/black_toolbox.json
|
||||||
8715787d72c3ef47c5651abcd819539bad6a96f7 assets/create/models/block/black_valve_handle.json
|
8715787d72c3ef47c5651abcd819539bad6a96f7 assets/create/models/block/black_valve_handle.json
|
||||||
e0eebf58af7ce6789dd3908f216e81e363fcdea6 assets/create/models/block/blue_display_cloth.json
|
e0eebf58af7ce6789dd3908f216e81e363fcdea6 assets/create/models/block/blue_display_cloth.json
|
||||||
2f040681214af58a97e70d3a6e77a0fc2e02c624 assets/create/models/block/blue_nixie_tube.json
|
2f040681214af58a97e70d3a6e77a0fc2e02c624 assets/create/models/block/blue_nixie_tube.json
|
||||||
e9e9487a3440b3a6c1ac515f63385ee59e8fb773 assets/create/models/block/blue_postbox.json
|
e9e9487a3440b3a6c1ac515f63385ee59e8fb773 assets/create/models/block/blue_postbox_closed.json
|
||||||
|
7e2df652bfc7fdc27da6a52b52fe732fa175c996 assets/create/models/block/blue_postbox_open.json
|
||||||
ddc740084aa5f387bee062bd4141ad8fadb56355 assets/create/models/block/blue_sail.json
|
ddc740084aa5f387bee062bd4141ad8fadb56355 assets/create/models/block/blue_sail.json
|
||||||
96431b1f3a531ce89f876c9286b81838aec9b6d3 assets/create/models/block/blue_seat.json
|
96431b1f3a531ce89f876c9286b81838aec9b6d3 assets/create/models/block/blue_seat.json
|
||||||
89932aab163b14a21fffd4fab4b8b88a94163089 assets/create/models/block/blue_toolbox.json
|
89932aab163b14a21fffd4fab4b8b88a94163089 assets/create/models/block/blue_toolbox.json
|
||||||
|
@ -776,7 +778,8 @@ ec81e9c237ec98b30a3de22e12cb9720922478eb assets/create/models/block/brass_side.j
|
||||||
c697cace1f4097468ff34254c4ff6450d9d52f91 assets/create/models/block/brass_side_alt.json
|
c697cace1f4097468ff34254c4ff6450d9d52f91 assets/create/models/block/brass_side_alt.json
|
||||||
5996b728460cf24e25890d977cdca49d2927465a assets/create/models/block/brown_display_cloth.json
|
5996b728460cf24e25890d977cdca49d2927465a assets/create/models/block/brown_display_cloth.json
|
||||||
2f040681214af58a97e70d3a6e77a0fc2e02c624 assets/create/models/block/brown_nixie_tube.json
|
2f040681214af58a97e70d3a6e77a0fc2e02c624 assets/create/models/block/brown_nixie_tube.json
|
||||||
b04c80852527a07e01c27686be678cbaf568e821 assets/create/models/block/brown_postbox.json
|
b04c80852527a07e01c27686be678cbaf568e821 assets/create/models/block/brown_postbox_closed.json
|
||||||
|
19a2045ecedd3ef12cda7d69a0d7bc6a4133b7f1 assets/create/models/block/brown_postbox_open.json
|
||||||
50a054d1e0660d16e86cf7a520b9bf36e38401b6 assets/create/models/block/brown_sail.json
|
50a054d1e0660d16e86cf7a520b9bf36e38401b6 assets/create/models/block/brown_sail.json
|
||||||
0616de192825246e6036d1f69911170438a83b81 assets/create/models/block/brown_seat.json
|
0616de192825246e6036d1f69911170438a83b81 assets/create/models/block/brown_seat.json
|
||||||
4226a7c5f1bfb0a75457fb4dfd22448503110e5c assets/create/models/block/brown_toolbox.json
|
4226a7c5f1bfb0a75457fb4dfd22448503110e5c assets/create/models/block/brown_toolbox.json
|
||||||
|
@ -1110,7 +1113,8 @@ b2e847cee8c01791c15fcdd35787af33ebe46f0a assets/create/models/block/cut_veridium
|
||||||
5ab4db4245b852edf985fe72595f678eb7372801 assets/create/models/block/cut_veridium_wall_side_tall.json
|
5ab4db4245b852edf985fe72595f678eb7372801 assets/create/models/block/cut_veridium_wall_side_tall.json
|
||||||
983788579d7ec61b805d1057b81a18282af38365 assets/create/models/block/cyan_display_cloth.json
|
983788579d7ec61b805d1057b81a18282af38365 assets/create/models/block/cyan_display_cloth.json
|
||||||
2f040681214af58a97e70d3a6e77a0fc2e02c624 assets/create/models/block/cyan_nixie_tube.json
|
2f040681214af58a97e70d3a6e77a0fc2e02c624 assets/create/models/block/cyan_nixie_tube.json
|
||||||
0cbd0c6c909effa2f71e198655d51f2e483454aa assets/create/models/block/cyan_postbox.json
|
0cbd0c6c909effa2f71e198655d51f2e483454aa assets/create/models/block/cyan_postbox_closed.json
|
||||||
|
ccea6f3023879d84de4590a584f666598f58d6bc assets/create/models/block/cyan_postbox_open.json
|
||||||
27c9aff76b32e4de18d581e133fc23a8239ca412 assets/create/models/block/cyan_sail.json
|
27c9aff76b32e4de18d581e133fc23a8239ca412 assets/create/models/block/cyan_sail.json
|
||||||
01a324a92552076589e2aaaeca9d4da2d1e3b39d assets/create/models/block/cyan_seat.json
|
01a324a92552076589e2aaaeca9d4da2d1e3b39d assets/create/models/block/cyan_seat.json
|
||||||
663f431fe8a02e057980cf9bcfc566eb5adc876f assets/create/models/block/cyan_toolbox.json
|
663f431fe8a02e057980cf9bcfc566eb5adc876f assets/create/models/block/cyan_toolbox.json
|
||||||
|
@ -1193,14 +1197,16 @@ d0fa41de17f65693188f1868ace5fc2ac518739b assets/create/models/block/gantry_shaft
|
||||||
ee860a8bd95fda14a859d6632652ee2a95f06c19 assets/create/models/block/granite_pillar_horizontal.json
|
ee860a8bd95fda14a859d6632652ee2a95f06c19 assets/create/models/block/granite_pillar_horizontal.json
|
||||||
ca01316f75239f08d7da81615779f8eb002de88f assets/create/models/block/gray_display_cloth.json
|
ca01316f75239f08d7da81615779f8eb002de88f assets/create/models/block/gray_display_cloth.json
|
||||||
2f040681214af58a97e70d3a6e77a0fc2e02c624 assets/create/models/block/gray_nixie_tube.json
|
2f040681214af58a97e70d3a6e77a0fc2e02c624 assets/create/models/block/gray_nixie_tube.json
|
||||||
f2bbb067bc4e91a71303cc92939c4f4707cdc1ab assets/create/models/block/gray_postbox.json
|
f2bbb067bc4e91a71303cc92939c4f4707cdc1ab assets/create/models/block/gray_postbox_closed.json
|
||||||
|
905fb4b54a39ca9bc1d6f48977bb3b158b17c2a1 assets/create/models/block/gray_postbox_open.json
|
||||||
97f382e9b435c81d1d8e0ed487a7fc16e6945958 assets/create/models/block/gray_sail.json
|
97f382e9b435c81d1d8e0ed487a7fc16e6945958 assets/create/models/block/gray_sail.json
|
||||||
58b51da5c80e4f43582452d97453c93145a516ad assets/create/models/block/gray_seat.json
|
58b51da5c80e4f43582452d97453c93145a516ad assets/create/models/block/gray_seat.json
|
||||||
cd3cff8e38d559dcb78df014556a78d5a538af43 assets/create/models/block/gray_toolbox.json
|
cd3cff8e38d559dcb78df014556a78d5a538af43 assets/create/models/block/gray_toolbox.json
|
||||||
3ee19f46bdeb0ac7489dcd4d51f90ab01ad863c9 assets/create/models/block/gray_valve_handle.json
|
3ee19f46bdeb0ac7489dcd4d51f90ab01ad863c9 assets/create/models/block/gray_valve_handle.json
|
||||||
71fae019670515f2c5bf7bd1f7930d76b6ff3e15 assets/create/models/block/green_display_cloth.json
|
71fae019670515f2c5bf7bd1f7930d76b6ff3e15 assets/create/models/block/green_display_cloth.json
|
||||||
2f040681214af58a97e70d3a6e77a0fc2e02c624 assets/create/models/block/green_nixie_tube.json
|
2f040681214af58a97e70d3a6e77a0fc2e02c624 assets/create/models/block/green_nixie_tube.json
|
||||||
21fbacdc856fb1003f58bf2842fe418124f6b01d assets/create/models/block/green_postbox.json
|
21fbacdc856fb1003f58bf2842fe418124f6b01d assets/create/models/block/green_postbox_closed.json
|
||||||
|
703df2f5307d39f0f4e5b9a1f99b8c14fd819dd0 assets/create/models/block/green_postbox_open.json
|
||||||
26577589688ec1f39cae9f42704cb36cbc1c48ae assets/create/models/block/green_sail.json
|
26577589688ec1f39cae9f42704cb36cbc1c48ae assets/create/models/block/green_sail.json
|
||||||
ae51eaa500dd036fa27474a7392f381afb677dfd assets/create/models/block/green_seat.json
|
ae51eaa500dd036fa27474a7392f381afb677dfd assets/create/models/block/green_seat.json
|
||||||
801d277b241332d5f4b49bdb00b911dcd01a7db2 assets/create/models/block/green_toolbox.json
|
801d277b241332d5f4b49bdb00b911dcd01a7db2 assets/create/models/block/green_toolbox.json
|
||||||
|
@ -1245,14 +1251,16 @@ b843a6e27c4f90e31108f9f3c1573e70fb3d0927 assets/create/models/block/layered_scor
|
||||||
336d1646294e018ea3de60b30a621a10ca7aa6d7 assets/create/models/block/layered_veridium.json
|
336d1646294e018ea3de60b30a621a10ca7aa6d7 assets/create/models/block/layered_veridium.json
|
||||||
f479a8a6964c52fc3b072ca3170d5b478f62842a assets/create/models/block/light_blue_display_cloth.json
|
f479a8a6964c52fc3b072ca3170d5b478f62842a assets/create/models/block/light_blue_display_cloth.json
|
||||||
2f040681214af58a97e70d3a6e77a0fc2e02c624 assets/create/models/block/light_blue_nixie_tube.json
|
2f040681214af58a97e70d3a6e77a0fc2e02c624 assets/create/models/block/light_blue_nixie_tube.json
|
||||||
cf487c0be9444b7ac124d2ae33e6c545803e14b6 assets/create/models/block/light_blue_postbox.json
|
cf487c0be9444b7ac124d2ae33e6c545803e14b6 assets/create/models/block/light_blue_postbox_closed.json
|
||||||
|
7497701edea1599fc51e3eaa0367007ca00bbe69 assets/create/models/block/light_blue_postbox_open.json
|
||||||
2e83d3aaa92640d6b3da2a2644f6a160f97b08e4 assets/create/models/block/light_blue_sail.json
|
2e83d3aaa92640d6b3da2a2644f6a160f97b08e4 assets/create/models/block/light_blue_sail.json
|
||||||
ba917560f40a4e46ef190649f18adad9962c5c02 assets/create/models/block/light_blue_seat.json
|
ba917560f40a4e46ef190649f18adad9962c5c02 assets/create/models/block/light_blue_seat.json
|
||||||
c20616aa90feab3003cecb4a5be5466c0fc83072 assets/create/models/block/light_blue_toolbox.json
|
c20616aa90feab3003cecb4a5be5466c0fc83072 assets/create/models/block/light_blue_toolbox.json
|
||||||
bcd3d28b8a062649301648ea5e2d0463f93d008d assets/create/models/block/light_blue_valve_handle.json
|
bcd3d28b8a062649301648ea5e2d0463f93d008d assets/create/models/block/light_blue_valve_handle.json
|
||||||
8de84b9d3eb33403de699c5c5c4093e32b1685f9 assets/create/models/block/light_gray_display_cloth.json
|
8de84b9d3eb33403de699c5c5c4093e32b1685f9 assets/create/models/block/light_gray_display_cloth.json
|
||||||
2f040681214af58a97e70d3a6e77a0fc2e02c624 assets/create/models/block/light_gray_nixie_tube.json
|
2f040681214af58a97e70d3a6e77a0fc2e02c624 assets/create/models/block/light_gray_nixie_tube.json
|
||||||
1efabd28f0dc3db1c0e6bea2be62cac883fefd66 assets/create/models/block/light_gray_postbox.json
|
1efabd28f0dc3db1c0e6bea2be62cac883fefd66 assets/create/models/block/light_gray_postbox_closed.json
|
||||||
|
a42521eac2924269cb1f0e865bafe7dcd147d1cc assets/create/models/block/light_gray_postbox_open.json
|
||||||
09f284574b38ab57579e939bbb088b8d36e0b8f5 assets/create/models/block/light_gray_sail.json
|
09f284574b38ab57579e939bbb088b8d36e0b8f5 assets/create/models/block/light_gray_sail.json
|
||||||
d1813d0f548fcddb361df7cc3b5d97582842b10f assets/create/models/block/light_gray_seat.json
|
d1813d0f548fcddb361df7cc3b5d97582842b10f assets/create/models/block/light_gray_seat.json
|
||||||
4ec5d701dd8b2d8c3dc44d05f527a3d737002cd4 assets/create/models/block/light_gray_toolbox.json
|
4ec5d701dd8b2d8c3dc44d05f527a3d737002cd4 assets/create/models/block/light_gray_toolbox.json
|
||||||
|
@ -1262,7 +1270,8 @@ adb8dbed70419e0310e7a20f3656bf325b348434 assets/create/models/block/light_gray_v
|
||||||
fb18280a2a708f60b00cc7c675804c219784871a assets/create/models/block/limestone_pillar_horizontal.json
|
fb18280a2a708f60b00cc7c675804c219784871a assets/create/models/block/limestone_pillar_horizontal.json
|
||||||
023f2538cd860e3ade165390eab9e4fe32847402 assets/create/models/block/lime_display_cloth.json
|
023f2538cd860e3ade165390eab9e4fe32847402 assets/create/models/block/lime_display_cloth.json
|
||||||
2f040681214af58a97e70d3a6e77a0fc2e02c624 assets/create/models/block/lime_nixie_tube.json
|
2f040681214af58a97e70d3a6e77a0fc2e02c624 assets/create/models/block/lime_nixie_tube.json
|
||||||
952d292d4dc2158e6106c5079cfa1ddb81c7777e assets/create/models/block/lime_postbox.json
|
952d292d4dc2158e6106c5079cfa1ddb81c7777e assets/create/models/block/lime_postbox_closed.json
|
||||||
|
4357f5d9102d54c7fbe5325512a2cd42d94d6d42 assets/create/models/block/lime_postbox_open.json
|
||||||
5a95a72444f523cfba6e8c5adf8eacbb37e2d21e assets/create/models/block/lime_sail.json
|
5a95a72444f523cfba6e8c5adf8eacbb37e2d21e assets/create/models/block/lime_sail.json
|
||||||
09e7bf50cf88c449dbd9e77829cdb5afffb7d88d assets/create/models/block/lime_seat.json
|
09e7bf50cf88c449dbd9e77829cdb5afffb7d88d assets/create/models/block/lime_seat.json
|
||||||
b92822a01e4fbed2463b1bdf7dcc736023988e20 assets/create/models/block/lime_toolbox.json
|
b92822a01e4fbed2463b1bdf7dcc736023988e20 assets/create/models/block/lime_toolbox.json
|
||||||
|
@ -1273,7 +1282,8 @@ a1a3804ddcb1db0a7b5c0693555f8eb326950dd0 assets/create/models/block/linear_chass
|
||||||
f885acc0ba705cfa9c65b62626ab4007f3b6e329 assets/create/models/block/linear_chassis_top_bottom.json
|
f885acc0ba705cfa9c65b62626ab4007f3b6e329 assets/create/models/block/linear_chassis_top_bottom.json
|
||||||
e23d016fe71681e6b13fece5d14d95da5fb45fbb assets/create/models/block/magenta_display_cloth.json
|
e23d016fe71681e6b13fece5d14d95da5fb45fbb assets/create/models/block/magenta_display_cloth.json
|
||||||
2f040681214af58a97e70d3a6e77a0fc2e02c624 assets/create/models/block/magenta_nixie_tube.json
|
2f040681214af58a97e70d3a6e77a0fc2e02c624 assets/create/models/block/magenta_nixie_tube.json
|
||||||
bfea3fd456f92391afc9f948ade90b16275e63de assets/create/models/block/magenta_postbox.json
|
bfea3fd456f92391afc9f948ade90b16275e63de assets/create/models/block/magenta_postbox_closed.json
|
||||||
|
fe224c9e396eb51a6cc0b38175b621a56500fda7 assets/create/models/block/magenta_postbox_open.json
|
||||||
81122f26a12b7ab40fed6d31c97376f4dfffa111 assets/create/models/block/magenta_sail.json
|
81122f26a12b7ab40fed6d31c97376f4dfffa111 assets/create/models/block/magenta_sail.json
|
||||||
b5cd13b021400b3c37499ec4ef22e560c721ac54 assets/create/models/block/magenta_seat.json
|
b5cd13b021400b3c37499ec4ef22e560c721ac54 assets/create/models/block/magenta_seat.json
|
||||||
d7b2b16ba2d6a0b2441aeaf7faa76f61fbdc35e7 assets/create/models/block/magenta_toolbox.json
|
d7b2b16ba2d6a0b2441aeaf7faa76f61fbdc35e7 assets/create/models/block/magenta_toolbox.json
|
||||||
|
@ -1299,7 +1309,8 @@ d69effa0a811cb93fead8257bcaad4bbf0094002 assets/create/models/block/ochrum_natur
|
||||||
24669a4e93925940477fcfc0aca10ab9d87368e0 assets/create/models/block/ochrum_pillar.json
|
24669a4e93925940477fcfc0aca10ab9d87368e0 assets/create/models/block/ochrum_pillar.json
|
||||||
c8dd33a0b71dce37712788a61729de89574b117f assets/create/models/block/ochrum_pillar_horizontal.json
|
c8dd33a0b71dce37712788a61729de89574b117f assets/create/models/block/ochrum_pillar_horizontal.json
|
||||||
6ba7beb0581d761ce06dad03cdd19e591e392546 assets/create/models/block/orange_display_cloth.json
|
6ba7beb0581d761ce06dad03cdd19e591e392546 assets/create/models/block/orange_display_cloth.json
|
||||||
dbd0cbfa1c6cfaddd7ac954379b4b1f3056730f2 assets/create/models/block/orange_postbox.json
|
dbd0cbfa1c6cfaddd7ac954379b4b1f3056730f2 assets/create/models/block/orange_postbox_closed.json
|
||||||
|
88cda1f606e502cf0df9430b75a70fd3161fd6ba assets/create/models/block/orange_postbox_open.json
|
||||||
cb4cd4e4bfb0d105a09c56454abf4795b155d12b assets/create/models/block/orange_sail.json
|
cb4cd4e4bfb0d105a09c56454abf4795b155d12b assets/create/models/block/orange_sail.json
|
||||||
6c4addc75fb03911fca3083f891b22f55209b8db assets/create/models/block/orange_seat.json
|
6c4addc75fb03911fca3083f891b22f55209b8db assets/create/models/block/orange_seat.json
|
||||||
f68eeb8cd828a0659fe8665373daf093ea65f0fc assets/create/models/block/orange_toolbox.json
|
f68eeb8cd828a0659fe8665373daf093ea65f0fc assets/create/models/block/orange_toolbox.json
|
||||||
|
@ -1328,7 +1339,8 @@ b9c9d00b844ca2f217ae21cc502cd4d082fed2d5 assets/create/models/block/peculiar_bel
|
||||||
f7b09c243cfeda8bb38a29a917b9fbdafe47eece assets/create/models/block/peculiar_bell_single_wall.json
|
f7b09c243cfeda8bb38a29a917b9fbdafe47eece assets/create/models/block/peculiar_bell_single_wall.json
|
||||||
266d126aa95d03fc274d838986fc1f53519f4e10 assets/create/models/block/pink_display_cloth.json
|
266d126aa95d03fc274d838986fc1f53519f4e10 assets/create/models/block/pink_display_cloth.json
|
||||||
2f040681214af58a97e70d3a6e77a0fc2e02c624 assets/create/models/block/pink_nixie_tube.json
|
2f040681214af58a97e70d3a6e77a0fc2e02c624 assets/create/models/block/pink_nixie_tube.json
|
||||||
084266ced8975953fa158fd9e7261d8f10b94db7 assets/create/models/block/pink_postbox.json
|
084266ced8975953fa158fd9e7261d8f10b94db7 assets/create/models/block/pink_postbox_closed.json
|
||||||
|
e99518b61a3c7a89570a8aa8c4cb45badfa8547a assets/create/models/block/pink_postbox_open.json
|
||||||
90113a1f53f0f8d9ce11ff14128eb860063f5ddc assets/create/models/block/pink_sail.json
|
90113a1f53f0f8d9ce11ff14128eb860063f5ddc assets/create/models/block/pink_sail.json
|
||||||
888dba067e751a55205dbd919db8e92ef2be604d assets/create/models/block/pink_seat.json
|
888dba067e751a55205dbd919db8e92ef2be604d assets/create/models/block/pink_seat.json
|
||||||
3cb69299c7787f88fb41c6397362aa7b607c0960 assets/create/models/block/pink_toolbox.json
|
3cb69299c7787f88fb41c6397362aa7b607c0960 assets/create/models/block/pink_toolbox.json
|
||||||
|
@ -1488,7 +1500,8 @@ ab3d7e10abcb53b835d6f5c406b7a777a942d6f7 assets/create/models/block/pulse_timer_
|
||||||
7b425d9db8d914b52b7faad2f792c020b678f84d assets/create/models/block/pulse_timer_powering.json
|
7b425d9db8d914b52b7faad2f792c020b678f84d assets/create/models/block/pulse_timer_powering.json
|
||||||
7688c890be93afa905bd869ef0bcdc603bce9a78 assets/create/models/block/purple_display_cloth.json
|
7688c890be93afa905bd869ef0bcdc603bce9a78 assets/create/models/block/purple_display_cloth.json
|
||||||
2f040681214af58a97e70d3a6e77a0fc2e02c624 assets/create/models/block/purple_nixie_tube.json
|
2f040681214af58a97e70d3a6e77a0fc2e02c624 assets/create/models/block/purple_nixie_tube.json
|
||||||
afdd265ee175c47ea6e4e44fb08d212e4cef5ee5 assets/create/models/block/purple_postbox.json
|
afdd265ee175c47ea6e4e44fb08d212e4cef5ee5 assets/create/models/block/purple_postbox_closed.json
|
||||||
|
fbd874fd63b3d6f50592703dce6bf196f2d63732 assets/create/models/block/purple_postbox_open.json
|
||||||
356378a5839b0b400aa5e0a67740634113c09a38 assets/create/models/block/purple_sail.json
|
356378a5839b0b400aa5e0a67740634113c09a38 assets/create/models/block/purple_sail.json
|
||||||
bc8e473a5662b6180b00b85e5006241a283c9baa assets/create/models/block/purple_seat.json
|
bc8e473a5662b6180b00b85e5006241a283c9baa assets/create/models/block/purple_seat.json
|
||||||
5e85ec98c165a0b5bfe25d391e96df9164372a3a assets/create/models/block/purple_toolbox.json
|
5e85ec98c165a0b5bfe25d391e96df9164372a3a assets/create/models/block/purple_toolbox.json
|
||||||
|
@ -1503,7 +1516,8 @@ ff65b89683fbb9326f625b9a68f954def5ed000d assets/create/models/block/radial_chass
|
||||||
be8042806b08990786ced1cf140c4942d7a6788b assets/create/models/block/raw_zinc_block.json
|
be8042806b08990786ced1cf140c4942d7a6788b assets/create/models/block/raw_zinc_block.json
|
||||||
832899421073c18da17bf6919c97e2f3cf9a6b77 assets/create/models/block/red_display_cloth.json
|
832899421073c18da17bf6919c97e2f3cf9a6b77 assets/create/models/block/red_display_cloth.json
|
||||||
2f040681214af58a97e70d3a6e77a0fc2e02c624 assets/create/models/block/red_nixie_tube.json
|
2f040681214af58a97e70d3a6e77a0fc2e02c624 assets/create/models/block/red_nixie_tube.json
|
||||||
844614001c30ef34d3136a350c12018c5e9ab341 assets/create/models/block/red_postbox.json
|
844614001c30ef34d3136a350c12018c5e9ab341 assets/create/models/block/red_postbox_closed.json
|
||||||
|
d06791faedd062464a13972a3b64de86053aeac7 assets/create/models/block/red_postbox_open.json
|
||||||
b692deeb65f338212fb1073b725a122b7b1359d5 assets/create/models/block/red_sail.json
|
b692deeb65f338212fb1073b725a122b7b1359d5 assets/create/models/block/red_sail.json
|
||||||
bf3f4ba33e1a61254073ecee3e753958f8debb35 assets/create/models/block/red_seat.json
|
bf3f4ba33e1a61254073ecee3e753958f8debb35 assets/create/models/block/red_seat.json
|
||||||
2a13766aebac1a392ae7bf934bd81d9210c87a24 assets/create/models/block/red_toolbox.json
|
2a13766aebac1a392ae7bf934bd81d9210c87a24 assets/create/models/block/red_toolbox.json
|
||||||
|
@ -1762,14 +1776,16 @@ b658c1022587bd670b5acee267607719c1544332 assets/create/models/block/weathered_co
|
||||||
e7ae89577be9d26a071bf96cbd7ed80293902b63 assets/create/models/block/weathered_copper_tile_stairs_outer.json
|
e7ae89577be9d26a071bf96cbd7ed80293902b63 assets/create/models/block/weathered_copper_tile_stairs_outer.json
|
||||||
15316edd1babb61b1458cf81feaf2c3e135122b6 assets/create/models/block/white_display_cloth.json
|
15316edd1babb61b1458cf81feaf2c3e135122b6 assets/create/models/block/white_display_cloth.json
|
||||||
2f040681214af58a97e70d3a6e77a0fc2e02c624 assets/create/models/block/white_nixie_tube.json
|
2f040681214af58a97e70d3a6e77a0fc2e02c624 assets/create/models/block/white_nixie_tube.json
|
||||||
998d838964c6c5bc2a1903b5098491abf5d819bc assets/create/models/block/white_postbox.json
|
998d838964c6c5bc2a1903b5098491abf5d819bc assets/create/models/block/white_postbox_closed.json
|
||||||
|
e89fe63260b94fc70e360eceb3d04b74242c248f assets/create/models/block/white_postbox_open.json
|
||||||
99f0628623a36ac1700a5876cec010ee6353162f assets/create/models/block/white_seat.json
|
99f0628623a36ac1700a5876cec010ee6353162f assets/create/models/block/white_seat.json
|
||||||
f252f8c68702a0c050797a2dc2a51c586408722d assets/create/models/block/white_toolbox.json
|
f252f8c68702a0c050797a2dc2a51c586408722d assets/create/models/block/white_toolbox.json
|
||||||
c9e344a06ee8bca1bfddd70481198135cabafbce assets/create/models/block/white_valve_handle.json
|
c9e344a06ee8bca1bfddd70481198135cabafbce assets/create/models/block/white_valve_handle.json
|
||||||
68d8eddfb724c73938862fb1a213a99c95814fdb assets/create/models/block/windmill_bearing.json
|
68d8eddfb724c73938862fb1a213a99c95814fdb assets/create/models/block/windmill_bearing.json
|
||||||
6c063bc2ef06940af3a1d3d0f1546030bdaef672 assets/create/models/block/yellow_display_cloth.json
|
6c063bc2ef06940af3a1d3d0f1546030bdaef672 assets/create/models/block/yellow_display_cloth.json
|
||||||
2f040681214af58a97e70d3a6e77a0fc2e02c624 assets/create/models/block/yellow_nixie_tube.json
|
2f040681214af58a97e70d3a6e77a0fc2e02c624 assets/create/models/block/yellow_nixie_tube.json
|
||||||
9abbd0af47396b1cb18362b423f497ddb40eede4 assets/create/models/block/yellow_postbox.json
|
9abbd0af47396b1cb18362b423f497ddb40eede4 assets/create/models/block/yellow_postbox_closed.json
|
||||||
|
098b675ef5071a32bce387445da09067917852c7 assets/create/models/block/yellow_postbox_open.json
|
||||||
cf8477d6c7558ceba38416fae755567086a856a6 assets/create/models/block/yellow_sail.json
|
cf8477d6c7558ceba38416fae755567086a856a6 assets/create/models/block/yellow_sail.json
|
||||||
07b68f0e4c617dfe3e935a1b9e8e020ab3131c0b assets/create/models/block/yellow_seat.json
|
07b68f0e4c617dfe3e935a1b9e8e020ab3131c0b assets/create/models/block/yellow_seat.json
|
||||||
21bb6e0b43984214c496e531e16dd60aeb619a42 assets/create/models/block/yellow_toolbox.json
|
21bb6e0b43984214c496e531e16dd60aeb619a42 assets/create/models/block/yellow_toolbox.json
|
||||||
|
@ -3185,7 +3201,7 @@ bb9d906a97810ed1461ed321ef8e4bee1dd104fb data/create/loot_tables/blocks/blue_sai
|
||||||
833fe6bc3020055dd0d6f46b324cbe27b248708d data/create/loot_tables/blocks/blue_seat.json
|
833fe6bc3020055dd0d6f46b324cbe27b248708d data/create/loot_tables/blocks/blue_seat.json
|
||||||
9d22716d9d846dc9587e327dfcdf18dd5955f826 data/create/loot_tables/blocks/blue_toolbox.json
|
9d22716d9d846dc9587e327dfcdf18dd5955f826 data/create/loot_tables/blocks/blue_toolbox.json
|
||||||
6d7ecb10e21b1e12c83c71736f14cbba3ccd7aaf data/create/loot_tables/blocks/blue_valve_handle.json
|
6d7ecb10e21b1e12c83c71736f14cbba3ccd7aaf data/create/loot_tables/blocks/blue_valve_handle.json
|
||||||
14f1cffb75761dc7e6223aa16a5d84da10dc2813 data/create/loot_tables/blocks/bound_cardboard_block.json
|
53e01f63aa47aa00575240ccdf867b4d6c392385 data/create/loot_tables/blocks/bound_cardboard_block.json
|
||||||
7d8b199f381003e5a74a8144976b65c93a09dbcb data/create/loot_tables/blocks/brass_bars.json
|
7d8b199f381003e5a74a8144976b65c93a09dbcb data/create/loot_tables/blocks/brass_bars.json
|
||||||
64a5869c6b3edeca06771f8ef64ef9521d83302a data/create/loot_tables/blocks/brass_belt_funnel.json
|
64a5869c6b3edeca06771f8ef64ef9521d83302a data/create/loot_tables/blocks/brass_belt_funnel.json
|
||||||
78ecee2c9baf6b0c78f6c7aa692e102a3f4dda74 data/create/loot_tables/blocks/brass_block.json
|
78ecee2c9baf6b0c78f6c7aa692e102a3f4dda74 data/create/loot_tables/blocks/brass_block.json
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
// 1.20.1 2024-10-30T15:58:08.6667432 Create's Standard Recipes
|
// 1.20.1 2024-11-01T09:46:44.6761844 Create's Standard Recipes
|
||||||
a8cc4af26f6c7c45a9eef12e92af1452fe042454 data/create/advancements/recipes/combat/crafting/appliances/netherite_backtank.json
|
a8cc4af26f6c7c45a9eef12e92af1452fe042454 data/create/advancements/recipes/combat/crafting/appliances/netherite_backtank.json
|
||||||
2c2639c7b307ee7c7a4e97e5efebf496788998ad data/create/advancements/recipes/combat/crafting/appliances/netherite_backtank_from_netherite.json
|
2c2639c7b307ee7c7a4e97e5efebf496788998ad data/create/advancements/recipes/combat/crafting/appliances/netherite_backtank_from_netherite.json
|
||||||
81dcf0cb1aa99e39bc7d1a386e07cad4cee7d8b9 data/create/advancements/recipes/combat/crafting/appliances/netherite_diving_boots.json
|
81dcf0cb1aa99e39bc7d1a386e07cad4cee7d8b9 data/create/advancements/recipes/combat/crafting/appliances/netherite_diving_boots.json
|
||||||
|
@ -454,7 +454,7 @@ ac524c110f66a7433208a888c5f3bb69e5e95743 data/create/recipes/crafting/materials/
|
||||||
e6bb68a1d2ed5a629c83f5a0eefb843bb890736d data/create/recipes/crafting/materials/andesite_alloy_block.json
|
e6bb68a1d2ed5a629c83f5a0eefb843bb890736d data/create/recipes/crafting/materials/andesite_alloy_block.json
|
||||||
eebacb477bcce876622173289b06e1ad21424686 data/create/recipes/crafting/materials/andesite_alloy_from_block.json
|
eebacb477bcce876622173289b06e1ad21424686 data/create/recipes/crafting/materials/andesite_alloy_from_block.json
|
||||||
5008707e622c0fa0b6df32da5da7230a4da574ca data/create/recipes/crafting/materials/andesite_alloy_from_zinc.json
|
5008707e622c0fa0b6df32da5da7230a4da574ca data/create/recipes/crafting/materials/andesite_alloy_from_zinc.json
|
||||||
455730ac3f06c0b2ef20992ec23edd36cd65194b data/create/recipes/crafting/materials/bound_cardboard_block.json
|
ba8ec9cb0894132cd4e0d14322a388c061706a29 data/create/recipes/crafting/materials/bound_cardboard_block.json
|
||||||
f9f94e5082e7971e55b25bc00ba86c3579b492aa data/create/recipes/crafting/materials/brass_block_from_compacting.json
|
f9f94e5082e7971e55b25bc00ba86c3579b492aa data/create/recipes/crafting/materials/brass_block_from_compacting.json
|
||||||
ecd8581ad4a04cc1217133363bd15d76129cb651 data/create/recipes/crafting/materials/brass_ingot_from_compacting.json
|
ecd8581ad4a04cc1217133363bd15d76129cb651 data/create/recipes/crafting/materials/brass_ingot_from_compacting.json
|
||||||
fe2f3c0722aa0f6b41ad0f497b9742eb856c0dd0 data/create/recipes/crafting/materials/brass_ingot_from_decompacting.json
|
fe2f3c0722aa0f6b41ad0f497b9742eb856c0dd0 data/create/recipes/crafting/materials/brass_ingot_from_decompacting.json
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
// 1.20.1 2024-10-18T15:46:50.4883378 Create's Processing Recipes
|
// 1.20.1 2024-11-01T09:46:44.623326 Create's Processing Recipes
|
||||||
3c94326fb730f68c1e44fe1e2ef09c9db6ffd92b data/create/recipes/compacting/andesite_from_flint.json
|
3c94326fb730f68c1e44fe1e2ef09c9db6ffd92b data/create/recipes/compacting/andesite_from_flint.json
|
||||||
8d3d5b31f3601b9f681ff710e0545a483a1494c6 data/create/recipes/compacting/blaze_cake.json
|
8d3d5b31f3601b9f681ff710e0545a483a1494c6 data/create/recipes/compacting/blaze_cake.json
|
||||||
8bd7f4e3a686ab520b2d55594d2018d0e9a50c91 data/create/recipes/compacting/chocolate.json
|
8bd7f4e3a686ab520b2d55594d2018d0e9a50c91 data/create/recipes/compacting/chocolate.json
|
||||||
|
@ -752,6 +752,7 @@ a701fb82072d60320aa9b0280fa58c58296e8e42 data/create/recipes/haunting/soul_sand.
|
||||||
b18c81c17d395fb6e9291fc010576914000f069d data/create/recipes/haunting/warped_fungus.json
|
b18c81c17d395fb6e9291fc010576914000f069d data/create/recipes/haunting/warped_fungus.json
|
||||||
409c94b597bc0e35cce51282428fc02b919bb55e data/create/recipes/item_application/andesite_casing_from_log.json
|
409c94b597bc0e35cce51282428fc02b919bb55e data/create/recipes/item_application/andesite_casing_from_log.json
|
||||||
4816a96aa0117b826ec01f9351c98eaec4e132fd data/create/recipes/item_application/andesite_casing_from_wood.json
|
4816a96aa0117b826ec01f9351c98eaec4e132fd data/create/recipes/item_application/andesite_casing_from_wood.json
|
||||||
|
59b5145feb9f433aaab98bb7e3f1070499768210 data/create/recipes/item_application/bound_cardboard_inworld.json
|
||||||
ac734bd72012ab3f0fd362fdcf237191874e1eae data/create/recipes/item_application/brass_casing_from_log.json
|
ac734bd72012ab3f0fd362fdcf237191874e1eae data/create/recipes/item_application/brass_casing_from_log.json
|
||||||
df1d95a4e41fb01d0ac240f89dcf734e00d92853 data/create/recipes/item_application/brass_casing_from_wood.json
|
df1d95a4e41fb01d0ac240f89dcf734e00d92853 data/create/recipes/item_application/brass_casing_from_wood.json
|
||||||
a9e164ba47552af7df82f011080d981420388bc6 data/create/recipes/item_application/copper_casing_from_log.json
|
a9e164ba47552af7df82f011080d981420388bc6 data/create/recipes/item_application/copper_casing_from_log.json
|
||||||
|
|
|
@ -1,33 +1,33 @@
|
||||||
{
|
{
|
||||||
"variants": {
|
"variants": {
|
||||||
"facing=east,open=false": {
|
"facing=east,open=false": {
|
||||||
"model": "create:block/black_postbox",
|
"model": "create:block/black_postbox_closed",
|
||||||
"y": 90
|
"y": 90
|
||||||
},
|
},
|
||||||
"facing=east,open=true": {
|
"facing=east,open=true": {
|
||||||
"model": "create:block/black_postbox",
|
"model": "create:block/black_postbox_open",
|
||||||
"y": 90
|
"y": 90
|
||||||
},
|
},
|
||||||
"facing=north,open=false": {
|
"facing=north,open=false": {
|
||||||
"model": "create:block/black_postbox"
|
"model": "create:block/black_postbox_closed"
|
||||||
},
|
},
|
||||||
"facing=north,open=true": {
|
"facing=north,open=true": {
|
||||||
"model": "create:block/black_postbox"
|
"model": "create:block/black_postbox_open"
|
||||||
},
|
},
|
||||||
"facing=south,open=false": {
|
"facing=south,open=false": {
|
||||||
"model": "create:block/black_postbox",
|
"model": "create:block/black_postbox_closed",
|
||||||
"y": 180
|
"y": 180
|
||||||
},
|
},
|
||||||
"facing=south,open=true": {
|
"facing=south,open=true": {
|
||||||
"model": "create:block/black_postbox",
|
"model": "create:block/black_postbox_open",
|
||||||
"y": 180
|
"y": 180
|
||||||
},
|
},
|
||||||
"facing=west,open=false": {
|
"facing=west,open=false": {
|
||||||
"model": "create:block/black_postbox",
|
"model": "create:block/black_postbox_closed",
|
||||||
"y": 270
|
"y": 270
|
||||||
},
|
},
|
||||||
"facing=west,open=true": {
|
"facing=west,open=true": {
|
||||||
"model": "create:block/black_postbox",
|
"model": "create:block/black_postbox_open",
|
||||||
"y": 270
|
"y": 270
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,33 +1,33 @@
|
||||||
{
|
{
|
||||||
"variants": {
|
"variants": {
|
||||||
"facing=east,open=false": {
|
"facing=east,open=false": {
|
||||||
"model": "create:block/blue_postbox",
|
"model": "create:block/blue_postbox_closed",
|
||||||
"y": 90
|
"y": 90
|
||||||
},
|
},
|
||||||
"facing=east,open=true": {
|
"facing=east,open=true": {
|
||||||
"model": "create:block/blue_postbox",
|
"model": "create:block/blue_postbox_open",
|
||||||
"y": 90
|
"y": 90
|
||||||
},
|
},
|
||||||
"facing=north,open=false": {
|
"facing=north,open=false": {
|
||||||
"model": "create:block/blue_postbox"
|
"model": "create:block/blue_postbox_closed"
|
||||||
},
|
},
|
||||||
"facing=north,open=true": {
|
"facing=north,open=true": {
|
||||||
"model": "create:block/blue_postbox"
|
"model": "create:block/blue_postbox_open"
|
||||||
},
|
},
|
||||||
"facing=south,open=false": {
|
"facing=south,open=false": {
|
||||||
"model": "create:block/blue_postbox",
|
"model": "create:block/blue_postbox_closed",
|
||||||
"y": 180
|
"y": 180
|
||||||
},
|
},
|
||||||
"facing=south,open=true": {
|
"facing=south,open=true": {
|
||||||
"model": "create:block/blue_postbox",
|
"model": "create:block/blue_postbox_open",
|
||||||
"y": 180
|
"y": 180
|
||||||
},
|
},
|
||||||
"facing=west,open=false": {
|
"facing=west,open=false": {
|
||||||
"model": "create:block/blue_postbox",
|
"model": "create:block/blue_postbox_closed",
|
||||||
"y": 270
|
"y": 270
|
||||||
},
|
},
|
||||||
"facing=west,open=true": {
|
"facing=west,open=true": {
|
||||||
"model": "create:block/blue_postbox",
|
"model": "create:block/blue_postbox_open",
|
||||||
"y": 270
|
"y": 270
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,33 +1,33 @@
|
||||||
{
|
{
|
||||||
"variants": {
|
"variants": {
|
||||||
"facing=east,open=false": {
|
"facing=east,open=false": {
|
||||||
"model": "create:block/brown_postbox",
|
"model": "create:block/brown_postbox_closed",
|
||||||
"y": 90
|
"y": 90
|
||||||
},
|
},
|
||||||
"facing=east,open=true": {
|
"facing=east,open=true": {
|
||||||
"model": "create:block/brown_postbox",
|
"model": "create:block/brown_postbox_open",
|
||||||
"y": 90
|
"y": 90
|
||||||
},
|
},
|
||||||
"facing=north,open=false": {
|
"facing=north,open=false": {
|
||||||
"model": "create:block/brown_postbox"
|
"model": "create:block/brown_postbox_closed"
|
||||||
},
|
},
|
||||||
"facing=north,open=true": {
|
"facing=north,open=true": {
|
||||||
"model": "create:block/brown_postbox"
|
"model": "create:block/brown_postbox_open"
|
||||||
},
|
},
|
||||||
"facing=south,open=false": {
|
"facing=south,open=false": {
|
||||||
"model": "create:block/brown_postbox",
|
"model": "create:block/brown_postbox_closed",
|
||||||
"y": 180
|
"y": 180
|
||||||
},
|
},
|
||||||
"facing=south,open=true": {
|
"facing=south,open=true": {
|
||||||
"model": "create:block/brown_postbox",
|
"model": "create:block/brown_postbox_open",
|
||||||
"y": 180
|
"y": 180
|
||||||
},
|
},
|
||||||
"facing=west,open=false": {
|
"facing=west,open=false": {
|
||||||
"model": "create:block/brown_postbox",
|
"model": "create:block/brown_postbox_closed",
|
||||||
"y": 270
|
"y": 270
|
||||||
},
|
},
|
||||||
"facing=west,open=true": {
|
"facing=west,open=true": {
|
||||||
"model": "create:block/brown_postbox",
|
"model": "create:block/brown_postbox_open",
|
||||||
"y": 270
|
"y": 270
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,33 +1,33 @@
|
||||||
{
|
{
|
||||||
"variants": {
|
"variants": {
|
||||||
"facing=east,open=false": {
|
"facing=east,open=false": {
|
||||||
"model": "create:block/cyan_postbox",
|
"model": "create:block/cyan_postbox_closed",
|
||||||
"y": 90
|
"y": 90
|
||||||
},
|
},
|
||||||
"facing=east,open=true": {
|
"facing=east,open=true": {
|
||||||
"model": "create:block/cyan_postbox",
|
"model": "create:block/cyan_postbox_open",
|
||||||
"y": 90
|
"y": 90
|
||||||
},
|
},
|
||||||
"facing=north,open=false": {
|
"facing=north,open=false": {
|
||||||
"model": "create:block/cyan_postbox"
|
"model": "create:block/cyan_postbox_closed"
|
||||||
},
|
},
|
||||||
"facing=north,open=true": {
|
"facing=north,open=true": {
|
||||||
"model": "create:block/cyan_postbox"
|
"model": "create:block/cyan_postbox_open"
|
||||||
},
|
},
|
||||||
"facing=south,open=false": {
|
"facing=south,open=false": {
|
||||||
"model": "create:block/cyan_postbox",
|
"model": "create:block/cyan_postbox_closed",
|
||||||
"y": 180
|
"y": 180
|
||||||
},
|
},
|
||||||
"facing=south,open=true": {
|
"facing=south,open=true": {
|
||||||
"model": "create:block/cyan_postbox",
|
"model": "create:block/cyan_postbox_open",
|
||||||
"y": 180
|
"y": 180
|
||||||
},
|
},
|
||||||
"facing=west,open=false": {
|
"facing=west,open=false": {
|
||||||
"model": "create:block/cyan_postbox",
|
"model": "create:block/cyan_postbox_closed",
|
||||||
"y": 270
|
"y": 270
|
||||||
},
|
},
|
||||||
"facing=west,open=true": {
|
"facing=west,open=true": {
|
||||||
"model": "create:block/cyan_postbox",
|
"model": "create:block/cyan_postbox_open",
|
||||||
"y": 270
|
"y": 270
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,33 +1,33 @@
|
||||||
{
|
{
|
||||||
"variants": {
|
"variants": {
|
||||||
"facing=east,open=false": {
|
"facing=east,open=false": {
|
||||||
"model": "create:block/gray_postbox",
|
"model": "create:block/gray_postbox_closed",
|
||||||
"y": 90
|
"y": 90
|
||||||
},
|
},
|
||||||
"facing=east,open=true": {
|
"facing=east,open=true": {
|
||||||
"model": "create:block/gray_postbox",
|
"model": "create:block/gray_postbox_open",
|
||||||
"y": 90
|
"y": 90
|
||||||
},
|
},
|
||||||
"facing=north,open=false": {
|
"facing=north,open=false": {
|
||||||
"model": "create:block/gray_postbox"
|
"model": "create:block/gray_postbox_closed"
|
||||||
},
|
},
|
||||||
"facing=north,open=true": {
|
"facing=north,open=true": {
|
||||||
"model": "create:block/gray_postbox"
|
"model": "create:block/gray_postbox_open"
|
||||||
},
|
},
|
||||||
"facing=south,open=false": {
|
"facing=south,open=false": {
|
||||||
"model": "create:block/gray_postbox",
|
"model": "create:block/gray_postbox_closed",
|
||||||
"y": 180
|
"y": 180
|
||||||
},
|
},
|
||||||
"facing=south,open=true": {
|
"facing=south,open=true": {
|
||||||
"model": "create:block/gray_postbox",
|
"model": "create:block/gray_postbox_open",
|
||||||
"y": 180
|
"y": 180
|
||||||
},
|
},
|
||||||
"facing=west,open=false": {
|
"facing=west,open=false": {
|
||||||
"model": "create:block/gray_postbox",
|
"model": "create:block/gray_postbox_closed",
|
||||||
"y": 270
|
"y": 270
|
||||||
},
|
},
|
||||||
"facing=west,open=true": {
|
"facing=west,open=true": {
|
||||||
"model": "create:block/gray_postbox",
|
"model": "create:block/gray_postbox_open",
|
||||||
"y": 270
|
"y": 270
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,33 +1,33 @@
|
||||||
{
|
{
|
||||||
"variants": {
|
"variants": {
|
||||||
"facing=east,open=false": {
|
"facing=east,open=false": {
|
||||||
"model": "create:block/green_postbox",
|
"model": "create:block/green_postbox_closed",
|
||||||
"y": 90
|
"y": 90
|
||||||
},
|
},
|
||||||
"facing=east,open=true": {
|
"facing=east,open=true": {
|
||||||
"model": "create:block/green_postbox",
|
"model": "create:block/green_postbox_open",
|
||||||
"y": 90
|
"y": 90
|
||||||
},
|
},
|
||||||
"facing=north,open=false": {
|
"facing=north,open=false": {
|
||||||
"model": "create:block/green_postbox"
|
"model": "create:block/green_postbox_closed"
|
||||||
},
|
},
|
||||||
"facing=north,open=true": {
|
"facing=north,open=true": {
|
||||||
"model": "create:block/green_postbox"
|
"model": "create:block/green_postbox_open"
|
||||||
},
|
},
|
||||||
"facing=south,open=false": {
|
"facing=south,open=false": {
|
||||||
"model": "create:block/green_postbox",
|
"model": "create:block/green_postbox_closed",
|
||||||
"y": 180
|
"y": 180
|
||||||
},
|
},
|
||||||
"facing=south,open=true": {
|
"facing=south,open=true": {
|
||||||
"model": "create:block/green_postbox",
|
"model": "create:block/green_postbox_open",
|
||||||
"y": 180
|
"y": 180
|
||||||
},
|
},
|
||||||
"facing=west,open=false": {
|
"facing=west,open=false": {
|
||||||
"model": "create:block/green_postbox",
|
"model": "create:block/green_postbox_closed",
|
||||||
"y": 270
|
"y": 270
|
||||||
},
|
},
|
||||||
"facing=west,open=true": {
|
"facing=west,open=true": {
|
||||||
"model": "create:block/green_postbox",
|
"model": "create:block/green_postbox_open",
|
||||||
"y": 270
|
"y": 270
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,33 +1,33 @@
|
||||||
{
|
{
|
||||||
"variants": {
|
"variants": {
|
||||||
"facing=east,open=false": {
|
"facing=east,open=false": {
|
||||||
"model": "create:block/light_blue_postbox",
|
"model": "create:block/light_blue_postbox_closed",
|
||||||
"y": 90
|
"y": 90
|
||||||
},
|
},
|
||||||
"facing=east,open=true": {
|
"facing=east,open=true": {
|
||||||
"model": "create:block/light_blue_postbox",
|
"model": "create:block/light_blue_postbox_open",
|
||||||
"y": 90
|
"y": 90
|
||||||
},
|
},
|
||||||
"facing=north,open=false": {
|
"facing=north,open=false": {
|
||||||
"model": "create:block/light_blue_postbox"
|
"model": "create:block/light_blue_postbox_closed"
|
||||||
},
|
},
|
||||||
"facing=north,open=true": {
|
"facing=north,open=true": {
|
||||||
"model": "create:block/light_blue_postbox"
|
"model": "create:block/light_blue_postbox_open"
|
||||||
},
|
},
|
||||||
"facing=south,open=false": {
|
"facing=south,open=false": {
|
||||||
"model": "create:block/light_blue_postbox",
|
"model": "create:block/light_blue_postbox_closed",
|
||||||
"y": 180
|
"y": 180
|
||||||
},
|
},
|
||||||
"facing=south,open=true": {
|
"facing=south,open=true": {
|
||||||
"model": "create:block/light_blue_postbox",
|
"model": "create:block/light_blue_postbox_open",
|
||||||
"y": 180
|
"y": 180
|
||||||
},
|
},
|
||||||
"facing=west,open=false": {
|
"facing=west,open=false": {
|
||||||
"model": "create:block/light_blue_postbox",
|
"model": "create:block/light_blue_postbox_closed",
|
||||||
"y": 270
|
"y": 270
|
||||||
},
|
},
|
||||||
"facing=west,open=true": {
|
"facing=west,open=true": {
|
||||||
"model": "create:block/light_blue_postbox",
|
"model": "create:block/light_blue_postbox_open",
|
||||||
"y": 270
|
"y": 270
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,33 +1,33 @@
|
||||||
{
|
{
|
||||||
"variants": {
|
"variants": {
|
||||||
"facing=east,open=false": {
|
"facing=east,open=false": {
|
||||||
"model": "create:block/light_gray_postbox",
|
"model": "create:block/light_gray_postbox_closed",
|
||||||
"y": 90
|
"y": 90
|
||||||
},
|
},
|
||||||
"facing=east,open=true": {
|
"facing=east,open=true": {
|
||||||
"model": "create:block/light_gray_postbox",
|
"model": "create:block/light_gray_postbox_open",
|
||||||
"y": 90
|
"y": 90
|
||||||
},
|
},
|
||||||
"facing=north,open=false": {
|
"facing=north,open=false": {
|
||||||
"model": "create:block/light_gray_postbox"
|
"model": "create:block/light_gray_postbox_closed"
|
||||||
},
|
},
|
||||||
"facing=north,open=true": {
|
"facing=north,open=true": {
|
||||||
"model": "create:block/light_gray_postbox"
|
"model": "create:block/light_gray_postbox_open"
|
||||||
},
|
},
|
||||||
"facing=south,open=false": {
|
"facing=south,open=false": {
|
||||||
"model": "create:block/light_gray_postbox",
|
"model": "create:block/light_gray_postbox_closed",
|
||||||
"y": 180
|
"y": 180
|
||||||
},
|
},
|
||||||
"facing=south,open=true": {
|
"facing=south,open=true": {
|
||||||
"model": "create:block/light_gray_postbox",
|
"model": "create:block/light_gray_postbox_open",
|
||||||
"y": 180
|
"y": 180
|
||||||
},
|
},
|
||||||
"facing=west,open=false": {
|
"facing=west,open=false": {
|
||||||
"model": "create:block/light_gray_postbox",
|
"model": "create:block/light_gray_postbox_closed",
|
||||||
"y": 270
|
"y": 270
|
||||||
},
|
},
|
||||||
"facing=west,open=true": {
|
"facing=west,open=true": {
|
||||||
"model": "create:block/light_gray_postbox",
|
"model": "create:block/light_gray_postbox_open",
|
||||||
"y": 270
|
"y": 270
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,33 +1,33 @@
|
||||||
{
|
{
|
||||||
"variants": {
|
"variants": {
|
||||||
"facing=east,open=false": {
|
"facing=east,open=false": {
|
||||||
"model": "create:block/lime_postbox",
|
"model": "create:block/lime_postbox_closed",
|
||||||
"y": 90
|
"y": 90
|
||||||
},
|
},
|
||||||
"facing=east,open=true": {
|
"facing=east,open=true": {
|
||||||
"model": "create:block/lime_postbox",
|
"model": "create:block/lime_postbox_open",
|
||||||
"y": 90
|
"y": 90
|
||||||
},
|
},
|
||||||
"facing=north,open=false": {
|
"facing=north,open=false": {
|
||||||
"model": "create:block/lime_postbox"
|
"model": "create:block/lime_postbox_closed"
|
||||||
},
|
},
|
||||||
"facing=north,open=true": {
|
"facing=north,open=true": {
|
||||||
"model": "create:block/lime_postbox"
|
"model": "create:block/lime_postbox_open"
|
||||||
},
|
},
|
||||||
"facing=south,open=false": {
|
"facing=south,open=false": {
|
||||||
"model": "create:block/lime_postbox",
|
"model": "create:block/lime_postbox_closed",
|
||||||
"y": 180
|
"y": 180
|
||||||
},
|
},
|
||||||
"facing=south,open=true": {
|
"facing=south,open=true": {
|
||||||
"model": "create:block/lime_postbox",
|
"model": "create:block/lime_postbox_open",
|
||||||
"y": 180
|
"y": 180
|
||||||
},
|
},
|
||||||
"facing=west,open=false": {
|
"facing=west,open=false": {
|
||||||
"model": "create:block/lime_postbox",
|
"model": "create:block/lime_postbox_closed",
|
||||||
"y": 270
|
"y": 270
|
||||||
},
|
},
|
||||||
"facing=west,open=true": {
|
"facing=west,open=true": {
|
||||||
"model": "create:block/lime_postbox",
|
"model": "create:block/lime_postbox_open",
|
||||||
"y": 270
|
"y": 270
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,33 +1,33 @@
|
||||||
{
|
{
|
||||||
"variants": {
|
"variants": {
|
||||||
"facing=east,open=false": {
|
"facing=east,open=false": {
|
||||||
"model": "create:block/magenta_postbox",
|
"model": "create:block/magenta_postbox_closed",
|
||||||
"y": 90
|
"y": 90
|
||||||
},
|
},
|
||||||
"facing=east,open=true": {
|
"facing=east,open=true": {
|
||||||
"model": "create:block/magenta_postbox",
|
"model": "create:block/magenta_postbox_open",
|
||||||
"y": 90
|
"y": 90
|
||||||
},
|
},
|
||||||
"facing=north,open=false": {
|
"facing=north,open=false": {
|
||||||
"model": "create:block/magenta_postbox"
|
"model": "create:block/magenta_postbox_closed"
|
||||||
},
|
},
|
||||||
"facing=north,open=true": {
|
"facing=north,open=true": {
|
||||||
"model": "create:block/magenta_postbox"
|
"model": "create:block/magenta_postbox_open"
|
||||||
},
|
},
|
||||||
"facing=south,open=false": {
|
"facing=south,open=false": {
|
||||||
"model": "create:block/magenta_postbox",
|
"model": "create:block/magenta_postbox_closed",
|
||||||
"y": 180
|
"y": 180
|
||||||
},
|
},
|
||||||
"facing=south,open=true": {
|
"facing=south,open=true": {
|
||||||
"model": "create:block/magenta_postbox",
|
"model": "create:block/magenta_postbox_open",
|
||||||
"y": 180
|
"y": 180
|
||||||
},
|
},
|
||||||
"facing=west,open=false": {
|
"facing=west,open=false": {
|
||||||
"model": "create:block/magenta_postbox",
|
"model": "create:block/magenta_postbox_closed",
|
||||||
"y": 270
|
"y": 270
|
||||||
},
|
},
|
||||||
"facing=west,open=true": {
|
"facing=west,open=true": {
|
||||||
"model": "create:block/magenta_postbox",
|
"model": "create:block/magenta_postbox_open",
|
||||||
"y": 270
|
"y": 270
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,33 +1,33 @@
|
||||||
{
|
{
|
||||||
"variants": {
|
"variants": {
|
||||||
"facing=east,open=false": {
|
"facing=east,open=false": {
|
||||||
"model": "create:block/orange_postbox",
|
"model": "create:block/orange_postbox_closed",
|
||||||
"y": 90
|
"y": 90
|
||||||
},
|
},
|
||||||
"facing=east,open=true": {
|
"facing=east,open=true": {
|
||||||
"model": "create:block/orange_postbox",
|
"model": "create:block/orange_postbox_open",
|
||||||
"y": 90
|
"y": 90
|
||||||
},
|
},
|
||||||
"facing=north,open=false": {
|
"facing=north,open=false": {
|
||||||
"model": "create:block/orange_postbox"
|
"model": "create:block/orange_postbox_closed"
|
||||||
},
|
},
|
||||||
"facing=north,open=true": {
|
"facing=north,open=true": {
|
||||||
"model": "create:block/orange_postbox"
|
"model": "create:block/orange_postbox_open"
|
||||||
},
|
},
|
||||||
"facing=south,open=false": {
|
"facing=south,open=false": {
|
||||||
"model": "create:block/orange_postbox",
|
"model": "create:block/orange_postbox_closed",
|
||||||
"y": 180
|
"y": 180
|
||||||
},
|
},
|
||||||
"facing=south,open=true": {
|
"facing=south,open=true": {
|
||||||
"model": "create:block/orange_postbox",
|
"model": "create:block/orange_postbox_open",
|
||||||
"y": 180
|
"y": 180
|
||||||
},
|
},
|
||||||
"facing=west,open=false": {
|
"facing=west,open=false": {
|
||||||
"model": "create:block/orange_postbox",
|
"model": "create:block/orange_postbox_closed",
|
||||||
"y": 270
|
"y": 270
|
||||||
},
|
},
|
||||||
"facing=west,open=true": {
|
"facing=west,open=true": {
|
||||||
"model": "create:block/orange_postbox",
|
"model": "create:block/orange_postbox_open",
|
||||||
"y": 270
|
"y": 270
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,33 +1,33 @@
|
||||||
{
|
{
|
||||||
"variants": {
|
"variants": {
|
||||||
"facing=east,open=false": {
|
"facing=east,open=false": {
|
||||||
"model": "create:block/pink_postbox",
|
"model": "create:block/pink_postbox_closed",
|
||||||
"y": 90
|
"y": 90
|
||||||
},
|
},
|
||||||
"facing=east,open=true": {
|
"facing=east,open=true": {
|
||||||
"model": "create:block/pink_postbox",
|
"model": "create:block/pink_postbox_open",
|
||||||
"y": 90
|
"y": 90
|
||||||
},
|
},
|
||||||
"facing=north,open=false": {
|
"facing=north,open=false": {
|
||||||
"model": "create:block/pink_postbox"
|
"model": "create:block/pink_postbox_closed"
|
||||||
},
|
},
|
||||||
"facing=north,open=true": {
|
"facing=north,open=true": {
|
||||||
"model": "create:block/pink_postbox"
|
"model": "create:block/pink_postbox_open"
|
||||||
},
|
},
|
||||||
"facing=south,open=false": {
|
"facing=south,open=false": {
|
||||||
"model": "create:block/pink_postbox",
|
"model": "create:block/pink_postbox_closed",
|
||||||
"y": 180
|
"y": 180
|
||||||
},
|
},
|
||||||
"facing=south,open=true": {
|
"facing=south,open=true": {
|
||||||
"model": "create:block/pink_postbox",
|
"model": "create:block/pink_postbox_open",
|
||||||
"y": 180
|
"y": 180
|
||||||
},
|
},
|
||||||
"facing=west,open=false": {
|
"facing=west,open=false": {
|
||||||
"model": "create:block/pink_postbox",
|
"model": "create:block/pink_postbox_closed",
|
||||||
"y": 270
|
"y": 270
|
||||||
},
|
},
|
||||||
"facing=west,open=true": {
|
"facing=west,open=true": {
|
||||||
"model": "create:block/pink_postbox",
|
"model": "create:block/pink_postbox_open",
|
||||||
"y": 270
|
"y": 270
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,33 +1,33 @@
|
||||||
{
|
{
|
||||||
"variants": {
|
"variants": {
|
||||||
"facing=east,open=false": {
|
"facing=east,open=false": {
|
||||||
"model": "create:block/purple_postbox",
|
"model": "create:block/purple_postbox_closed",
|
||||||
"y": 90
|
"y": 90
|
||||||
},
|
},
|
||||||
"facing=east,open=true": {
|
"facing=east,open=true": {
|
||||||
"model": "create:block/purple_postbox",
|
"model": "create:block/purple_postbox_open",
|
||||||
"y": 90
|
"y": 90
|
||||||
},
|
},
|
||||||
"facing=north,open=false": {
|
"facing=north,open=false": {
|
||||||
"model": "create:block/purple_postbox"
|
"model": "create:block/purple_postbox_closed"
|
||||||
},
|
},
|
||||||
"facing=north,open=true": {
|
"facing=north,open=true": {
|
||||||
"model": "create:block/purple_postbox"
|
"model": "create:block/purple_postbox_open"
|
||||||
},
|
},
|
||||||
"facing=south,open=false": {
|
"facing=south,open=false": {
|
||||||
"model": "create:block/purple_postbox",
|
"model": "create:block/purple_postbox_closed",
|
||||||
"y": 180
|
"y": 180
|
||||||
},
|
},
|
||||||
"facing=south,open=true": {
|
"facing=south,open=true": {
|
||||||
"model": "create:block/purple_postbox",
|
"model": "create:block/purple_postbox_open",
|
||||||
"y": 180
|
"y": 180
|
||||||
},
|
},
|
||||||
"facing=west,open=false": {
|
"facing=west,open=false": {
|
||||||
"model": "create:block/purple_postbox",
|
"model": "create:block/purple_postbox_closed",
|
||||||
"y": 270
|
"y": 270
|
||||||
},
|
},
|
||||||
"facing=west,open=true": {
|
"facing=west,open=true": {
|
||||||
"model": "create:block/purple_postbox",
|
"model": "create:block/purple_postbox_open",
|
||||||
"y": 270
|
"y": 270
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,33 +1,33 @@
|
||||||
{
|
{
|
||||||
"variants": {
|
"variants": {
|
||||||
"facing=east,open=false": {
|
"facing=east,open=false": {
|
||||||
"model": "create:block/red_postbox",
|
"model": "create:block/red_postbox_closed",
|
||||||
"y": 90
|
"y": 90
|
||||||
},
|
},
|
||||||
"facing=east,open=true": {
|
"facing=east,open=true": {
|
||||||
"model": "create:block/red_postbox",
|
"model": "create:block/red_postbox_open",
|
||||||
"y": 90
|
"y": 90
|
||||||
},
|
},
|
||||||
"facing=north,open=false": {
|
"facing=north,open=false": {
|
||||||
"model": "create:block/red_postbox"
|
"model": "create:block/red_postbox_closed"
|
||||||
},
|
},
|
||||||
"facing=north,open=true": {
|
"facing=north,open=true": {
|
||||||
"model": "create:block/red_postbox"
|
"model": "create:block/red_postbox_open"
|
||||||
},
|
},
|
||||||
"facing=south,open=false": {
|
"facing=south,open=false": {
|
||||||
"model": "create:block/red_postbox",
|
"model": "create:block/red_postbox_closed",
|
||||||
"y": 180
|
"y": 180
|
||||||
},
|
},
|
||||||
"facing=south,open=true": {
|
"facing=south,open=true": {
|
||||||
"model": "create:block/red_postbox",
|
"model": "create:block/red_postbox_open",
|
||||||
"y": 180
|
"y": 180
|
||||||
},
|
},
|
||||||
"facing=west,open=false": {
|
"facing=west,open=false": {
|
||||||
"model": "create:block/red_postbox",
|
"model": "create:block/red_postbox_closed",
|
||||||
"y": 270
|
"y": 270
|
||||||
},
|
},
|
||||||
"facing=west,open=true": {
|
"facing=west,open=true": {
|
||||||
"model": "create:block/red_postbox",
|
"model": "create:block/red_postbox_open",
|
||||||
"y": 270
|
"y": 270
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,33 +1,33 @@
|
||||||
{
|
{
|
||||||
"variants": {
|
"variants": {
|
||||||
"facing=east,open=false": {
|
"facing=east,open=false": {
|
||||||
"model": "create:block/white_postbox",
|
"model": "create:block/white_postbox_closed",
|
||||||
"y": 90
|
"y": 90
|
||||||
},
|
},
|
||||||
"facing=east,open=true": {
|
"facing=east,open=true": {
|
||||||
"model": "create:block/white_postbox",
|
"model": "create:block/white_postbox_open",
|
||||||
"y": 90
|
"y": 90
|
||||||
},
|
},
|
||||||
"facing=north,open=false": {
|
"facing=north,open=false": {
|
||||||
"model": "create:block/white_postbox"
|
"model": "create:block/white_postbox_closed"
|
||||||
},
|
},
|
||||||
"facing=north,open=true": {
|
"facing=north,open=true": {
|
||||||
"model": "create:block/white_postbox"
|
"model": "create:block/white_postbox_open"
|
||||||
},
|
},
|
||||||
"facing=south,open=false": {
|
"facing=south,open=false": {
|
||||||
"model": "create:block/white_postbox",
|
"model": "create:block/white_postbox_closed",
|
||||||
"y": 180
|
"y": 180
|
||||||
},
|
},
|
||||||
"facing=south,open=true": {
|
"facing=south,open=true": {
|
||||||
"model": "create:block/white_postbox",
|
"model": "create:block/white_postbox_open",
|
||||||
"y": 180
|
"y": 180
|
||||||
},
|
},
|
||||||
"facing=west,open=false": {
|
"facing=west,open=false": {
|
||||||
"model": "create:block/white_postbox",
|
"model": "create:block/white_postbox_closed",
|
||||||
"y": 270
|
"y": 270
|
||||||
},
|
},
|
||||||
"facing=west,open=true": {
|
"facing=west,open=true": {
|
||||||
"model": "create:block/white_postbox",
|
"model": "create:block/white_postbox_open",
|
||||||
"y": 270
|
"y": 270
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,33 +1,33 @@
|
||||||
{
|
{
|
||||||
"variants": {
|
"variants": {
|
||||||
"facing=east,open=false": {
|
"facing=east,open=false": {
|
||||||
"model": "create:block/yellow_postbox",
|
"model": "create:block/yellow_postbox_closed",
|
||||||
"y": 90
|
"y": 90
|
||||||
},
|
},
|
||||||
"facing=east,open=true": {
|
"facing=east,open=true": {
|
||||||
"model": "create:block/yellow_postbox",
|
"model": "create:block/yellow_postbox_open",
|
||||||
"y": 90
|
"y": 90
|
||||||
},
|
},
|
||||||
"facing=north,open=false": {
|
"facing=north,open=false": {
|
||||||
"model": "create:block/yellow_postbox"
|
"model": "create:block/yellow_postbox_closed"
|
||||||
},
|
},
|
||||||
"facing=north,open=true": {
|
"facing=north,open=true": {
|
||||||
"model": "create:block/yellow_postbox"
|
"model": "create:block/yellow_postbox_open"
|
||||||
},
|
},
|
||||||
"facing=south,open=false": {
|
"facing=south,open=false": {
|
||||||
"model": "create:block/yellow_postbox",
|
"model": "create:block/yellow_postbox_closed",
|
||||||
"y": 180
|
"y": 180
|
||||||
},
|
},
|
||||||
"facing=south,open=true": {
|
"facing=south,open=true": {
|
||||||
"model": "create:block/yellow_postbox",
|
"model": "create:block/yellow_postbox_open",
|
||||||
"y": 180
|
"y": 180
|
||||||
},
|
},
|
||||||
"facing=west,open=false": {
|
"facing=west,open=false": {
|
||||||
"model": "create:block/yellow_postbox",
|
"model": "create:block/yellow_postbox_closed",
|
||||||
"y": 270
|
"y": 270
|
||||||
},
|
},
|
||||||
"facing=west,open=true": {
|
"facing=west,open=true": {
|
||||||
"model": "create:block/yellow_postbox",
|
"model": "create:block/yellow_postbox_open",
|
||||||
"y": 270
|
"y": 270
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -919,6 +919,8 @@
|
||||||
"create.chain_conveyor.valid_connection": "✔ ʇɔǝuuoƆ uɐƆ",
|
"create.chain_conveyor.valid_connection": "✔ ʇɔǝuuoƆ uɐƆ",
|
||||||
"create.clipboard.actions": "suoıʇɔⱯ pɹɐoqdıןƆ",
|
"create.clipboard.actions": "suoıʇɔⱯ pɹɐoqdıןƆ",
|
||||||
"create.clipboard.copied_from": "%1$s ɯoɹɟ sbuıʇʇǝs buıʎdoƆ",
|
"create.clipboard.copied_from": "%1$s ɯoɹɟ sbuıʇʇǝs buıʎdoƆ",
|
||||||
|
"create.clipboard.copied_from_clipboard": "pɹɐoqdıןƆ ɯoɹɟ sǝıɹʇuǝ pǝppⱯ",
|
||||||
|
"create.clipboard.copy_other_clipboard": "pɹɐoqdıןƆ sıɥʇ ɯoɹɟ sǝıɹʇuǝ ʎdoƆ oʇ %1$s",
|
||||||
"create.clipboard.pasted_to": "%1$s oʇ sbuıʇʇǝs pǝıןddⱯ",
|
"create.clipboard.pasted_to": "%1$s oʇ sbuıʇʇǝs pǝıןddⱯ",
|
||||||
"create.clipboard.to_copy": "sbuıʇʇǝs ʎdoƆ oʇ %1$s",
|
"create.clipboard.to_copy": "sbuıʇʇǝs ʎdoƆ oʇ %1$s",
|
||||||
"create.clipboard.to_paste": "sbuıʇʇǝs ǝʇsɐԀ oʇ %1$s",
|
"create.clipboard.to_paste": "sbuıʇʇǝs ǝʇsɐԀ oʇ %1$s",
|
||||||
|
|
|
@ -919,6 +919,8 @@
|
||||||
"create.chain_conveyor.valid_connection": "Can Connect ✔",
|
"create.chain_conveyor.valid_connection": "Can Connect ✔",
|
||||||
"create.clipboard.actions": "Clipboard Actions",
|
"create.clipboard.actions": "Clipboard Actions",
|
||||||
"create.clipboard.copied_from": "Copying settings from %1$s",
|
"create.clipboard.copied_from": "Copying settings from %1$s",
|
||||||
|
"create.clipboard.copied_from_clipboard": "Added entries from Clipboard",
|
||||||
|
"create.clipboard.copy_other_clipboard": "%1$s to Copy entries from this Clipboard",
|
||||||
"create.clipboard.pasted_to": "Applied settings to %1$s",
|
"create.clipboard.pasted_to": "Applied settings to %1$s",
|
||||||
"create.clipboard.to_copy": "%1$s to Copy settings",
|
"create.clipboard.to_copy": "%1$s to Copy settings",
|
||||||
"create.clipboard.to_paste": "%1$s to Paste settings",
|
"create.clipboard.to_paste": "%1$s to Paste settings",
|
||||||
|
|
|
@ -0,0 +1,7 @@
|
||||||
|
{
|
||||||
|
"parent": "create:block/package_postbox/block_open",
|
||||||
|
"textures": {
|
||||||
|
"0": "create:block/post_box/post_box_black",
|
||||||
|
"1": "create:block/post_box/post_box_black_open"
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,7 @@
|
||||||
|
{
|
||||||
|
"parent": "create:block/package_postbox/block_open",
|
||||||
|
"textures": {
|
||||||
|
"0": "create:block/post_box/post_box_blue",
|
||||||
|
"1": "create:block/post_box/post_box_blue_open"
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,7 @@
|
||||||
|
{
|
||||||
|
"parent": "create:block/package_postbox/block_open",
|
||||||
|
"textures": {
|
||||||
|
"0": "create:block/post_box/post_box_brown",
|
||||||
|
"1": "create:block/post_box/post_box_brown_open"
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,7 @@
|
||||||
|
{
|
||||||
|
"parent": "create:block/package_postbox/block_open",
|
||||||
|
"textures": {
|
||||||
|
"0": "create:block/post_box/post_box_cyan",
|
||||||
|
"1": "create:block/post_box/post_box_cyan_open"
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,7 @@
|
||||||
|
{
|
||||||
|
"parent": "create:block/package_postbox/block_open",
|
||||||
|
"textures": {
|
||||||
|
"0": "create:block/post_box/post_box_gray",
|
||||||
|
"1": "create:block/post_box/post_box_gray_open"
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,7 @@
|
||||||
|
{
|
||||||
|
"parent": "create:block/package_postbox/block_open",
|
||||||
|
"textures": {
|
||||||
|
"0": "create:block/post_box/post_box_green",
|
||||||
|
"1": "create:block/post_box/post_box_green_open"
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,7 @@
|
||||||
|
{
|
||||||
|
"parent": "create:block/package_postbox/block_open",
|
||||||
|
"textures": {
|
||||||
|
"0": "create:block/post_box/post_box_light_blue",
|
||||||
|
"1": "create:block/post_box/post_box_light_blue_open"
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,7 @@
|
||||||
|
{
|
||||||
|
"parent": "create:block/package_postbox/block_open",
|
||||||
|
"textures": {
|
||||||
|
"0": "create:block/post_box/post_box_light_gray",
|
||||||
|
"1": "create:block/post_box/post_box_light_gray_open"
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,7 @@
|
||||||
|
{
|
||||||
|
"parent": "create:block/package_postbox/block_open",
|
||||||
|
"textures": {
|
||||||
|
"0": "create:block/post_box/post_box_lime",
|
||||||
|
"1": "create:block/post_box/post_box_lime_open"
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,7 @@
|
||||||
|
{
|
||||||
|
"parent": "create:block/package_postbox/block_open",
|
||||||
|
"textures": {
|
||||||
|
"0": "create:block/post_box/post_box_magenta",
|
||||||
|
"1": "create:block/post_box/post_box_magenta_open"
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,7 @@
|
||||||
|
{
|
||||||
|
"parent": "create:block/package_postbox/block_open",
|
||||||
|
"textures": {
|
||||||
|
"0": "create:block/post_box/post_box_orange",
|
||||||
|
"1": "create:block/post_box/post_box_orange_open"
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,7 @@
|
||||||
|
{
|
||||||
|
"parent": "create:block/package_postbox/block_open",
|
||||||
|
"textures": {
|
||||||
|
"0": "create:block/post_box/post_box_pink",
|
||||||
|
"1": "create:block/post_box/post_box_pink_open"
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,7 @@
|
||||||
|
{
|
||||||
|
"parent": "create:block/package_postbox/block_open",
|
||||||
|
"textures": {
|
||||||
|
"0": "create:block/post_box/post_box_purple",
|
||||||
|
"1": "create:block/post_box/post_box_purple_open"
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,7 @@
|
||||||
|
{
|
||||||
|
"parent": "create:block/package_postbox/block_open",
|
||||||
|
"textures": {
|
||||||
|
"0": "create:block/post_box/post_box_red",
|
||||||
|
"1": "create:block/post_box/post_box_red_open"
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,7 @@
|
||||||
|
{
|
||||||
|
"parent": "create:block/package_postbox/block_open",
|
||||||
|
"textures": {
|
||||||
|
"0": "create:block/post_box/post_box_white",
|
||||||
|
"1": "create:block/post_box/post_box_white_open"
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,7 @@
|
||||||
|
{
|
||||||
|
"parent": "create:block/package_postbox/block_open",
|
||||||
|
"textures": {
|
||||||
|
"0": "create:block/post_box/post_box_yellow",
|
||||||
|
"1": "create:block/post_box/post_box_yellow_open"
|
||||||
|
}
|
||||||
|
}
|
|
@ -11,7 +11,22 @@
|
||||||
"entries": [
|
"entries": [
|
||||||
{
|
{
|
||||||
"type": "minecraft:item",
|
"type": "minecraft:item",
|
||||||
"name": "create:bound_cardboard_block"
|
"name": "minecraft:string"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"rolls": 1.0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"bonus_rolls": 0.0,
|
||||||
|
"conditions": [
|
||||||
|
{
|
||||||
|
"condition": "minecraft:survives_explosion"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"entries": [
|
||||||
|
{
|
||||||
|
"type": "minecraft:item",
|
||||||
|
"name": "create:cardboard_block"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"rolls": 1.0
|
"rolls": 1.0
|
||||||
|
|
|
@ -1,22 +1,15 @@
|
||||||
{
|
{
|
||||||
"type": "minecraft:crafting_shaped",
|
"type": "minecraft:crafting_shapeless",
|
||||||
"category": "misc",
|
"category": "misc",
|
||||||
"key": {
|
"ingredients": [
|
||||||
"C": {
|
{
|
||||||
"item": "create:cardboard_block"
|
"item": "create:cardboard_block"
|
||||||
},
|
},
|
||||||
"S": {
|
{
|
||||||
"tag": "forge:string"
|
"item": "minecraft:string"
|
||||||
}
|
}
|
||||||
},
|
|
||||||
"pattern": [
|
|
||||||
"CCC",
|
|
||||||
"CSC",
|
|
||||||
"CCC"
|
|
||||||
],
|
],
|
||||||
"result": {
|
"result": {
|
||||||
"count": 8,
|
|
||||||
"item": "create:bound_cardboard_block"
|
"item": "create:bound_cardboard_block"
|
||||||
},
|
}
|
||||||
"show_notification": true
|
|
||||||
}
|
}
|
|
@ -0,0 +1,16 @@
|
||||||
|
{
|
||||||
|
"type": "create:item_application",
|
||||||
|
"ingredients": [
|
||||||
|
{
|
||||||
|
"item": "create:cardboard_block"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"tag": "forge:string"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"results": [
|
||||||
|
{
|
||||||
|
"item": "create:bound_cardboard_block"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
|
@ -299,6 +299,7 @@ import net.minecraft.sounds.SoundEvents;
|
||||||
import net.minecraft.tags.BlockTags;
|
import net.minecraft.tags.BlockTags;
|
||||||
import net.minecraft.tags.ItemTags;
|
import net.minecraft.tags.ItemTags;
|
||||||
import net.minecraft.world.item.DyeColor;
|
import net.minecraft.world.item.DyeColor;
|
||||||
|
import net.minecraft.world.item.Items;
|
||||||
import net.minecraft.world.item.Rarity;
|
import net.minecraft.world.item.Rarity;
|
||||||
import net.minecraft.world.item.enchantment.Enchantments;
|
import net.minecraft.world.item.enchantment.Enchantments;
|
||||||
import net.minecraft.world.level.block.Block;
|
import net.minecraft.world.level.block.Block;
|
||||||
|
@ -1766,12 +1767,14 @@ public class AllBlocks {
|
||||||
.properties(p -> p.mapColor(colour))
|
.properties(p -> p.mapColor(colour))
|
||||||
.transform(axeOnly())
|
.transform(axeOnly())
|
||||||
.blockstate((c, p) -> {
|
.blockstate((c, p) -> {
|
||||||
p.horizontalBlock(c.get(), s -> p.models()
|
p.horizontalBlock(c.get(), s -> {
|
||||||
.withExistingParent(colourName + "_postbox",
|
String suffix = s.getValue(PostboxBlock.OPEN) ? "open" : "closed";
|
||||||
p.modLoc("block/package_postbox/block_" + (s.getValue(PostboxBlock.OPEN) ? "open" : "closed")))
|
return p.models()
|
||||||
.texture("0", p.modLoc("block/post_box/post_box_" + colourName))
|
.withExistingParent(colourName + "_postbox_" + suffix,
|
||||||
.texture("1", p.modLoc("block/post_box/post_box_" + colourName
|
p.modLoc("block/package_postbox/block_" + suffix))
|
||||||
+ (s.getValue(PostboxBlock.OPEN) ? "_open" : "_closed"))));
|
.texture("0", p.modLoc("block/post_box/post_box_" + colourName))
|
||||||
|
.texture("1", p.modLoc("block/post_box/post_box_" + colourName + "_" + suffix));
|
||||||
|
});
|
||||||
})
|
})
|
||||||
.tag(AllBlockTags.POSTBOXES.tag)
|
.tag(AllBlockTags.POSTBOXES.tag)
|
||||||
.item(PackagePortItem::new)
|
.item(PackagePortItem::new)
|
||||||
|
@ -2549,6 +2552,13 @@ public class AllBlocks {
|
||||||
.ignitedByLava())
|
.ignitedByLava())
|
||||||
.transform(axeOnly())
|
.transform(axeOnly())
|
||||||
.blockstate(BlockStateGen.horizontalAxisBlockProvider(false))
|
.blockstate(BlockStateGen.horizontalAxisBlockProvider(false))
|
||||||
|
.loot((r, b) -> r.add(b, LootTable.lootTable()
|
||||||
|
.withPool(r.applyExplosionCondition(b, LootPool.lootPool()
|
||||||
|
.setRolls(ConstantValue.exactly(1.0F))
|
||||||
|
.add(LootItem.lootTableItem(Items.STRING))))
|
||||||
|
.withPool(r.applyExplosionCondition(b, LootPool.lootPool()
|
||||||
|
.setRolls(ConstantValue.exactly(1.0F))
|
||||||
|
.add(LootItem.lootTableItem(AllBlocks.CARDBOARD_BLOCK.asItem()))))))
|
||||||
.simpleItem()
|
.simpleItem()
|
||||||
.lang("Bound block of Cardboard")
|
.lang("Bound block of Cardboard")
|
||||||
.register();
|
.register();
|
||||||
|
|
|
@ -1,30 +1,38 @@
|
||||||
package com.simibubi.create.content.decoration;
|
package com.simibubi.create.content.decoration;
|
||||||
|
|
||||||
|
import java.util.function.Predicate;
|
||||||
|
|
||||||
|
import com.simibubi.create.AllShapes;
|
||||||
import com.simibubi.create.content.equipment.extendoGrip.ExtendoGripItem;
|
import com.simibubi.create.content.equipment.extendoGrip.ExtendoGripItem;
|
||||||
import com.simibubi.create.content.equipment.wrench.IWrenchable;
|
import com.simibubi.create.content.equipment.wrench.IWrenchable;
|
||||||
import com.simibubi.create.infrastructure.config.AllConfigs;
|
import com.simibubi.create.infrastructure.config.AllConfigs;
|
||||||
|
|
||||||
import net.createmod.catnip.utility.placement.IPlacementHelper;
|
import net.createmod.catnip.utility.placement.IPlacementHelper;
|
||||||
import net.createmod.catnip.utility.placement.PlacementHelpers;
|
import net.createmod.catnip.utility.placement.PlacementHelpers;
|
||||||
import net.createmod.catnip.utility.placement.PlacementOffset;
|
import net.createmod.catnip.utility.placement.PlacementOffset;
|
||||||
import net.minecraft.MethodsReturnNonnullByDefault;
|
import net.minecraft.MethodsReturnNonnullByDefault;
|
||||||
import net.minecraft.core.BlockPos;
|
import net.minecraft.core.BlockPos;
|
||||||
import net.minecraft.core.Direction;
|
import net.minecraft.core.Direction;
|
||||||
|
import net.minecraft.core.Direction.Axis;
|
||||||
import net.minecraft.world.InteractionHand;
|
import net.minecraft.world.InteractionHand;
|
||||||
import net.minecraft.world.InteractionResult;
|
import net.minecraft.world.InteractionResult;
|
||||||
import net.minecraft.world.entity.ai.attributes.AttributeInstance;
|
import net.minecraft.world.entity.ai.attributes.AttributeInstance;
|
||||||
import net.minecraft.world.entity.player.Player;
|
import net.minecraft.world.entity.player.Player;
|
||||||
import net.minecraft.world.item.BlockItem;
|
import net.minecraft.world.item.BlockItem;
|
||||||
import net.minecraft.world.item.ItemStack;
|
import net.minecraft.world.item.ItemStack;
|
||||||
|
import net.minecraft.world.level.BlockGetter;
|
||||||
import net.minecraft.world.level.Level;
|
import net.minecraft.world.level.Level;
|
||||||
|
import net.minecraft.world.level.LevelAccessor;
|
||||||
|
import net.minecraft.world.level.LevelReader;
|
||||||
|
import net.minecraft.world.level.block.Blocks;
|
||||||
import net.minecraft.world.level.block.LadderBlock;
|
import net.minecraft.world.level.block.LadderBlock;
|
||||||
import net.minecraft.world.level.block.state.BlockState;
|
import net.minecraft.world.level.block.state.BlockState;
|
||||||
import net.minecraft.world.phys.BlockHitResult;
|
import net.minecraft.world.phys.BlockHitResult;
|
||||||
|
import net.minecraft.world.phys.shapes.VoxelShape;
|
||||||
import net.minecraftforge.api.distmarker.Dist;
|
import net.minecraftforge.api.distmarker.Dist;
|
||||||
import net.minecraftforge.api.distmarker.OnlyIn;
|
import net.minecraftforge.api.distmarker.OnlyIn;
|
||||||
import net.minecraftforge.common.ForgeMod;
|
import net.minecraftforge.common.ForgeMod;
|
||||||
|
|
||||||
import java.util.function.Predicate;
|
|
||||||
|
|
||||||
public class MetalLadderBlock extends LadderBlock implements IWrenchable {
|
public class MetalLadderBlock extends LadderBlock implements IWrenchable {
|
||||||
|
|
||||||
private static final int placementHelperId = PlacementHelpers.register(new PlacementHelper());
|
private static final int placementHelperId = PlacementHelpers.register(new PlacementHelper());
|
||||||
|
@ -41,10 +49,33 @@ public class MetalLadderBlock extends LadderBlock implements IWrenchable {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@OnlyIn(Dist.CLIENT)
|
@OnlyIn(Dist.CLIENT)
|
||||||
|
@SuppressWarnings("deprecation")
|
||||||
public boolean skipRendering(BlockState pState, BlockState pAdjacentBlockState, Direction pDirection) {
|
public boolean skipRendering(BlockState pState, BlockState pAdjacentBlockState, Direction pDirection) {
|
||||||
|
if (pDirection != null && pDirection.getAxis()
|
||||||
|
.isHorizontal())
|
||||||
|
return pAdjacentBlockState.isAir() || !pAdjacentBlockState.blocksMotion();
|
||||||
return pDirection == Direction.UP && pAdjacentBlockState.getBlock() instanceof LadderBlock;
|
return pDirection == Direction.UP && pAdjacentBlockState.getBlock() instanceof LadderBlock;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public VoxelShape getOcclusionShape(BlockState pState, BlockGetter pLevel, BlockPos pPos) {
|
||||||
|
return AllShapes.SIX_VOXEL_POLE.get(Axis.Y);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public BlockState updateShape(BlockState pState, Direction pFacing, BlockState pFacingState, LevelAccessor pLevel,
|
||||||
|
BlockPos pCurrentPos, BlockPos pFacingPos) {
|
||||||
|
if (!pState.canSurvive(pLevel, pCurrentPos))
|
||||||
|
return Blocks.AIR.defaultBlockState();
|
||||||
|
return super.updateShape(pState, pFacing, pFacingState, pLevel, pCurrentPos, pFacingPos);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean canSurvive(BlockState pState, LevelReader pLevel, BlockPos pPos) {
|
||||||
|
return super.canSurvive(pState, pLevel, pPos) || pLevel.getBlockState(pPos.relative(Direction.UP))
|
||||||
|
.is(this);
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public InteractionResult use(BlockState state, Level world, BlockPos pos, Player player, InteractionHand hand,
|
public InteractionResult use(BlockState state, Level world, BlockPos pos, Player player, InteractionHand hand,
|
||||||
BlockHitResult ray) {
|
BlockHitResult ray) {
|
||||||
|
|
|
@ -55,11 +55,11 @@ public class ClipboardValueSettingsHandler {
|
||||||
return;
|
return;
|
||||||
if (!(mc.level.getBlockEntity(pos) instanceof SmartBlockEntity smartBE))
|
if (!(mc.level.getBlockEntity(pos) instanceof SmartBlockEntity smartBE))
|
||||||
return;
|
return;
|
||||||
if (!smartBE.getAllBehaviours()
|
if (!(smartBE instanceof ClipboardBlockEntity) && !smartBE.getAllBehaviours()
|
||||||
.stream()
|
.stream()
|
||||||
.anyMatch(b -> b instanceof ClipboardCloneable cc
|
.anyMatch(b -> b instanceof ClipboardCloneable cc
|
||||||
&& cc.writeToClipboard(new CompoundTag(), target.getDirection()))
|
&& cc.writeToClipboard(new CompoundTag(), target.getDirection()))
|
||||||
&& !(smartBE instanceof ClipboardCloneable))
|
&& !(smartBE instanceof ClipboardCloneable))
|
||||||
return;
|
return;
|
||||||
|
|
||||||
VoxelShape shape = blockstate.getShape(mc.level, pos);
|
VoxelShape shape = blockstate.getShape(mc.level, pos);
|
||||||
|
@ -92,6 +92,14 @@ public class ClipboardValueSettingsHandler {
|
||||||
if (!(mc.level.getBlockEntity(pos) instanceof SmartBlockEntity smartBE))
|
if (!(mc.level.getBlockEntity(pos) instanceof SmartBlockEntity smartBE))
|
||||||
return;
|
return;
|
||||||
|
|
||||||
|
if (smartBE instanceof ClipboardBlockEntity) {
|
||||||
|
List<MutableComponent> tip = new ArrayList<>();
|
||||||
|
tip.add(CreateLang.translateDirect("clipboard.actions"));
|
||||||
|
tip.add(CreateLang.translateDirect("clipboard.copy_other_clipboard", Components.keybind("key.use")));
|
||||||
|
CreateClient.VALUE_SETTINGS_HANDLER.showHoverTip(tip);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
CompoundTag tagElement = mc.player.getMainHandItem()
|
CompoundTag tagElement = mc.player.getMainHandItem()
|
||||||
.getTagElement("CopiedValues");
|
.getTagElement("CopiedValues");
|
||||||
|
|
||||||
|
@ -146,6 +154,55 @@ public class ClipboardValueSettingsHandler {
|
||||||
return;
|
return;
|
||||||
if (!(world.getBlockEntity(pos) instanceof SmartBlockEntity smartBE))
|
if (!(world.getBlockEntity(pos) instanceof SmartBlockEntity smartBE))
|
||||||
return;
|
return;
|
||||||
|
|
||||||
|
if (smartBE instanceof ClipboardBlockEntity cbe) {
|
||||||
|
event.setCanceled(true);
|
||||||
|
event.setCancellationResult(InteractionResult.SUCCESS);
|
||||||
|
|
||||||
|
if (!world.isClientSide()) {
|
||||||
|
List<List<ClipboardEntry>> listTo = ClipboardEntry.readAll(itemStack);
|
||||||
|
List<List<ClipboardEntry>> listFrom = ClipboardEntry.readAll(cbe.dataContainer);
|
||||||
|
List<ClipboardEntry> toAdd = new ArrayList<>();
|
||||||
|
|
||||||
|
for (List<ClipboardEntry> page : listFrom) {
|
||||||
|
Copy: for (ClipboardEntry entry : page) {
|
||||||
|
String entryToAdd = entry.text.getString();
|
||||||
|
for (List<ClipboardEntry> pageTo : listTo)
|
||||||
|
for (ClipboardEntry existing : pageTo)
|
||||||
|
if (entryToAdd.equals(existing.text.getString()))
|
||||||
|
continue Copy;
|
||||||
|
toAdd.add(new ClipboardEntry(entry.checked, entry.text));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
for (ClipboardEntry entry : toAdd) {
|
||||||
|
List<ClipboardEntry> page = null;
|
||||||
|
for (List<ClipboardEntry> freePage : listTo) {
|
||||||
|
if (freePage.size() > 11)
|
||||||
|
continue;
|
||||||
|
page = freePage;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
if (page == null) {
|
||||||
|
page = new ArrayList<>();
|
||||||
|
listTo.add(page);
|
||||||
|
}
|
||||||
|
page.add(entry);
|
||||||
|
ClipboardOverrides.switchTo(ClipboardType.WRITTEN, itemStack);
|
||||||
|
}
|
||||||
|
|
||||||
|
ClipboardEntry.saveAll(listTo, itemStack);
|
||||||
|
}
|
||||||
|
|
||||||
|
player.displayClientMessage(CreateLang.translate("clipboard.copied_from_clipboard", world.getBlockState(pos)
|
||||||
|
.getBlock()
|
||||||
|
.getName()
|
||||||
|
.withStyle(ChatFormatting.WHITE))
|
||||||
|
.style(ChatFormatting.GREEN)
|
||||||
|
.component(), true);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
CompoundTag tag = itemStack.getTagElement("CopiedValues");
|
CompoundTag tag = itemStack.getTagElement("CopiedValues");
|
||||||
if (paste && tag == null)
|
if (paste && tag == null)
|
||||||
return;
|
return;
|
||||||
|
|
|
@ -13,6 +13,7 @@ import java.util.WeakHashMap;
|
||||||
import com.simibubi.create.AllBlocks;
|
import com.simibubi.create.AllBlocks;
|
||||||
import com.simibubi.create.foundation.blockEntity.SmartBlockEntity;
|
import com.simibubi.create.foundation.blockEntity.SmartBlockEntity;
|
||||||
import com.simibubi.create.foundation.blockEntity.behaviour.BlockEntityBehaviour;
|
import com.simibubi.create.foundation.blockEntity.behaviour.BlockEntityBehaviour;
|
||||||
|
import com.simibubi.create.foundation.blockEntity.behaviour.animatedContainer.AnimatedContainerBehaviour;
|
||||||
import com.simibubi.create.foundation.utility.ResetableLazy;
|
import com.simibubi.create.foundation.utility.ResetableLazy;
|
||||||
|
|
||||||
import net.createmod.catnip.utility.VecHelper;
|
import net.createmod.catnip.utility.VecHelper;
|
||||||
|
@ -34,7 +35,6 @@ import net.minecraft.world.item.DyeColor;
|
||||||
import net.minecraft.world.item.ItemStack;
|
import net.minecraft.world.item.ItemStack;
|
||||||
import net.minecraft.world.level.block.entity.BlockEntityType;
|
import net.minecraft.world.level.block.entity.BlockEntityType;
|
||||||
import net.minecraft.world.level.block.state.BlockState;
|
import net.minecraft.world.level.block.state.BlockState;
|
||||||
import net.minecraft.world.phys.AABB;
|
|
||||||
import net.minecraft.world.phys.Vec3;
|
import net.minecraft.world.phys.Vec3;
|
||||||
import net.minecraftforge.common.capabilities.Capability;
|
import net.minecraftforge.common.capabilities.Capability;
|
||||||
import net.minecraftforge.common.util.LazyOptional;
|
import net.minecraftforge.common.util.LazyOptional;
|
||||||
|
@ -53,12 +53,13 @@ public class ToolboxBlockEntity extends SmartBlockEntity implements MenuProvider
|
||||||
ToolboxInventory inventory;
|
ToolboxInventory inventory;
|
||||||
LazyOptional<IItemHandler> inventoryProvider;
|
LazyOptional<IItemHandler> inventoryProvider;
|
||||||
ResetableLazy<DyeColor> colorProvider;
|
ResetableLazy<DyeColor> colorProvider;
|
||||||
protected int openCount;
|
|
||||||
|
|
||||||
Map<Integer, WeakHashMap<Player, Integer>> connectedPlayers;
|
Map<Integer, WeakHashMap<Player, Integer>> connectedPlayers;
|
||||||
|
|
||||||
private Component customName;
|
private Component customName;
|
||||||
|
|
||||||
|
private AnimatedContainerBehaviour<ToolboxMenu> openTracker;
|
||||||
|
|
||||||
public ToolboxBlockEntity(BlockEntityType<?> type, BlockPos pos, BlockState state) {
|
public ToolboxBlockEntity(BlockEntityType<?> type, BlockPos pos, BlockState state) {
|
||||||
super(type, pos, state);
|
super(type, pos, state);
|
||||||
connectedPlayers = new HashMap<>();
|
connectedPlayers = new HashMap<>();
|
||||||
|
@ -78,7 +79,9 @@ public class ToolboxBlockEntity extends SmartBlockEntity implements MenuProvider
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void addBehaviours(List<BlockEntityBehaviour> behaviours) {}
|
public void addBehaviours(List<BlockEntityBehaviour> behaviours) {
|
||||||
|
behaviours.add(openTracker = new AnimatedContainerBehaviour<>(this, ToolboxMenu.class));
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void initialize() {
|
public void initialize() {
|
||||||
|
@ -101,8 +104,8 @@ public class ToolboxBlockEntity extends SmartBlockEntity implements MenuProvider
|
||||||
if (!level.isClientSide)
|
if (!level.isClientSide)
|
||||||
tickPlayers();
|
tickPlayers();
|
||||||
|
|
||||||
lid.chase(openCount > 0 ? 1 : 0, 0.2f, Chaser.LINEAR);
|
lid.chase(openTracker.openCount > 0 ? 1 : 0, 0.2f, Chaser.LINEAR);
|
||||||
drawers.chase(openCount > 0 ? 1 : 0, 0.2f, Chaser.EXP);
|
drawers.chase(openTracker.openCount > 0 ? 1 : 0, 0.2f, Chaser.EXP);
|
||||||
lid.tickChaser();
|
lid.tickChaser();
|
||||||
drawers.tickChaser();
|
drawers.tickChaser();
|
||||||
}
|
}
|
||||||
|
@ -257,17 +260,17 @@ public class ToolboxBlockEntity extends SmartBlockEntity implements MenuProvider
|
||||||
private void tickAudio() {
|
private void tickAudio() {
|
||||||
Vec3 vec = VecHelper.getCenterOf(worldPosition);
|
Vec3 vec = VecHelper.getCenterOf(worldPosition);
|
||||||
if (lid.settled()) {
|
if (lid.settled()) {
|
||||||
if (openCount > 0 && lid.getChaseTarget() == 0) {
|
if (openTracker.openCount > 0 && lid.getChaseTarget() == 0) {
|
||||||
level.playLocalSound(vec.x, vec.y, vec.z, SoundEvents.IRON_DOOR_OPEN, SoundSource.BLOCKS, 0.25F,
|
level.playLocalSound(vec.x, vec.y, vec.z, SoundEvents.IRON_DOOR_OPEN, SoundSource.BLOCKS, 0.25F,
|
||||||
level.random.nextFloat() * 0.1F + 1.2F, true);
|
level.random.nextFloat() * 0.1F + 1.2F, true);
|
||||||
level.playLocalSound(vec.x, vec.y, vec.z, SoundEvents.CHEST_OPEN, SoundSource.BLOCKS, 0.1F,
|
level.playLocalSound(vec.x, vec.y, vec.z, SoundEvents.CHEST_OPEN, SoundSource.BLOCKS, 0.1F,
|
||||||
level.random.nextFloat() * 0.1F + 1.1F, true);
|
level.random.nextFloat() * 0.1F + 1.1F, true);
|
||||||
}
|
}
|
||||||
if (openCount == 0 && lid.getChaseTarget() == 1)
|
if (openTracker.openCount == 0 && lid.getChaseTarget() == 1)
|
||||||
level.playLocalSound(vec.x, vec.y, vec.z, SoundEvents.CHEST_CLOSE, SoundSource.BLOCKS, 0.1F,
|
level.playLocalSound(vec.x, vec.y, vec.z, SoundEvents.CHEST_CLOSE, SoundSource.BLOCKS, 0.1F,
|
||||||
level.random.nextFloat() * 0.1F + 1.1F, true);
|
level.random.nextFloat() * 0.1F + 1.1F, true);
|
||||||
|
|
||||||
} else if (openCount == 0 && lid.getChaseTarget() == 0 && lid.getValue(0) > 1 / 16f
|
} else if (openTracker.openCount == 0 && lid.getChaseTarget() == 0 && lid.getValue(0) > 1 / 16f
|
||||||
&& lid.getValue(1) < 1 / 16f)
|
&& lid.getValue(1) < 1 / 16f)
|
||||||
level.playLocalSound(vec.x, vec.y, vec.z, SoundEvents.IRON_DOOR_CLOSE, SoundSource.BLOCKS, 0.25F,
|
level.playLocalSound(vec.x, vec.y, vec.z, SoundEvents.IRON_DOOR_CLOSE, SoundSource.BLOCKS, 0.25F,
|
||||||
level.random.nextFloat() * 0.1F + 1.2F, true);
|
level.random.nextFloat() * 0.1F + 1.2F, true);
|
||||||
|
@ -288,8 +291,6 @@ public class ToolboxBlockEntity extends SmartBlockEntity implements MenuProvider
|
||||||
this.uniqueId = compound.getUUID("UniqueId");
|
this.uniqueId = compound.getUUID("UniqueId");
|
||||||
if (compound.contains("CustomName", 8))
|
if (compound.contains("CustomName", 8))
|
||||||
this.customName = Component.Serializer.fromJson(compound.getString("CustomName"));
|
this.customName = Component.Serializer.fromJson(compound.getString("CustomName"));
|
||||||
if (clientPacket)
|
|
||||||
openCount = compound.getInt("OpenCount");
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -303,8 +304,6 @@ public class ToolboxBlockEntity extends SmartBlockEntity implements MenuProvider
|
||||||
if (customName != null)
|
if (customName != null)
|
||||||
compound.putString("CustomName", Component.Serializer.toJson(customName));
|
compound.putString("CustomName", Component.Serializer.toJson(customName));
|
||||||
super.write(compound, clientPacket);
|
super.write(compound, clientPacket);
|
||||||
if (clientPacket)
|
|
||||||
compound.putInt("OpenCount", openCount);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -314,46 +313,11 @@ public class ToolboxBlockEntity extends SmartBlockEntity implements MenuProvider
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void lazyTick() {
|
public void lazyTick() {
|
||||||
updateOpenCount();
|
|
||||||
// keep re-advertising active TEs
|
// keep re-advertising active TEs
|
||||||
ToolboxHandler.onLoad(this);
|
ToolboxHandler.onLoad(this);
|
||||||
super.lazyTick();
|
super.lazyTick();
|
||||||
}
|
}
|
||||||
|
|
||||||
void updateOpenCount() {
|
|
||||||
if (level.isClientSide)
|
|
||||||
return;
|
|
||||||
if (openCount == 0)
|
|
||||||
return;
|
|
||||||
|
|
||||||
int prevOpenCount = openCount;
|
|
||||||
openCount = 0;
|
|
||||||
|
|
||||||
for (Player playerentity : level.getEntitiesOfClass(Player.class, new AABB(worldPosition).inflate(8)))
|
|
||||||
if (playerentity.containerMenu instanceof ToolboxMenu
|
|
||||||
&& ((ToolboxMenu) playerentity.containerMenu).contentHolder == this)
|
|
||||||
openCount++;
|
|
||||||
|
|
||||||
if (prevOpenCount != openCount)
|
|
||||||
sendData();
|
|
||||||
}
|
|
||||||
|
|
||||||
public void startOpen(Player player) {
|
|
||||||
if (player.isSpectator())
|
|
||||||
return;
|
|
||||||
if (openCount < 0)
|
|
||||||
openCount = 0;
|
|
||||||
openCount++;
|
|
||||||
sendData();
|
|
||||||
}
|
|
||||||
|
|
||||||
public void stopOpen(Player player) {
|
|
||||||
if (player.isSpectator())
|
|
||||||
return;
|
|
||||||
openCount--;
|
|
||||||
sendData();
|
|
||||||
}
|
|
||||||
|
|
||||||
public void connectPlayer(int slot, Player player, int hotbarSlot) {
|
public void connectPlayer(int slot, Player player, int hotbarSlot) {
|
||||||
if (level.isClientSide)
|
if (level.isClientSide)
|
||||||
return;
|
return;
|
||||||
|
|
|
@ -3,6 +3,8 @@ package com.simibubi.create.content.equipment.toolbox;
|
||||||
import static com.simibubi.create.content.equipment.toolbox.ToolboxInventory.STACKS_PER_COMPARTMENT;
|
import static com.simibubi.create.content.equipment.toolbox.ToolboxInventory.STACKS_PER_COMPARTMENT;
|
||||||
|
|
||||||
import com.simibubi.create.AllMenuTypes;
|
import com.simibubi.create.AllMenuTypes;
|
||||||
|
import com.simibubi.create.foundation.blockEntity.behaviour.BlockEntityBehaviour;
|
||||||
|
import com.simibubi.create.foundation.blockEntity.behaviour.animatedContainer.AnimatedContainerBehaviour;
|
||||||
import com.simibubi.create.foundation.gui.menu.MenuBase;
|
import com.simibubi.create.foundation.gui.menu.MenuBase;
|
||||||
|
|
||||||
import net.minecraft.client.Minecraft;
|
import net.minecraft.client.Minecraft;
|
||||||
|
@ -27,7 +29,8 @@ public class ToolboxMenu extends MenuBase<ToolboxBlockEntity> {
|
||||||
|
|
||||||
public ToolboxMenu(MenuType<?> type, int id, Inventory inv, ToolboxBlockEntity be) {
|
public ToolboxMenu(MenuType<?> type, int id, Inventory inv, ToolboxBlockEntity be) {
|
||||||
super(type, id, inv, be);
|
super(type, id, inv, be);
|
||||||
be.startOpen(player);
|
BlockEntityBehaviour.get(be, AnimatedContainerBehaviour.TYPE)
|
||||||
|
.startOpen(player);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static ToolboxMenu create(int id, Inventory inv, ToolboxBlockEntity be) {
|
public static ToolboxMenu create(int id, Inventory inv, ToolboxBlockEntity be) {
|
||||||
|
@ -153,7 +156,8 @@ public class ToolboxMenu extends MenuBase<ToolboxBlockEntity> {
|
||||||
public void removed(Player playerIn) {
|
public void removed(Player playerIn) {
|
||||||
super.removed(playerIn);
|
super.removed(playerIn);
|
||||||
if (!playerIn.level().isClientSide)
|
if (!playerIn.level().isClientSide)
|
||||||
contentHolder.stopOpen(playerIn);
|
BlockEntityBehaviour.get(contentHolder, AnimatedContainerBehaviour.TYPE)
|
||||||
|
.stopOpen(playerIn);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -80,7 +80,7 @@ public class ChainConveyorBlockEntity extends KineticBlockEntity {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected AABB createRenderBoundingBox() {
|
protected AABB createRenderBoundingBox() {
|
||||||
return INFINITE_EXTENT_AABB; // TODO: compute smallest possible from connection data
|
return new AABB(worldPosition).inflate(connections.isEmpty() ? 3 : 64);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|
|
@ -26,9 +26,9 @@ public class AddressEditBox extends EditBox {
|
||||||
private DestinationSuggestions destinationSuggestions;
|
private DestinationSuggestions destinationSuggestions;
|
||||||
private Consumer<String> mainResponder;
|
private Consumer<String> mainResponder;
|
||||||
|
|
||||||
public AddressEditBox(Screen screen, Font pFont, int pX, int pY, int pWidth, int pHeight) {
|
public AddressEditBox(Screen screen, Font pFont, int pX, int pY, int pWidth, int pHeight, boolean anchorToBottom) {
|
||||||
super(pFont, pX, pY, pWidth, pHeight, Components.empty());
|
super(pFont, pX, pY, pWidth, pHeight, Components.empty());
|
||||||
destinationSuggestions = AddressEditBoxHelper.createSuggestions(screen, this);
|
destinationSuggestions = AddressEditBoxHelper.createSuggestions(screen, this, anchorToBottom);
|
||||||
destinationSuggestions.setAllowSuggestions(true);
|
destinationSuggestions.setAllowSuggestions(true);
|
||||||
destinationSuggestions.updateCommandInfo();
|
destinationSuggestions.updateCommandInfo();
|
||||||
mainResponder = t -> destinationSuggestions.updateCommandInfo();
|
mainResponder = t -> destinationSuggestions.updateCommandInfo();
|
||||||
|
|
|
@ -2,7 +2,9 @@ package com.simibubi.create.content.logistics;
|
||||||
|
|
||||||
import java.lang.ref.WeakReference;
|
import java.lang.ref.WeakReference;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
|
import java.util.HashSet;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
import java.util.Set;
|
||||||
import java.util.concurrent.TimeUnit;
|
import java.util.concurrent.TimeUnit;
|
||||||
|
|
||||||
import com.google.common.cache.Cache;
|
import com.google.common.cache.Cache;
|
||||||
|
@ -39,31 +41,33 @@ public class AddressEditBoxHelper {
|
||||||
NEARBY_CLIPBOARDS.put(blockPos, new WeakReference<>(blockEntity));
|
NEARBY_CLIPBOARDS.put(blockPos, new WeakReference<>(blockEntity));
|
||||||
}
|
}
|
||||||
|
|
||||||
public static DestinationSuggestions createSuggestions(Screen screen, EditBox pInput) {
|
public static DestinationSuggestions createSuggestions(Screen screen, EditBox pInput, boolean anchorToBottom) {
|
||||||
Minecraft mc = Minecraft.getInstance();
|
Minecraft mc = Minecraft.getInstance();
|
||||||
Player player = mc.player;
|
Player player = mc.player;
|
||||||
List<IntAttached<String>> options = new ArrayList<>();
|
List<IntAttached<String>> options = new ArrayList<>();
|
||||||
DestinationSuggestions destinationSuggestions =
|
Set<String> alreadyAdded = new HashSet<>();
|
||||||
new DestinationSuggestions(mc, screen, pInput, mc.font, options, -72 + pInput.getY() + pInput.getHeight());
|
|
||||||
|
DestinationSuggestions destinationSuggestions = new DestinationSuggestions(mc, screen, pInput, mc.font, options,
|
||||||
|
anchorToBottom, -72 + pInput.getY() + (anchorToBottom ? 0 : pInput.getHeight()));
|
||||||
|
|
||||||
if (player == null)
|
if (player == null)
|
||||||
return destinationSuggestions;
|
return destinationSuggestions;
|
||||||
|
|
||||||
for (int i = 0; i < Inventory.INVENTORY_SIZE; i++)
|
for (int i = 0; i < Inventory.INVENTORY_SIZE; i++)
|
||||||
appendAddresses(options, player.getInventory()
|
appendAddresses(options, alreadyAdded, player.getInventory()
|
||||||
.getItem(i));
|
.getItem(i));
|
||||||
|
|
||||||
for (WeakReference<ClipboardBlockEntity> wr : NEARBY_CLIPBOARDS.asMap()
|
for (WeakReference<ClipboardBlockEntity> wr : NEARBY_CLIPBOARDS.asMap()
|
||||||
.values()) {
|
.values()) {
|
||||||
ClipboardBlockEntity cbe = wr.get();
|
ClipboardBlockEntity cbe = wr.get();
|
||||||
if (cbe != null)
|
if (cbe != null)
|
||||||
appendAddresses(options, cbe.dataContainer);
|
appendAddresses(options, alreadyAdded, cbe.dataContainer);
|
||||||
}
|
}
|
||||||
|
|
||||||
return destinationSuggestions;
|
return destinationSuggestions;
|
||||||
}
|
}
|
||||||
|
|
||||||
private static void appendAddresses(List<IntAttached<String>> options, ItemStack item) {
|
private static void appendAddresses(List<IntAttached<String>> options, Set<String> alreadyAdded, ItemStack item) {
|
||||||
if (item == null || !AllBlocks.CLIPBOARD.isIn(item))
|
if (item == null || !AllBlocks.CLIPBOARD.isIn(item))
|
||||||
return;
|
return;
|
||||||
|
|
||||||
|
@ -77,7 +81,10 @@ public class AddressEditBoxHelper {
|
||||||
String address = string.substring(1);
|
String address = string.substring(1);
|
||||||
if (address.isBlank())
|
if (address.isBlank())
|
||||||
return;
|
return;
|
||||||
options.add(IntAttached.withZero(address.trim()));
|
String trim = address.trim();
|
||||||
|
if (!alreadyAdded.add(trim))
|
||||||
|
return;
|
||||||
|
options.add(IntAttached.withZero(trim));
|
||||||
}));
|
}));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -18,6 +18,7 @@ import net.minecraft.nbt.CompoundTag;
|
||||||
import net.minecraft.network.FriendlyByteBuf;
|
import net.minecraft.network.FriendlyByteBuf;
|
||||||
import net.minecraft.network.protocol.Packet;
|
import net.minecraft.network.protocol.Packet;
|
||||||
import net.minecraft.network.protocol.game.ClientGamePacketListener;
|
import net.minecraft.network.protocol.game.ClientGamePacketListener;
|
||||||
|
import net.minecraft.server.level.ServerLevel;
|
||||||
import net.minecraft.sounds.SoundEvent;
|
import net.minecraft.sounds.SoundEvent;
|
||||||
import net.minecraft.sounds.SoundEvents;
|
import net.minecraft.sounds.SoundEvents;
|
||||||
import net.minecraft.sounds.SoundSource;
|
import net.minecraft.sounds.SoundSource;
|
||||||
|
@ -31,6 +32,7 @@ import net.minecraft.world.entity.EntityType;
|
||||||
import net.minecraft.world.entity.EquipmentSlot;
|
import net.minecraft.world.entity.EquipmentSlot;
|
||||||
import net.minecraft.world.entity.HumanoidArm;
|
import net.minecraft.world.entity.HumanoidArm;
|
||||||
import net.minecraft.world.entity.LivingEntity;
|
import net.minecraft.world.entity.LivingEntity;
|
||||||
|
import net.minecraft.world.entity.MobSpawnType;
|
||||||
import net.minecraft.world.entity.Pose;
|
import net.minecraft.world.entity.Pose;
|
||||||
import net.minecraft.world.entity.ai.attributes.AttributeSupplier;
|
import net.minecraft.world.entity.ai.attributes.AttributeSupplier;
|
||||||
import net.minecraft.world.entity.ai.attributes.Attributes;
|
import net.minecraft.world.entity.ai.attributes.Attributes;
|
||||||
|
@ -38,6 +40,7 @@ import net.minecraft.world.entity.item.ItemEntity;
|
||||||
import net.minecraft.world.entity.player.Player;
|
import net.minecraft.world.entity.player.Player;
|
||||||
import net.minecraft.world.entity.projectile.AbstractArrow;
|
import net.minecraft.world.entity.projectile.AbstractArrow;
|
||||||
import net.minecraft.world.item.ItemStack;
|
import net.minecraft.world.item.ItemStack;
|
||||||
|
import net.minecraft.world.item.SpawnEggItem;
|
||||||
import net.minecraft.world.level.Level;
|
import net.minecraft.world.level.Level;
|
||||||
import net.minecraft.world.level.block.Blocks;
|
import net.minecraft.world.level.block.Blocks;
|
||||||
import net.minecraft.world.level.block.state.BlockState;
|
import net.minecraft.world.level.block.state.BlockState;
|
||||||
|
@ -356,6 +359,15 @@ public class PackageEntity extends LivingEntity implements IEntityAdditionalSpaw
|
||||||
ItemStackHandler contents = PackageItem.getContents(box);
|
ItemStackHandler contents = PackageItem.getContents(box);
|
||||||
for (int i = 0; i < contents.getSlots(); i++) {
|
for (int i = 0; i < contents.getSlots(); i++) {
|
||||||
ItemStack itemstack = contents.getStackInSlot(i);
|
ItemStack itemstack = contents.getStackInSlot(i);
|
||||||
|
|
||||||
|
if (itemstack.getItem() instanceof SpawnEggItem sei && level() instanceof ServerLevel sl) {
|
||||||
|
EntityType<?> entitytype = sei.getType(itemstack.getTag());
|
||||||
|
Entity entity = entitytype.spawn(sl, itemstack, null, blockPosition(),
|
||||||
|
MobSpawnType.SPAWN_EGG, false, false);
|
||||||
|
if (entity != null)
|
||||||
|
itemstack.shrink(1);
|
||||||
|
}
|
||||||
|
|
||||||
if (itemstack.isEmpty())
|
if (itemstack.isEmpty())
|
||||||
continue;
|
continue;
|
||||||
ItemEntity entityIn = new ItemEntity(level(), getX(), getY(), getZ(), itemstack);
|
ItemEntity entityIn = new ItemEntity(level(), getX(), getY(), getZ(), itemstack);
|
||||||
|
|
|
@ -12,22 +12,27 @@ import com.simibubi.create.content.logistics.stockTicker.PackageOrder;
|
||||||
import net.createmod.catnip.utility.VecHelper;
|
import net.createmod.catnip.utility.VecHelper;
|
||||||
import net.createmod.catnip.utility.lang.Components;
|
import net.createmod.catnip.utility.lang.Components;
|
||||||
import net.minecraft.ChatFormatting;
|
import net.minecraft.ChatFormatting;
|
||||||
|
import net.minecraft.core.BlockPos;
|
||||||
import net.minecraft.core.Direction;
|
import net.minecraft.core.Direction;
|
||||||
import net.minecraft.core.particles.ItemParticleOption;
|
import net.minecraft.core.particles.ItemParticleOption;
|
||||||
import net.minecraft.core.particles.ParticleTypes;
|
import net.minecraft.core.particles.ParticleTypes;
|
||||||
import net.minecraft.nbt.CompoundTag;
|
import net.minecraft.nbt.CompoundTag;
|
||||||
import net.minecraft.nbt.Tag;
|
import net.minecraft.nbt.Tag;
|
||||||
import net.minecraft.network.chat.Component;
|
import net.minecraft.network.chat.Component;
|
||||||
|
import net.minecraft.server.level.ServerLevel;
|
||||||
import net.minecraft.sounds.SoundEvents;
|
import net.minecraft.sounds.SoundEvents;
|
||||||
import net.minecraft.sounds.SoundSource;
|
import net.minecraft.sounds.SoundSource;
|
||||||
import net.minecraft.world.InteractionHand;
|
import net.minecraft.world.InteractionHand;
|
||||||
import net.minecraft.world.InteractionResult;
|
import net.minecraft.world.InteractionResult;
|
||||||
import net.minecraft.world.InteractionResultHolder;
|
import net.minecraft.world.InteractionResultHolder;
|
||||||
import net.minecraft.world.entity.Entity;
|
import net.minecraft.world.entity.Entity;
|
||||||
|
import net.minecraft.world.entity.EntityType;
|
||||||
import net.minecraft.world.entity.LivingEntity;
|
import net.minecraft.world.entity.LivingEntity;
|
||||||
|
import net.minecraft.world.entity.MobSpawnType;
|
||||||
import net.minecraft.world.entity.player.Player;
|
import net.minecraft.world.entity.player.Player;
|
||||||
import net.minecraft.world.item.Item;
|
import net.minecraft.world.item.Item;
|
||||||
import net.minecraft.world.item.ItemStack;
|
import net.minecraft.world.item.ItemStack;
|
||||||
|
import net.minecraft.world.item.SpawnEggItem;
|
||||||
import net.minecraft.world.item.TooltipFlag;
|
import net.minecraft.world.item.TooltipFlag;
|
||||||
import net.minecraft.world.item.UseAnim;
|
import net.minecraft.world.item.UseAnim;
|
||||||
import net.minecraft.world.item.context.UseOnContext;
|
import net.minecraft.world.item.context.UseOnContext;
|
||||||
|
@ -63,7 +68,7 @@ public class PackageItem extends Item {
|
||||||
public static boolean isPackage(ItemStack stack) {
|
public static boolean isPackage(ItemStack stack) {
|
||||||
return stack.getItem() instanceof PackageItem;
|
return stack.getItem() instanceof PackageItem;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean canFitInsideContainerItems() {
|
public boolean canFitInsideContainerItems() {
|
||||||
return false;
|
return false;
|
||||||
|
@ -129,7 +134,7 @@ public class PackageItem extends Item {
|
||||||
public static boolean matchAddress(ItemStack box, String address) {
|
public static boolean matchAddress(ItemStack box, String address) {
|
||||||
return matchAddress(getAddress(box), address);
|
return matchAddress(getAddress(box), address);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static boolean matchAddress(String boxAddress, String address) {
|
public static boolean matchAddress(String boxAddress, String address) {
|
||||||
if (address.isBlank())
|
if (address.isBlank())
|
||||||
return boxAddress.isBlank();
|
return boxAddress.isBlank();
|
||||||
|
@ -188,20 +193,18 @@ public class PackageItem extends Item {
|
||||||
pTooltipComponents.add(Components.literal("-> " + compoundnbt.getString("Address"))
|
pTooltipComponents.add(Components.literal("-> " + compoundnbt.getString("Address"))
|
||||||
.withStyle(ChatFormatting.GOLD));
|
.withStyle(ChatFormatting.GOLD));
|
||||||
|
|
||||||
/* Debug Fragmentation Data
|
/*
|
||||||
if (compoundnbt.contains("Fragment")) {
|
* Debug Fragmentation Data if (compoundnbt.contains("Fragment")) { CompoundTag
|
||||||
CompoundTag fragTag = compoundnbt.getCompound("Fragment");
|
* fragTag = compoundnbt.getCompound("Fragment");
|
||||||
pTooltipComponents.add(Components.literal("Order Information (Temporary)")
|
* pTooltipComponents.add(Components.literal("Order Information (Temporary)")
|
||||||
.withStyle(ChatFormatting.GREEN));
|
* .withStyle(ChatFormatting.GREEN)); pTooltipComponents.add(Components
|
||||||
pTooltipComponents.add(Components
|
* .literal(" Link " + fragTag.getInt("LinkIndex") +
|
||||||
.literal(" Link " + fragTag.getInt("LinkIndex") + (fragTag.getBoolean("IsFinalLink") ? " Final" : "")
|
* (fragTag.getBoolean("IsFinalLink") ? " Final" : "") + " | Fragment " +
|
||||||
+ " | Fragment " + fragTag.getInt("Index") + (fragTag.getBoolean("IsFinal") ? " Final" : ""))
|
* fragTag.getInt("Index") + (fragTag.getBoolean("IsFinal") ? " Final" : ""))
|
||||||
.withStyle(ChatFormatting.DARK_GREEN));
|
* .withStyle(ChatFormatting.DARK_GREEN)); if (fragTag.contains("OrderContext"))
|
||||||
if (fragTag.contains("OrderContext"))
|
* pTooltipComponents.add(Components.literal("Has Context!")
|
||||||
pTooltipComponents.add(Components.literal("Has Context!")
|
* .withStyle(ChatFormatting.DARK_GREEN)); }
|
||||||
.withStyle(ChatFormatting.DARK_GREEN));
|
*/
|
||||||
}
|
|
||||||
*/
|
|
||||||
|
|
||||||
if (!compoundnbt.contains("Items", Tag.TAG_COMPOUND))
|
if (!compoundnbt.contains("Items", Tag.TAG_COMPOUND))
|
||||||
return;
|
return;
|
||||||
|
@ -256,6 +259,18 @@ public class PackageItem extends Item {
|
||||||
|
|
||||||
for (int i = 0; i < contents.getSlots(); i++) {
|
for (int i = 0; i < contents.getSlots(); i++) {
|
||||||
ItemStack itemstack = contents.getStackInSlot(i);
|
ItemStack itemstack = contents.getStackInSlot(i);
|
||||||
|
|
||||||
|
if (itemstack.getItem() instanceof SpawnEggItem sei && worldIn instanceof ServerLevel sl) {
|
||||||
|
EntityType<?> entitytype = sei.getType(itemstack.getTag());
|
||||||
|
Entity entity = entitytype.spawn(sl, itemstack, null, BlockPos.containing(playerIn.position()
|
||||||
|
.add(playerIn.getLookAngle()
|
||||||
|
.multiply(1, 0, 1)
|
||||||
|
.normalize())),
|
||||||
|
MobSpawnType.SPAWN_EGG, false, false);
|
||||||
|
if (entity != null)
|
||||||
|
itemstack.shrink(1);
|
||||||
|
}
|
||||||
|
|
||||||
if (itemstack.isEmpty())
|
if (itemstack.isEmpty())
|
||||||
continue;
|
continue;
|
||||||
playerIn.getInventory()
|
playerIn.getInventory()
|
||||||
|
|
|
@ -88,7 +88,7 @@ public class DisplayClothBlock extends Block implements IHaveBigOutline, IWrench
|
||||||
BlockHitResult ray) {
|
BlockHitResult ray) {
|
||||||
if (ray.getDirection() == Direction.DOWN)
|
if (ray.getDirection() == Direction.DOWN)
|
||||||
return InteractionResult.PASS;
|
return InteractionResult.PASS;
|
||||||
|
|
||||||
ItemStack heldItem = player.getItemInHand(hand);
|
ItemStack heldItem = player.getItemInHand(hand);
|
||||||
boolean shiftKeyDown = player.isShiftKeyDown();
|
boolean shiftKeyDown = player.isShiftKeyDown();
|
||||||
if (!player.mayBuild())
|
if (!player.mayBuild())
|
||||||
|
@ -151,6 +151,12 @@ public class DisplayClothBlock extends Block implements IHaveBigOutline, IWrench
|
||||||
return AllShapes.DISPLAY_CLOTH_OCCLUSION;
|
return AllShapes.DISPLAY_CLOTH_OCCLUSION;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public VoxelShape getCollisionShape(BlockState pState, BlockGetter pLevel, BlockPos pPos,
|
||||||
|
CollisionContext pContext) {
|
||||||
|
return AllShapes.DISPLAY_CLOTH_OCCLUSION;
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean canSurvive(BlockState p_152922_, LevelReader p_152923_, BlockPos p_152924_) {
|
public boolean canSurvive(BlockState p_152922_, LevelReader p_152923_, BlockPos p_152924_) {
|
||||||
return true;
|
return true;
|
||||||
|
|
|
@ -75,8 +75,8 @@ public class FactoryPanelScreen extends AbstractSimiScreen {
|
||||||
int y = guiTop;
|
int y = guiTop;
|
||||||
|
|
||||||
if (addressBox == null) {
|
if (addressBox == null) {
|
||||||
addressBox =
|
addressBox = new AddressEditBox(this, new NoShadowFontWrapper(font), x + 38, y + 30 + middleHeight(), 110,
|
||||||
new AddressEditBox(this, new NoShadowFontWrapper(font), x + 38, y + 30 + middleHeight(), 110, 10);
|
10, false);
|
||||||
addressBox.setValue(behaviour.recipeAddress);
|
addressBox.setValue(behaviour.recipeAddress);
|
||||||
addressBox.setTextColor(0x555555);
|
addressBox.setTextColor(0x555555);
|
||||||
}
|
}
|
||||||
|
|
|
@ -45,7 +45,7 @@ public class PackageFilterScreen extends AbstractFilterScreen<PackageFilterMenu>
|
||||||
int x = leftPos;
|
int x = leftPos;
|
||||||
int y = topPos;
|
int y = topPos;
|
||||||
|
|
||||||
addressBox = new AddressEditBox(this, this.font, x + 44, y + 28, 140, 9);
|
addressBox = new AddressEditBox(this, this.font, x + 44, y + 28, 140, 9, false);
|
||||||
addressBox.setTextColor(0xffffff);
|
addressBox.setTextColor(0xffffff);
|
||||||
addressBox.setValue(menu.address);
|
addressBox.setValue(menu.address);
|
||||||
addressBox.setResponder(this::onAddressEdited);
|
addressBox.setResponder(this::onAddressEdited);
|
||||||
|
@ -57,7 +57,7 @@ public class PackageFilterScreen extends AbstractFilterScreen<PackageFilterMenu>
|
||||||
@Override
|
@Override
|
||||||
public void render(GuiGraphics graphics, int mouseX, int mouseY, float partialTicks) {
|
public void render(GuiGraphics graphics, int mouseX, int mouseY, float partialTicks) {
|
||||||
super.render(graphics, mouseX, mouseY, partialTicks);
|
super.render(graphics, mouseX, mouseY, partialTicks);
|
||||||
|
|
||||||
PoseStack ms = graphics.pose();
|
PoseStack ms = graphics.pose();
|
||||||
ms.pushPose();
|
ms.pushPose();
|
||||||
ms.translate(leftPos + 16, topPos + 23, 0);
|
ms.translate(leftPos + 16, topPos + 23, 0);
|
||||||
|
@ -90,7 +90,6 @@ public class PackageFilterScreen extends AbstractFilterScreen<PackageFilterMenu>
|
||||||
public boolean charTyped(char pCodePoint, int pModifiers) {
|
public boolean charTyped(char pCodePoint, int pModifiers) {
|
||||||
return super.charTyped(pCodePoint, pModifiers);
|
return super.charTyped(pCodePoint, pModifiers);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void contentsCleared() {
|
protected void contentsCleared() {
|
||||||
|
|
|
@ -11,6 +11,7 @@ import com.simibubi.create.content.equipment.clipboard.ClipboardEntry;
|
||||||
import com.simibubi.create.content.equipment.clipboard.ClipboardOverrides;
|
import com.simibubi.create.content.equipment.clipboard.ClipboardOverrides;
|
||||||
import com.simibubi.create.foundation.blockEntity.SmartBlockEntity;
|
import com.simibubi.create.foundation.blockEntity.SmartBlockEntity;
|
||||||
import com.simibubi.create.foundation.blockEntity.behaviour.BlockEntityBehaviour;
|
import com.simibubi.create.foundation.blockEntity.behaviour.BlockEntityBehaviour;
|
||||||
|
import com.simibubi.create.foundation.blockEntity.behaviour.animatedContainer.AnimatedContainerBehaviour;
|
||||||
import com.simibubi.create.foundation.item.SmartInventory;
|
import com.simibubi.create.foundation.item.SmartInventory;
|
||||||
import com.simibubi.create.foundation.utility.CreateLang;
|
import com.simibubi.create.foundation.utility.CreateLang;
|
||||||
|
|
||||||
|
@ -42,6 +43,8 @@ public abstract class PackagePortBlockEntity extends SmartBlockEntity implements
|
||||||
public PackagePortTarget target;
|
public PackagePortTarget target;
|
||||||
public SmartInventory inventory;
|
public SmartInventory inventory;
|
||||||
|
|
||||||
|
protected AnimatedContainerBehaviour<PackagePortMenu> openTracker;
|
||||||
|
|
||||||
private LazyOptional<IItemHandler> itemHandler;
|
private LazyOptional<IItemHandler> itemHandler;
|
||||||
|
|
||||||
public PackagePortBlockEntity(BlockEntityType<?> type, BlockPos pos, BlockState state) {
|
public PackagePortBlockEntity(BlockEntityType<?> type, BlockPos pos, BlockState state) {
|
||||||
|
@ -129,7 +132,12 @@ public abstract class PackagePortBlockEntity extends SmartBlockEntity implements
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void addBehaviours(List<BlockEntityBehaviour> behaviours) {}
|
public void addBehaviours(List<BlockEntityBehaviour> behaviours) {
|
||||||
|
behaviours.add(openTracker = new AnimatedContainerBehaviour<>(this, PackagePortMenu.class));
|
||||||
|
openTracker.onOpenChanged(this::onOpenChange);
|
||||||
|
}
|
||||||
|
|
||||||
|
protected abstract void onOpenChange(boolean open);
|
||||||
|
|
||||||
public InteractionResult use(Player player) {
|
public InteractionResult use(Player player) {
|
||||||
if (player == null || player.isCrouching())
|
if (player == null || player.isCrouching())
|
||||||
|
@ -165,7 +173,7 @@ public abstract class PackagePortBlockEntity extends SmartBlockEntity implements
|
||||||
List<ClipboardEntry> page = null;
|
List<ClipboardEntry> page = null;
|
||||||
|
|
||||||
for (List<ClipboardEntry> freePage : list) {
|
for (List<ClipboardEntry> freePage : list) {
|
||||||
if (freePage.size() > 16)
|
if (freePage.size() > 11)
|
||||||
continue;
|
continue;
|
||||||
page = freePage;
|
page = freePage;
|
||||||
break;
|
break;
|
||||||
|
@ -179,9 +187,10 @@ public abstract class PackagePortBlockEntity extends SmartBlockEntity implements
|
||||||
page.add(new ClipboardEntry(false, Components.literal("#" + addressFilter)));
|
page.add(new ClipboardEntry(false, Components.literal("#" + addressFilter)));
|
||||||
player.displayClientMessage(CreateLang.temporaryText("'" + addressFilter + "' added to Clipboard")
|
player.displayClientMessage(CreateLang.temporaryText("'" + addressFilter + "' added to Clipboard")
|
||||||
.component(), true);
|
.component(), true);
|
||||||
|
|
||||||
ClipboardEntry.saveAll(list, mainHandItem);
|
ClipboardEntry.saveAll(list, mainHandItem);
|
||||||
mainHandItem.getTag().putInt("Type", ClipboardOverrides.ClipboardType.WRITTEN.ordinal());
|
mainHandItem.getTag()
|
||||||
|
.putInt("Type", ClipboardOverrides.ClipboardType.WRITTEN.ordinal());
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|
|
@ -1,6 +1,8 @@
|
||||||
package com.simibubi.create.content.logistics.packagePort;
|
package com.simibubi.create.content.logistics.packagePort;
|
||||||
|
|
||||||
import com.simibubi.create.AllMenuTypes;
|
import com.simibubi.create.AllMenuTypes;
|
||||||
|
import com.simibubi.create.foundation.blockEntity.behaviour.BlockEntityBehaviour;
|
||||||
|
import com.simibubi.create.foundation.blockEntity.behaviour.animatedContainer.AnimatedContainerBehaviour;
|
||||||
import com.simibubi.create.foundation.gui.menu.MenuBase;
|
import com.simibubi.create.foundation.gui.menu.MenuBase;
|
||||||
import com.simibubi.create.foundation.item.SmartInventory;
|
import com.simibubi.create.foundation.item.SmartInventory;
|
||||||
|
|
||||||
|
@ -24,6 +26,8 @@ public class PackagePortMenu extends MenuBase<PackagePortBlockEntity> {
|
||||||
|
|
||||||
public PackagePortMenu(MenuType<?> type, int id, Inventory inv, PackagePortBlockEntity be) {
|
public PackagePortMenu(MenuType<?> type, int id, Inventory inv, PackagePortBlockEntity be) {
|
||||||
super(type, id, inv, be);
|
super(type, id, inv, be);
|
||||||
|
BlockEntityBehaviour.get(be, AnimatedContainerBehaviour.TYPE)
|
||||||
|
.startOpen(player);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static PackagePortMenu create(int id, Inventory inv, PackagePortBlockEntity be) {
|
public static PackagePortMenu create(int id, Inventory inv, PackagePortBlockEntity be) {
|
||||||
|
@ -79,6 +83,9 @@ public class PackagePortMenu extends MenuBase<PackagePortBlockEntity> {
|
||||||
@Override
|
@Override
|
||||||
public void removed(Player playerIn) {
|
public void removed(Player playerIn) {
|
||||||
super.removed(playerIn);
|
super.removed(playerIn);
|
||||||
|
if (!playerIn.level().isClientSide)
|
||||||
|
BlockEntityBehaviour.get(contentHolder, AnimatedContainerBehaviour.TYPE)
|
||||||
|
.stopOpen(playerIn);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -29,6 +29,7 @@ import net.minecraftforge.items.ItemHandlerHelper;
|
||||||
public class FrogportBlockEntity extends PackagePortBlockEntity {
|
public class FrogportBlockEntity extends PackagePortBlockEntity {
|
||||||
|
|
||||||
public ItemStack animatedPackage;
|
public ItemStack animatedPackage;
|
||||||
|
public LerpedFloat manualOpenAnimationProgress;
|
||||||
public LerpedFloat animationProgress;
|
public LerpedFloat animationProgress;
|
||||||
public LerpedFloat anticipationProgress;
|
public LerpedFloat anticipationProgress;
|
||||||
public boolean currentlyDepositing;
|
public boolean currentlyDepositing;
|
||||||
|
@ -41,6 +42,9 @@ public class FrogportBlockEntity extends PackagePortBlockEntity {
|
||||||
super(type, pos, state);
|
super(type, pos, state);
|
||||||
animationProgress = LerpedFloat.linear();
|
animationProgress = LerpedFloat.linear();
|
||||||
anticipationProgress = LerpedFloat.linear();
|
anticipationProgress = LerpedFloat.linear();
|
||||||
|
manualOpenAnimationProgress = LerpedFloat.linear()
|
||||||
|
.startWithValue(0)
|
||||||
|
.chase(0, 0.35, Chaser.LINEAR);
|
||||||
}
|
}
|
||||||
|
|
||||||
public boolean isAnimationInProgress() {
|
public boolean isAnimationInProgress() {
|
||||||
|
@ -68,8 +72,13 @@ public class FrogportBlockEntity extends PackagePortBlockEntity {
|
||||||
public void sendAnticipate() {
|
public void sendAnticipate() {
|
||||||
if (isAnimationInProgress())
|
if (isAnimationInProgress())
|
||||||
return;
|
return;
|
||||||
sendAnticipate = true;
|
for (int i = 0; i < inventory.getSlots(); i++)
|
||||||
sendData();
|
if (inventory.getStackInSlot(i)
|
||||||
|
.isEmpty()) {
|
||||||
|
sendAnticipate = true;
|
||||||
|
sendData();
|
||||||
|
return;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public void anticipate() {
|
public void anticipate() {
|
||||||
|
@ -83,7 +92,10 @@ public class FrogportBlockEntity extends PackagePortBlockEntity {
|
||||||
if (anticipationProgress.getValue() == 1)
|
if (anticipationProgress.getValue() == 1)
|
||||||
anticipationProgress.updateChaseTarget(0);
|
anticipationProgress.updateChaseTarget(0);
|
||||||
|
|
||||||
|
manualOpenAnimationProgress.updateChaseTarget(openTracker.openCount > 0 ? 1 : 0);
|
||||||
|
|
||||||
anticipationProgress.tickChaser();
|
anticipationProgress.tickChaser();
|
||||||
|
manualOpenAnimationProgress.tickChaser();
|
||||||
|
|
||||||
if (!isAnimationInProgress())
|
if (!isAnimationInProgress())
|
||||||
return;
|
return;
|
||||||
|
@ -178,6 +190,9 @@ public class FrogportBlockEntity extends PackagePortBlockEntity {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected void onOpenChange(boolean open) {}
|
||||||
|
|
||||||
public void tryPullingFromOwnAndAdjacentInventories() {
|
public void tryPullingFromOwnAndAdjacentInventories() {
|
||||||
if (isAnimationInProgress())
|
if (isAnimationInProgress())
|
||||||
return;
|
return;
|
||||||
|
|
|
@ -84,6 +84,10 @@ public class FrogportRenderer extends SmartBlockEntityRenderer<FrogportBlockEnti
|
||||||
|
|
||||||
headPitch *= headPitchModifier;
|
headPitch *= headPitchModifier;
|
||||||
|
|
||||||
|
headPitch = Math.max(headPitch, blockEntity.manualOpenAnimationProgress.getValue(partialTicks) * 60);
|
||||||
|
tongueLength = Math.max(tongueLength, blockEntity.manualOpenAnimationProgress.getValue(partialTicks) * 0.25f);
|
||||||
|
|
||||||
|
|
||||||
body.center()
|
body.center()
|
||||||
.rotateYDegrees(yaw)
|
.rotateYDegrees(yaw)
|
||||||
.uncenter()
|
.uncenter()
|
||||||
|
|
|
@ -116,6 +116,9 @@ public class FrogportVisual extends AbstractBlockEntityVisual<FrogportBlockEntit
|
||||||
|
|
||||||
headPitch *= headPitchModifier;
|
headPitch *= headPitchModifier;
|
||||||
|
|
||||||
|
headPitch = Math.max(headPitch, blockEntity.manualOpenAnimationProgress.getValue(partialTicks) * 60);
|
||||||
|
tongueLength = Math.max(tongueLength, blockEntity.manualOpenAnimationProgress.getValue(partialTicks) * 0.25f);
|
||||||
|
|
||||||
body.setIdentityTransform()
|
body.setIdentityTransform()
|
||||||
.translate(getVisualPosition())
|
.translate(getVisualPosition())
|
||||||
.center()
|
.center()
|
||||||
|
|
|
@ -13,6 +13,8 @@ import net.createmod.catnip.utility.animation.LerpedFloat;
|
||||||
import net.createmod.catnip.utility.animation.LerpedFloat.Chaser;
|
import net.createmod.catnip.utility.animation.LerpedFloat.Chaser;
|
||||||
import net.minecraft.core.BlockPos;
|
import net.minecraft.core.BlockPos;
|
||||||
import net.minecraft.nbt.CompoundTag;
|
import net.minecraft.nbt.CompoundTag;
|
||||||
|
import net.minecraft.sounds.SoundEvents;
|
||||||
|
import net.minecraft.sounds.SoundSource;
|
||||||
import net.minecraft.world.item.BoneMealItem;
|
import net.minecraft.world.item.BoneMealItem;
|
||||||
import net.minecraft.world.item.ItemStack;
|
import net.minecraft.world.item.ItemStack;
|
||||||
import net.minecraft.world.level.block.entity.BlockEntityType;
|
import net.minecraft.world.level.block.entity.BlockEntityType;
|
||||||
|
@ -23,7 +25,7 @@ public class PostboxBlockEntity extends PackagePortBlockEntity {
|
||||||
public WeakReference<GlobalStation> trackedGlobalStation;
|
public WeakReference<GlobalStation> trackedGlobalStation;
|
||||||
|
|
||||||
public LerpedFloat flag;
|
public LerpedFloat flag;
|
||||||
|
|
||||||
private boolean sendParticles;
|
private boolean sendParticles;
|
||||||
|
|
||||||
public PostboxBlockEntity(BlockEntityType<?> type, BlockPos pos, BlockState state) {
|
public PostboxBlockEntity(BlockEntityType<?> type, BlockPos pos, BlockState state) {
|
||||||
|
@ -55,17 +57,24 @@ public class PostboxBlockEntity extends PackagePortBlockEntity {
|
||||||
flag.tickChaser();
|
flag.tickChaser();
|
||||||
if (currentTarget == 0 && settled != flag.getValue() > .15f)
|
if (currentTarget == 0 && settled != flag.getValue() > .15f)
|
||||||
AllSoundEvents.CONTRAPTION_DISASSEMBLE.playAt(level, worldPosition, 0.75f, 1.5f, true);
|
AllSoundEvents.CONTRAPTION_DISASSEMBLE.playAt(level, worldPosition, 0.75f, 1.5f, true);
|
||||||
|
|
||||||
if (sendParticles) {
|
if (sendParticles) {
|
||||||
sendParticles = false;
|
sendParticles = false;
|
||||||
BoneMealItem.addGrowthParticles(level, worldPosition, 40);
|
BoneMealItem.addGrowthParticles(level, worldPosition, 40);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected void onOpenChange(boolean open) {
|
||||||
|
level.setBlockAndUpdate(worldPosition, getBlockState().setValue(PostboxBlock.OPEN, open));
|
||||||
|
level.playSound(null, worldPosition, open ? SoundEvents.BARREL_OPEN : SoundEvents.BARREL_CLOSE,
|
||||||
|
SoundSource.BLOCKS);
|
||||||
|
}
|
||||||
|
|
||||||
public void spawnParticles() {
|
public void spawnParticles() {
|
||||||
sendParticles = true;
|
sendParticles = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void write(CompoundTag tag, boolean clientPacket) {
|
protected void write(CompoundTag tag, boolean clientPacket) {
|
||||||
super.write(tag, clientPacket);
|
super.write(tag, clientPacket);
|
||||||
|
@ -73,7 +82,7 @@ public class PostboxBlockEntity extends PackagePortBlockEntity {
|
||||||
NBTHelper.putMarker(tag, "Particles");
|
NBTHelper.putMarker(tag, "Particles");
|
||||||
sendParticles = false;
|
sendParticles = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void read(CompoundTag tag, boolean clientPacket) {
|
protected void read(CompoundTag tag, boolean clientPacket) {
|
||||||
super.read(tag, clientPacket);
|
super.read(tag, clientPacket);
|
||||||
|
|
|
@ -77,6 +77,8 @@ public class LogisticallyLinkedBlockItem extends BlockItem {
|
||||||
|
|
||||||
if (player == null)
|
if (player == null)
|
||||||
return InteractionResult.FAIL;
|
return InteractionResult.FAIL;
|
||||||
|
if (player.isShiftKeyDown())
|
||||||
|
return super.useOn(pContext);
|
||||||
|
|
||||||
LogisticallyLinkedBehaviour link = BlockEntityBehaviour.get(level, pos, LogisticallyLinkedBehaviour.TYPE);
|
LogisticallyLinkedBehaviour link = BlockEntityBehaviour.get(level, pos, LogisticallyLinkedBehaviour.TYPE);
|
||||||
boolean tuned = isTuned(stack);
|
boolean tuned = isTuned(stack);
|
||||||
|
|
|
@ -2,15 +2,18 @@ package com.simibubi.create.content.logistics.packagerLink;
|
||||||
|
|
||||||
import java.util.UUID;
|
import java.util.UUID;
|
||||||
|
|
||||||
import com.simibubi.create.AllBlockEntityTypes;
|
import org.apache.commons.lang3.tuple.Pair;
|
||||||
|
|
||||||
import com.simibubi.create.foundation.blockEntity.SmartBlockEntity;
|
import com.simibubi.create.foundation.blockEntity.SmartBlockEntity;
|
||||||
|
|
||||||
import net.createmod.catnip.CatnipClient;
|
import net.createmod.catnip.CatnipClient;
|
||||||
|
import net.createmod.catnip.utility.AnimationTickHolder;
|
||||||
import net.minecraft.client.Minecraft;
|
import net.minecraft.client.Minecraft;
|
||||||
import net.minecraft.client.player.LocalPlayer;
|
import net.minecraft.client.player.LocalPlayer;
|
||||||
import net.minecraft.nbt.CompoundTag;
|
import net.minecraft.nbt.CompoundTag;
|
||||||
import net.minecraft.world.item.BlockItem;
|
import net.minecraft.world.item.BlockItem;
|
||||||
import net.minecraft.world.item.ItemStack;
|
import net.minecraft.world.item.ItemStack;
|
||||||
|
import net.minecraft.world.phys.AABB;
|
||||||
import net.minecraft.world.phys.shapes.VoxelShape;
|
import net.minecraft.world.phys.shapes.VoxelShape;
|
||||||
|
|
||||||
public class LogisticallyLinkedClientHandler {
|
public class LogisticallyLinkedClientHandler {
|
||||||
|
@ -36,10 +39,20 @@ public class LogisticallyLinkedClientHandler {
|
||||||
.getShape(player.level(), be.getBlockPos());
|
.getShape(player.level(), be.getBlockPos());
|
||||||
if (shape.isEmpty())
|
if (shape.isEmpty())
|
||||||
continue;
|
continue;
|
||||||
CatnipClient.OUTLINER.showAABB(behaviour, shape.bounds()
|
if (!player.blockPosition()
|
||||||
.inflate(AllBlockEntityTypes.FACTORY_PANEL.is(be) ? -1 / 16f : 0)
|
.closerThan(be.getBlockPos(), 64))
|
||||||
.move(be.getBlockPos()), 2)
|
continue;
|
||||||
.lineWidth(1 / 16f);
|
for (int i = 0; i < shape.toAabbs()
|
||||||
|
.size(); i++) {
|
||||||
|
AABB aabb = shape.toAabbs()
|
||||||
|
.get(i);
|
||||||
|
CatnipClient.OUTLINER.showAABB(Pair.of(behaviour, i), aabb.inflate(-1 / 128f)
|
||||||
|
.move(be.getBlockPos()), 2)
|
||||||
|
.lineWidth(1 / 32f)
|
||||||
|
.disableLineNormals()
|
||||||
|
.colored(AnimationTickHolder.getTicks() % 16 < 8 ? 0x708DAD : 0x90ADCD);
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -70,7 +70,7 @@ public class RedstoneRequesterScreen extends AbstractSimiContainerScreen<Redston
|
||||||
int y = getGuiTop();
|
int y = getGuiTop();
|
||||||
|
|
||||||
if (addressBox == null) {
|
if (addressBox == null) {
|
||||||
addressBox = new AddressEditBox(this, new NoShadowFontWrapper(font), x + 50, y + 53, 110, 10);
|
addressBox = new AddressEditBox(this, new NoShadowFontWrapper(font), x + 50, y + 53, 110, 10, false);
|
||||||
addressBox.setValue(menu.contentHolder.encodedTargetAdress);
|
addressBox.setValue(menu.contentHolder.encodedTargetAdress);
|
||||||
addressBox.setTextColor(0x555555);
|
addressBox.setTextColor(0x555555);
|
||||||
}
|
}
|
||||||
|
|
|
@ -148,7 +148,8 @@ public class StockTickerRequestScreen extends AbstractSimiScreen implements Scre
|
||||||
addWidget(searchBox);
|
addWidget(searchBox);
|
||||||
|
|
||||||
boolean initial = addressBox == null;
|
boolean initial = addressBox == null;
|
||||||
addressBox = new AddressEditBox(this, new NoShadowFontWrapper(font), x + 60, y + windowHeight - 32, 112, 10);
|
addressBox =
|
||||||
|
new AddressEditBox(this, new NoShadowFontWrapper(font), x + 60, y + windowHeight - 32, 112, 10, true);
|
||||||
addressBox.setTextColor(0x555555);
|
addressBox.setTextColor(0x555555);
|
||||||
if (initial)
|
if (initial)
|
||||||
addressBox.setValue(blockEntity.previouslyUsedAddress);
|
addressBox.setValue(blockEntity.previouslyUsedAddress);
|
||||||
|
|
|
@ -11,8 +11,6 @@ import com.simibubi.create.foundation.block.WrenchableDirectionalBlock;
|
||||||
|
|
||||||
import net.minecraft.core.BlockPos;
|
import net.minecraft.core.BlockPos;
|
||||||
import net.minecraft.core.Direction;
|
import net.minecraft.core.Direction;
|
||||||
import net.minecraft.server.level.ServerLevel;
|
|
||||||
import net.minecraft.util.RandomSource;
|
|
||||||
import net.minecraft.world.InteractionHand;
|
import net.minecraft.world.InteractionHand;
|
||||||
import net.minecraft.world.InteractionResult;
|
import net.minecraft.world.InteractionResult;
|
||||||
import net.minecraft.world.entity.player.Player;
|
import net.minecraft.world.entity.player.Player;
|
||||||
|
@ -73,18 +71,13 @@ public class DeskBellBlock extends WrenchableDirectionalBlock
|
||||||
@Override
|
@Override
|
||||||
public InteractionResult use(BlockState pState, Level pLevel, BlockPos pPos, Player pPlayer, InteractionHand pHand,
|
public InteractionResult use(BlockState pState, Level pLevel, BlockPos pPos, Player pPlayer, InteractionHand pHand,
|
||||||
BlockHitResult pHit) {
|
BlockHitResult pHit) {
|
||||||
if (pState.getValue(POWERED))
|
|
||||||
return InteractionResult.CONSUME;
|
|
||||||
press(pState, pLevel, pPos);
|
|
||||||
playSound(pPlayer, pLevel, pPos);
|
playSound(pPlayer, pLevel, pPos);
|
||||||
withBlockEntityDo(pLevel, pPos, DeskBellBlockEntity::ding);
|
if (pLevel.isClientSide)
|
||||||
return InteractionResult.SUCCESS;
|
return InteractionResult.SUCCESS;
|
||||||
}
|
|
||||||
|
|
||||||
public void press(BlockState pState, Level pLevel, BlockPos pPos) {
|
|
||||||
pLevel.setBlock(pPos, pState.setValue(POWERED, true), 3);
|
pLevel.setBlock(pPos, pState.setValue(POWERED, true), 3);
|
||||||
updateNeighbours(pState, pLevel, pPos);
|
updateNeighbours(pState, pLevel, pPos);
|
||||||
pLevel.scheduleTick(pPos, this, 20);
|
withBlockEntityDo(pLevel, pPos, DeskBellBlockEntity::ding);
|
||||||
|
return InteractionResult.SUCCESS;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void playSound(@Nullable Player pPlayer, LevelAccessor pLevel, BlockPos pPos) {
|
public void playSound(@Nullable Player pPlayer, LevelAccessor pLevel, BlockPos pPos) {
|
||||||
|
@ -115,13 +108,7 @@ public class DeskBellBlock extends WrenchableDirectionalBlock
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
public void unPress(BlockState pState, Level pLevel, BlockPos pPos) {
|
||||||
public void tick(BlockState pState, ServerLevel pLevel, BlockPos pPos, RandomSource pRandom) {
|
|
||||||
if (pState.getValue(POWERED))
|
|
||||||
unPress(pState, pLevel, pPos);
|
|
||||||
}
|
|
||||||
|
|
||||||
protected void unPress(BlockState pState, Level pLevel, BlockPos pPos) {
|
|
||||||
pLevel.setBlock(pPos, pState.setValue(POWERED, false), 3);
|
pLevel.setBlock(pPos, pState.setValue(POWERED, false), 3);
|
||||||
updateNeighbours(pState, pLevel, pPos);
|
updateNeighbours(pState, pLevel, pPos);
|
||||||
}
|
}
|
||||||
|
|
|
@ -2,6 +2,7 @@ package com.simibubi.create.content.redstone.deskBell;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
|
import com.simibubi.create.AllBlocks;
|
||||||
import com.simibubi.create.foundation.blockEntity.SmartBlockEntity;
|
import com.simibubi.create.foundation.blockEntity.SmartBlockEntity;
|
||||||
import com.simibubi.create.foundation.blockEntity.behaviour.BlockEntityBehaviour;
|
import com.simibubi.create.foundation.blockEntity.behaviour.BlockEntityBehaviour;
|
||||||
|
|
||||||
|
@ -10,6 +11,7 @@ import net.createmod.catnip.utility.animation.LerpedFloat;
|
||||||
import net.createmod.catnip.utility.animation.LerpedFloat.Chaser;
|
import net.createmod.catnip.utility.animation.LerpedFloat.Chaser;
|
||||||
import net.minecraft.core.BlockPos;
|
import net.minecraft.core.BlockPos;
|
||||||
import net.minecraft.nbt.CompoundTag;
|
import net.minecraft.nbt.CompoundTag;
|
||||||
|
import net.minecraft.util.Mth;
|
||||||
import net.minecraft.world.level.block.entity.BlockEntityType;
|
import net.minecraft.world.level.block.entity.BlockEntityType;
|
||||||
import net.minecraft.world.level.block.state.BlockState;
|
import net.minecraft.world.level.block.state.BlockState;
|
||||||
|
|
||||||
|
@ -17,19 +19,37 @@ public class DeskBellBlockEntity extends SmartBlockEntity {
|
||||||
|
|
||||||
public LerpedFloat animation = LerpedFloat.linear()
|
public LerpedFloat animation = LerpedFloat.linear()
|
||||||
.startWithValue(0);
|
.startWithValue(0);
|
||||||
|
|
||||||
public boolean ding;
|
public boolean ding;
|
||||||
|
|
||||||
|
int blockStateTimer;
|
||||||
|
float animationOffset;
|
||||||
|
|
||||||
public DeskBellBlockEntity(BlockEntityType<?> type, BlockPos pos, BlockState state) {
|
public DeskBellBlockEntity(BlockEntityType<?> type, BlockPos pos, BlockState state) {
|
||||||
super(type, pos, state);
|
super(type, pos, state);
|
||||||
|
blockStateTimer = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void tick() {
|
public void tick() {
|
||||||
super.tick();
|
super.tick();
|
||||||
animation.tickChaser();
|
animation.tickChaser();
|
||||||
|
|
||||||
|
if (level.isClientSide)
|
||||||
|
return;
|
||||||
|
if (blockStateTimer == 0)
|
||||||
|
return;
|
||||||
|
|
||||||
|
blockStateTimer--;
|
||||||
|
|
||||||
|
if (blockStateTimer > 0)
|
||||||
|
return;
|
||||||
|
BlockState blockState = getBlockState();
|
||||||
|
if (blockState.getValue(DeskBellBlock.POWERED))
|
||||||
|
AllBlocks.DESK_BELL.get()
|
||||||
|
.unPress(blockState, level, worldPosition);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void write(CompoundTag tag, boolean clientPacket) {
|
protected void write(CompoundTag tag, boolean clientPacket) {
|
||||||
super.write(tag, clientPacket);
|
super.write(tag, clientPacket);
|
||||||
|
@ -37,7 +57,7 @@ public class DeskBellBlockEntity extends SmartBlockEntity {
|
||||||
NBTHelper.putMarker(tag, "Ding");
|
NBTHelper.putMarker(tag, "Ding");
|
||||||
ding = false;
|
ding = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void read(CompoundTag tag, boolean clientPacket) {
|
protected void read(CompoundTag tag, boolean clientPacket) {
|
||||||
super.read(tag, clientPacket);
|
super.read(tag, clientPacket);
|
||||||
|
@ -47,11 +67,13 @@ public class DeskBellBlockEntity extends SmartBlockEntity {
|
||||||
|
|
||||||
public void ding() {
|
public void ding() {
|
||||||
if (!level.isClientSide) {
|
if (!level.isClientSide) {
|
||||||
|
blockStateTimer = 20;
|
||||||
ding = true;
|
ding = true;
|
||||||
sendData();
|
sendData();
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
animationOffset = level.random.nextFloat() * 2 * Mth.PI;
|
||||||
animation.startWithValue(1)
|
animation.startWithValue(1)
|
||||||
.chase(0, 0.05, Chaser.LINEAR);
|
.chase(0, 0.05, Chaser.LINEAR);
|
||||||
}
|
}
|
||||||
|
|
|
@ -48,8 +48,8 @@ public class DeskBellRenderer extends SmartBlockEntityRenderer<DeskBellBlockEnti
|
||||||
.rotateYDegrees(AngleHelper.horizontalAngle(facing))
|
.rotateYDegrees(AngleHelper.horizontalAngle(facing))
|
||||||
.rotateXDegrees(AngleHelper.verticalAngle(facing) + 90)
|
.rotateXDegrees(AngleHelper.verticalAngle(facing) + 90)
|
||||||
.translate(0, -1 / 16, 0)
|
.translate(0, -1 / 16, 0)
|
||||||
.rotateXDegrees(f2 * 8 * Mth.sin(p * Mth.PI * 4))
|
.rotateXDegrees(f2 * 8 * Mth.sin(p * Mth.PI * 4 + blockEntity.animationOffset))
|
||||||
.rotateZDegrees(f2 * 8 * Mth.cos(p * Mth.PI * 4))
|
.rotateZDegrees(f2 * 8 * Mth.cos(p * Mth.PI * 4 + blockEntity.animationOffset))
|
||||||
.translate(0, 1 / 16, 0)
|
.translate(0, 1 / 16, 0)
|
||||||
.scale(0.995f)
|
.scale(0.995f)
|
||||||
.uncenter()
|
.uncenter()
|
||||||
|
|
|
@ -26,8 +26,8 @@ public class DestinationSuggestions extends CommandSuggestions {
|
||||||
private int yOffset;
|
private int yOffset;
|
||||||
|
|
||||||
public DestinationSuggestions(Minecraft pMinecraft, Screen pScreen, EditBox pInput, Font pFont,
|
public DestinationSuggestions(Minecraft pMinecraft, Screen pScreen, EditBox pInput, Font pFont,
|
||||||
List<IntAttached<String>> viableStations, int yOffset) {
|
List<IntAttached<String>> viableStations, boolean anchorToBottom, int yOffset) {
|
||||||
super(pMinecraft, pScreen, pInput, pFont, true, true, 0, 7, false, 0xee_303030);
|
super(pMinecraft, pScreen, pInput, pFont, true, true, 0, 7, anchorToBottom, 0xee_303030);
|
||||||
this.textBox = pInput;
|
this.textBox = pInput;
|
||||||
this.font = pFont;
|
this.font = pFont;
|
||||||
this.viableStations = viableStations;
|
this.viableStations = viableStations;
|
||||||
|
|
|
@ -297,7 +297,7 @@ public class ScheduleScreen extends AbstractSimiContainerScreen<ScheduleMenu> im
|
||||||
if (!(e instanceof EditBox destinationBox))
|
if (!(e instanceof EditBox destinationBox))
|
||||||
return;
|
return;
|
||||||
destinationSuggestions = new DestinationSuggestions(this.minecraft, this, destinationBox, this.font,
|
destinationSuggestions = new DestinationSuggestions(this.minecraft, this, destinationBox, this.font,
|
||||||
getViableStations(field), topPos + 33);
|
getViableStations(field), false, topPos + 33);
|
||||||
destinationSuggestions.setAllowSuggestions(true);
|
destinationSuggestions.setAllowSuggestions(true);
|
||||||
destinationSuggestions.updateCommandInfo();
|
destinationSuggestions.updateCommandInfo();
|
||||||
destinationBox.setResponder(this::onDestinationEdited);
|
destinationBox.setResponder(this::onDestinationEdited);
|
||||||
|
|
|
@ -0,0 +1,107 @@
|
||||||
|
package com.simibubi.create.foundation.blockEntity.behaviour.animatedContainer;
|
||||||
|
|
||||||
|
import java.util.function.Consumer;
|
||||||
|
|
||||||
|
import com.simibubi.create.foundation.blockEntity.SmartBlockEntity;
|
||||||
|
import com.simibubi.create.foundation.blockEntity.behaviour.BehaviourType;
|
||||||
|
import com.simibubi.create.foundation.blockEntity.behaviour.BlockEntityBehaviour;
|
||||||
|
import com.simibubi.create.foundation.gui.menu.MenuBase;
|
||||||
|
|
||||||
|
import net.minecraft.nbt.CompoundTag;
|
||||||
|
import net.minecraft.world.entity.player.Player;
|
||||||
|
import net.minecraft.world.level.Level;
|
||||||
|
import net.minecraft.world.phys.AABB;
|
||||||
|
|
||||||
|
public class AnimatedContainerBehaviour<M extends MenuBase<? extends SmartBlockEntity>> extends BlockEntityBehaviour {
|
||||||
|
|
||||||
|
public static final BehaviourType<AnimatedContainerBehaviour<?>> TYPE = new BehaviourType<>();
|
||||||
|
|
||||||
|
public int openCount;
|
||||||
|
|
||||||
|
private Class<M> menuClass;
|
||||||
|
private Consumer<Boolean> openChanged;
|
||||||
|
|
||||||
|
public AnimatedContainerBehaviour(SmartBlockEntity be, Class<M> menuClass) {
|
||||||
|
super(be);
|
||||||
|
this.menuClass = menuClass;
|
||||||
|
openCount = 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void onOpenChanged(Consumer<Boolean> openChanged) {
|
||||||
|
this.openChanged = openChanged;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void read(CompoundTag compound, boolean clientPacket) {
|
||||||
|
super.read(compound, clientPacket);
|
||||||
|
if (clientPacket)
|
||||||
|
openCount = compound.getInt("OpenCount");
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void write(CompoundTag compound, boolean clientPacket) {
|
||||||
|
super.write(compound, clientPacket);
|
||||||
|
if (clientPacket)
|
||||||
|
compound.putInt("OpenCount", openCount);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void lazyTick() {
|
||||||
|
updateOpenCount();
|
||||||
|
super.lazyTick();
|
||||||
|
}
|
||||||
|
|
||||||
|
void updateOpenCount() {
|
||||||
|
Level level = getWorld();
|
||||||
|
if (level.isClientSide)
|
||||||
|
return;
|
||||||
|
if (openCount == 0)
|
||||||
|
return;
|
||||||
|
|
||||||
|
int prevOpenCount = openCount;
|
||||||
|
openCount = 0;
|
||||||
|
|
||||||
|
for (Player playerentity : level.getEntitiesOfClass(Player.class, new AABB(getPos()).inflate(8)))
|
||||||
|
if (menuClass.isInstance(playerentity.containerMenu)
|
||||||
|
&& menuClass.cast(playerentity.containerMenu).contentHolder == blockEntity)
|
||||||
|
openCount++;
|
||||||
|
|
||||||
|
if (prevOpenCount != openCount) {
|
||||||
|
if (openChanged != null && prevOpenCount == 0 && openCount > 0)
|
||||||
|
openChanged.accept(true);
|
||||||
|
if (openChanged != null && prevOpenCount > 0 && openCount == 0)
|
||||||
|
openChanged.accept(false);
|
||||||
|
blockEntity.sendData();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public void startOpen(Player player) {
|
||||||
|
if (player.isSpectator())
|
||||||
|
return;
|
||||||
|
if (getWorld().isClientSide)
|
||||||
|
return;
|
||||||
|
if (openCount < 0)
|
||||||
|
openCount = 0;
|
||||||
|
openCount++;
|
||||||
|
if (openCount == 1 && openChanged != null)
|
||||||
|
openChanged.accept(true);
|
||||||
|
blockEntity.sendData();
|
||||||
|
}
|
||||||
|
|
||||||
|
public void stopOpen(Player player) {
|
||||||
|
if (player.isSpectator())
|
||||||
|
return;
|
||||||
|
if (getWorld().isClientSide)
|
||||||
|
return;
|
||||||
|
openCount--;
|
||||||
|
if (openCount == 0 && openChanged != null)
|
||||||
|
openChanged.accept(false);
|
||||||
|
blockEntity.sendData();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public BehaviourType<?> getType() {
|
||||||
|
return TYPE;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
|
@ -2,6 +2,7 @@ package com.simibubi.create.foundation.data.recipe;
|
||||||
|
|
||||||
import java.util.function.Supplier;
|
import java.util.function.Supplier;
|
||||||
|
|
||||||
|
import com.simibubi.create.AllBlocks;
|
||||||
import com.simibubi.create.AllRecipeTypes;
|
import com.simibubi.create.AllRecipeTypes;
|
||||||
import com.simibubi.create.AllTags.AllItemTags;
|
import com.simibubi.create.AllTags.AllItemTags;
|
||||||
|
|
||||||
|
@ -10,9 +11,15 @@ import net.minecraft.tags.TagKey;
|
||||||
import net.minecraft.world.item.Item;
|
import net.minecraft.world.item.Item;
|
||||||
import net.minecraft.world.item.crafting.Ingredient;
|
import net.minecraft.world.item.crafting.Ingredient;
|
||||||
import net.minecraft.world.level.ItemLike;
|
import net.minecraft.world.level.ItemLike;
|
||||||
|
import net.minecraftforge.common.Tags.Items;
|
||||||
|
|
||||||
public class ItemApplicationRecipeGen extends ProcessingRecipeGen {
|
public class ItemApplicationRecipeGen extends ProcessingRecipeGen {
|
||||||
|
|
||||||
|
GeneratedRecipe BOUND_CARDBOARD_BLOCK = create("bound_cardboard_inworld",
|
||||||
|
b -> b.require(AllBlocks.CARDBOARD_BLOCK.asItem())
|
||||||
|
.require(Items.STRING)
|
||||||
|
.output(AllBlocks.BOUND_CARDBOARD_BLOCK.asStack()));
|
||||||
|
|
||||||
GeneratedRecipe ANDESITE = woodCasing("andesite", I::andesiteAlloy, I::andesiteCasing);
|
GeneratedRecipe ANDESITE = woodCasing("andesite", I::andesiteAlloy, I::andesiteCasing);
|
||||||
GeneratedRecipe COPPER = woodCasingTag("copper", I::copper, I::copperCasing);
|
GeneratedRecipe COPPER = woodCasingTag("copper", I::copper, I::copperCasing);
|
||||||
GeneratedRecipe BRASS = woodCasingTag("brass", I::brass, I::brassCasing);
|
GeneratedRecipe BRASS = woodCasingTag("brass", I::brass, I::brassCasing);
|
||||||
|
|
|
@ -121,13 +121,10 @@ public class StandardRecipeGen extends CreateRecipeProvider {
|
||||||
.pattern("CC")
|
.pattern("CC")
|
||||||
.pattern("CC")),
|
.pattern("CC")),
|
||||||
|
|
||||||
BOUND_CARDBOARD_BLOCK = create(AllBlocks.BOUND_CARDBOARD_BLOCK).returns(8)
|
BOUND_CARDBOARD_BLOCK = create(AllBlocks.BOUND_CARDBOARD_BLOCK).returns(1)
|
||||||
.unlockedBy(I::cardboard)
|
.unlockedBy(I::cardboard)
|
||||||
.viaShaped(b -> b.define('C', AllBlocks.CARDBOARD_BLOCK.get())
|
.viaShapeless(b -> b.requires(AllBlocks.CARDBOARD_BLOCK.get())
|
||||||
.define('S', Tags.Items.STRING)
|
.requires(Items.STRING)),
|
||||||
.pattern("CCC")
|
|
||||||
.pattern("CSC")
|
|
||||||
.pattern("CCC")),
|
|
||||||
|
|
||||||
CARDBOARD_FROM_BLOCK = create(AllItems.CARDBOARD).withSuffix("_from_block")
|
CARDBOARD_FROM_BLOCK = create(AllItems.CARDBOARD).withSuffix("_from_block")
|
||||||
.returns(4)
|
.returns(4)
|
||||||
|
|
|
@ -99,11 +99,14 @@ public class InputEvents {
|
||||||
LinkedControllerClientHandler.deactivateInLectern();
|
LinkedControllerClientHandler.deactivateInLectern();
|
||||||
TrainRelocator.onClicked(event);
|
TrainRelocator.onClicked(event);
|
||||||
|
|
||||||
if (ChainConveyorInteractionHandler.onUse())
|
if (ChainConveyorInteractionHandler.onUse()) {
|
||||||
event.setCanceled(true);
|
event.setCanceled(true);
|
||||||
else if (PackagePortTargetSelectionHandler.onUse())
|
return;
|
||||||
|
} else if (PackagePortTargetSelectionHandler.onUse()) {
|
||||||
event.setCanceled(true);
|
event.setCanceled(true);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
DistExecutor.unsafeRunWhenOn(Dist.CLIENT, () -> () -> {
|
DistExecutor.unsafeRunWhenOn(Dist.CLIENT, () -> () -> {
|
||||||
if (ChainPackageInteractionHandler.onUse())
|
if (ChainPackageInteractionHandler.onUse())
|
||||||
event.setCanceled(true);
|
event.setCanceled(true);
|
||||||
|
|
|
@ -333,8 +333,10 @@
|
||||||
|
|
||||||
"create.clipboard.actions": "Clipboard Actions",
|
"create.clipboard.actions": "Clipboard Actions",
|
||||||
"create.clipboard.to_copy": "%1$s to Copy settings",
|
"create.clipboard.to_copy": "%1$s to Copy settings",
|
||||||
|
"create.clipboard.copy_other_clipboard": "%1$s to Copy entries from this Clipboard",
|
||||||
"create.clipboard.to_paste": "%1$s to Paste settings",
|
"create.clipboard.to_paste": "%1$s to Paste settings",
|
||||||
"create.clipboard.copied_from": "Copying settings from %1$s",
|
"create.clipboard.copied_from": "Copying settings from %1$s",
|
||||||
|
"create.clipboard.copied_from_clipboard": "Added entries from Clipboard",
|
||||||
"create.clipboard.pasted_to": "Applied settings to %1$s",
|
"create.clipboard.pasted_to": "Applied settings to %1$s",
|
||||||
|
|
||||||
"create.schematicAndQuill.dimensions": "Schematic Size: %1$sx%2$sx%3$s",
|
"create.schematicAndQuill.dimensions": "Schematic Size: %1$sx%2$sx%3$s",
|
||||||
|
|
|
@ -6,6 +6,28 @@
|
||||||
"particle": "create:block/ladder_andesite"
|
"particle": "create:block/ladder_andesite"
|
||||||
},
|
},
|
||||||
"elements": [
|
"elements": [
|
||||||
|
{
|
||||||
|
"name": "hoop_right",
|
||||||
|
"from": [2, 16, 14],
|
||||||
|
"to": [4, 18, 18],
|
||||||
|
"rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 8]},
|
||||||
|
"faces": {
|
||||||
|
"north": {"uv": [14, 4, 16, 6], "texture": "#0", "cullface": "up"},
|
||||||
|
"south": {"uv": [16, 4, 14, 6], "texture": "#0", "cullface": "up"},
|
||||||
|
"up": {"uv": [14, 0, 16, 4], "rotation": 180, "texture": "#0", "cullface": "up"}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "hoop_right_backface",
|
||||||
|
"from": [2, 18, 14],
|
||||||
|
"to": [4, 16, 18],
|
||||||
|
"rotation": {"angle": 0, "axis": "y", "origin": [13, 19, 16]},
|
||||||
|
"faces": {
|
||||||
|
"north": {"uv": [16, 4, 14, 6], "rotation": 180, "texture": "#0", "cullface": "up"},
|
||||||
|
"south": {"uv": [14, 4, 16, 6], "rotation": 180, "texture": "#0", "cullface": "up"},
|
||||||
|
"down": {"uv": [14, 0, 16, 4], "rotation": 180, "texture": "#0", "cullface": "up"}
|
||||||
|
}
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"name": "ladder",
|
"name": "ladder",
|
||||||
"from": [2, 0, 14],
|
"from": [2, 0, 14],
|
||||||
|
@ -13,8 +35,8 @@
|
||||||
"shade": false,
|
"shade": false,
|
||||||
"rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 8]},
|
"rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 8]},
|
||||||
"faces": {
|
"faces": {
|
||||||
"east": {"uv": [12, 0, 14, 16], "texture": "#0"},
|
"east": {"uv": [12, 0, 14, 16], "texture": "#0", "cullface": "south"},
|
||||||
"west": {"uv": [14, 0, 12, 16], "texture": "#0"}
|
"west": {"uv": [14, 0, 12, 16], "texture": "#0", "cullface": "south"}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
@ -33,8 +55,8 @@
|
||||||
"shade": false,
|
"shade": false,
|
||||||
"rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 8]},
|
"rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 8]},
|
||||||
"faces": {
|
"faces": {
|
||||||
"east": {"uv": [14, 0, 12, 16], "texture": "#0"},
|
"east": {"uv": [14, 0, 12, 16], "texture": "#0", "cullface": "south"},
|
||||||
"west": {"uv": [12, 0, 14, 16], "texture": "#0"}
|
"west": {"uv": [12, 0, 14, 16], "texture": "#0", "cullface": "south"}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
@ -67,42 +89,22 @@
|
||||||
"south": {"uv": [14, 4, 16, 6], "rotation": 180, "texture": "#0", "cullface": "up"},
|
"south": {"uv": [14, 4, 16, 6], "rotation": 180, "texture": "#0", "cullface": "up"},
|
||||||
"down": {"uv": [14, 0, 16, 4], "rotation": 180, "texture": "#0", "cullface": "up"}
|
"down": {"uv": [14, 0, 16, 4], "rotation": 180, "texture": "#0", "cullface": "up"}
|
||||||
}
|
}
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "hoop_right",
|
|
||||||
"from": [2, 16, 14],
|
|
||||||
"to": [4, 18, 18],
|
|
||||||
"rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 8]},
|
|
||||||
"faces": {
|
|
||||||
"north": {"uv": [14, 4, 16, 6], "texture": "#0", "cullface": "up"},
|
|
||||||
"south": {"uv": [16, 4, 14, 6], "texture": "#0", "cullface": "up"},
|
|
||||||
"up": {"uv": [14, 0, 16, 4], "rotation": 180, "texture": "#0", "cullface": "up"}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "hoop_right_backface",
|
|
||||||
"from": [2, 18, 14],
|
|
||||||
"to": [4, 16, 18],
|
|
||||||
"rotation": {"angle": 0, "axis": "y", "origin": [13, 19, 16]},
|
|
||||||
"faces": {
|
|
||||||
"north": {"uv": [16, 4, 14, 6], "rotation": 180, "texture": "#0", "cullface": "up"},
|
|
||||||
"south": {"uv": [14, 4, 16, 6], "rotation": 180, "texture": "#0", "cullface": "up"},
|
|
||||||
"down": {"uv": [14, 0, 16, 4], "rotation": 180, "texture": "#0", "cullface": "up"}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"groups": [
|
"groups": [
|
||||||
|
0,
|
||||||
|
1,
|
||||||
{
|
{
|
||||||
"name": "Ladder",
|
"name": "Ladder",
|
||||||
"origin": [0, 0, 0],
|
"origin": [0, 0, 0],
|
||||||
"color": 0,
|
"color": 0,
|
||||||
"children": [0, 1]
|
"children": [2, 3]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "Hoops",
|
"name": "Hoops",
|
||||||
"origin": [0, 0, 0],
|
"origin": [0, 0, 0],
|
||||||
"color": 0,
|
"color": 0,
|
||||||
"children": [2, 3, 4, 5]
|
"children": [4, 5, 6, 7]
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
|
@ -4,7 +4,7 @@
|
||||||
"textures": {
|
"textures": {
|
||||||
"0": "create:block/post_box/post_box_white",
|
"0": "create:block/post_box/post_box_white",
|
||||||
"1": "create:block/post_box/post_box_white_closed",
|
"1": "create:block/post_box/post_box_white_closed",
|
||||||
"particle": "create:block/post_box/post_box_white"
|
"particle": "#0"
|
||||||
},
|
},
|
||||||
"elements": [
|
"elements": [
|
||||||
{
|
{
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
{
|
{
|
||||||
"parent": "create:block/package_postbox/block_open",
|
"parent": "create:block/package_postbox/block_closed",
|
||||||
"textures": {
|
"textures": {
|
||||||
"1": "create:block/post_box/post_box_white_open"
|
"1": "create:block/post_box/post_box_white_open"
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Reference in a new issue