diff --git a/src/generated/resources/.cache/2d64935085b86659cb7857bad9701dbf9bab6e4c b/src/generated/resources/.cache/2d64935085b86659cb7857bad9701dbf9bab6e4c index 660d2db89d..d4179532f7 100644 --- a/src/generated/resources/.cache/2d64935085b86659cb7857bad9701dbf9bab6e4c +++ b/src/generated/resources/.cache/2d64935085b86659cb7857bad9701dbf9bab6e4c @@ -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 6a67703c2697d81b7dc83e9d72a66f9c9ff08383 assets/create/blockstates/acacia_window_pane.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 396e4772b041319fc86b50deded74f514945f45d assets/create/blockstates/black_display_cloth.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 da3ad0225984a0dcbfb4ed800e307e45aff5aaa1 assets/create/blockstates/black_seat.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 88793493e0a7e0713b5ea9f3bbb88395d690b873 assets/create/blockstates/blue_display_cloth.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 d2fdb432bb037de781260c789e905b223fab408c assets/create/blockstates/blue_seat.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 158c380605f071c89b9de21f2b2737449a72aac3 assets/create/blockstates/brown_display_cloth.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 19524b2c0672632e63372f405a87dbea35f1d160 assets/create/blockstates/brown_seat.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 d6d25beb53a4393839eeb94472c8feb4c80bac6d assets/create/blockstates/cyan_display_cloth.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 538c6d95da5cc460e99c91647dac61726a91479f assets/create/blockstates/cyan_seat.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 f4e76daf384e628b76890b72775302d65f651176 assets/create/blockstates/gray_display_cloth.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 f35a502c4a5e2703e7c6811b3d2ba16a9c47d4c8 assets/create/blockstates/gray_seat.json 87457e0eddae80225dbb3145f2d120296ea1bfcd assets/create/blockstates/gray_toolbox.json f18b87db39836eef20154b239d488eebb64b3455 assets/create/blockstates/gray_valve_handle.json 7d441d117efce42a787c86355fc69dbd052b5db0 assets/create/blockstates/green_display_cloth.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 b4aede1847d204ecdb7847559066d9d2ffb66903 assets/create/blockstates/green_seat.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 2c52c5dff36461c2af7dabce69452fcb3fc13640 assets/create/blockstates/light_blue_display_cloth.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 6b7045eaf9efe3a90f2d9a6785be6a5fd534b8e7 assets/create/blockstates/light_blue_seat.json b7065e7871c3c7f1a0656c2f92f82544e606f2fb assets/create/blockstates/light_blue_toolbox.json 549882a0f4de60906ca870a6197330f81d4e1afe assets/create/blockstates/light_blue_valve_handle.json 643092c9caa8e586833d9e7fdab7cb059810fb0a assets/create/blockstates/light_gray_display_cloth.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 8ec5144da4a49dd5b497af07b0d4b88c9c0b6cc0 assets/create/blockstates/light_gray_seat.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 34d900ed4c9922b82e39b2ee84d24eaffc7017ab assets/create/blockstates/lime_display_cloth.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 b9934a558e1b495403dc2c71ffb43cce7d396013 assets/create/blockstates/lime_seat.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 66775372786ece9b6300b335cf6acbdd2aa91147 assets/create/blockstates/magenta_display_cloth.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 bb1ab5c70647933400b3a99ef9d166ba5e3d4709 assets/create/blockstates/magenta_seat.json fcd226c7863262d98765c701538bf9e44d2b177e assets/create/blockstates/magenta_toolbox.json @@ -370,7 +370,7 @@ ba9c3ecfacbd398048440d247decffeaefc714b5 assets/create/blockstates/mysterious_cu df91d0ca68934c1afd9858a8d1591dd4cb88df65 assets/create/blockstates/ochrum.json 09c9bee3d26edc4b87cb7a5042f125c439ee5956 assets/create/blockstates/ochrum_pillar.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 aab812cecf7d10d4e7587f4dead8a98238a15f41 assets/create/blockstates/orange_seat.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 c4de02184f63ed2e7c98cfa5bb30f8c0da10a425 assets/create/blockstates/pink_display_cloth.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 8d5c80d5dc561240dfe8d7f212ffc33ac4e0fcd8 assets/create/blockstates/pink_seat.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 285ff4a4289c3c62a7837639130033922127089d assets/create/blockstates/purple_display_cloth.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 91b5ab66d7ec5235d278ee2bed6ddd88f39ce81d assets/create/blockstates/purple_seat.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 d8446bc66d6d7da6d3533c961220d3180e4e4c0b assets/create/blockstates/red_display_cloth.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 145f4e9ffaeff9be180e6c4e4989f2cf44cf0686 assets/create/blockstates/red_seat.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 1c8b590923b1d78f5ae34ef0d8ba487884b696b3 assets/create/blockstates/white_display_cloth.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 317a6463db64b66d215d25b65ab52fe7f26ba9f8 assets/create/blockstates/white_seat.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 1ae2558e739350632a0c2f1a93aea5f832b54d62 assets/create/blockstates/yellow_display_cloth.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 4face2dd50a30bda0b21742319e701e666d51f8c assets/create/blockstates/yellow_seat.json b0d8f08968763a5f74e5cd5644377a76a9f39753 assets/create/blockstates/yellow_toolbox.json fe8c497aacc641c2f01cec90bba9f19e59cc2ed2 assets/create/blockstates/yellow_valve_handle.json e819e93fdcbe9fd9c050a052d2718ff3b3539365 assets/create/blockstates/zinc_block.json 64121dcb216381c83b4fe28aa361ea07c24c9ad0 assets/create/blockstates/zinc_ore.json -c3de6ad9aa8e75977b93d59a36b2fa2e1e4e9445 assets/create/lang/en_ud.json -3cf9afee452951897c1ca572e5f7c3362f897db3 assets/create/lang/en_us.json +d5bb760251e65801c7d8d4c7c99149dfc644ae26 assets/create/lang/en_ud.json +71537c153c046d7ac132c20ed36db50daf6e7284 assets/create/lang/en_us.json a97e1060e00ae701a02e39cd4ef8054cf345fac4 assets/create/models/block/acacia_window.json 103e032c0b1a0a6a27c67da8c91179a564bd281c assets/create/models/block/acacia_window_pane_noside.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 b8f853e8289d735f9a2a8b43785fa0995ac99112 assets/create/models/block/black_display_cloth.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 443ed49b053fdd7356cd56f0495e18f2570d57d9 assets/create/models/block/black_seat.json f48989d377de8e5067e807adf7e38da781e37ed9 assets/create/models/block/black_toolbox.json 8715787d72c3ef47c5651abcd819539bad6a96f7 assets/create/models/block/black_valve_handle.json e0eebf58af7ce6789dd3908f216e81e363fcdea6 assets/create/models/block/blue_display_cloth.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 96431b1f3a531ce89f876c9286b81838aec9b6d3 assets/create/models/block/blue_seat.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 5996b728460cf24e25890d977cdca49d2927465a assets/create/models/block/brown_display_cloth.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 0616de192825246e6036d1f69911170438a83b81 assets/create/models/block/brown_seat.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 983788579d7ec61b805d1057b81a18282af38365 assets/create/models/block/cyan_display_cloth.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 01a324a92552076589e2aaaeca9d4da2d1e3b39d assets/create/models/block/cyan_seat.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 ca01316f75239f08d7da81615779f8eb002de88f assets/create/models/block/gray_display_cloth.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 58b51da5c80e4f43582452d97453c93145a516ad assets/create/models/block/gray_seat.json cd3cff8e38d559dcb78df014556a78d5a538af43 assets/create/models/block/gray_toolbox.json 3ee19f46bdeb0ac7489dcd4d51f90ab01ad863c9 assets/create/models/block/gray_valve_handle.json 71fae019670515f2c5bf7bd1f7930d76b6ff3e15 assets/create/models/block/green_display_cloth.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 ae51eaa500dd036fa27474a7392f381afb677dfd assets/create/models/block/green_seat.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 f479a8a6964c52fc3b072ca3170d5b478f62842a assets/create/models/block/light_blue_display_cloth.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 ba917560f40a4e46ef190649f18adad9962c5c02 assets/create/models/block/light_blue_seat.json c20616aa90feab3003cecb4a5be5466c0fc83072 assets/create/models/block/light_blue_toolbox.json bcd3d28b8a062649301648ea5e2d0463f93d008d assets/create/models/block/light_blue_valve_handle.json 8de84b9d3eb33403de699c5c5c4093e32b1685f9 assets/create/models/block/light_gray_display_cloth.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 d1813d0f548fcddb361df7cc3b5d97582842b10f assets/create/models/block/light_gray_seat.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 023f2538cd860e3ade165390eab9e4fe32847402 assets/create/models/block/lime_display_cloth.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 09e7bf50cf88c449dbd9e77829cdb5afffb7d88d assets/create/models/block/lime_seat.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 e23d016fe71681e6b13fece5d14d95da5fb45fbb assets/create/models/block/magenta_display_cloth.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 b5cd13b021400b3c37499ec4ef22e560c721ac54 assets/create/models/block/magenta_seat.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 c8dd33a0b71dce37712788a61729de89574b117f assets/create/models/block/ochrum_pillar_horizontal.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 6c4addc75fb03911fca3083f891b22f55209b8db assets/create/models/block/orange_seat.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 266d126aa95d03fc274d838986fc1f53519f4e10 assets/create/models/block/pink_display_cloth.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 888dba067e751a55205dbd919db8e92ef2be604d assets/create/models/block/pink_seat.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 7688c890be93afa905bd869ef0bcdc603bce9a78 assets/create/models/block/purple_display_cloth.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 bc8e473a5662b6180b00b85e5006241a283c9baa assets/create/models/block/purple_seat.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 832899421073c18da17bf6919c97e2f3cf9a6b77 assets/create/models/block/red_display_cloth.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 bf3f4ba33e1a61254073ecee3e753958f8debb35 assets/create/models/block/red_seat.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 15316edd1babb61b1458cf81feaf2c3e135122b6 assets/create/models/block/white_display_cloth.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 f252f8c68702a0c050797a2dc2a51c586408722d assets/create/models/block/white_toolbox.json c9e344a06ee8bca1bfddd70481198135cabafbce assets/create/models/block/white_valve_handle.json 68d8eddfb724c73938862fb1a213a99c95814fdb assets/create/models/block/windmill_bearing.json 6c063bc2ef06940af3a1d3d0f1546030bdaef672 assets/create/models/block/yellow_display_cloth.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 07b68f0e4c617dfe3e935a1b9e8e020ab3131c0b assets/create/models/block/yellow_seat.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 9d22716d9d846dc9587e327dfcdf18dd5955f826 data/create/loot_tables/blocks/blue_toolbox.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 64a5869c6b3edeca06771f8ef64ef9521d83302a data/create/loot_tables/blocks/brass_belt_funnel.json 78ecee2c9baf6b0c78f6c7aa692e102a3f4dda74 data/create/loot_tables/blocks/brass_block.json diff --git a/src/generated/resources/.cache/82992cbf8f2794d83ac94034835eac0acd7915b9 b/src/generated/resources/.cache/82992cbf8f2794d83ac94034835eac0acd7915b9 index 9561427a32..395042fc01 100644 --- a/src/generated/resources/.cache/82992cbf8f2794d83ac94034835eac0acd7915b9 +++ b/src/generated/resources/.cache/82992cbf8f2794d83ac94034835eac0acd7915b9 @@ -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 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 @@ -454,7 +454,7 @@ ac524c110f66a7433208a888c5f3bb69e5e95743 data/create/recipes/crafting/materials/ e6bb68a1d2ed5a629c83f5a0eefb843bb890736d data/create/recipes/crafting/materials/andesite_alloy_block.json eebacb477bcce876622173289b06e1ad21424686 data/create/recipes/crafting/materials/andesite_alloy_from_block.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 ecd8581ad4a04cc1217133363bd15d76129cb651 data/create/recipes/crafting/materials/brass_ingot_from_compacting.json fe2f3c0722aa0f6b41ad0f497b9742eb856c0dd0 data/create/recipes/crafting/materials/brass_ingot_from_decompacting.json diff --git a/src/generated/resources/.cache/b256105d8411632b0d585496ea8944a751a08034 b/src/generated/resources/.cache/b256105d8411632b0d585496ea8944a751a08034 index ebcc73eea7..a6e4275848 100644 --- a/src/generated/resources/.cache/b256105d8411632b0d585496ea8944a751a08034 +++ b/src/generated/resources/.cache/b256105d8411632b0d585496ea8944a751a08034 @@ -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 8d3d5b31f3601b9f681ff710e0545a483a1494c6 data/create/recipes/compacting/blaze_cake.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 409c94b597bc0e35cce51282428fc02b919bb55e data/create/recipes/item_application/andesite_casing_from_log.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 df1d95a4e41fb01d0ac240f89dcf734e00d92853 data/create/recipes/item_application/brass_casing_from_wood.json a9e164ba47552af7df82f011080d981420388bc6 data/create/recipes/item_application/copper_casing_from_log.json diff --git a/src/generated/resources/assets/create/blockstates/black_postbox.json b/src/generated/resources/assets/create/blockstates/black_postbox.json index 55f5338a0b..f5654df01e 100644 --- a/src/generated/resources/assets/create/blockstates/black_postbox.json +++ b/src/generated/resources/assets/create/blockstates/black_postbox.json @@ -1,33 +1,33 @@ { "variants": { "facing=east,open=false": { - "model": "create:block/black_postbox", + "model": "create:block/black_postbox_closed", "y": 90 }, "facing=east,open=true": { - "model": "create:block/black_postbox", + "model": "create:block/black_postbox_open", "y": 90 }, "facing=north,open=false": { - "model": "create:block/black_postbox" + "model": "create:block/black_postbox_closed" }, "facing=north,open=true": { - "model": "create:block/black_postbox" + "model": "create:block/black_postbox_open" }, "facing=south,open=false": { - "model": "create:block/black_postbox", + "model": "create:block/black_postbox_closed", "y": 180 }, "facing=south,open=true": { - "model": "create:block/black_postbox", + "model": "create:block/black_postbox_open", "y": 180 }, "facing=west,open=false": { - "model": "create:block/black_postbox", + "model": "create:block/black_postbox_closed", "y": 270 }, "facing=west,open=true": { - "model": "create:block/black_postbox", + "model": "create:block/black_postbox_open", "y": 270 } } diff --git a/src/generated/resources/assets/create/blockstates/blue_postbox.json b/src/generated/resources/assets/create/blockstates/blue_postbox.json index a33c5e87a5..ab1d61e9ed 100644 --- a/src/generated/resources/assets/create/blockstates/blue_postbox.json +++ b/src/generated/resources/assets/create/blockstates/blue_postbox.json @@ -1,33 +1,33 @@ { "variants": { "facing=east,open=false": { - "model": "create:block/blue_postbox", + "model": "create:block/blue_postbox_closed", "y": 90 }, "facing=east,open=true": { - "model": "create:block/blue_postbox", + "model": "create:block/blue_postbox_open", "y": 90 }, "facing=north,open=false": { - "model": "create:block/blue_postbox" + "model": "create:block/blue_postbox_closed" }, "facing=north,open=true": { - "model": "create:block/blue_postbox" + "model": "create:block/blue_postbox_open" }, "facing=south,open=false": { - "model": "create:block/blue_postbox", + "model": "create:block/blue_postbox_closed", "y": 180 }, "facing=south,open=true": { - "model": "create:block/blue_postbox", + "model": "create:block/blue_postbox_open", "y": 180 }, "facing=west,open=false": { - "model": "create:block/blue_postbox", + "model": "create:block/blue_postbox_closed", "y": 270 }, "facing=west,open=true": { - "model": "create:block/blue_postbox", + "model": "create:block/blue_postbox_open", "y": 270 } } diff --git a/src/generated/resources/assets/create/blockstates/brown_postbox.json b/src/generated/resources/assets/create/blockstates/brown_postbox.json index ad38686dbb..77f3075357 100644 --- a/src/generated/resources/assets/create/blockstates/brown_postbox.json +++ b/src/generated/resources/assets/create/blockstates/brown_postbox.json @@ -1,33 +1,33 @@ { "variants": { "facing=east,open=false": { - "model": "create:block/brown_postbox", + "model": "create:block/brown_postbox_closed", "y": 90 }, "facing=east,open=true": { - "model": "create:block/brown_postbox", + "model": "create:block/brown_postbox_open", "y": 90 }, "facing=north,open=false": { - "model": "create:block/brown_postbox" + "model": "create:block/brown_postbox_closed" }, "facing=north,open=true": { - "model": "create:block/brown_postbox" + "model": "create:block/brown_postbox_open" }, "facing=south,open=false": { - "model": "create:block/brown_postbox", + "model": "create:block/brown_postbox_closed", "y": 180 }, "facing=south,open=true": { - "model": "create:block/brown_postbox", + "model": "create:block/brown_postbox_open", "y": 180 }, "facing=west,open=false": { - "model": "create:block/brown_postbox", + "model": "create:block/brown_postbox_closed", "y": 270 }, "facing=west,open=true": { - "model": "create:block/brown_postbox", + "model": "create:block/brown_postbox_open", "y": 270 } } diff --git a/src/generated/resources/assets/create/blockstates/cyan_postbox.json b/src/generated/resources/assets/create/blockstates/cyan_postbox.json index 3cffa0f9c2..0dab80b26c 100644 --- a/src/generated/resources/assets/create/blockstates/cyan_postbox.json +++ b/src/generated/resources/assets/create/blockstates/cyan_postbox.json @@ -1,33 +1,33 @@ { "variants": { "facing=east,open=false": { - "model": "create:block/cyan_postbox", + "model": "create:block/cyan_postbox_closed", "y": 90 }, "facing=east,open=true": { - "model": "create:block/cyan_postbox", + "model": "create:block/cyan_postbox_open", "y": 90 }, "facing=north,open=false": { - "model": "create:block/cyan_postbox" + "model": "create:block/cyan_postbox_closed" }, "facing=north,open=true": { - "model": "create:block/cyan_postbox" + "model": "create:block/cyan_postbox_open" }, "facing=south,open=false": { - "model": "create:block/cyan_postbox", + "model": "create:block/cyan_postbox_closed", "y": 180 }, "facing=south,open=true": { - "model": "create:block/cyan_postbox", + "model": "create:block/cyan_postbox_open", "y": 180 }, "facing=west,open=false": { - "model": "create:block/cyan_postbox", + "model": "create:block/cyan_postbox_closed", "y": 270 }, "facing=west,open=true": { - "model": "create:block/cyan_postbox", + "model": "create:block/cyan_postbox_open", "y": 270 } } diff --git a/src/generated/resources/assets/create/blockstates/gray_postbox.json b/src/generated/resources/assets/create/blockstates/gray_postbox.json index d072c5fd06..c4b241be33 100644 --- a/src/generated/resources/assets/create/blockstates/gray_postbox.json +++ b/src/generated/resources/assets/create/blockstates/gray_postbox.json @@ -1,33 +1,33 @@ { "variants": { "facing=east,open=false": { - "model": "create:block/gray_postbox", + "model": "create:block/gray_postbox_closed", "y": 90 }, "facing=east,open=true": { - "model": "create:block/gray_postbox", + "model": "create:block/gray_postbox_open", "y": 90 }, "facing=north,open=false": { - "model": "create:block/gray_postbox" + "model": "create:block/gray_postbox_closed" }, "facing=north,open=true": { - "model": "create:block/gray_postbox" + "model": "create:block/gray_postbox_open" }, "facing=south,open=false": { - "model": "create:block/gray_postbox", + "model": "create:block/gray_postbox_closed", "y": 180 }, "facing=south,open=true": { - "model": "create:block/gray_postbox", + "model": "create:block/gray_postbox_open", "y": 180 }, "facing=west,open=false": { - "model": "create:block/gray_postbox", + "model": "create:block/gray_postbox_closed", "y": 270 }, "facing=west,open=true": { - "model": "create:block/gray_postbox", + "model": "create:block/gray_postbox_open", "y": 270 } } diff --git a/src/generated/resources/assets/create/blockstates/green_postbox.json b/src/generated/resources/assets/create/blockstates/green_postbox.json index 1f7dc4cf28..127f9c2e90 100644 --- a/src/generated/resources/assets/create/blockstates/green_postbox.json +++ b/src/generated/resources/assets/create/blockstates/green_postbox.json @@ -1,33 +1,33 @@ { "variants": { "facing=east,open=false": { - "model": "create:block/green_postbox", + "model": "create:block/green_postbox_closed", "y": 90 }, "facing=east,open=true": { - "model": "create:block/green_postbox", + "model": "create:block/green_postbox_open", "y": 90 }, "facing=north,open=false": { - "model": "create:block/green_postbox" + "model": "create:block/green_postbox_closed" }, "facing=north,open=true": { - "model": "create:block/green_postbox" + "model": "create:block/green_postbox_open" }, "facing=south,open=false": { - "model": "create:block/green_postbox", + "model": "create:block/green_postbox_closed", "y": 180 }, "facing=south,open=true": { - "model": "create:block/green_postbox", + "model": "create:block/green_postbox_open", "y": 180 }, "facing=west,open=false": { - "model": "create:block/green_postbox", + "model": "create:block/green_postbox_closed", "y": 270 }, "facing=west,open=true": { - "model": "create:block/green_postbox", + "model": "create:block/green_postbox_open", "y": 270 } } diff --git a/src/generated/resources/assets/create/blockstates/light_blue_postbox.json b/src/generated/resources/assets/create/blockstates/light_blue_postbox.json index 2032c913e9..1e42fef094 100644 --- a/src/generated/resources/assets/create/blockstates/light_blue_postbox.json +++ b/src/generated/resources/assets/create/blockstates/light_blue_postbox.json @@ -1,33 +1,33 @@ { "variants": { "facing=east,open=false": { - "model": "create:block/light_blue_postbox", + "model": "create:block/light_blue_postbox_closed", "y": 90 }, "facing=east,open=true": { - "model": "create:block/light_blue_postbox", + "model": "create:block/light_blue_postbox_open", "y": 90 }, "facing=north,open=false": { - "model": "create:block/light_blue_postbox" + "model": "create:block/light_blue_postbox_closed" }, "facing=north,open=true": { - "model": "create:block/light_blue_postbox" + "model": "create:block/light_blue_postbox_open" }, "facing=south,open=false": { - "model": "create:block/light_blue_postbox", + "model": "create:block/light_blue_postbox_closed", "y": 180 }, "facing=south,open=true": { - "model": "create:block/light_blue_postbox", + "model": "create:block/light_blue_postbox_open", "y": 180 }, "facing=west,open=false": { - "model": "create:block/light_blue_postbox", + "model": "create:block/light_blue_postbox_closed", "y": 270 }, "facing=west,open=true": { - "model": "create:block/light_blue_postbox", + "model": "create:block/light_blue_postbox_open", "y": 270 } } diff --git a/src/generated/resources/assets/create/blockstates/light_gray_postbox.json b/src/generated/resources/assets/create/blockstates/light_gray_postbox.json index 8718ed56cf..3561ff37c9 100644 --- a/src/generated/resources/assets/create/blockstates/light_gray_postbox.json +++ b/src/generated/resources/assets/create/blockstates/light_gray_postbox.json @@ -1,33 +1,33 @@ { "variants": { "facing=east,open=false": { - "model": "create:block/light_gray_postbox", + "model": "create:block/light_gray_postbox_closed", "y": 90 }, "facing=east,open=true": { - "model": "create:block/light_gray_postbox", + "model": "create:block/light_gray_postbox_open", "y": 90 }, "facing=north,open=false": { - "model": "create:block/light_gray_postbox" + "model": "create:block/light_gray_postbox_closed" }, "facing=north,open=true": { - "model": "create:block/light_gray_postbox" + "model": "create:block/light_gray_postbox_open" }, "facing=south,open=false": { - "model": "create:block/light_gray_postbox", + "model": "create:block/light_gray_postbox_closed", "y": 180 }, "facing=south,open=true": { - "model": "create:block/light_gray_postbox", + "model": "create:block/light_gray_postbox_open", "y": 180 }, "facing=west,open=false": { - "model": "create:block/light_gray_postbox", + "model": "create:block/light_gray_postbox_closed", "y": 270 }, "facing=west,open=true": { - "model": "create:block/light_gray_postbox", + "model": "create:block/light_gray_postbox_open", "y": 270 } } diff --git a/src/generated/resources/assets/create/blockstates/lime_postbox.json b/src/generated/resources/assets/create/blockstates/lime_postbox.json index f7dc692eb0..b60e715c60 100644 --- a/src/generated/resources/assets/create/blockstates/lime_postbox.json +++ b/src/generated/resources/assets/create/blockstates/lime_postbox.json @@ -1,33 +1,33 @@ { "variants": { "facing=east,open=false": { - "model": "create:block/lime_postbox", + "model": "create:block/lime_postbox_closed", "y": 90 }, "facing=east,open=true": { - "model": "create:block/lime_postbox", + "model": "create:block/lime_postbox_open", "y": 90 }, "facing=north,open=false": { - "model": "create:block/lime_postbox" + "model": "create:block/lime_postbox_closed" }, "facing=north,open=true": { - "model": "create:block/lime_postbox" + "model": "create:block/lime_postbox_open" }, "facing=south,open=false": { - "model": "create:block/lime_postbox", + "model": "create:block/lime_postbox_closed", "y": 180 }, "facing=south,open=true": { - "model": "create:block/lime_postbox", + "model": "create:block/lime_postbox_open", "y": 180 }, "facing=west,open=false": { - "model": "create:block/lime_postbox", + "model": "create:block/lime_postbox_closed", "y": 270 }, "facing=west,open=true": { - "model": "create:block/lime_postbox", + "model": "create:block/lime_postbox_open", "y": 270 } } diff --git a/src/generated/resources/assets/create/blockstates/magenta_postbox.json b/src/generated/resources/assets/create/blockstates/magenta_postbox.json index d385e8276a..13b16c5cec 100644 --- a/src/generated/resources/assets/create/blockstates/magenta_postbox.json +++ b/src/generated/resources/assets/create/blockstates/magenta_postbox.json @@ -1,33 +1,33 @@ { "variants": { "facing=east,open=false": { - "model": "create:block/magenta_postbox", + "model": "create:block/magenta_postbox_closed", "y": 90 }, "facing=east,open=true": { - "model": "create:block/magenta_postbox", + "model": "create:block/magenta_postbox_open", "y": 90 }, "facing=north,open=false": { - "model": "create:block/magenta_postbox" + "model": "create:block/magenta_postbox_closed" }, "facing=north,open=true": { - "model": "create:block/magenta_postbox" + "model": "create:block/magenta_postbox_open" }, "facing=south,open=false": { - "model": "create:block/magenta_postbox", + "model": "create:block/magenta_postbox_closed", "y": 180 }, "facing=south,open=true": { - "model": "create:block/magenta_postbox", + "model": "create:block/magenta_postbox_open", "y": 180 }, "facing=west,open=false": { - "model": "create:block/magenta_postbox", + "model": "create:block/magenta_postbox_closed", "y": 270 }, "facing=west,open=true": { - "model": "create:block/magenta_postbox", + "model": "create:block/magenta_postbox_open", "y": 270 } } diff --git a/src/generated/resources/assets/create/blockstates/orange_postbox.json b/src/generated/resources/assets/create/blockstates/orange_postbox.json index 6a94bd86d7..fe6665e0dc 100644 --- a/src/generated/resources/assets/create/blockstates/orange_postbox.json +++ b/src/generated/resources/assets/create/blockstates/orange_postbox.json @@ -1,33 +1,33 @@ { "variants": { "facing=east,open=false": { - "model": "create:block/orange_postbox", + "model": "create:block/orange_postbox_closed", "y": 90 }, "facing=east,open=true": { - "model": "create:block/orange_postbox", + "model": "create:block/orange_postbox_open", "y": 90 }, "facing=north,open=false": { - "model": "create:block/orange_postbox" + "model": "create:block/orange_postbox_closed" }, "facing=north,open=true": { - "model": "create:block/orange_postbox" + "model": "create:block/orange_postbox_open" }, "facing=south,open=false": { - "model": "create:block/orange_postbox", + "model": "create:block/orange_postbox_closed", "y": 180 }, "facing=south,open=true": { - "model": "create:block/orange_postbox", + "model": "create:block/orange_postbox_open", "y": 180 }, "facing=west,open=false": { - "model": "create:block/orange_postbox", + "model": "create:block/orange_postbox_closed", "y": 270 }, "facing=west,open=true": { - "model": "create:block/orange_postbox", + "model": "create:block/orange_postbox_open", "y": 270 } } diff --git a/src/generated/resources/assets/create/blockstates/pink_postbox.json b/src/generated/resources/assets/create/blockstates/pink_postbox.json index daf6c2a355..ee0556c3dd 100644 --- a/src/generated/resources/assets/create/blockstates/pink_postbox.json +++ b/src/generated/resources/assets/create/blockstates/pink_postbox.json @@ -1,33 +1,33 @@ { "variants": { "facing=east,open=false": { - "model": "create:block/pink_postbox", + "model": "create:block/pink_postbox_closed", "y": 90 }, "facing=east,open=true": { - "model": "create:block/pink_postbox", + "model": "create:block/pink_postbox_open", "y": 90 }, "facing=north,open=false": { - "model": "create:block/pink_postbox" + "model": "create:block/pink_postbox_closed" }, "facing=north,open=true": { - "model": "create:block/pink_postbox" + "model": "create:block/pink_postbox_open" }, "facing=south,open=false": { - "model": "create:block/pink_postbox", + "model": "create:block/pink_postbox_closed", "y": 180 }, "facing=south,open=true": { - "model": "create:block/pink_postbox", + "model": "create:block/pink_postbox_open", "y": 180 }, "facing=west,open=false": { - "model": "create:block/pink_postbox", + "model": "create:block/pink_postbox_closed", "y": 270 }, "facing=west,open=true": { - "model": "create:block/pink_postbox", + "model": "create:block/pink_postbox_open", "y": 270 } } diff --git a/src/generated/resources/assets/create/blockstates/purple_postbox.json b/src/generated/resources/assets/create/blockstates/purple_postbox.json index 1d95d7201d..7f9542a5bf 100644 --- a/src/generated/resources/assets/create/blockstates/purple_postbox.json +++ b/src/generated/resources/assets/create/blockstates/purple_postbox.json @@ -1,33 +1,33 @@ { "variants": { "facing=east,open=false": { - "model": "create:block/purple_postbox", + "model": "create:block/purple_postbox_closed", "y": 90 }, "facing=east,open=true": { - "model": "create:block/purple_postbox", + "model": "create:block/purple_postbox_open", "y": 90 }, "facing=north,open=false": { - "model": "create:block/purple_postbox" + "model": "create:block/purple_postbox_closed" }, "facing=north,open=true": { - "model": "create:block/purple_postbox" + "model": "create:block/purple_postbox_open" }, "facing=south,open=false": { - "model": "create:block/purple_postbox", + "model": "create:block/purple_postbox_closed", "y": 180 }, "facing=south,open=true": { - "model": "create:block/purple_postbox", + "model": "create:block/purple_postbox_open", "y": 180 }, "facing=west,open=false": { - "model": "create:block/purple_postbox", + "model": "create:block/purple_postbox_closed", "y": 270 }, "facing=west,open=true": { - "model": "create:block/purple_postbox", + "model": "create:block/purple_postbox_open", "y": 270 } } diff --git a/src/generated/resources/assets/create/blockstates/red_postbox.json b/src/generated/resources/assets/create/blockstates/red_postbox.json index 56c1c83ae1..bc58c6661a 100644 --- a/src/generated/resources/assets/create/blockstates/red_postbox.json +++ b/src/generated/resources/assets/create/blockstates/red_postbox.json @@ -1,33 +1,33 @@ { "variants": { "facing=east,open=false": { - "model": "create:block/red_postbox", + "model": "create:block/red_postbox_closed", "y": 90 }, "facing=east,open=true": { - "model": "create:block/red_postbox", + "model": "create:block/red_postbox_open", "y": 90 }, "facing=north,open=false": { - "model": "create:block/red_postbox" + "model": "create:block/red_postbox_closed" }, "facing=north,open=true": { - "model": "create:block/red_postbox" + "model": "create:block/red_postbox_open" }, "facing=south,open=false": { - "model": "create:block/red_postbox", + "model": "create:block/red_postbox_closed", "y": 180 }, "facing=south,open=true": { - "model": "create:block/red_postbox", + "model": "create:block/red_postbox_open", "y": 180 }, "facing=west,open=false": { - "model": "create:block/red_postbox", + "model": "create:block/red_postbox_closed", "y": 270 }, "facing=west,open=true": { - "model": "create:block/red_postbox", + "model": "create:block/red_postbox_open", "y": 270 } } diff --git a/src/generated/resources/assets/create/blockstates/white_postbox.json b/src/generated/resources/assets/create/blockstates/white_postbox.json index 335fe6ff05..1471a51fec 100644 --- a/src/generated/resources/assets/create/blockstates/white_postbox.json +++ b/src/generated/resources/assets/create/blockstates/white_postbox.json @@ -1,33 +1,33 @@ { "variants": { "facing=east,open=false": { - "model": "create:block/white_postbox", + "model": "create:block/white_postbox_closed", "y": 90 }, "facing=east,open=true": { - "model": "create:block/white_postbox", + "model": "create:block/white_postbox_open", "y": 90 }, "facing=north,open=false": { - "model": "create:block/white_postbox" + "model": "create:block/white_postbox_closed" }, "facing=north,open=true": { - "model": "create:block/white_postbox" + "model": "create:block/white_postbox_open" }, "facing=south,open=false": { - "model": "create:block/white_postbox", + "model": "create:block/white_postbox_closed", "y": 180 }, "facing=south,open=true": { - "model": "create:block/white_postbox", + "model": "create:block/white_postbox_open", "y": 180 }, "facing=west,open=false": { - "model": "create:block/white_postbox", + "model": "create:block/white_postbox_closed", "y": 270 }, "facing=west,open=true": { - "model": "create:block/white_postbox", + "model": "create:block/white_postbox_open", "y": 270 } } diff --git a/src/generated/resources/assets/create/blockstates/yellow_postbox.json b/src/generated/resources/assets/create/blockstates/yellow_postbox.json index a3b3f8f4e7..1959f2eb7d 100644 --- a/src/generated/resources/assets/create/blockstates/yellow_postbox.json +++ b/src/generated/resources/assets/create/blockstates/yellow_postbox.json @@ -1,33 +1,33 @@ { "variants": { "facing=east,open=false": { - "model": "create:block/yellow_postbox", + "model": "create:block/yellow_postbox_closed", "y": 90 }, "facing=east,open=true": { - "model": "create:block/yellow_postbox", + "model": "create:block/yellow_postbox_open", "y": 90 }, "facing=north,open=false": { - "model": "create:block/yellow_postbox" + "model": "create:block/yellow_postbox_closed" }, "facing=north,open=true": { - "model": "create:block/yellow_postbox" + "model": "create:block/yellow_postbox_open" }, "facing=south,open=false": { - "model": "create:block/yellow_postbox", + "model": "create:block/yellow_postbox_closed", "y": 180 }, "facing=south,open=true": { - "model": "create:block/yellow_postbox", + "model": "create:block/yellow_postbox_open", "y": 180 }, "facing=west,open=false": { - "model": "create:block/yellow_postbox", + "model": "create:block/yellow_postbox_closed", "y": 270 }, "facing=west,open=true": { - "model": "create:block/yellow_postbox", + "model": "create:block/yellow_postbox_open", "y": 270 } } diff --git a/src/generated/resources/assets/create/lang/en_ud.json b/src/generated/resources/assets/create/lang/en_ud.json index fbca534606..55604f9b22 100644 --- a/src/generated/resources/assets/create/lang/en_ud.json +++ b/src/generated/resources/assets/create/lang/en_ud.json @@ -919,6 +919,8 @@ "create.chain_conveyor.valid_connection": "✔ ʇɔǝuuoƆ uɐƆ", "create.clipboard.actions": "suoıʇɔⱯ pɹɐoqdıןƆ", "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.to_copy": "sbuıʇʇǝs ʎdoƆ oʇ %1$s", "create.clipboard.to_paste": "sbuıʇʇǝs ǝʇsɐԀ oʇ %1$s", diff --git a/src/generated/resources/assets/create/lang/en_us.json b/src/generated/resources/assets/create/lang/en_us.json index 6bc35908d9..a944be551c 100644 --- a/src/generated/resources/assets/create/lang/en_us.json +++ b/src/generated/resources/assets/create/lang/en_us.json @@ -919,6 +919,8 @@ "create.chain_conveyor.valid_connection": "Can Connect ✔", "create.clipboard.actions": "Clipboard Actions", "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.to_copy": "%1$s to Copy settings", "create.clipboard.to_paste": "%1$s to Paste settings", diff --git a/src/generated/resources/assets/create/models/block/black_postbox.json b/src/generated/resources/assets/create/models/block/black_postbox_closed.json similarity index 100% rename from src/generated/resources/assets/create/models/block/black_postbox.json rename to src/generated/resources/assets/create/models/block/black_postbox_closed.json diff --git a/src/generated/resources/assets/create/models/block/black_postbox_open.json b/src/generated/resources/assets/create/models/block/black_postbox_open.json new file mode 100644 index 0000000000..5e9b0af55a --- /dev/null +++ b/src/generated/resources/assets/create/models/block/black_postbox_open.json @@ -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" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/create/models/block/blue_postbox.json b/src/generated/resources/assets/create/models/block/blue_postbox_closed.json similarity index 100% rename from src/generated/resources/assets/create/models/block/blue_postbox.json rename to src/generated/resources/assets/create/models/block/blue_postbox_closed.json diff --git a/src/generated/resources/assets/create/models/block/blue_postbox_open.json b/src/generated/resources/assets/create/models/block/blue_postbox_open.json new file mode 100644 index 0000000000..7a4c608e2f --- /dev/null +++ b/src/generated/resources/assets/create/models/block/blue_postbox_open.json @@ -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" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/create/models/block/brown_postbox.json b/src/generated/resources/assets/create/models/block/brown_postbox_closed.json similarity index 100% rename from src/generated/resources/assets/create/models/block/brown_postbox.json rename to src/generated/resources/assets/create/models/block/brown_postbox_closed.json diff --git a/src/generated/resources/assets/create/models/block/brown_postbox_open.json b/src/generated/resources/assets/create/models/block/brown_postbox_open.json new file mode 100644 index 0000000000..037670e724 --- /dev/null +++ b/src/generated/resources/assets/create/models/block/brown_postbox_open.json @@ -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" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/create/models/block/cyan_postbox.json b/src/generated/resources/assets/create/models/block/cyan_postbox_closed.json similarity index 100% rename from src/generated/resources/assets/create/models/block/cyan_postbox.json rename to src/generated/resources/assets/create/models/block/cyan_postbox_closed.json diff --git a/src/generated/resources/assets/create/models/block/cyan_postbox_open.json b/src/generated/resources/assets/create/models/block/cyan_postbox_open.json new file mode 100644 index 0000000000..855f1d76aa --- /dev/null +++ b/src/generated/resources/assets/create/models/block/cyan_postbox_open.json @@ -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" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/create/models/block/gray_postbox.json b/src/generated/resources/assets/create/models/block/gray_postbox_closed.json similarity index 100% rename from src/generated/resources/assets/create/models/block/gray_postbox.json rename to src/generated/resources/assets/create/models/block/gray_postbox_closed.json diff --git a/src/generated/resources/assets/create/models/block/gray_postbox_open.json b/src/generated/resources/assets/create/models/block/gray_postbox_open.json new file mode 100644 index 0000000000..6863bc3219 --- /dev/null +++ b/src/generated/resources/assets/create/models/block/gray_postbox_open.json @@ -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" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/create/models/block/green_postbox.json b/src/generated/resources/assets/create/models/block/green_postbox_closed.json similarity index 100% rename from src/generated/resources/assets/create/models/block/green_postbox.json rename to src/generated/resources/assets/create/models/block/green_postbox_closed.json diff --git a/src/generated/resources/assets/create/models/block/green_postbox_open.json b/src/generated/resources/assets/create/models/block/green_postbox_open.json new file mode 100644 index 0000000000..29eab5611d --- /dev/null +++ b/src/generated/resources/assets/create/models/block/green_postbox_open.json @@ -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" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/create/models/block/light_blue_postbox.json b/src/generated/resources/assets/create/models/block/light_blue_postbox_closed.json similarity index 100% rename from src/generated/resources/assets/create/models/block/light_blue_postbox.json rename to src/generated/resources/assets/create/models/block/light_blue_postbox_closed.json diff --git a/src/generated/resources/assets/create/models/block/light_blue_postbox_open.json b/src/generated/resources/assets/create/models/block/light_blue_postbox_open.json new file mode 100644 index 0000000000..6bec66e514 --- /dev/null +++ b/src/generated/resources/assets/create/models/block/light_blue_postbox_open.json @@ -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" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/create/models/block/light_gray_postbox.json b/src/generated/resources/assets/create/models/block/light_gray_postbox_closed.json similarity index 100% rename from src/generated/resources/assets/create/models/block/light_gray_postbox.json rename to src/generated/resources/assets/create/models/block/light_gray_postbox_closed.json diff --git a/src/generated/resources/assets/create/models/block/light_gray_postbox_open.json b/src/generated/resources/assets/create/models/block/light_gray_postbox_open.json new file mode 100644 index 0000000000..6208d0cddf --- /dev/null +++ b/src/generated/resources/assets/create/models/block/light_gray_postbox_open.json @@ -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" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/create/models/block/lime_postbox.json b/src/generated/resources/assets/create/models/block/lime_postbox_closed.json similarity index 100% rename from src/generated/resources/assets/create/models/block/lime_postbox.json rename to src/generated/resources/assets/create/models/block/lime_postbox_closed.json diff --git a/src/generated/resources/assets/create/models/block/lime_postbox_open.json b/src/generated/resources/assets/create/models/block/lime_postbox_open.json new file mode 100644 index 0000000000..2b27ee0755 --- /dev/null +++ b/src/generated/resources/assets/create/models/block/lime_postbox_open.json @@ -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" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/create/models/block/magenta_postbox.json b/src/generated/resources/assets/create/models/block/magenta_postbox_closed.json similarity index 100% rename from src/generated/resources/assets/create/models/block/magenta_postbox.json rename to src/generated/resources/assets/create/models/block/magenta_postbox_closed.json diff --git a/src/generated/resources/assets/create/models/block/magenta_postbox_open.json b/src/generated/resources/assets/create/models/block/magenta_postbox_open.json new file mode 100644 index 0000000000..f2067ef047 --- /dev/null +++ b/src/generated/resources/assets/create/models/block/magenta_postbox_open.json @@ -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" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/create/models/block/orange_postbox.json b/src/generated/resources/assets/create/models/block/orange_postbox_closed.json similarity index 100% rename from src/generated/resources/assets/create/models/block/orange_postbox.json rename to src/generated/resources/assets/create/models/block/orange_postbox_closed.json diff --git a/src/generated/resources/assets/create/models/block/orange_postbox_open.json b/src/generated/resources/assets/create/models/block/orange_postbox_open.json new file mode 100644 index 0000000000..26973cd8a3 --- /dev/null +++ b/src/generated/resources/assets/create/models/block/orange_postbox_open.json @@ -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" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/create/models/block/pink_postbox.json b/src/generated/resources/assets/create/models/block/pink_postbox_closed.json similarity index 100% rename from src/generated/resources/assets/create/models/block/pink_postbox.json rename to src/generated/resources/assets/create/models/block/pink_postbox_closed.json diff --git a/src/generated/resources/assets/create/models/block/pink_postbox_open.json b/src/generated/resources/assets/create/models/block/pink_postbox_open.json new file mode 100644 index 0000000000..97c3e0bd09 --- /dev/null +++ b/src/generated/resources/assets/create/models/block/pink_postbox_open.json @@ -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" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/create/models/block/purple_postbox.json b/src/generated/resources/assets/create/models/block/purple_postbox_closed.json similarity index 100% rename from src/generated/resources/assets/create/models/block/purple_postbox.json rename to src/generated/resources/assets/create/models/block/purple_postbox_closed.json diff --git a/src/generated/resources/assets/create/models/block/purple_postbox_open.json b/src/generated/resources/assets/create/models/block/purple_postbox_open.json new file mode 100644 index 0000000000..a1606532ad --- /dev/null +++ b/src/generated/resources/assets/create/models/block/purple_postbox_open.json @@ -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" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/create/models/block/red_postbox.json b/src/generated/resources/assets/create/models/block/red_postbox_closed.json similarity index 100% rename from src/generated/resources/assets/create/models/block/red_postbox.json rename to src/generated/resources/assets/create/models/block/red_postbox_closed.json diff --git a/src/generated/resources/assets/create/models/block/red_postbox_open.json b/src/generated/resources/assets/create/models/block/red_postbox_open.json new file mode 100644 index 0000000000..c13dccaf99 --- /dev/null +++ b/src/generated/resources/assets/create/models/block/red_postbox_open.json @@ -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" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/create/models/block/white_postbox.json b/src/generated/resources/assets/create/models/block/white_postbox_closed.json similarity index 100% rename from src/generated/resources/assets/create/models/block/white_postbox.json rename to src/generated/resources/assets/create/models/block/white_postbox_closed.json diff --git a/src/generated/resources/assets/create/models/block/white_postbox_open.json b/src/generated/resources/assets/create/models/block/white_postbox_open.json new file mode 100644 index 0000000000..bb1b084cb7 --- /dev/null +++ b/src/generated/resources/assets/create/models/block/white_postbox_open.json @@ -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" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/create/models/block/yellow_postbox.json b/src/generated/resources/assets/create/models/block/yellow_postbox_closed.json similarity index 100% rename from src/generated/resources/assets/create/models/block/yellow_postbox.json rename to src/generated/resources/assets/create/models/block/yellow_postbox_closed.json diff --git a/src/generated/resources/assets/create/models/block/yellow_postbox_open.json b/src/generated/resources/assets/create/models/block/yellow_postbox_open.json new file mode 100644 index 0000000000..6ce15c57c8 --- /dev/null +++ b/src/generated/resources/assets/create/models/block/yellow_postbox_open.json @@ -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" + } +} \ No newline at end of file diff --git a/src/generated/resources/data/create/loot_tables/blocks/bound_cardboard_block.json b/src/generated/resources/data/create/loot_tables/blocks/bound_cardboard_block.json index 72ea360f9c..e159395588 100644 --- a/src/generated/resources/data/create/loot_tables/blocks/bound_cardboard_block.json +++ b/src/generated/resources/data/create/loot_tables/blocks/bound_cardboard_block.json @@ -11,7 +11,22 @@ "entries": [ { "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 diff --git a/src/generated/resources/data/create/recipes/crafting/materials/bound_cardboard_block.json b/src/generated/resources/data/create/recipes/crafting/materials/bound_cardboard_block.json index 9b01e47713..c3082c7c73 100644 --- a/src/generated/resources/data/create/recipes/crafting/materials/bound_cardboard_block.json +++ b/src/generated/resources/data/create/recipes/crafting/materials/bound_cardboard_block.json @@ -1,22 +1,15 @@ { - "type": "minecraft:crafting_shaped", + "type": "minecraft:crafting_shapeless", "category": "misc", - "key": { - "C": { + "ingredients": [ + { "item": "create:cardboard_block" }, - "S": { - "tag": "forge:string" + { + "item": "minecraft:string" } - }, - "pattern": [ - "CCC", - "CSC", - "CCC" ], "result": { - "count": 8, "item": "create:bound_cardboard_block" - }, - "show_notification": true + } } \ No newline at end of file diff --git a/src/generated/resources/data/create/recipes/item_application/bound_cardboard_inworld.json b/src/generated/resources/data/create/recipes/item_application/bound_cardboard_inworld.json new file mode 100644 index 0000000000..01db281a27 --- /dev/null +++ b/src/generated/resources/data/create/recipes/item_application/bound_cardboard_inworld.json @@ -0,0 +1,16 @@ +{ + "type": "create:item_application", + "ingredients": [ + { + "item": "create:cardboard_block" + }, + { + "tag": "forge:string" + } + ], + "results": [ + { + "item": "create:bound_cardboard_block" + } + ] +} \ No newline at end of file diff --git a/src/main/java/com/simibubi/create/AllBlocks.java b/src/main/java/com/simibubi/create/AllBlocks.java index 8b913e8d48..67866d31b7 100644 --- a/src/main/java/com/simibubi/create/AllBlocks.java +++ b/src/main/java/com/simibubi/create/AllBlocks.java @@ -299,6 +299,7 @@ import net.minecraft.sounds.SoundEvents; import net.minecraft.tags.BlockTags; import net.minecraft.tags.ItemTags; import net.minecraft.world.item.DyeColor; +import net.minecraft.world.item.Items; import net.minecraft.world.item.Rarity; import net.minecraft.world.item.enchantment.Enchantments; import net.minecraft.world.level.block.Block; @@ -1766,12 +1767,14 @@ public class AllBlocks { .properties(p -> p.mapColor(colour)) .transform(axeOnly()) .blockstate((c, p) -> { - p.horizontalBlock(c.get(), s -> p.models() - .withExistingParent(colourName + "_postbox", - p.modLoc("block/package_postbox/block_" + (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 - + (s.getValue(PostboxBlock.OPEN) ? "_open" : "_closed")))); + p.horizontalBlock(c.get(), s -> { + String suffix = s.getValue(PostboxBlock.OPEN) ? "open" : "closed"; + return p.models() + .withExistingParent(colourName + "_postbox_" + suffix, + p.modLoc("block/package_postbox/block_" + suffix)) + .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) .item(PackagePortItem::new) @@ -2549,6 +2552,13 @@ public class AllBlocks { .ignitedByLava()) .transform(axeOnly()) .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() .lang("Bound block of Cardboard") .register(); diff --git a/src/main/java/com/simibubi/create/content/decoration/MetalLadderBlock.java b/src/main/java/com/simibubi/create/content/decoration/MetalLadderBlock.java index 55dbbfa5e4..7cbc03e682 100644 --- a/src/main/java/com/simibubi/create/content/decoration/MetalLadderBlock.java +++ b/src/main/java/com/simibubi/create/content/decoration/MetalLadderBlock.java @@ -1,30 +1,38 @@ 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.wrench.IWrenchable; import com.simibubi.create.infrastructure.config.AllConfigs; + import net.createmod.catnip.utility.placement.IPlacementHelper; import net.createmod.catnip.utility.placement.PlacementHelpers; import net.createmod.catnip.utility.placement.PlacementOffset; import net.minecraft.MethodsReturnNonnullByDefault; import net.minecraft.core.BlockPos; import net.minecraft.core.Direction; +import net.minecraft.core.Direction.Axis; import net.minecraft.world.InteractionHand; import net.minecraft.world.InteractionResult; import net.minecraft.world.entity.ai.attributes.AttributeInstance; import net.minecraft.world.entity.player.Player; import net.minecraft.world.item.BlockItem; import net.minecraft.world.item.ItemStack; +import net.minecraft.world.level.BlockGetter; 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.state.BlockState; import net.minecraft.world.phys.BlockHitResult; +import net.minecraft.world.phys.shapes.VoxelShape; import net.minecraftforge.api.distmarker.Dist; import net.minecraftforge.api.distmarker.OnlyIn; import net.minecraftforge.common.ForgeMod; -import java.util.function.Predicate; - public class MetalLadderBlock extends LadderBlock implements IWrenchable { private static final int placementHelperId = PlacementHelpers.register(new PlacementHelper()); @@ -41,10 +49,33 @@ public class MetalLadderBlock extends LadderBlock implements IWrenchable { @Override @OnlyIn(Dist.CLIENT) + @SuppressWarnings("deprecation") 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; } + @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 public InteractionResult use(BlockState state, Level world, BlockPos pos, Player player, InteractionHand hand, BlockHitResult ray) { diff --git a/src/main/java/com/simibubi/create/content/equipment/clipboard/ClipboardValueSettingsHandler.java b/src/main/java/com/simibubi/create/content/equipment/clipboard/ClipboardValueSettingsHandler.java index 3cca3b44d4..8fd81e694e 100644 --- a/src/main/java/com/simibubi/create/content/equipment/clipboard/ClipboardValueSettingsHandler.java +++ b/src/main/java/com/simibubi/create/content/equipment/clipboard/ClipboardValueSettingsHandler.java @@ -55,11 +55,11 @@ public class ClipboardValueSettingsHandler { return; if (!(mc.level.getBlockEntity(pos) instanceof SmartBlockEntity smartBE)) return; - if (!smartBE.getAllBehaviours() + if (!(smartBE instanceof ClipboardBlockEntity) && !smartBE.getAllBehaviours() .stream() .anyMatch(b -> b instanceof ClipboardCloneable cc && cc.writeToClipboard(new CompoundTag(), target.getDirection())) - && !(smartBE instanceof ClipboardCloneable)) + && !(smartBE instanceof ClipboardCloneable)) return; VoxelShape shape = blockstate.getShape(mc.level, pos); @@ -92,6 +92,14 @@ public class ClipboardValueSettingsHandler { if (!(mc.level.getBlockEntity(pos) instanceof SmartBlockEntity smartBE)) return; + if (smartBE instanceof ClipboardBlockEntity) { + List 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() .getTagElement("CopiedValues"); @@ -146,6 +154,55 @@ public class ClipboardValueSettingsHandler { return; if (!(world.getBlockEntity(pos) instanceof SmartBlockEntity smartBE)) return; + + if (smartBE instanceof ClipboardBlockEntity cbe) { + event.setCanceled(true); + event.setCancellationResult(InteractionResult.SUCCESS); + + if (!world.isClientSide()) { + List> listTo = ClipboardEntry.readAll(itemStack); + List> listFrom = ClipboardEntry.readAll(cbe.dataContainer); + List toAdd = new ArrayList<>(); + + for (List page : listFrom) { + Copy: for (ClipboardEntry entry : page) { + String entryToAdd = entry.text.getString(); + for (List 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 page = null; + for (List 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"); if (paste && tag == null) return; diff --git a/src/main/java/com/simibubi/create/content/equipment/toolbox/ToolboxBlockEntity.java b/src/main/java/com/simibubi/create/content/equipment/toolbox/ToolboxBlockEntity.java index 98d18b0e6e..90542b1968 100644 --- a/src/main/java/com/simibubi/create/content/equipment/toolbox/ToolboxBlockEntity.java +++ b/src/main/java/com/simibubi/create/content/equipment/toolbox/ToolboxBlockEntity.java @@ -13,6 +13,7 @@ import java.util.WeakHashMap; import com.simibubi.create.AllBlocks; import com.simibubi.create.foundation.blockEntity.SmartBlockEntity; 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 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.level.block.entity.BlockEntityType; import net.minecraft.world.level.block.state.BlockState; -import net.minecraft.world.phys.AABB; import net.minecraft.world.phys.Vec3; import net.minecraftforge.common.capabilities.Capability; import net.minecraftforge.common.util.LazyOptional; @@ -53,12 +53,13 @@ public class ToolboxBlockEntity extends SmartBlockEntity implements MenuProvider ToolboxInventory inventory; LazyOptional inventoryProvider; ResetableLazy colorProvider; - protected int openCount; Map> connectedPlayers; private Component customName; + private AnimatedContainerBehaviour openTracker; + public ToolboxBlockEntity(BlockEntityType type, BlockPos pos, BlockState state) { super(type, pos, state); connectedPlayers = new HashMap<>(); @@ -78,7 +79,9 @@ public class ToolboxBlockEntity extends SmartBlockEntity implements MenuProvider } @Override - public void addBehaviours(List behaviours) {} + public void addBehaviours(List behaviours) { + behaviours.add(openTracker = new AnimatedContainerBehaviour<>(this, ToolboxMenu.class)); + } @Override public void initialize() { @@ -101,8 +104,8 @@ public class ToolboxBlockEntity extends SmartBlockEntity implements MenuProvider if (!level.isClientSide) tickPlayers(); - lid.chase(openCount > 0 ? 1 : 0, 0.2f, Chaser.LINEAR); - drawers.chase(openCount > 0 ? 1 : 0, 0.2f, Chaser.EXP); + lid.chase(openTracker.openCount > 0 ? 1 : 0, 0.2f, Chaser.LINEAR); + drawers.chase(openTracker.openCount > 0 ? 1 : 0, 0.2f, Chaser.EXP); lid.tickChaser(); drawers.tickChaser(); } @@ -257,17 +260,17 @@ public class ToolboxBlockEntity extends SmartBlockEntity implements MenuProvider private void tickAudio() { Vec3 vec = VecHelper.getCenterOf(worldPosition); 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.random.nextFloat() * 0.1F + 1.2F, true); level.playLocalSound(vec.x, vec.y, vec.z, SoundEvents.CHEST_OPEN, SoundSource.BLOCKS, 0.1F, 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.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) level.playLocalSound(vec.x, vec.y, vec.z, SoundEvents.IRON_DOOR_CLOSE, SoundSource.BLOCKS, 0.25F, level.random.nextFloat() * 0.1F + 1.2F, true); @@ -288,8 +291,6 @@ public class ToolboxBlockEntity extends SmartBlockEntity implements MenuProvider this.uniqueId = compound.getUUID("UniqueId"); if (compound.contains("CustomName", 8)) this.customName = Component.Serializer.fromJson(compound.getString("CustomName")); - if (clientPacket) - openCount = compound.getInt("OpenCount"); } @Override @@ -303,8 +304,6 @@ public class ToolboxBlockEntity extends SmartBlockEntity implements MenuProvider if (customName != null) compound.putString("CustomName", Component.Serializer.toJson(customName)); super.write(compound, clientPacket); - if (clientPacket) - compound.putInt("OpenCount", openCount); } @Override @@ -314,46 +313,11 @@ public class ToolboxBlockEntity extends SmartBlockEntity implements MenuProvider @Override public void lazyTick() { - updateOpenCount(); // keep re-advertising active TEs ToolboxHandler.onLoad(this); 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) { if (level.isClientSide) return; diff --git a/src/main/java/com/simibubi/create/content/equipment/toolbox/ToolboxMenu.java b/src/main/java/com/simibubi/create/content/equipment/toolbox/ToolboxMenu.java index 8dca8ec499..f7db862c84 100644 --- a/src/main/java/com/simibubi/create/content/equipment/toolbox/ToolboxMenu.java +++ b/src/main/java/com/simibubi/create/content/equipment/toolbox/ToolboxMenu.java @@ -3,6 +3,8 @@ package com.simibubi.create.content.equipment.toolbox; import static com.simibubi.create.content.equipment.toolbox.ToolboxInventory.STACKS_PER_COMPARTMENT; 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 net.minecraft.client.Minecraft; @@ -27,7 +29,8 @@ public class ToolboxMenu extends MenuBase { public ToolboxMenu(MenuType type, int id, Inventory inv, ToolboxBlockEntity 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) { @@ -153,7 +156,8 @@ public class ToolboxMenu extends MenuBase { public void removed(Player playerIn) { super.removed(playerIn); if (!playerIn.level().isClientSide) - contentHolder.stopOpen(playerIn); + BlockEntityBehaviour.get(contentHolder, AnimatedContainerBehaviour.TYPE) + .stopOpen(playerIn); } } diff --git a/src/main/java/com/simibubi/create/content/kinetics/chainConveyor/ChainConveyorBlockEntity.java b/src/main/java/com/simibubi/create/content/kinetics/chainConveyor/ChainConveyorBlockEntity.java index 42aed44ecb..15e2784a78 100644 --- a/src/main/java/com/simibubi/create/content/kinetics/chainConveyor/ChainConveyorBlockEntity.java +++ b/src/main/java/com/simibubi/create/content/kinetics/chainConveyor/ChainConveyorBlockEntity.java @@ -80,7 +80,7 @@ public class ChainConveyorBlockEntity extends KineticBlockEntity { @Override protected AABB createRenderBoundingBox() { - return INFINITE_EXTENT_AABB; // TODO: compute smallest possible from connection data + return new AABB(worldPosition).inflate(connections.isEmpty() ? 3 : 64); } @Override diff --git a/src/main/java/com/simibubi/create/content/logistics/AddressEditBox.java b/src/main/java/com/simibubi/create/content/logistics/AddressEditBox.java index 09ab093611..e867800b2e 100644 --- a/src/main/java/com/simibubi/create/content/logistics/AddressEditBox.java +++ b/src/main/java/com/simibubi/create/content/logistics/AddressEditBox.java @@ -26,9 +26,9 @@ public class AddressEditBox extends EditBox { private DestinationSuggestions destinationSuggestions; private Consumer 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()); - destinationSuggestions = AddressEditBoxHelper.createSuggestions(screen, this); + destinationSuggestions = AddressEditBoxHelper.createSuggestions(screen, this, anchorToBottom); destinationSuggestions.setAllowSuggestions(true); destinationSuggestions.updateCommandInfo(); mainResponder = t -> destinationSuggestions.updateCommandInfo(); diff --git a/src/main/java/com/simibubi/create/content/logistics/AddressEditBoxHelper.java b/src/main/java/com/simibubi/create/content/logistics/AddressEditBoxHelper.java index 0ddd0b6fe0..0d4923dc80 100644 --- a/src/main/java/com/simibubi/create/content/logistics/AddressEditBoxHelper.java +++ b/src/main/java/com/simibubi/create/content/logistics/AddressEditBoxHelper.java @@ -2,7 +2,9 @@ package com.simibubi.create.content.logistics; import java.lang.ref.WeakReference; import java.util.ArrayList; +import java.util.HashSet; import java.util.List; +import java.util.Set; import java.util.concurrent.TimeUnit; import com.google.common.cache.Cache; @@ -39,31 +41,33 @@ public class AddressEditBoxHelper { 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(); Player player = mc.player; List> options = new ArrayList<>(); - DestinationSuggestions destinationSuggestions = - new DestinationSuggestions(mc, screen, pInput, mc.font, options, -72 + pInput.getY() + pInput.getHeight()); + Set alreadyAdded = new HashSet<>(); + + DestinationSuggestions destinationSuggestions = new DestinationSuggestions(mc, screen, pInput, mc.font, options, + anchorToBottom, -72 + pInput.getY() + (anchorToBottom ? 0 : pInput.getHeight())); if (player == null) return destinationSuggestions; for (int i = 0; i < Inventory.INVENTORY_SIZE; i++) - appendAddresses(options, player.getInventory() + appendAddresses(options, alreadyAdded, player.getInventory() .getItem(i)); for (WeakReference wr : NEARBY_CLIPBOARDS.asMap() .values()) { ClipboardBlockEntity cbe = wr.get(); if (cbe != null) - appendAddresses(options, cbe.dataContainer); + appendAddresses(options, alreadyAdded, cbe.dataContainer); } return destinationSuggestions; } - private static void appendAddresses(List> options, ItemStack item) { + private static void appendAddresses(List> options, Set alreadyAdded, ItemStack item) { if (item == null || !AllBlocks.CLIPBOARD.isIn(item)) return; @@ -77,7 +81,10 @@ public class AddressEditBoxHelper { String address = string.substring(1); if (address.isBlank()) return; - options.add(IntAttached.withZero(address.trim())); + String trim = address.trim(); + if (!alreadyAdded.add(trim)) + return; + options.add(IntAttached.withZero(trim)); })); } diff --git a/src/main/java/com/simibubi/create/content/logistics/box/PackageEntity.java b/src/main/java/com/simibubi/create/content/logistics/box/PackageEntity.java index 77ca170222..d312886c75 100644 --- a/src/main/java/com/simibubi/create/content/logistics/box/PackageEntity.java +++ b/src/main/java/com/simibubi/create/content/logistics/box/PackageEntity.java @@ -18,6 +18,7 @@ import net.minecraft.nbt.CompoundTag; import net.minecraft.network.FriendlyByteBuf; import net.minecraft.network.protocol.Packet; import net.minecraft.network.protocol.game.ClientGamePacketListener; +import net.minecraft.server.level.ServerLevel; import net.minecraft.sounds.SoundEvent; import net.minecraft.sounds.SoundEvents; 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.HumanoidArm; import net.minecraft.world.entity.LivingEntity; +import net.minecraft.world.entity.MobSpawnType; import net.minecraft.world.entity.Pose; import net.minecraft.world.entity.ai.attributes.AttributeSupplier; 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.projectile.AbstractArrow; import net.minecraft.world.item.ItemStack; +import net.minecraft.world.item.SpawnEggItem; import net.minecraft.world.level.Level; import net.minecraft.world.level.block.Blocks; import net.minecraft.world.level.block.state.BlockState; @@ -356,6 +359,15 @@ public class PackageEntity extends LivingEntity implements IEntityAdditionalSpaw ItemStackHandler contents = PackageItem.getContents(box); for (int i = 0; i < contents.getSlots(); 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()) continue; ItemEntity entityIn = new ItemEntity(level(), getX(), getY(), getZ(), itemstack); diff --git a/src/main/java/com/simibubi/create/content/logistics/box/PackageItem.java b/src/main/java/com/simibubi/create/content/logistics/box/PackageItem.java index 787f1ff90d..c02a9f9170 100644 --- a/src/main/java/com/simibubi/create/content/logistics/box/PackageItem.java +++ b/src/main/java/com/simibubi/create/content/logistics/box/PackageItem.java @@ -12,22 +12,27 @@ import com.simibubi.create.content.logistics.stockTicker.PackageOrder; import net.createmod.catnip.utility.VecHelper; import net.createmod.catnip.utility.lang.Components; import net.minecraft.ChatFormatting; +import net.minecraft.core.BlockPos; import net.minecraft.core.Direction; import net.minecraft.core.particles.ItemParticleOption; import net.minecraft.core.particles.ParticleTypes; import net.minecraft.nbt.CompoundTag; import net.minecraft.nbt.Tag; import net.minecraft.network.chat.Component; +import net.minecraft.server.level.ServerLevel; import net.minecraft.sounds.SoundEvents; import net.minecraft.sounds.SoundSource; import net.minecraft.world.InteractionHand; import net.minecraft.world.InteractionResult; import net.minecraft.world.InteractionResultHolder; import net.minecraft.world.entity.Entity; +import net.minecraft.world.entity.EntityType; import net.minecraft.world.entity.LivingEntity; +import net.minecraft.world.entity.MobSpawnType; import net.minecraft.world.entity.player.Player; import net.minecraft.world.item.Item; import net.minecraft.world.item.ItemStack; +import net.minecraft.world.item.SpawnEggItem; import net.minecraft.world.item.TooltipFlag; import net.minecraft.world.item.UseAnim; import net.minecraft.world.item.context.UseOnContext; @@ -63,7 +68,7 @@ public class PackageItem extends Item { public static boolean isPackage(ItemStack stack) { return stack.getItem() instanceof PackageItem; } - + @Override public boolean canFitInsideContainerItems() { return false; @@ -129,7 +134,7 @@ public class PackageItem extends Item { public static boolean matchAddress(ItemStack box, String address) { return matchAddress(getAddress(box), address); } - + public static boolean matchAddress(String boxAddress, String address) { if (address.isBlank()) return boxAddress.isBlank(); @@ -188,20 +193,18 @@ public class PackageItem extends Item { pTooltipComponents.add(Components.literal("-> " + compoundnbt.getString("Address")) .withStyle(ChatFormatting.GOLD)); - /* Debug Fragmentation Data - if (compoundnbt.contains("Fragment")) { - CompoundTag fragTag = compoundnbt.getCompound("Fragment"); - pTooltipComponents.add(Components.literal("Order Information (Temporary)") - .withStyle(ChatFormatting.GREEN)); - pTooltipComponents.add(Components - .literal(" Link " + fragTag.getInt("LinkIndex") + (fragTag.getBoolean("IsFinalLink") ? " Final" : "") - + " | Fragment " + fragTag.getInt("Index") + (fragTag.getBoolean("IsFinal") ? " Final" : "")) - .withStyle(ChatFormatting.DARK_GREEN)); - if (fragTag.contains("OrderContext")) - pTooltipComponents.add(Components.literal("Has Context!") - .withStyle(ChatFormatting.DARK_GREEN)); - } - */ + /* + * Debug Fragmentation Data if (compoundnbt.contains("Fragment")) { CompoundTag + * fragTag = compoundnbt.getCompound("Fragment"); + * pTooltipComponents.add(Components.literal("Order Information (Temporary)") + * .withStyle(ChatFormatting.GREEN)); pTooltipComponents.add(Components + * .literal(" Link " + fragTag.getInt("LinkIndex") + + * (fragTag.getBoolean("IsFinalLink") ? " Final" : "") + " | Fragment " + + * fragTag.getInt("Index") + (fragTag.getBoolean("IsFinal") ? " Final" : "")) + * .withStyle(ChatFormatting.DARK_GREEN)); if (fragTag.contains("OrderContext")) + * pTooltipComponents.add(Components.literal("Has Context!") + * .withStyle(ChatFormatting.DARK_GREEN)); } + */ if (!compoundnbt.contains("Items", Tag.TAG_COMPOUND)) return; @@ -256,6 +259,18 @@ public class PackageItem extends Item { for (int i = 0; i < contents.getSlots(); 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()) continue; playerIn.getInventory() diff --git a/src/main/java/com/simibubi/create/content/logistics/displayCloth/DisplayClothBlock.java b/src/main/java/com/simibubi/create/content/logistics/displayCloth/DisplayClothBlock.java index 43213fb25f..484ed06e1b 100644 --- a/src/main/java/com/simibubi/create/content/logistics/displayCloth/DisplayClothBlock.java +++ b/src/main/java/com/simibubi/create/content/logistics/displayCloth/DisplayClothBlock.java @@ -88,7 +88,7 @@ public class DisplayClothBlock extends Block implements IHaveBigOutline, IWrench BlockHitResult ray) { if (ray.getDirection() == Direction.DOWN) return InteractionResult.PASS; - + ItemStack heldItem = player.getItemInHand(hand); boolean shiftKeyDown = player.isShiftKeyDown(); if (!player.mayBuild()) @@ -151,6 +151,12 @@ public class DisplayClothBlock extends Block implements IHaveBigOutline, IWrench return AllShapes.DISPLAY_CLOTH_OCCLUSION; } + @Override + public VoxelShape getCollisionShape(BlockState pState, BlockGetter pLevel, BlockPos pPos, + CollisionContext pContext) { + return AllShapes.DISPLAY_CLOTH_OCCLUSION; + } + @Override public boolean canSurvive(BlockState p_152922_, LevelReader p_152923_, BlockPos p_152924_) { return true; diff --git a/src/main/java/com/simibubi/create/content/logistics/factoryBoard/FactoryPanelScreen.java b/src/main/java/com/simibubi/create/content/logistics/factoryBoard/FactoryPanelScreen.java index 1e8ac70007..3413f4d8d4 100644 --- a/src/main/java/com/simibubi/create/content/logistics/factoryBoard/FactoryPanelScreen.java +++ b/src/main/java/com/simibubi/create/content/logistics/factoryBoard/FactoryPanelScreen.java @@ -75,8 +75,8 @@ public class FactoryPanelScreen extends AbstractSimiScreen { int y = guiTop; if (addressBox == null) { - addressBox = - new AddressEditBox(this, new NoShadowFontWrapper(font), x + 38, y + 30 + middleHeight(), 110, 10); + addressBox = new AddressEditBox(this, new NoShadowFontWrapper(font), x + 38, y + 30 + middleHeight(), 110, + 10, false); addressBox.setValue(behaviour.recipeAddress); addressBox.setTextColor(0x555555); } diff --git a/src/main/java/com/simibubi/create/content/logistics/filter/PackageFilterScreen.java b/src/main/java/com/simibubi/create/content/logistics/filter/PackageFilterScreen.java index 66a934bad4..afd3ebbccb 100644 --- a/src/main/java/com/simibubi/create/content/logistics/filter/PackageFilterScreen.java +++ b/src/main/java/com/simibubi/create/content/logistics/filter/PackageFilterScreen.java @@ -45,7 +45,7 @@ public class PackageFilterScreen extends AbstractFilterScreen int x = leftPos; 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.setValue(menu.address); addressBox.setResponder(this::onAddressEdited); @@ -57,7 +57,7 @@ public class PackageFilterScreen extends AbstractFilterScreen @Override public void render(GuiGraphics graphics, int mouseX, int mouseY, float partialTicks) { super.render(graphics, mouseX, mouseY, partialTicks); - + PoseStack ms = graphics.pose(); ms.pushPose(); ms.translate(leftPos + 16, topPos + 23, 0); @@ -90,7 +90,6 @@ public class PackageFilterScreen extends AbstractFilterScreen public boolean charTyped(char pCodePoint, int pModifiers) { return super.charTyped(pCodePoint, pModifiers); } - @Override protected void contentsCleared() { diff --git a/src/main/java/com/simibubi/create/content/logistics/packagePort/PackagePortBlockEntity.java b/src/main/java/com/simibubi/create/content/logistics/packagePort/PackagePortBlockEntity.java index e2da5d3404..b64436fd4d 100644 --- a/src/main/java/com/simibubi/create/content/logistics/packagePort/PackagePortBlockEntity.java +++ b/src/main/java/com/simibubi/create/content/logistics/packagePort/PackagePortBlockEntity.java @@ -11,6 +11,7 @@ import com.simibubi.create.content.equipment.clipboard.ClipboardEntry; import com.simibubi.create.content.equipment.clipboard.ClipboardOverrides; import com.simibubi.create.foundation.blockEntity.SmartBlockEntity; 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.utility.CreateLang; @@ -42,6 +43,8 @@ public abstract class PackagePortBlockEntity extends SmartBlockEntity implements public PackagePortTarget target; public SmartInventory inventory; + protected AnimatedContainerBehaviour openTracker; + private LazyOptional itemHandler; public PackagePortBlockEntity(BlockEntityType type, BlockPos pos, BlockState state) { @@ -129,7 +132,12 @@ public abstract class PackagePortBlockEntity extends SmartBlockEntity implements } @Override - public void addBehaviours(List behaviours) {} + public void addBehaviours(List behaviours) { + behaviours.add(openTracker = new AnimatedContainerBehaviour<>(this, PackagePortMenu.class)); + openTracker.onOpenChanged(this::onOpenChange); + } + + protected abstract void onOpenChange(boolean open); public InteractionResult use(Player player) { if (player == null || player.isCrouching()) @@ -165,7 +173,7 @@ public abstract class PackagePortBlockEntity extends SmartBlockEntity implements List page = null; for (List freePage : list) { - if (freePage.size() > 16) + if (freePage.size() > 11) continue; page = freePage; break; @@ -179,9 +187,10 @@ public abstract class PackagePortBlockEntity extends SmartBlockEntity implements page.add(new ClipboardEntry(false, Components.literal("#" + addressFilter))); player.displayClientMessage(CreateLang.temporaryText("'" + addressFilter + "' added to Clipboard") .component(), true); - + ClipboardEntry.saveAll(list, mainHandItem); - mainHandItem.getTag().putInt("Type", ClipboardOverrides.ClipboardType.WRITTEN.ordinal()); + mainHandItem.getTag() + .putInt("Type", ClipboardOverrides.ClipboardType.WRITTEN.ordinal()); } @Override diff --git a/src/main/java/com/simibubi/create/content/logistics/packagePort/PackagePortMenu.java b/src/main/java/com/simibubi/create/content/logistics/packagePort/PackagePortMenu.java index c14217b337..dd9d22e70d 100644 --- a/src/main/java/com/simibubi/create/content/logistics/packagePort/PackagePortMenu.java +++ b/src/main/java/com/simibubi/create/content/logistics/packagePort/PackagePortMenu.java @@ -1,6 +1,8 @@ package com.simibubi.create.content.logistics.packagePort; 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.item.SmartInventory; @@ -24,6 +26,8 @@ public class PackagePortMenu extends MenuBase { public PackagePortMenu(MenuType type, int id, Inventory inv, PackagePortBlockEntity be) { super(type, id, inv, be); + BlockEntityBehaviour.get(be, AnimatedContainerBehaviour.TYPE) + .startOpen(player); } public static PackagePortMenu create(int id, Inventory inv, PackagePortBlockEntity be) { @@ -79,6 +83,9 @@ public class PackagePortMenu extends MenuBase { @Override public void removed(Player playerIn) { super.removed(playerIn); + if (!playerIn.level().isClientSide) + BlockEntityBehaviour.get(contentHolder, AnimatedContainerBehaviour.TYPE) + .stopOpen(playerIn); } } diff --git a/src/main/java/com/simibubi/create/content/logistics/packagePort/frogport/FrogportBlockEntity.java b/src/main/java/com/simibubi/create/content/logistics/packagePort/frogport/FrogportBlockEntity.java index 481f949bbb..e39c8b3434 100644 --- a/src/main/java/com/simibubi/create/content/logistics/packagePort/frogport/FrogportBlockEntity.java +++ b/src/main/java/com/simibubi/create/content/logistics/packagePort/frogport/FrogportBlockEntity.java @@ -29,6 +29,7 @@ import net.minecraftforge.items.ItemHandlerHelper; public class FrogportBlockEntity extends PackagePortBlockEntity { public ItemStack animatedPackage; + public LerpedFloat manualOpenAnimationProgress; public LerpedFloat animationProgress; public LerpedFloat anticipationProgress; public boolean currentlyDepositing; @@ -41,6 +42,9 @@ public class FrogportBlockEntity extends PackagePortBlockEntity { super(type, pos, state); animationProgress = LerpedFloat.linear(); anticipationProgress = LerpedFloat.linear(); + manualOpenAnimationProgress = LerpedFloat.linear() + .startWithValue(0) + .chase(0, 0.35, Chaser.LINEAR); } public boolean isAnimationInProgress() { @@ -68,8 +72,13 @@ public class FrogportBlockEntity extends PackagePortBlockEntity { public void sendAnticipate() { if (isAnimationInProgress()) return; - sendAnticipate = true; - sendData(); + for (int i = 0; i < inventory.getSlots(); i++) + if (inventory.getStackInSlot(i) + .isEmpty()) { + sendAnticipate = true; + sendData(); + return; + } } public void anticipate() { @@ -83,7 +92,10 @@ public class FrogportBlockEntity extends PackagePortBlockEntity { if (anticipationProgress.getValue() == 1) anticipationProgress.updateChaseTarget(0); + manualOpenAnimationProgress.updateChaseTarget(openTracker.openCount > 0 ? 1 : 0); + anticipationProgress.tickChaser(); + manualOpenAnimationProgress.tickChaser(); if (!isAnimationInProgress()) return; @@ -178,6 +190,9 @@ public class FrogportBlockEntity extends PackagePortBlockEntity { } } + @Override + protected void onOpenChange(boolean open) {} + public void tryPullingFromOwnAndAdjacentInventories() { if (isAnimationInProgress()) return; diff --git a/src/main/java/com/simibubi/create/content/logistics/packagePort/frogport/FrogportRenderer.java b/src/main/java/com/simibubi/create/content/logistics/packagePort/frogport/FrogportRenderer.java index b698b160d9..44f9bf945b 100644 --- a/src/main/java/com/simibubi/create/content/logistics/packagePort/frogport/FrogportRenderer.java +++ b/src/main/java/com/simibubi/create/content/logistics/packagePort/frogport/FrogportRenderer.java @@ -84,6 +84,10 @@ public class FrogportRenderer extends SmartBlockEntityRenderer trackedGlobalStation; public LerpedFloat flag; - + private boolean sendParticles; public PostboxBlockEntity(BlockEntityType type, BlockPos pos, BlockState state) { @@ -55,17 +57,24 @@ public class PostboxBlockEntity extends PackagePortBlockEntity { flag.tickChaser(); if (currentTarget == 0 && settled != flag.getValue() > .15f) AllSoundEvents.CONTRAPTION_DISASSEMBLE.playAt(level, worldPosition, 0.75f, 1.5f, true); - + if (sendParticles) { sendParticles = false; 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() { sendParticles = true; } - + @Override protected void write(CompoundTag tag, boolean clientPacket) { super.write(tag, clientPacket); @@ -73,7 +82,7 @@ public class PostboxBlockEntity extends PackagePortBlockEntity { NBTHelper.putMarker(tag, "Particles"); sendParticles = false; } - + @Override protected void read(CompoundTag tag, boolean clientPacket) { super.read(tag, clientPacket); diff --git a/src/main/java/com/simibubi/create/content/logistics/packagerLink/LogisticallyLinkedBlockItem.java b/src/main/java/com/simibubi/create/content/logistics/packagerLink/LogisticallyLinkedBlockItem.java index c8a06cc9ac..0b17b79817 100644 --- a/src/main/java/com/simibubi/create/content/logistics/packagerLink/LogisticallyLinkedBlockItem.java +++ b/src/main/java/com/simibubi/create/content/logistics/packagerLink/LogisticallyLinkedBlockItem.java @@ -77,6 +77,8 @@ public class LogisticallyLinkedBlockItem extends BlockItem { if (player == null) return InteractionResult.FAIL; + if (player.isShiftKeyDown()) + return super.useOn(pContext); LogisticallyLinkedBehaviour link = BlockEntityBehaviour.get(level, pos, LogisticallyLinkedBehaviour.TYPE); boolean tuned = isTuned(stack); diff --git a/src/main/java/com/simibubi/create/content/logistics/packagerLink/LogisticallyLinkedClientHandler.java b/src/main/java/com/simibubi/create/content/logistics/packagerLink/LogisticallyLinkedClientHandler.java index 329d548bbf..db0bcab98c 100644 --- a/src/main/java/com/simibubi/create/content/logistics/packagerLink/LogisticallyLinkedClientHandler.java +++ b/src/main/java/com/simibubi/create/content/logistics/packagerLink/LogisticallyLinkedClientHandler.java @@ -2,15 +2,18 @@ package com.simibubi.create.content.logistics.packagerLink; import java.util.UUID; -import com.simibubi.create.AllBlockEntityTypes; +import org.apache.commons.lang3.tuple.Pair; + import com.simibubi.create.foundation.blockEntity.SmartBlockEntity; import net.createmod.catnip.CatnipClient; +import net.createmod.catnip.utility.AnimationTickHolder; import net.minecraft.client.Minecraft; import net.minecraft.client.player.LocalPlayer; import net.minecraft.nbt.CompoundTag; import net.minecraft.world.item.BlockItem; import net.minecraft.world.item.ItemStack; +import net.minecraft.world.phys.AABB; import net.minecraft.world.phys.shapes.VoxelShape; public class LogisticallyLinkedClientHandler { @@ -36,10 +39,20 @@ public class LogisticallyLinkedClientHandler { .getShape(player.level(), be.getBlockPos()); if (shape.isEmpty()) continue; - CatnipClient.OUTLINER.showAABB(behaviour, shape.bounds() - .inflate(AllBlockEntityTypes.FACTORY_PANEL.is(be) ? -1 / 16f : 0) - .move(be.getBlockPos()), 2) - .lineWidth(1 / 16f); + if (!player.blockPosition() + .closerThan(be.getBlockPos(), 64)) + continue; + 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); + } + } } diff --git a/src/main/java/com/simibubi/create/content/logistics/redstoneRequester/RedstoneRequesterScreen.java b/src/main/java/com/simibubi/create/content/logistics/redstoneRequester/RedstoneRequesterScreen.java index 8e4508aeb4..e078efd689 100644 --- a/src/main/java/com/simibubi/create/content/logistics/redstoneRequester/RedstoneRequesterScreen.java +++ b/src/main/java/com/simibubi/create/content/logistics/redstoneRequester/RedstoneRequesterScreen.java @@ -70,7 +70,7 @@ public class RedstoneRequesterScreen extends AbstractSimiContainerScreen type, BlockPos pos, BlockState state) { super(type, pos, state); + blockStateTimer = 0; } @Override public void tick() { super.tick(); 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 protected void write(CompoundTag tag, boolean clientPacket) { super.write(tag, clientPacket); @@ -37,7 +57,7 @@ public class DeskBellBlockEntity extends SmartBlockEntity { NBTHelper.putMarker(tag, "Ding"); ding = false; } - + @Override protected void read(CompoundTag tag, boolean clientPacket) { super.read(tag, clientPacket); @@ -47,11 +67,13 @@ public class DeskBellBlockEntity extends SmartBlockEntity { public void ding() { if (!level.isClientSide) { + blockStateTimer = 20; ding = true; sendData(); return; } - + + animationOffset = level.random.nextFloat() * 2 * Mth.PI; animation.startWithValue(1) .chase(0, 0.05, Chaser.LINEAR); } diff --git a/src/main/java/com/simibubi/create/content/redstone/deskBell/DeskBellRenderer.java b/src/main/java/com/simibubi/create/content/redstone/deskBell/DeskBellRenderer.java index 6598d976d3..6fd2928143 100644 --- a/src/main/java/com/simibubi/create/content/redstone/deskBell/DeskBellRenderer.java +++ b/src/main/java/com/simibubi/create/content/redstone/deskBell/DeskBellRenderer.java @@ -48,8 +48,8 @@ public class DeskBellRenderer extends SmartBlockEntityRenderer> viableStations, int yOffset) { - super(pMinecraft, pScreen, pInput, pFont, true, true, 0, 7, false, 0xee_303030); + List> viableStations, boolean anchorToBottom, int yOffset) { + super(pMinecraft, pScreen, pInput, pFont, true, true, 0, 7, anchorToBottom, 0xee_303030); this.textBox = pInput; this.font = pFont; this.viableStations = viableStations; diff --git a/src/main/java/com/simibubi/create/content/trains/schedule/ScheduleScreen.java b/src/main/java/com/simibubi/create/content/trains/schedule/ScheduleScreen.java index 05f3d14a3c..253de2337f 100644 --- a/src/main/java/com/simibubi/create/content/trains/schedule/ScheduleScreen.java +++ b/src/main/java/com/simibubi/create/content/trains/schedule/ScheduleScreen.java @@ -297,7 +297,7 @@ public class ScheduleScreen extends AbstractSimiContainerScreen im if (!(e instanceof EditBox destinationBox)) return; destinationSuggestions = new DestinationSuggestions(this.minecraft, this, destinationBox, this.font, - getViableStations(field), topPos + 33); + getViableStations(field), false, topPos + 33); destinationSuggestions.setAllowSuggestions(true); destinationSuggestions.updateCommandInfo(); destinationBox.setResponder(this::onDestinationEdited); diff --git a/src/main/java/com/simibubi/create/foundation/blockEntity/behaviour/animatedContainer/AnimatedContainerBehaviour.java b/src/main/java/com/simibubi/create/foundation/blockEntity/behaviour/animatedContainer/AnimatedContainerBehaviour.java new file mode 100644 index 0000000000..a58efd8c64 --- /dev/null +++ b/src/main/java/com/simibubi/create/foundation/blockEntity/behaviour/animatedContainer/AnimatedContainerBehaviour.java @@ -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> extends BlockEntityBehaviour { + + public static final BehaviourType> TYPE = new BehaviourType<>(); + + public int openCount; + + private Class menuClass; + private Consumer openChanged; + + public AnimatedContainerBehaviour(SmartBlockEntity be, Class menuClass) { + super(be); + this.menuClass = menuClass; + openCount = 0; + } + + public void onOpenChanged(Consumer 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; + } + +} diff --git a/src/main/java/com/simibubi/create/foundation/data/recipe/ItemApplicationRecipeGen.java b/src/main/java/com/simibubi/create/foundation/data/recipe/ItemApplicationRecipeGen.java index cb09352630..ecd66971f9 100644 --- a/src/main/java/com/simibubi/create/foundation/data/recipe/ItemApplicationRecipeGen.java +++ b/src/main/java/com/simibubi/create/foundation/data/recipe/ItemApplicationRecipeGen.java @@ -2,6 +2,7 @@ package com.simibubi.create.foundation.data.recipe; import java.util.function.Supplier; +import com.simibubi.create.AllBlocks; import com.simibubi.create.AllRecipeTypes; 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.crafting.Ingredient; import net.minecraft.world.level.ItemLike; +import net.minecraftforge.common.Tags.Items; 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 COPPER = woodCasingTag("copper", I::copper, I::copperCasing); GeneratedRecipe BRASS = woodCasingTag("brass", I::brass, I::brassCasing); diff --git a/src/main/java/com/simibubi/create/foundation/data/recipe/StandardRecipeGen.java b/src/main/java/com/simibubi/create/foundation/data/recipe/StandardRecipeGen.java index 6d02c4683c..2f810e1a94 100644 --- a/src/main/java/com/simibubi/create/foundation/data/recipe/StandardRecipeGen.java +++ b/src/main/java/com/simibubi/create/foundation/data/recipe/StandardRecipeGen.java @@ -121,13 +121,10 @@ public class StandardRecipeGen extends CreateRecipeProvider { .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) - .viaShaped(b -> b.define('C', AllBlocks.CARDBOARD_BLOCK.get()) - .define('S', Tags.Items.STRING) - .pattern("CCC") - .pattern("CSC") - .pattern("CCC")), + .viaShapeless(b -> b.requires(AllBlocks.CARDBOARD_BLOCK.get()) + .requires(Items.STRING)), CARDBOARD_FROM_BLOCK = create(AllItems.CARDBOARD).withSuffix("_from_block") .returns(4) diff --git a/src/main/java/com/simibubi/create/foundation/events/InputEvents.java b/src/main/java/com/simibubi/create/foundation/events/InputEvents.java index 6b59cffb32..50c52ba69f 100644 --- a/src/main/java/com/simibubi/create/foundation/events/InputEvents.java +++ b/src/main/java/com/simibubi/create/foundation/events/InputEvents.java @@ -99,11 +99,14 @@ public class InputEvents { LinkedControllerClientHandler.deactivateInLectern(); TrainRelocator.onClicked(event); - if (ChainConveyorInteractionHandler.onUse()) + if (ChainConveyorInteractionHandler.onUse()) { event.setCanceled(true); - else if (PackagePortTargetSelectionHandler.onUse()) + return; + } else if (PackagePortTargetSelectionHandler.onUse()) { event.setCanceled(true); - + return; + } + DistExecutor.unsafeRunWhenOn(Dist.CLIENT, () -> () -> { if (ChainPackageInteractionHandler.onUse()) event.setCanceled(true); diff --git a/src/main/resources/assets/create/lang/default/interface.json b/src/main/resources/assets/create/lang/default/interface.json index 7839781416..33d0330672 100644 --- a/src/main/resources/assets/create/lang/default/interface.json +++ b/src/main/resources/assets/create/lang/default/interface.json @@ -333,8 +333,10 @@ "create.clipboard.actions": "Clipboard Actions", "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.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.schematicAndQuill.dimensions": "Schematic Size: %1$sx%2$sx%3$s", diff --git a/src/main/resources/assets/create/models/block/ladder.json b/src/main/resources/assets/create/models/block/ladder.json index 16a88bd372..217a67af34 100644 --- a/src/main/resources/assets/create/models/block/ladder.json +++ b/src/main/resources/assets/create/models/block/ladder.json @@ -6,6 +6,28 @@ "particle": "create:block/ladder_andesite" }, "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", "from": [2, 0, 14], @@ -13,8 +35,8 @@ "shade": false, "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 8]}, "faces": { - "east": {"uv": [12, 0, 14, 16], "texture": "#0"}, - "west": {"uv": [14, 0, 12, 16], "texture": "#0"} + "east": {"uv": [12, 0, 14, 16], "texture": "#0", "cullface": "south"}, + "west": {"uv": [14, 0, 12, 16], "texture": "#0", "cullface": "south"} } }, { @@ -33,8 +55,8 @@ "shade": false, "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 8]}, "faces": { - "east": {"uv": [14, 0, 12, 16], "texture": "#0"}, - "west": {"uv": [12, 0, 14, 16], "texture": "#0"} + "east": {"uv": [14, 0, 12, 16], "texture": "#0", "cullface": "south"}, + "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"}, "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": [ + 0, + 1, { "name": "Ladder", "origin": [0, 0, 0], "color": 0, - "children": [0, 1] + "children": [2, 3] }, { "name": "Hoops", "origin": [0, 0, 0], "color": 0, - "children": [2, 3, 4, 5] + "children": [4, 5, 6, 7] } ] } \ No newline at end of file diff --git a/src/main/resources/assets/create/models/block/package_postbox/block_closed.json b/src/main/resources/assets/create/models/block/package_postbox/block_closed.json index 0f935812f7..35c8ef0fd0 100644 --- a/src/main/resources/assets/create/models/block/package_postbox/block_closed.json +++ b/src/main/resources/assets/create/models/block/package_postbox/block_closed.json @@ -4,7 +4,7 @@ "textures": { "0": "create:block/post_box/post_box_white", "1": "create:block/post_box/post_box_white_closed", - "particle": "create:block/post_box/post_box_white" + "particle": "#0" }, "elements": [ { diff --git a/src/main/resources/assets/create/models/block/package_postbox/block_open.json b/src/main/resources/assets/create/models/block/package_postbox/block_open.json index f348ae5f45..0faedf585a 100644 --- a/src/main/resources/assets/create/models/block/package_postbox/block_open.json +++ b/src/main/resources/assets/create/models/block/package_postbox/block_open.json @@ -1,5 +1,5 @@ { - "parent": "create:block/package_postbox/block_open", + "parent": "create:block/package_postbox/block_closed", "textures": { "1": "create:block/post_box/post_box_white_open" }