diff --git a/src/generated/resources/.cache/21763219d2ea38aa831f7b57625e5f4a64ca9c6e b/src/generated/resources/.cache/21763219d2ea38aa831f7b57625e5f4a64ca9c6e index 5af2e06..2336705 100644 --- a/src/generated/resources/.cache/21763219d2ea38aa831f7b57625e5f4a64ca9c6e +++ b/src/generated/resources/.cache/21763219d2ea38aa831f7b57625e5f4a64ca9c6e @@ -1,4 +1,4 @@ -// 1.21.1 2025-08-28T22:55:31.9498268 Tags for minecraft:block mod id lemonmates +// 1.21.1 2025-08-29T17:33:56.7538869 Tags for minecraft:block mod id lemonmates c2aeba83a0cd5589021128b260951b1f5dd5c10a data/c/tags/block/stripped_logs.json 831234b532b3190e02bdad6ca92f1c79e6e8d9e1 data/c/tags/block/stripped_woods.json ec001d932df2810d44f728a91637e46f25deb9e1 data/lemonmates/tags/block/citron_logs.json @@ -9,7 +9,7 @@ ec9fbd376a3a8309ef969352126e2a59abca981f data/minecraft/tags/block/fences.json 4b2c7e1c50af5d63714df2c3a463f8d6298a4fb6 data/minecraft/tags/block/leaves.json e3216b2b2cb6ef503aae1d6f721e6157794150fc data/minecraft/tags/block/logs.json e3216b2b2cb6ef503aae1d6f721e6157794150fc data/minecraft/tags/block/logs_that_burn.json -251aaffcf09e2cf973dba75378c3226136fed4d6 data/minecraft/tags/block/mineable/axe.json +72f59cf351e67a52e7a76b1c7172f618544e1266 data/minecraft/tags/block/mineable/axe.json 4b2c7e1c50af5d63714df2c3a463f8d6298a4fb6 data/minecraft/tags/block/mineable/hoe.json 428bc57a88557c01ea601e4bb01897c1eeec7153 data/minecraft/tags/block/overworld_natural_logs.json 7985a0cc812db01ca58f78d85c50a3410a97f55f data/minecraft/tags/block/planks.json diff --git a/src/generated/resources/.cache/3b3e690e31dfaa5a9fbd882cfd19f4a91b4da31c b/src/generated/resources/.cache/3b3e690e31dfaa5a9fbd882cfd19f4a91b4da31c index 58bb896..a204da2 100644 --- a/src/generated/resources/.cache/3b3e690e31dfaa5a9fbd882cfd19f4a91b4da31c +++ b/src/generated/resources/.cache/3b3e690e31dfaa5a9fbd882cfd19f4a91b4da31c @@ -1,4 +1,5 @@ -// 1.21.1 2025-08-28T23:00:24.2326106 Tags for minecraft:item mod id lemonmates +// 1.21.1 2025-08-29T17:33:56.7427046 Tags for minecraft:item mod id lemonmates +c2aeba83a0cd5589021128b260951b1f5dd5c10a data/c/tags/item/stripped_logs.json 831234b532b3190e02bdad6ca92f1c79e6e8d9e1 data/c/tags/item/stripped_woods.json ec001d932df2810d44f728a91637e46f25deb9e1 data/lemonmates/tags/item/citron_logs.json 13d4e7735ae53dea526fe61eb36457db27667dcc data/lemonmates/tags/item/orange_logs.json @@ -7,3 +8,5 @@ e3216b2b2cb6ef503aae1d6f721e6157794150fc data/minecraft/tags/item/logs.json e3216b2b2cb6ef503aae1d6f721e6157794150fc data/minecraft/tags/item/logs_that_burn.json 7985a0cc812db01ca58f78d85c50a3410a97f55f data/minecraft/tags/item/planks.json ceb8e6e85fd625b41c939323206d0d518844c8e5 data/minecraft/tags/item/saplings.json +28977a83d779d7fd7af8b89adc3a5209a4e816b5 data/minecraft/tags/item/slabs.json +2f3d1854ad2f7ef6e2379125d49445ead9605568 data/minecraft/tags/item/stairs.json diff --git a/src/generated/resources/.cache/59eb3dbb5f86130e09b3c62d89b9525ee01cf52d b/src/generated/resources/.cache/59eb3dbb5f86130e09b3c62d89b9525ee01cf52d index 9f1b715..f3e9047 100644 --- a/src/generated/resources/.cache/59eb3dbb5f86130e09b3c62d89b9525ee01cf52d +++ b/src/generated/resources/.cache/59eb3dbb5f86130e09b3c62d89b9525ee01cf52d @@ -1,33 +1,42 @@ -// 1.21.1 2025-08-28T05:13:31.168603 Loot Tables +// 1.21.1 2025-08-29T17:33:56.7488677 Loot Tables 7e6629cf425f2397f87b1a6c439f701aa8b4fd04 data/lemonmates/loot_table/blocks/citron_button.json 5ecfcd3e41895ce2db80738f891e13845547f945 data/lemonmates/loot_table/blocks/citron_crate.json 1126754d8c95732b55490a43313d49624d070270 data/lemonmates/loot_table/blocks/citron_door.json b2d12308036bcc246985e8013e665b7b7810c16c data/lemonmates/loot_table/blocks/citron_fence.json a4e9df613d17e651399909c970bb759be0ed8dba data/lemonmates/loot_table/blocks/citron_fence_gate.json +c0c0d0b7c5dcd85e5fde4e7d99de0cd1469faa0a data/lemonmates/loot_table/blocks/citron_hanging_sign.json 631627b8884813507bd09e83f116ea7e34831b45 data/lemonmates/loot_table/blocks/citron_leaves.json ff72613a08c9e95b9f18f82fa539f2c598372a78 data/lemonmates/loot_table/blocks/citron_log.json 035588ac3c7861f2783ca9b311bad4c1619db82b data/lemonmates/loot_table/blocks/citron_planks.json c07f881b818118808f050c7012d0b85ae330a4f5 data/lemonmates/loot_table/blocks/citron_pressure_plate.json 74845f4cdc363a70d19116c33b5aae64cb512176 data/lemonmates/loot_table/blocks/citron_sapling.json +be56f3f3d40997839e2f5cafbdd671ad138bff15 data/lemonmates/loot_table/blocks/citron_sign.json 54de9fedf3bf09a081dca6fb42154129c0a98ee2 data/lemonmates/loot_table/blocks/citron_slab.json 94e636910564078bfde457b45037b7e1c510b0e1 data/lemonmates/loot_table/blocks/citron_stairs.json 8d94faf7f574ee1ee7b15231f76cea96b24d8854 data/lemonmates/loot_table/blocks/citron_trapdoor.json +0a963f93f59f29878b6a7f16be2e9fc3c413dc81 data/lemonmates/loot_table/blocks/citron_wall_hanging_sign.json +d4e59033f364cc2b689d470b73733bcad5a931a8 data/lemonmates/loot_table/blocks/citron_wall_sign.json 4098d61de0b4bf5314926c5a4b04f366f2f7f8d2 data/lemonmates/loot_table/blocks/citron_wood.json f904d74cc3fafb07d9e23051af019f5edaebaeae data/lemonmates/loot_table/blocks/orange_button.json 8c2027370536a83e1ebc819a9b0d034c20326f33 data/lemonmates/loot_table/blocks/orange_crate.json 48e8f83773044b736f7636152a6aba42210a525e data/lemonmates/loot_table/blocks/orange_door.json 3aee55e5aa2ebea226967c06d696ecf39fa12960 data/lemonmates/loot_table/blocks/orange_fence.json 24a544198ba7ab98220c47867b166d6f930399e0 data/lemonmates/loot_table/blocks/orange_fence_gate.json +58468e7ffa4f323f799397ce9a7fc0e39bd73b2e data/lemonmates/loot_table/blocks/orange_hanging_sign.json 280dbd6bdeff16a14999ff1c769cc078ee0920fa data/lemonmates/loot_table/blocks/orange_leaves.json 2169adfc8e142ecde75d435155e298f818f96092 data/lemonmates/loot_table/blocks/orange_log.json 3437f0b97939d3a2075888532553f6caa5c5c60b data/lemonmates/loot_table/blocks/orange_planks.json b5c05da81b44fe0ad7a488af49f85d425626b020 data/lemonmates/loot_table/blocks/orange_pressure_plate.json 66bfc1d75012ad89ab97892198ad687cf2ad3660 data/lemonmates/loot_table/blocks/orange_sapling.json +cb43bf0b6d8a897f5ded0a9ffb3d1f3e098e5e0d data/lemonmates/loot_table/blocks/orange_sign.json 85787b4d616eb633a4315c0ca4629a85cf8d27b6 data/lemonmates/loot_table/blocks/orange_slab.json 986c1b33ca024906c2eee3659b535f1e388624fe data/lemonmates/loot_table/blocks/orange_stairs.json b1a9c59afdb1e57b47b56ba135b0586a7108e013 data/lemonmates/loot_table/blocks/orange_trapdoor.json +92f5da224869a39a1df0a86bbcbc8ddfd78c06d6 data/lemonmates/loot_table/blocks/orange_wall_hanging_sign.json +c843ae8c37cf280bd2af0e535da7b81203cf26d3 data/lemonmates/loot_table/blocks/orange_wall_sign.json bd82e20645f4f6f75d6862a28b3756f714d1ffed data/lemonmates/loot_table/blocks/orange_wood.json 9d624bdc7c2a4bc05639befe886bb8cb510fa878 data/lemonmates/loot_table/blocks/raspberry_bush.json +85e927b4cfd53cb81cc939fcd137b391a69a6ad4 data/lemonmates/loot_table/blocks/raspberry_crate.json f449a514381baf54e4515a0ca8f4a304d9c2735d data/lemonmates/loot_table/blocks/stripped_citron_log.json 52a1b6d1cba20cd6b102a26193248df56eb37c52 data/lemonmates/loot_table/blocks/stripped_citron_wood.json 6119e198844f5713fd685fdd8ade49f8c00a7733 data/lemonmates/loot_table/blocks/stripped_orange_log.json diff --git a/src/generated/resources/.cache/9fb1092f32d4fcbf9e061ffd718d4ec689c6c95e b/src/generated/resources/.cache/9fb1092f32d4fcbf9e061ffd718d4ec689c6c95e index 9d17c6a..0c0b643 100644 --- a/src/generated/resources/.cache/9fb1092f32d4fcbf9e061ffd718d4ec689c6c95e +++ b/src/generated/resources/.cache/9fb1092f32d4fcbf9e061ffd718d4ec689c6c95e @@ -1,4 +1,4 @@ -// 1.21.1 2025-08-28T22:50:07.6278428 Recipes +// 1.21.1 2025-08-29T17:33:56.7513773 Recipes 1d7c61d7aa66adee3bb6a9752e28e5b3481ff485 data/lemonmates/advancement/recipes/building_blocks/citron_crate.json 8c180e50e9625c1985dfc40e7be05f0293d92fd2 data/lemonmates/advancement/recipes/building_blocks/citron_planks.json eee4f4632b7c48b3af255d7aa5fac05090e88546 data/lemonmates/advancement/recipes/building_blocks/citron_slab.json @@ -9,12 +9,14 @@ cb0e74f87159d0de2e9ba582aaad66c5f9a35a23 data/lemonmates/advancement/recipes/bui d967bf8fafc67fafed7c4e9a7122e864c1508507 data/lemonmates/advancement/recipes/building_blocks/orange_slab.json acd964845aa6395650d3ad532b0e7f26414ac1f2 data/lemonmates/advancement/recipes/building_blocks/orange_stairs.json c1f895eb552cbea0adcf753ffde739cd3a862407 data/lemonmates/advancement/recipes/building_blocks/orange_wood.json +21d724d6f612079fba942adff637c6678195a1bc data/lemonmates/advancement/recipes/building_blocks/raspberry_crate.json 3b42fd00a983e446cd9c80f29425be9ce7136a63 data/lemonmates/advancement/recipes/building_blocks/stripped_citron_wood.json 413c4076a09b44ca85def5d8aac8e2c37cfefd51 data/lemonmates/advancement/recipes/building_blocks/stripped_orange_wood.json e57b95388b59618d5c42e47b2e02cc0de69b4b86 data/lemonmates/advancement/recipes/decorations/citron_fence.json 970983af8729e67ad31eb275430614a94943bd90 data/lemonmates/advancement/recipes/decorations/orange_fence.json 4479303ddbadd32d46326de55321302897b148ec data/lemonmates/advancement/recipes/misc/citron.json c2058d9cefd54d577a5fd4729619999e05153bef data/lemonmates/advancement/recipes/misc/orange.json +e9a2fe0611d96dcfaafadbb8ada78fd10586215a data/lemonmates/advancement/recipes/misc/raspberry.json 8705e703b642f9226f38b7eea60d820b32112c90 data/lemonmates/advancement/recipes/redstone/citron_button.json 88f5d881de84c5dd384ce0c3292e009440b74ab6 data/lemonmates/advancement/recipes/redstone/citron_door.json b9b463ee4a3fea1c84dc3e78179dd0d0e6667473 data/lemonmates/advancement/recipes/redstone/citron_fence_gate.json @@ -49,5 +51,7 @@ a474ee389965e67b45953f8198a823e3a68b143e data/lemonmates/recipe/orange_fence.jso 97539de8be75cd3284b9f8f82d60ef867b3d3f48 data/lemonmates/recipe/orange_stairs.json 3ee677fe14e886b3791d1ac308db25e62c062ccb data/lemonmates/recipe/orange_trapdoor.json b884e4c1a9d89dbe95138d5ea95113136e361e90 data/lemonmates/recipe/orange_wood.json +232a5e5636df063c5d4f993cf8510859234f9c1c data/lemonmates/recipe/raspberry.json +1445516a5fab144d5ab7dfed1ad3de0efa970a3c data/lemonmates/recipe/raspberry_crate.json 145218accb1ca38a0a5f92fa8c36fec665f9fb60 data/lemonmates/recipe/stripped_citron_wood.json 538d2929b9a38901bd7becd5ad38af94afe42e5a data/lemonmates/recipe/stripped_orange_wood.json diff --git a/src/generated/resources/.cache/bdae2ca466a64bf2ac620d7a02b4f8ff14c39d1b b/src/generated/resources/.cache/bdae2ca466a64bf2ac620d7a02b4f8ff14c39d1b index 01875c3..12e2a5e 100644 --- a/src/generated/resources/.cache/bdae2ca466a64bf2ac620d7a02b4f8ff14c39d1b +++ b/src/generated/resources/.cache/bdae2ca466a64bf2ac620d7a02b4f8ff14c39d1b @@ -1,33 +1,42 @@ -// 1.21.1 2025-08-28T05:13:31.1666025 Block States: lemonmates +// 1.21.1 2025-08-29T17:33:56.745869 Block States: lemonmates 505012ab48971d0061b678b0bcc09d94d2c7e0fc assets/lemonmates/blockstates/citron_button.json eca78553353a3e20b4f0dfa97e77c053aaad4298 assets/lemonmates/blockstates/citron_crate.json 7d036fe561885dffc12046056cfd5b09c1b7a8d5 assets/lemonmates/blockstates/citron_door.json ce2267023bca8bdd1b41d2aad230d8c55363d3cf assets/lemonmates/blockstates/citron_fence.json ef606854d3182b49f792c851f8fe5a72d7ad4dc9 assets/lemonmates/blockstates/citron_fence_gate.json +2ded078cdd22eef4d7bcb2ea602a3aa5700a4583 assets/lemonmates/blockstates/citron_hanging_sign.json c123b2dbd1da736e9ded394df9cc3eb36c45bbd7 assets/lemonmates/blockstates/citron_leaves.json 165297cd391dc34583b5dc79d1373579dc66441d assets/lemonmates/blockstates/citron_log.json 3a3d948e920a43ad3a089534165cf85e80e75230 assets/lemonmates/blockstates/citron_planks.json d88cb1f4887cb77d985c6cf45de2e553c050f8fa assets/lemonmates/blockstates/citron_pressure_plate.json ae54a8a33123feadc2df3b6865c3a801ac95e697 assets/lemonmates/blockstates/citron_sapling.json +460b0571d79c82dee1e35bbab6c1d89f43435b7f assets/lemonmates/blockstates/citron_sign.json 18f9164711c694afb1cf89b17df3eeb4201d4dc4 assets/lemonmates/blockstates/citron_slab.json 395f78c0bea1d1ffc115d67d34f30680b25692f0 assets/lemonmates/blockstates/citron_stairs.json 43aace20a4af9b8b885bd094866024cdf92da956 assets/lemonmates/blockstates/citron_trapdoor.json +2ded078cdd22eef4d7bcb2ea602a3aa5700a4583 assets/lemonmates/blockstates/citron_wall_hanging_sign.json +460b0571d79c82dee1e35bbab6c1d89f43435b7f assets/lemonmates/blockstates/citron_wall_sign.json a7f089d15a35fc27cc5b9cd069912f3a11963498 assets/lemonmates/blockstates/citron_wood.json 3dd07a147a027337d949cd0a8aef5fa1baa8f760 assets/lemonmates/blockstates/orange_button.json 01a64b5c967cb784a532337b31e93746ef542785 assets/lemonmates/blockstates/orange_crate.json eb48dffdbafdf5932c57b39ae65d0599c40ec104 assets/lemonmates/blockstates/orange_door.json 768a22a1401c0ff7b81118e04ec52365d9931605 assets/lemonmates/blockstates/orange_fence.json 5707106f0d8c8d8a42bc6971eed74c57ed06ba70 assets/lemonmates/blockstates/orange_fence_gate.json +8210095f5eb3e9d721140ebd41f7cc6755d984b1 assets/lemonmates/blockstates/orange_hanging_sign.json da63b2c45df09e5e82d3be0c11f305dbc5dc647f assets/lemonmates/blockstates/orange_leaves.json 0277e377ff2769adfe906667d5bb98544805000c assets/lemonmates/blockstates/orange_log.json ffcd2ff94230a7b29b7712b22a81178d8ef389ed assets/lemonmates/blockstates/orange_planks.json 74967f9d3e3a366851a847c5dd3b136deeff6be4 assets/lemonmates/blockstates/orange_pressure_plate.json 14e2d54c9086d898fb011dafff9ea6d8e2961512 assets/lemonmates/blockstates/orange_sapling.json +2d0e57ece7a507c1f3b566a9d9e0e58a4b19caba assets/lemonmates/blockstates/orange_sign.json 39bf291a6cdc1ed07fc8c045d0795c684ec86c03 assets/lemonmates/blockstates/orange_slab.json d5b5eecd1b2e2e3e2bf8ed35c9f931dc47861f3d assets/lemonmates/blockstates/orange_stairs.json 0fa3983d5125823c52c2c56d47c9c52f7c6e915b assets/lemonmates/blockstates/orange_trapdoor.json +8210095f5eb3e9d721140ebd41f7cc6755d984b1 assets/lemonmates/blockstates/orange_wall_hanging_sign.json +2d0e57ece7a507c1f3b566a9d9e0e58a4b19caba assets/lemonmates/blockstates/orange_wall_sign.json 1be8140b14a93cdd0f68a5de8005f6556351a5d3 assets/lemonmates/blockstates/orange_wood.json 52b077c9223f47c86751742b721bb57fa5cf93e5 assets/lemonmates/blockstates/raspberry_bush.json +0122edd687ac3a35eedac21e3789a88465df90fe assets/lemonmates/blockstates/raspberry_crate.json f587f63c6bee598521190d56ded3fe7b71ad6a20 assets/lemonmates/blockstates/stripped_citron_log.json e45465b7ec3f153de3b11d0a51ae66415d4e68bd assets/lemonmates/blockstates/stripped_citron_wood.json 50130c2e0f6a85c49dd5d14e209e36e32aad3c4f assets/lemonmates/blockstates/stripped_orange_log.json @@ -49,6 +58,7 @@ a240bef7e975931fceda8f16c07654731146dea6 assets/lemonmates/models/block/citron_f 1507f81894253031fc19e827bfc2d7f52a7d6a41 assets/lemonmates/models/block/citron_fence_gate_wall_open.json 2c0f984aa2fce774391bd77c02707989f3971df3 assets/lemonmates/models/block/citron_fence_post.json 88a5672ffa6ca60237df4f0e66f99107e9ce7b10 assets/lemonmates/models/block/citron_fence_side.json +32f1634f94cac72635120761b335abc3fb9dc5e6 assets/lemonmates/models/block/citron_hanging_sign.json 6eac8310b28fce4f2a610b1eca45b1133712f72e assets/lemonmates/models/block/citron_leaves.json 2bc887dbfee98eeca7625f2342760e3b31508038 assets/lemonmates/models/block/citron_log.json fce6ed472142c9547a9a713090e6c2172bf1a45b assets/lemonmates/models/block/citron_log_horizontal.json @@ -56,6 +66,7 @@ fce6ed472142c9547a9a713090e6c2172bf1a45b assets/lemonmates/models/block/citron_l f4b56cdb7a9b4103cebfb66d0da8c7222ada4cf3 assets/lemonmates/models/block/citron_pressure_plate.json d0d99d5519817eeb8c9d93d04df55f322569c54a assets/lemonmates/models/block/citron_pressure_plate_down.json cb71db31deb5c8df968eadcf9a9e275cb31383c7 assets/lemonmates/models/block/citron_sapling.json +32f1634f94cac72635120761b335abc3fb9dc5e6 assets/lemonmates/models/block/citron_sign.json 4c773671751ff70f580926b02d0a224405d0da45 assets/lemonmates/models/block/citron_slab.json 5f72e53c9dbc4ec512d9f5a675031b7f8cc04e24 assets/lemonmates/models/block/citron_slab_top.json d5e9dcc7966f8c9fb9e1780e0b5d44c7230a39e2 assets/lemonmates/models/block/citron_stairs.json @@ -83,6 +94,7 @@ dff7d7d250f11f3e330ac8154db9dffc990caf60 assets/lemonmates/models/block/orange_d 20eacb611a84665828278d4cb4a269bea1f23cba assets/lemonmates/models/block/orange_fence_gate_wall_open.json 5a2a27c6690166e886d2dbb843ac83d3b8716926 assets/lemonmates/models/block/orange_fence_post.json a979f5f8785d2cf48dbf3f6b1dd952df024e3210 assets/lemonmates/models/block/orange_fence_side.json +679ecbfd6cf5bf5389e413d1a4e975ee7b0673d5 assets/lemonmates/models/block/orange_hanging_sign.json b50654380ac4f2c3f9e54b9223743260b51cec0b assets/lemonmates/models/block/orange_leaves.json 3570c189863c93efc6efc2b53022386e08690c71 assets/lemonmates/models/block/orange_log.json d2348401d8e8a24b840ce1d0aa5b59f3d02ae5eb assets/lemonmates/models/block/orange_log_horizontal.json @@ -90,6 +102,7 @@ ef9dcd9fd419478fa5f0a9d444c0470a98185d9b assets/lemonmates/models/block/orange_p 95a6ad96664a4325ac9e1bb08fd03b05c2c831b5 assets/lemonmates/models/block/orange_pressure_plate.json fafbc0bd36235f0f6a7c68d56d5e31b6b2202c31 assets/lemonmates/models/block/orange_pressure_plate_down.json 61a515dbe696c5af3ad23d2c2f9057abca2f84e5 assets/lemonmates/models/block/orange_sapling.json +32f1634f94cac72635120761b335abc3fb9dc5e6 assets/lemonmates/models/block/orange_sign.json 6e52508b12c519db324c4ac0e75e4453efb5a5b3 assets/lemonmates/models/block/orange_slab.json 108c1af2e217326695dcbe077e3838bf3456d276 assets/lemonmates/models/block/orange_slab_top.json 47f3db9388ad5dc1765758f8346aba6828d4295e assets/lemonmates/models/block/orange_stairs.json @@ -104,6 +117,7 @@ e16ee299788667375dab8556352deaac8982f2d6 assets/lemonmates/models/block/raspberr fe1fcc81eec9d9c2ba07a1d4c786aee89bc3ed22 assets/lemonmates/models/block/raspberry_bush_stage1.json fe9fdc56cb96a3188af1444398bac26ab6e5dc5e assets/lemonmates/models/block/raspberry_bush_stage2.json 55d4bde2f1ecec00411f63fa127aab486cd20d65 assets/lemonmates/models/block/raspberry_bush_stage3.json +c8075a053275539e0f679a4c0caa4e0702bd4161 assets/lemonmates/models/block/raspberry_crate.json e418a25ba457640bc57ece030c8028973b6bcf13 assets/lemonmates/models/block/stripped_citron_log.json 2823d53cbb414bac07baad851c54545c601011ec assets/lemonmates/models/block/stripped_citron_log_horizontal.json 234e73f527fee028c8f09ef67e40ddff0bc93833 assets/lemonmates/models/block/stripped_citron_wood.json @@ -132,6 +146,7 @@ a9bc7f0d0da2a6edfeddb538c845db3c2ddafc8a assets/lemonmates/models/item/orange_le a9a5eb5f125ece6e9ceeea99b02425e88a46f31f assets/lemonmates/models/item/orange_stairs.json 7c12c0c4690ba1cb6354bbda6235ddfcdff85b64 assets/lemonmates/models/item/orange_trapdoor.json 70127860d587990ca541397e39577e85a168985b assets/lemonmates/models/item/orange_wood.json +754d3facfcb132f98f79464cd8db26fdd19eb4f4 assets/lemonmates/models/item/raspberry_crate.json 19d0190c4da5d9dc3b2df13b677f178509dc87cd assets/lemonmates/models/item/stripped_citron_log.json 6e62e3c3d8eced0f21579b1054d4eb2a31705444 assets/lemonmates/models/item/stripped_citron_wood.json 913b3056c6ab389826a50d8d00a81e6913b9f362 assets/lemonmates/models/item/stripped_orange_log.json diff --git a/src/generated/resources/.cache/f6b42ca1cd503fe26fe76afc2157fd76c4c99038 b/src/generated/resources/.cache/f6b42ca1cd503fe26fe76afc2157fd76c4c99038 index 6f34800..5a2d8ad 100644 --- a/src/generated/resources/.cache/f6b42ca1cd503fe26fe76afc2157fd76c4c99038 +++ b/src/generated/resources/.cache/f6b42ca1cd503fe26fe76afc2157fd76c4c99038 @@ -1,12 +1,16 @@ -// 1.21.1 2025-08-28T05:13:31.1706027 Item Models: lemonmates +// 1.21.1 2025-08-29T17:33:56.7528817 Item Models: lemonmates 1d65eec8c3227815848450e8c5d87f5bd0cd3c32 assets/lemonmates/models/item/citron.json 3589c8bf67233cfea9a9a5e0407c4168a9f99d7e assets/lemonmates/models/item/citron_button.json 258c99a08a8e797e91253ccc4b30e1754df23c2a assets/lemonmates/models/item/citron_door.json 2619c0a6226d0b62f91c6074d209358c7280c268 assets/lemonmates/models/item/citron_fence.json +0b476a32185240fe6706d3e31eefef67ffb406c7 assets/lemonmates/models/item/citron_hanging_sign.json a79067c13f8f61f2773c10c67451c64307bac6b0 assets/lemonmates/models/item/citron_sapling.json +9f1c52c417b907ad9d92f751f22ee86dc3c4e1eb assets/lemonmates/models/item/citron_sign.json e9c347f3336218870283425b87f389d6e2ee836c assets/lemonmates/models/item/orange.json a5e34ba1fef7e8c745423a65d4f527bf6405364a assets/lemonmates/models/item/orange_button.json af17e2972f3855dc7ae6987fd45ad9d85fa2a9c5 assets/lemonmates/models/item/orange_door.json 91de5070707506596975216f1c76c4989a4f2150 assets/lemonmates/models/item/orange_fence.json +c9d64f2902642ba2c8425b24fa57beee3abc7204 assets/lemonmates/models/item/orange_hanging_sign.json fb91a796f34d6d6b6e16a52d71c1678b091007c5 assets/lemonmates/models/item/orange_sapling.json +dbddedbfbcc9a4033ba0fcb909b3acc80be4ee98 assets/lemonmates/models/item/orange_sign.json f1418197725e7fa91216d57cfb49b5a7c6b76c06 assets/lemonmates/models/item/raspberry.json diff --git a/src/generated/resources/assets/lemonmates/blockstates/citron_hanging_sign.json b/src/generated/resources/assets/lemonmates/blockstates/citron_hanging_sign.json new file mode 100644 index 0000000..648b4f1 --- /dev/null +++ b/src/generated/resources/assets/lemonmates/blockstates/citron_hanging_sign.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "lemonmates:block/citron_hanging_sign" + } + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/lemonmates/blockstates/citron_sign.json b/src/generated/resources/assets/lemonmates/blockstates/citron_sign.json new file mode 100644 index 0000000..253ff5d --- /dev/null +++ b/src/generated/resources/assets/lemonmates/blockstates/citron_sign.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "lemonmates:block/citron_sign" + } + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/lemonmates/blockstates/citron_wall_hanging_sign.json b/src/generated/resources/assets/lemonmates/blockstates/citron_wall_hanging_sign.json new file mode 100644 index 0000000..648b4f1 --- /dev/null +++ b/src/generated/resources/assets/lemonmates/blockstates/citron_wall_hanging_sign.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "lemonmates:block/citron_hanging_sign" + } + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/lemonmates/blockstates/citron_wall_sign.json b/src/generated/resources/assets/lemonmates/blockstates/citron_wall_sign.json new file mode 100644 index 0000000..253ff5d --- /dev/null +++ b/src/generated/resources/assets/lemonmates/blockstates/citron_wall_sign.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "lemonmates:block/citron_sign" + } + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/lemonmates/blockstates/orange_hanging_sign.json b/src/generated/resources/assets/lemonmates/blockstates/orange_hanging_sign.json new file mode 100644 index 0000000..1e3d816 --- /dev/null +++ b/src/generated/resources/assets/lemonmates/blockstates/orange_hanging_sign.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "lemonmates:block/orange_hanging_sign" + } + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/lemonmates/blockstates/orange_sign.json b/src/generated/resources/assets/lemonmates/blockstates/orange_sign.json new file mode 100644 index 0000000..82bb155 --- /dev/null +++ b/src/generated/resources/assets/lemonmates/blockstates/orange_sign.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "lemonmates:block/orange_sign" + } + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/lemonmates/blockstates/orange_wall_hanging_sign.json b/src/generated/resources/assets/lemonmates/blockstates/orange_wall_hanging_sign.json new file mode 100644 index 0000000..1e3d816 --- /dev/null +++ b/src/generated/resources/assets/lemonmates/blockstates/orange_wall_hanging_sign.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "lemonmates:block/orange_hanging_sign" + } + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/lemonmates/blockstates/orange_wall_sign.json b/src/generated/resources/assets/lemonmates/blockstates/orange_wall_sign.json new file mode 100644 index 0000000..82bb155 --- /dev/null +++ b/src/generated/resources/assets/lemonmates/blockstates/orange_wall_sign.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "lemonmates:block/orange_sign" + } + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/lemonmates/models/block/citron_hanging_sign.json b/src/generated/resources/assets/lemonmates/models/block/citron_hanging_sign.json new file mode 100644 index 0000000..4b3311e --- /dev/null +++ b/src/generated/resources/assets/lemonmates/models/block/citron_hanging_sign.json @@ -0,0 +1,5 @@ +{ + "textures": { + "particle": "lemonmates:block/citron_planks" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/lemonmates/models/block/citron_sign.json b/src/generated/resources/assets/lemonmates/models/block/citron_sign.json new file mode 100644 index 0000000..4b3311e --- /dev/null +++ b/src/generated/resources/assets/lemonmates/models/block/citron_sign.json @@ -0,0 +1,5 @@ +{ + "textures": { + "particle": "lemonmates:block/citron_planks" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/lemonmates/models/block/orange_hanging_sign.json b/src/generated/resources/assets/lemonmates/models/block/orange_hanging_sign.json new file mode 100644 index 0000000..e44c6f0 --- /dev/null +++ b/src/generated/resources/assets/lemonmates/models/block/orange_hanging_sign.json @@ -0,0 +1,5 @@ +{ + "textures": { + "particle": "lemonmates:block/orange_planks" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/lemonmates/models/block/orange_sign.json b/src/generated/resources/assets/lemonmates/models/block/orange_sign.json new file mode 100644 index 0000000..4b3311e --- /dev/null +++ b/src/generated/resources/assets/lemonmates/models/block/orange_sign.json @@ -0,0 +1,5 @@ +{ + "textures": { + "particle": "lemonmates:block/citron_planks" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/lemonmates/models/item/citron_hanging_sign.json b/src/generated/resources/assets/lemonmates/models/item/citron_hanging_sign.json new file mode 100644 index 0000000..ec161d7 --- /dev/null +++ b/src/generated/resources/assets/lemonmates/models/item/citron_hanging_sign.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "lemonmates:item/citron_hanging_sign" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/lemonmates/models/item/citron_juice.json b/src/generated/resources/assets/lemonmates/models/item/citron_juice.json deleted file mode 100644 index 205e817..0000000 --- a/src/generated/resources/assets/lemonmates/models/item/citron_juice.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "parent": "minecraft:item/generated", - "textures": { - "layer0": "lemonmates:item/juice_fluid/citron", - "layer1": "lemonmates:item/juice_glass" - } -} \ No newline at end of file diff --git a/src/generated/resources/assets/lemonmates/models/item/citron_sign.json b/src/generated/resources/assets/lemonmates/models/item/citron_sign.json new file mode 100644 index 0000000..1f985d7 --- /dev/null +++ b/src/generated/resources/assets/lemonmates/models/item/citron_sign.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "lemonmates:item/citron_sign" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/lemonmates/models/item/orange_hanging_sign.json b/src/generated/resources/assets/lemonmates/models/item/orange_hanging_sign.json new file mode 100644 index 0000000..d61bee9 --- /dev/null +++ b/src/generated/resources/assets/lemonmates/models/item/orange_hanging_sign.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "lemonmates:item/orange_hanging_sign" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/lemonmates/models/item/orange_juice.json b/src/generated/resources/assets/lemonmates/models/item/orange_juice.json deleted file mode 100644 index b063d3e..0000000 --- a/src/generated/resources/assets/lemonmates/models/item/orange_juice.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "parent": "minecraft:item/generated", - "textures": { - "layer0": "lemonmates:item/juice_fluid/orange", - "layer1": "lemonmates:item/juice_glass" - } -} \ No newline at end of file diff --git a/src/generated/resources/assets/lemonmates/models/item/orange_sign.json b/src/generated/resources/assets/lemonmates/models/item/orange_sign.json new file mode 100644 index 0000000..b3d122f --- /dev/null +++ b/src/generated/resources/assets/lemonmates/models/item/orange_sign.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "lemonmates:item/orange_sign" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/lemonmates/models/item/raspberry_juice.json b/src/generated/resources/assets/lemonmates/models/item/raspberry_juice.json deleted file mode 100644 index 0d8631c..0000000 --- a/src/generated/resources/assets/lemonmates/models/item/raspberry_juice.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "parent": "minecraft:item/generated", - "textures": { - "layer0": "lemonmates:item/juice_fluid/raspberry", - "layer1": "lemonmates:item/juice_glass" - } -} \ No newline at end of file diff --git a/src/generated/resources/data/lemonmates/advancement/lemonmates_root.json b/src/generated/resources/data/lemonmates/advancement/lemonmates_root.json deleted file mode 100644 index e69de29..0000000 diff --git a/src/generated/resources/data/lemonmates/advancement/recipes/building_blocks/raspberry_crate.json b/src/generated/resources/data/lemonmates/advancement/recipes/building_blocks/raspberry_crate.json new file mode 100644 index 0000000..8baf978 --- /dev/null +++ b/src/generated/resources/data/lemonmates/advancement/recipes/building_blocks/raspberry_crate.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_raspberry": { + "conditions": { + "items": [ + { + "items": "lemonmates:raspberry" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "lemonmates:raspberry_crate" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_raspberry" + ] + ], + "rewards": { + "recipes": [ + "lemonmates:raspberry_crate" + ] + } +} \ No newline at end of file diff --git a/src/generated/resources/data/lemonmates/advancement/recipes/misc/raspberry.json b/src/generated/resources/data/lemonmates/advancement/recipes/misc/raspberry.json new file mode 100644 index 0000000..5f52dc9 --- /dev/null +++ b/src/generated/resources/data/lemonmates/advancement/recipes/misc/raspberry.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_raspberry": { + "conditions": { + "items": [ + { + "items": "lemonmates:raspberry" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "lemonmates:raspberry" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_raspberry" + ] + ], + "rewards": { + "recipes": [ + "lemonmates:raspberry" + ] + } +} \ No newline at end of file diff --git a/src/generated/resources/data/lemonmates/advancement/watermelon_lemonade.json b/src/generated/resources/data/lemonmates/advancement/watermelon_lemonade.json deleted file mode 100644 index e69de29..0000000 diff --git a/src/generated/resources/data/lemonmates/loot_table/blocks/citron_hanging_sign.json b/src/generated/resources/data/lemonmates/loot_table/blocks/citron_hanging_sign.json new file mode 100644 index 0000000..27e145b --- /dev/null +++ b/src/generated/resources/data/lemonmates/loot_table/blocks/citron_hanging_sign.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "lemonmates:citron_hanging_sign" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "lemonmates:blocks/citron_hanging_sign" +} \ No newline at end of file diff --git a/src/generated/resources/data/lemonmates/loot_table/blocks/citron_sign.json b/src/generated/resources/data/lemonmates/loot_table/blocks/citron_sign.json new file mode 100644 index 0000000..2ccacff --- /dev/null +++ b/src/generated/resources/data/lemonmates/loot_table/blocks/citron_sign.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "lemonmates:citron_sign" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "lemonmates:blocks/citron_sign" +} \ No newline at end of file diff --git a/src/generated/resources/data/lemonmates/loot_table/blocks/citron_wall_hanging_sign.json b/src/generated/resources/data/lemonmates/loot_table/blocks/citron_wall_hanging_sign.json new file mode 100644 index 0000000..32d4770 --- /dev/null +++ b/src/generated/resources/data/lemonmates/loot_table/blocks/citron_wall_hanging_sign.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "lemonmates:citron_hanging_sign" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "lemonmates:blocks/citron_wall_hanging_sign" +} \ No newline at end of file diff --git a/src/generated/resources/data/lemonmates/loot_table/blocks/citron_wall_sign.json b/src/generated/resources/data/lemonmates/loot_table/blocks/citron_wall_sign.json new file mode 100644 index 0000000..e563ceb --- /dev/null +++ b/src/generated/resources/data/lemonmates/loot_table/blocks/citron_wall_sign.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "lemonmates:citron_sign" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "lemonmates:blocks/citron_wall_sign" +} \ No newline at end of file diff --git a/src/generated/resources/data/lemonmates/loot_table/blocks/orange_hanging_sign.json b/src/generated/resources/data/lemonmates/loot_table/blocks/orange_hanging_sign.json new file mode 100644 index 0000000..281e258 --- /dev/null +++ b/src/generated/resources/data/lemonmates/loot_table/blocks/orange_hanging_sign.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "lemonmates:orange_hanging_sign" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "lemonmates:blocks/orange_hanging_sign" +} \ No newline at end of file diff --git a/src/generated/resources/data/lemonmates/loot_table/blocks/orange_sign.json b/src/generated/resources/data/lemonmates/loot_table/blocks/orange_sign.json new file mode 100644 index 0000000..5c15359 --- /dev/null +++ b/src/generated/resources/data/lemonmates/loot_table/blocks/orange_sign.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "lemonmates:orange_sign" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "lemonmates:blocks/orange_sign" +} \ No newline at end of file diff --git a/src/generated/resources/data/lemonmates/loot_table/blocks/orange_wall_hanging_sign.json b/src/generated/resources/data/lemonmates/loot_table/blocks/orange_wall_hanging_sign.json new file mode 100644 index 0000000..f7e52db --- /dev/null +++ b/src/generated/resources/data/lemonmates/loot_table/blocks/orange_wall_hanging_sign.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "lemonmates:orange_hanging_sign" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "lemonmates:blocks/orange_wall_hanging_sign" +} \ No newline at end of file diff --git a/src/generated/resources/data/lemonmates/loot_table/blocks/orange_wall_sign.json b/src/generated/resources/data/lemonmates/loot_table/blocks/orange_wall_sign.json new file mode 100644 index 0000000..96dcc5e --- /dev/null +++ b/src/generated/resources/data/lemonmates/loot_table/blocks/orange_wall_sign.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "lemonmates:orange_sign" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "lemonmates:blocks/orange_wall_sign" +} \ No newline at end of file diff --git a/src/generated/resources/data/lemonmates/loot_table/blocks/raspberry_crate.json b/src/generated/resources/data/lemonmates/loot_table/blocks/raspberry_crate.json new file mode 100644 index 0000000..6bc10b3 --- /dev/null +++ b/src/generated/resources/data/lemonmates/loot_table/blocks/raspberry_crate.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "lemonmates:raspberry_crate" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "lemonmates:blocks/raspberry_crate" +} \ No newline at end of file diff --git a/src/generated/resources/data/lemonmates/recipe/raspberry.json b/src/generated/resources/data/lemonmates/recipe/raspberry.json new file mode 100644 index 0000000..86b0f66 --- /dev/null +++ b/src/generated/resources/data/lemonmates/recipe/raspberry.json @@ -0,0 +1,13 @@ +{ + "type": "minecraft:crafting_shapeless", + "category": "misc", + "ingredients": [ + { + "item": "lemonmates:raspberry_crate" + } + ], + "result": { + "count": 9, + "id": "lemonmates:raspberry" + } +} \ No newline at end of file diff --git a/src/generated/resources/data/lemonmates/recipe/raspberry_crate.json b/src/generated/resources/data/lemonmates/recipe/raspberry_crate.json new file mode 100644 index 0000000..05a8842 --- /dev/null +++ b/src/generated/resources/data/lemonmates/recipe/raspberry_crate.json @@ -0,0 +1,18 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "key": { + "#": { + "item": "lemonmates:raspberry" + } + }, + "pattern": [ + "###", + "###", + "###" + ], + "result": { + "count": 1, + "id": "lemonmates:raspberry_crate" + } +} \ No newline at end of file diff --git a/src/generated/resources/data/minecraft/tags/block/mineable/axe.json b/src/generated/resources/data/minecraft/tags/block/mineable/axe.json index eb31f1e..a86731b 100644 --- a/src/generated/resources/data/minecraft/tags/block/mineable/axe.json +++ b/src/generated/resources/data/minecraft/tags/block/mineable/axe.json @@ -2,6 +2,7 @@ "values": [ "lemonmates:orange_planks", "lemonmates:orange_crate", + "lemonmates:raspberry_crate", "lemonmates:citron_planks", "lemonmates:citron_crate" ] diff --git a/src/generated/resources/data/minecraft/tags/item/slabs.json b/src/generated/resources/data/minecraft/tags/item/slabs.json new file mode 100644 index 0000000..b337cc2 --- /dev/null +++ b/src/generated/resources/data/minecraft/tags/item/slabs.json @@ -0,0 +1,6 @@ +{ + "values": [ + "lemonmates:orange_slab", + "lemonmates:citron_slab" + ] +} \ No newline at end of file diff --git a/src/generated/resources/data/minecraft/tags/item/stairs.json b/src/generated/resources/data/minecraft/tags/item/stairs.json new file mode 100644 index 0000000..6553399 --- /dev/null +++ b/src/generated/resources/data/minecraft/tags/item/stairs.json @@ -0,0 +1,6 @@ +{ + "values": [ + "lemonmates:orange_stairs", + "lemonmates:citron_stairs" + ] +} \ No newline at end of file diff --git a/src/main/java/net/doppelr/lemonmates/AllCreativeModeTabs.java b/src/main/java/net/doppelr/lemonmates/AllCreativeModeTabs.java index 6df958f..b9f3c72 100644 --- a/src/main/java/net/doppelr/lemonmates/AllCreativeModeTabs.java +++ b/src/main/java/net/doppelr/lemonmates/AllCreativeModeTabs.java @@ -107,6 +107,8 @@ public class AllCreativeModeTabs { output.accept(ModItems.RASPBERRY_JUICE); // Citron Wood Stuffs + output.accept(ModBlocks.CITRON_SAPLING); + output.accept(ModBlocks.CITRON_LEAVES); output.accept(ModBlocks.CITRON_LOG); output.accept(ModBlocks.CITRON_WOOD); output.accept(ModBlocks.STRIPPED_CITRON_LOG); @@ -120,10 +122,13 @@ public class AllCreativeModeTabs { output.accept(ModBlocks.CITRON_TRAPDOOR); output.accept(ModBlocks.CITRON_PRESSURE_PLATE); output.accept(ModBlocks.CITRON_BUTTON); - output.accept(ModBlocks.CITRON_LEAVES); - output.accept(ModBlocks.CITRON_SAPLING); + output.accept(ModBlocks.CITRON_SIGN); + output.accept(ModItems.CITRON_SIGN); + output.accept(ModItems.CITRON_HANGING_SIGN); // Orange Wood Stuffs + output.accept(ModBlocks.ORANGE_SAPLING); + output.accept(ModBlocks.ORANGE_LEAVES); output.accept(ModBlocks.ORANGE_LOG); output.accept(ModBlocks.ORANGE_WOOD); output.accept(ModBlocks.STRIPPED_ORANGE_LOG); @@ -137,8 +142,8 @@ public class AllCreativeModeTabs { output.accept(ModBlocks.ORANGE_TRAPDOOR); output.accept(ModBlocks.ORANGE_PRESSURE_PLATE); output.accept(ModBlocks.ORANGE_BUTTON); - output.accept(ModBlocks.ORANGE_LEAVES); - output.accept(ModBlocks.ORANGE_SAPLING); + output.accept(ModItems.ORANGE_SIGN); + output.accept(ModItems.ORANGE_HANGING_SIGN); }) .build() ); diff --git a/src/main/java/net/doppelr/lemonmates/AllFluids.java b/src/main/java/net/doppelr/lemonmates/AllFluids.java deleted file mode 100644 index a250a27..0000000 --- a/src/main/java/net/doppelr/lemonmates/AllFluids.java +++ /dev/null @@ -1,265 +0,0 @@ -package net.doppelr.lemonmates; - -import java.util.function.Consumer; -import java.util.function.Supplier; - -import javax.annotation.Nullable; - -import org.jetbrains.annotations.NotNull; -import org.joml.Vector3f; - -import com.mojang.blaze3d.shaders.FogShape; -import com.mojang.blaze3d.systems.RenderSystem; -import com.simibubi.create.content.decoration.palettes.AllPaletteStoneTypes; -import com.simibubi.create.content.fluids.VirtualFluid; -import com.simibubi.create.content.fluids.potion.PotionFluid; -import com.simibubi.create.content.fluids.potion.PotionFluid.PotionFluidType; -import com.simibubi.create.foundation.data.CreateRegistrate; -import com.simibubi.create.infrastructure.config.AllConfigs; -import com.tterrag.registrate.builders.FluidBuilder.FluidTypeFactory; -import com.tterrag.registrate.util.entry.FluidEntry; - -import net.createmod.catnip.theme.Color; -import net.minecraft.client.Camera; -import net.minecraft.client.multiplayer.ClientLevel; -import net.minecraft.client.renderer.FogRenderer.FogMode; -import net.minecraft.core.BlockPos; -import net.minecraft.core.dispenser.BlockSource; -import net.minecraft.core.dispenser.DefaultDispenseItemBehavior; -import net.minecraft.core.dispenser.DispenseItemBehavior; -import net.minecraft.resources.ResourceLocation; -import net.minecraft.world.item.BucketItem; -import net.minecraft.world.item.DispensibleContainerItem; -import net.minecraft.world.item.ItemStack; -import net.minecraft.world.item.Items; -import net.minecraft.world.level.BlockAndTintGetter; -import net.minecraft.world.level.Level; -import net.minecraft.world.level.block.Blocks; -import net.minecraft.world.level.block.DispenserBlock; -import net.minecraft.world.level.block.state.BlockState; -import net.minecraft.world.level.material.Fluid; -import net.minecraft.world.level.material.FluidState; -import net.minecraft.world.level.material.MapColor; - -import net.neoforged.neoforge.client.extensions.common.IClientFluidTypeExtensions; -import net.neoforged.neoforge.common.NeoForgeMod; -import net.neoforged.neoforge.common.Tags; -import net.neoforged.neoforge.fluids.BaseFlowingFluid; -import net.neoforged.neoforge.fluids.FluidInteractionRegistry; -import net.neoforged.neoforge.fluids.FluidInteractionRegistry.InteractionInformation; -import net.neoforged.neoforge.fluids.FluidStack; -import net.neoforged.neoforge.fluids.FluidType; - -import static net.doppelr.lemonmates.LemonMates.REGISTRATE; - - -public class AllFluids { - /*public static final FluidEntry WATERMELON_LEMONADE_FLUID = - REGISTRATE.standardFluid("watermelon_lemonade_fluid", - ) - .properties(b -> b.viscosity(1500) - .canExtinguish(true) - .canHydrate(true) - .density(1500)) - .fluidProperties(p -> p.levelDecreasePerBlock(2) - .tickRate(25) - .slopeFindDistance(3) - .explosionResistance(100f)) - .source(BaseFlowingFluid.Source::new) - .bucket() - .register();*/ - public static final FluidEntry WATERMELON_LEMONADE_FLUID = - REGISTRATE.standardFluid("watermelon_lemonade_fluid", - SolidRenderedPlaceableFluidType.create(0xEAAE2F, - () -> 1f / 8f * AllConfigs.client().honeyTransparencyMultiplier.getF())) - .lang("Watermelon Lemonade") - .properties(b -> b.viscosity(2000) - .density(1400)) - .fluidProperties(p -> p.levelDecreasePerBlock(2) - .tickRate(25) - .slopeFindDistance(3) - .explosionResistance(100f)) - .tag(Tags.Fluids.HONEY) - .source(BaseFlowingFluid.Source::new) - .block() - .properties(p -> p.mapColor(MapColor.TERRACOTTA_RED)) - .build() - .bucket() - .onRegister(AllFluids::registerFluidDispenseBehavior) - //.tag(Tags.Items.BUCKETS, AllTags.commonItemTag("buckets/honey")) - .build() - .register(); - - public static void register() { - - } - - /*public static void registerFluidInteractions() { - final BlockState BLOCK = testosteroneModBlocks.AEQUALIS.get().defaultBlockState(); - - final ResourceLocation estrogenFluidId = new ResourceLocation("estrogen", "liquid_estrogen"); - - final @Nullable Fluid estrogenFluid = ForgeRegistries.FLUIDS.getValue(estrogenFluidId); - - if (estrogenFluid != Fluids.EMPTY) { - FluidInteractionRegistry.addInteraction(estrogenFluid.getFluidType(), new FluidInteractionRegistry.InteractionInformation( - WATERMELON_LEMONADE_FLUID.get().getFluidType(), - fluidState -> BLOCK - )); - - FluidInteractionRegistry.addInteraction(TESTOSTERONE_FLUID.get().getFluidType(), new FluidInteractionRegistry.InteractionInformation( - estrogenFluid.getFluidType(), - fluidState -> BLOCK - )); - } - - - FluidInteractionRegistry.addInteraction(net.mifort.testosterone.fluids.AllFluids.ESTRONE_FLUID.getType(), new FluidInteractionRegistry.InteractionInformation( - TESTOSTERONE_FLUID.get().getFluidType(), - fluidState -> BLOCK - )); - - FluidInteractionRegistry.addInteraction(TESTOSTERONE_FLUID.get().getFluidType(), new FluidInteractionRegistry.InteractionInformation( - net.mifort.testosterone.fluids.AllFluids.ESTRONE_FLUID.getType(), - fluidState -> BLOCK - )); - - } */ - - private static final DispenseItemBehavior DEFAULT = new DefaultDispenseItemBehavior(); - private static final DispenseItemBehavior DISPENSE_FLUID = new DefaultDispenseItemBehavior(){ - @Override - protected ItemStack execute(BlockSource pSource, ItemStack pStack) { - DispensibleContainerItem dispensibleContainerItem = (DispensibleContainerItem) pStack.getItem(); - BlockPos pos = pSource.pos().relative(pSource.state().getValue(DispenserBlock.FACING)); - Level level = pSource.level(); - if (dispensibleContainerItem.emptyContents(null, level, pos, null, pStack)) { - return new ItemStack(Items.BUCKET); - } - return DEFAULT.dispense(pSource, pStack); - } - }; - - private static void registerFluidDispenseBehavior(BucketItem bucket) { - DispenserBlock.registerBehavior(bucket, DISPENSE_FLUID); - } - - public static abstract class TintedFluidType extends FluidType { - - protected static final int NO_TINT = 0xffffffff; - private final ResourceLocation stillTexture; - private final ResourceLocation flowingTexture; - - public TintedFluidType(Properties properties, ResourceLocation stillTexture, ResourceLocation flowingTexture) { - super(properties); - this.stillTexture = stillTexture; - this.flowingTexture = flowingTexture; - } - - @Override - public void initializeClient(Consumer consumer) { - consumer.accept(new IClientFluidTypeExtensions() { - - @Override - public ResourceLocation getStillTexture() { - return stillTexture; - } - - @Override - public ResourceLocation getFlowingTexture() { - return flowingTexture; - } - - @Override - public int getTintColor(FluidStack stack) { - return TintedFluidType.this.getTintColor(stack); - } - - @Override - public int getTintColor(FluidState state, BlockAndTintGetter getter, BlockPos pos) { - return TintedFluidType.this.getTintColor(state, getter, pos); - } - - @Override - public @NotNull Vector3f modifyFogColor(Camera camera, float partialTick, ClientLevel level, - int renderDistance, float darkenWorldAmount, Vector3f fluidFogColor) { - Vector3f customFogColor = TintedFluidType.this.getCustomFogColor(); - return customFogColor == null ? fluidFogColor : customFogColor; - } - - @Override - public void modifyFogRender(Camera camera, FogMode mode, float renderDistance, float partialTick, - float nearDistance, float farDistance, FogShape shape) { - float modifier = TintedFluidType.this.getFogDistanceModifier(); - float baseWaterFog = 96.0f; - if (modifier != 1f) { - RenderSystem.setShaderFogShape(FogShape.CYLINDER); - RenderSystem.setShaderFogStart(-8); - RenderSystem.setShaderFogEnd(baseWaterFog * modifier); - } - } - - }); - } - - protected abstract int getTintColor(FluidStack stack); - - protected abstract int getTintColor(FluidState state, BlockAndTintGetter getter, BlockPos pos); - - protected Vector3f getCustomFogColor() { - return null; - } - - protected float getFogDistanceModifier() { - return 1f; - } - - } - - private static class SolidRenderedPlaceableFluidType extends TintedFluidType { - - private Vector3f fogColor; - private Supplier fogDistance; - - public static FluidTypeFactory create(int fogColor, Supplier fogDistance) { - return (p, s, f) -> { - SolidRenderedPlaceableFluidType fluidType = new SolidRenderedPlaceableFluidType(p, s, f); - fluidType.fogColor = new Color(fogColor, false).asVectorF(); - fluidType.fogDistance = fogDistance; - return fluidType; - }; - } - - private SolidRenderedPlaceableFluidType(Properties properties, ResourceLocation stillTexture, - ResourceLocation flowingTexture) { - super(properties, stillTexture, flowingTexture); - } - - @Override - protected int getTintColor(FluidStack stack) { - return NO_TINT; - } - - /* - * Removing alpha from tint prevents optifine from forcibly applying biome - * colors to modded fluids (this workaround only works for fluids in the solid - * render layer) - */ - @Override - public int getTintColor(FluidState state, BlockAndTintGetter world, BlockPos pos) { - return 0x00ffffff; - } - - @Override - protected Vector3f getCustomFogColor() { - return fogColor; - } - - @Override - protected float getFogDistanceModifier() { - return fogDistance.get(); - } - - } - -} diff --git a/src/main/java/net/doppelr/lemonmates/AllWoodTypes.java b/src/main/java/net/doppelr/lemonmates/AllWoodTypes.java new file mode 100644 index 0000000..d05d6a3 --- /dev/null +++ b/src/main/java/net/doppelr/lemonmates/AllWoodTypes.java @@ -0,0 +1,10 @@ +package net.doppelr.lemonmates; + +import net.minecraft.world.level.block.state.properties.BlockSetType; +import net.minecraft.world.level.block.state.properties.WoodType; + +public class AllWoodTypes { + public static final WoodType CITRON = WoodType.register(new WoodType(LemonMates.MOD_ID + ":citron", BlockSetType.OAK)); + public static final WoodType ORANGE = WoodType.register(new WoodType(LemonMates.MOD_ID + ":orange", BlockSetType.OAK)); + +} diff --git a/src/main/java/net/doppelr/lemonmates/LemonMates.java b/src/main/java/net/doppelr/lemonmates/LemonMates.java index 4a7618b..f491aa5 100644 --- a/src/main/java/net/doppelr/lemonmates/LemonMates.java +++ b/src/main/java/net/doppelr/lemonmates/LemonMates.java @@ -6,7 +6,9 @@ import com.simibubi.create.foundation.item.TooltipModifier; import net.createmod.catnip.lang.FontHelper; import net.doppelr.lemonmates.block.ModBlocks; +import net.doppelr.lemonmates.block.entity.ModBlockEntities; import net.doppelr.lemonmates.item.ModItems; +import net.minecraft.client.renderer.Sheets; import net.minecraft.resources.ResourceKey; import net.minecraft.world.item.CreativeModeTab; import org.slf4j.Logger; @@ -32,7 +34,6 @@ public class LemonMates { public static final String NAME = "Lemon Mates"; public static final String MOD_ID = "lemonmates"; public static final Logger LOGGER = LogUtils.getLogger(); - private static final StackWalker STACK_WALKER = StackWalker.getInstance(StackWalker.Option.RETAIN_CLASS_REFERENCE); // The constructor for the mod class is the first code that is run when your mod is loaded. // FML will recognize some parameter types like IEventBus or ModContainer and pass them in automatically. @@ -50,6 +51,8 @@ public LemonMates(IEventBus modEventBus, ModContainer modContainer) { ModItems.register(modEventBus); ModBlocks.register(modEventBus); + ModBlockEntities.register(modEventBus); + // Register our mod's ModConfigSpec so that FML can create and load the config file for us // modContainer.registerConfig(ModConfig.Type.COMMON, Config.SPEC); } @@ -58,7 +61,7 @@ private void commonSetup(FMLCommonSetupEvent event) { } - static final CreateRegistrate REGISTRATE = CreateRegistrate.create(ID) + private static final CreateRegistrate REGISTRATE = CreateRegistrate.create(ID) .defaultCreativeTab((ResourceKey) null) .setTooltipModifierFactory(item -> new ItemDescription.Modifier(item, FontHelper.Palette.STANDARD_CREATE) @@ -76,11 +79,8 @@ public void onServerStarting(ServerStartingEvent event) { static class ClientModEvents { @SubscribeEvent static void onClientSetup(FMLClientSetupEvent event) { + Sheets.addWoodType(AllWoodTypes.CITRON); + Sheets.addWoodType(AllWoodTypes.ORANGE); } } - public static CreateRegistrate registrate() { - if (!STACK_WALKER.getCallerClass().getPackageName().startsWith("com.simibubi.create")) - throw new UnsupportedOperationException("Other mods are not permitted to use create's registrate instance."); - return REGISTRATE; - } } diff --git a/src/main/java/net/doppelr/lemonmates/block/ModBlocks.java b/src/main/java/net/doppelr/lemonmates/block/ModBlocks.java index 55144d3..1fc5ebd 100644 --- a/src/main/java/net/doppelr/lemonmates/block/ModBlocks.java +++ b/src/main/java/net/doppelr/lemonmates/block/ModBlocks.java @@ -1,5 +1,6 @@ package net.doppelr.lemonmates.block; +import net.doppelr.lemonmates.AllWoodTypes; import net.doppelr.lemonmates.LemonMates; import net.doppelr.lemonmates.item.ModItems; import net.doppelr.lemonmates.worldgen.tree.ModTreeGrowers; @@ -49,7 +50,15 @@ public class ModBlocks { () -> new DoorBlock(BlockSetType.OAK, BlockBehaviour.Properties.ofFullCopy(Blocks.OAK_DOOR))); public static final DeferredBlock ORANGE_TRAPDOOR = registerBlock("orange_trapdoor", () -> new TrapDoorBlock(BlockSetType.OAK, BlockBehaviour.Properties.ofFullCopy(Blocks.OAK_TRAPDOOR))); - // TODO: Boats, Signs (could be something with Entities tho) + public static final DeferredBlock ORANGE_SIGN = BLOCKS.register("orange_sign", + () -> new ModStandingSignBlock(AllWoodTypes.ORANGE, BlockBehaviour.Properties.ofFullCopy(Blocks.OAK_SIGN))); + public static final DeferredBlock ORANGE_WALL_SIGN = BLOCKS.register("orange_wall_sign", + () -> new ModWallSignBlock(AllWoodTypes.ORANGE, BlockBehaviour.Properties.ofFullCopy(Blocks.OAK_WALL_SIGN))); + public static final DeferredBlock ORANGE_HANGING_SIGN = BLOCKS.register("orange_hanging_sign", + () -> new ModHangingSignBlock(AllWoodTypes.ORANGE, BlockBehaviour.Properties.ofFullCopy(Blocks.OAK_HANGING_SIGN))); + public static final DeferredBlock ORANGE_WALL_HANGING_SIGN = BLOCKS.register("orange_wall_hanging_sign", + () -> new ModWallHangingSignBlock(AllWoodTypes.ORANGE, BlockBehaviour.Properties.ofFullCopy(Blocks.OAK_WALL_HANGING_SIGN))); + // TODO: Boats public static final DeferredBlock CITRON_LOG = registerBlock("citron_log", () -> new ModFlammableRotatedPillarBlock(BlockBehaviour.Properties.ofFullCopy(Blocks.OAK_LOG))); @@ -81,7 +90,15 @@ public class ModBlocks { () -> new DoorBlock(BlockSetType.OAK, BlockBehaviour.Properties.ofFullCopy(Blocks.OAK_DOOR))); public static final DeferredBlock CITRON_TRAPDOOR = registerBlock("citron_trapdoor", () -> new TrapDoorBlock(BlockSetType.OAK, BlockBehaviour.Properties.ofFullCopy(Blocks.OAK_TRAPDOOR))); - // TODO: Boats, Signs (could be something with Entities tho) + public static final DeferredBlock CITRON_SIGN = BLOCKS.register("citron_sign", + () -> new ModStandingSignBlock(AllWoodTypes.CITRON, BlockBehaviour.Properties.ofFullCopy(Blocks.OAK_SIGN))); + public static final DeferredBlock CITRON_WALL_SIGN = BLOCKS.register("citron_wall_sign", + () -> new ModWallSignBlock(AllWoodTypes.CITRON, BlockBehaviour.Properties.ofFullCopy(Blocks.OAK_WALL_SIGN))); + public static final DeferredBlock CITRON_HANGING_SIGN = BLOCKS.register("citron_hanging_sign", + () -> new ModHangingSignBlock(AllWoodTypes.CITRON, BlockBehaviour.Properties.ofFullCopy(Blocks.OAK_HANGING_SIGN))); + public static final DeferredBlock CITRON_WALL_HANGING_SIGN = BLOCKS.register("citron_wall_hanging_sign", + () -> new ModWallHangingSignBlock(AllWoodTypes.CITRON, BlockBehaviour.Properties.ofFullCopy(Blocks.OAK_WALL_HANGING_SIGN))); + // TODO: Boats public static final DeferredBlock RASPBERRY_BUSH = registerBlock("raspberry_bush", () -> new RaspberryBushBlock(BlockBehaviour.Properties.ofFullCopy(Blocks.SWEET_BERRY_BUSH))); diff --git a/src/main/java/net/doppelr/lemonmates/block/ModHangingSignBlock.java b/src/main/java/net/doppelr/lemonmates/block/ModHangingSignBlock.java new file mode 100644 index 0000000..bba4b61 --- /dev/null +++ b/src/main/java/net/doppelr/lemonmates/block/ModHangingSignBlock.java @@ -0,0 +1,19 @@ +package net.doppelr.lemonmates.block; + +import net.doppelr.lemonmates.block.entity.ModHangingSignBlockEntity; +import net.minecraft.core.BlockPos; +import net.minecraft.world.level.block.CeilingHangingSignBlock; +import net.minecraft.world.level.block.entity.BlockEntity; +import net.minecraft.world.level.block.state.BlockState; +import net.minecraft.world.level.block.state.properties.WoodType; + +public class ModHangingSignBlock extends CeilingHangingSignBlock { + public ModHangingSignBlock(WoodType type, Properties properties) { + super(type, properties); + } + + @Override + public BlockEntity newBlockEntity(BlockPos pos, BlockState state) { + return new ModHangingSignBlockEntity(pos, state); + } +} diff --git a/src/main/java/net/doppelr/lemonmates/block/ModStandingSignBlock.java b/src/main/java/net/doppelr/lemonmates/block/ModStandingSignBlock.java new file mode 100644 index 0000000..f49f2d7 --- /dev/null +++ b/src/main/java/net/doppelr/lemonmates/block/ModStandingSignBlock.java @@ -0,0 +1,19 @@ +package net.doppelr.lemonmates.block; + +import net.doppelr.lemonmates.block.entity.ModSignBlockEntity; +import net.minecraft.core.BlockPos; +import net.minecraft.world.level.block.StandingSignBlock; +import net.minecraft.world.level.block.entity.BlockEntity; +import net.minecraft.world.level.block.state.BlockState; +import net.minecraft.world.level.block.state.properties.WoodType; + +public class ModStandingSignBlock extends StandingSignBlock { + public ModStandingSignBlock(WoodType type, Properties properties) { + super(type, properties); + } + + @Override + public BlockEntity newBlockEntity(BlockPos pos, BlockState state) { + return new ModSignBlockEntity(pos, state); + } +} diff --git a/src/main/java/net/doppelr/lemonmates/block/ModWallHangingSignBlock.java b/src/main/java/net/doppelr/lemonmates/block/ModWallHangingSignBlock.java new file mode 100644 index 0000000..4668163 --- /dev/null +++ b/src/main/java/net/doppelr/lemonmates/block/ModWallHangingSignBlock.java @@ -0,0 +1,19 @@ +package net.doppelr.lemonmates.block; + +import net.doppelr.lemonmates.block.entity.ModHangingSignBlockEntity; +import net.minecraft.core.BlockPos; +import net.minecraft.world.level.block.WallHangingSignBlock; +import net.minecraft.world.level.block.entity.BlockEntity; +import net.minecraft.world.level.block.state.BlockState; +import net.minecraft.world.level.block.state.properties.WoodType; + +public class ModWallHangingSignBlock extends WallHangingSignBlock { + public ModWallHangingSignBlock(WoodType type, Properties properties) { + super(type, properties); + } + + @Override + public BlockEntity newBlockEntity(BlockPos pos, BlockState state) { + return new ModHangingSignBlockEntity(pos, state); + } +} diff --git a/src/main/java/net/doppelr/lemonmates/block/ModWallSignBlock.java b/src/main/java/net/doppelr/lemonmates/block/ModWallSignBlock.java new file mode 100644 index 0000000..4d5a5e3 --- /dev/null +++ b/src/main/java/net/doppelr/lemonmates/block/ModWallSignBlock.java @@ -0,0 +1,19 @@ +package net.doppelr.lemonmates.block; + +import net.doppelr.lemonmates.block.entity.ModSignBlockEntity; +import net.minecraft.core.BlockPos; +import net.minecraft.world.level.block.WallSignBlock; +import net.minecraft.world.level.block.entity.BlockEntity; +import net.minecraft.world.level.block.state.BlockState; +import net.minecraft.world.level.block.state.properties.WoodType; + +public class ModWallSignBlock extends WallSignBlock { + public ModWallSignBlock(WoodType type, Properties properties) { + super(type, properties); + } + + @Override + public BlockEntity newBlockEntity(BlockPos pos, BlockState state) { + return new ModSignBlockEntity(pos, state); + } +} diff --git a/src/main/java/net/doppelr/lemonmates/block/entity/ModBlockEntities.java b/src/main/java/net/doppelr/lemonmates/block/entity/ModBlockEntities.java new file mode 100644 index 0000000..71507d3 --- /dev/null +++ b/src/main/java/net/doppelr/lemonmates/block/entity/ModBlockEntities.java @@ -0,0 +1,30 @@ +package net.doppelr.lemonmates.block.entity; + +import net.doppelr.lemonmates.LemonMates; +import net.doppelr.lemonmates.block.ModBlocks; +import net.minecraft.core.registries.Registries; +import net.minecraft.world.level.block.entity.BlockEntityType; +import net.neoforged.bus.api.IEventBus; +import net.neoforged.neoforge.registries.DeferredHolder; +import net.neoforged.neoforge.registries.DeferredRegister; + +public class ModBlockEntities { + public static DeferredRegister> BLOCK_ENTITIES = + DeferredRegister.create(Registries.BLOCK_ENTITY_TYPE, LemonMates.MOD_ID); + + public static final DeferredHolder, BlockEntityType> SIGN = + BLOCK_ENTITIES.register("mod_sign", () -> + BlockEntityType.Builder.of(ModSignBlockEntity::new, + ModBlocks.ORANGE_SIGN.get(), ModBlocks.ORANGE_WALL_SIGN.get(), + ModBlocks.CITRON_SIGN.get(), ModBlocks.CITRON_WALL_SIGN.get()).build(null)); + + public static final DeferredHolder, BlockEntityType> HANGING_SIGN = + BLOCK_ENTITIES.register("mod_hanging_sign", () -> + BlockEntityType.Builder.of(ModHangingSignBlockEntity::new, + ModBlocks.ORANGE_HANGING_SIGN.get(), ModBlocks.ORANGE_WALL_HANGING_SIGN.get(), + ModBlocks.CITRON_HANGING_SIGN.get(), ModBlocks.CITRON_WALL_HANGING_SIGN.get()).build(null)); + + public static void register(IEventBus eventBus) { + BLOCK_ENTITIES.register(eventBus); + } +} diff --git a/src/main/java/net/doppelr/lemonmates/block/entity/ModHangingSignBlockEntity.java b/src/main/java/net/doppelr/lemonmates/block/entity/ModHangingSignBlockEntity.java new file mode 100644 index 0000000..0f1df4b --- /dev/null +++ b/src/main/java/net/doppelr/lemonmates/block/entity/ModHangingSignBlockEntity.java @@ -0,0 +1,17 @@ +package net.doppelr.lemonmates.block.entity; + +import net.minecraft.core.BlockPos; +import net.minecraft.world.level.block.entity.BlockEntityType; +import net.minecraft.world.level.block.entity.SignBlockEntity; +import net.minecraft.world.level.block.state.BlockState; + +public class ModHangingSignBlockEntity extends SignBlockEntity { + public ModHangingSignBlockEntity(BlockPos pos, BlockState blockState) { + super(ModBlockEntities.HANGING_SIGN.get(), pos, blockState); + } + + @Override + public BlockEntityType getType() { + return ModBlockEntities.HANGING_SIGN.get(); + } +} diff --git a/src/main/java/net/doppelr/lemonmates/block/entity/ModSignBlockEntity.java b/src/main/java/net/doppelr/lemonmates/block/entity/ModSignBlockEntity.java new file mode 100644 index 0000000..fd82f57 --- /dev/null +++ b/src/main/java/net/doppelr/lemonmates/block/entity/ModSignBlockEntity.java @@ -0,0 +1,17 @@ +package net.doppelr.lemonmates.block.entity; + +import net.minecraft.core.BlockPos; +import net.minecraft.world.level.block.entity.BlockEntityType; +import net.minecraft.world.level.block.entity.SignBlockEntity; +import net.minecraft.world.level.block.state.BlockState; + +public class ModSignBlockEntity extends SignBlockEntity { + public ModSignBlockEntity(BlockPos pos, BlockState blockState) { + super(ModBlockEntities.SIGN.get(), pos, blockState); + } + + @Override + public BlockEntityType getType() { + return ModBlockEntities.SIGN.get(); + } +} diff --git a/src/main/java/net/doppelr/lemonmates/datagen/ModBlockLootTableProvider.java b/src/main/java/net/doppelr/lemonmates/datagen/ModBlockLootTableProvider.java index 4ad62b9..05517b1 100644 --- a/src/main/java/net/doppelr/lemonmates/datagen/ModBlockLootTableProvider.java +++ b/src/main/java/net/doppelr/lemonmates/datagen/ModBlockLootTableProvider.java @@ -70,6 +70,14 @@ protected void generate() { dropSelf(ModBlocks.ORANGE_TRAPDOOR.get()); add(ModBlocks.ORANGE_DOOR.get(), block -> createDoorTable(ModBlocks.ORANGE_DOOR.get())); + add(ModBlocks.ORANGE_SIGN.get(), + block -> createSingleItemTable(ModItems.ORANGE_SIGN)); + add(ModBlocks.ORANGE_WALL_SIGN.get(), + block -> createSingleItemTable(ModItems.ORANGE_SIGN)); + add(ModBlocks.ORANGE_HANGING_SIGN.get(), + block -> createSingleItemTable(ModItems.ORANGE_HANGING_SIGN)); + add(ModBlocks.ORANGE_WALL_HANGING_SIGN.get(), + block -> createSingleItemTable(ModItems.ORANGE_HANGING_SIGN)); dropSelf(ModBlocks.CITRON_LOG.get()); dropSelf(ModBlocks.CITRON_WOOD.get()); @@ -89,8 +97,16 @@ protected void generate() { dropSelf(ModBlocks.CITRON_TRAPDOOR.get()); add(ModBlocks.CITRON_DOOR.get(), block -> createDoorTable(ModBlocks.CITRON_DOOR.get())); + add(ModBlocks.CITRON_SIGN.get(), + block -> createSingleItemTable(ModItems.CITRON_SIGN)); + add(ModBlocks.CITRON_WALL_SIGN.get(), + block -> createSingleItemTable(ModItems.CITRON_SIGN)); + add(ModBlocks.CITRON_HANGING_SIGN.get(), + block -> createSingleItemTable(ModItems.CITRON_HANGING_SIGN)); + add(ModBlocks.CITRON_WALL_HANGING_SIGN.get(), + block -> createSingleItemTable(ModItems.CITRON_HANGING_SIGN)); - this.add(ModBlocks.RASPBERRY_BUSH.get(), block -> this.applyExplosionDecay( + add(ModBlocks.RASPBERRY_BUSH.get(), block -> applyExplosionDecay( block,LootTable.lootTable().withPool(LootPool.lootPool().when( LootItemBlockStatePropertyCondition.hasBlockStateProperties(ModBlocks.RASPBERRY_BUSH.get()) .setProperties(StatePropertiesPredicate.Builder.properties().hasProperty(SweetBerryBushBlock.AGE, 3)) diff --git a/src/main/java/net/doppelr/lemonmates/datagen/ModBlockStateProvider.java b/src/main/java/net/doppelr/lemonmates/datagen/ModBlockStateProvider.java index 1fbf86a..7e1604a 100644 --- a/src/main/java/net/doppelr/lemonmates/datagen/ModBlockStateProvider.java +++ b/src/main/java/net/doppelr/lemonmates/datagen/ModBlockStateProvider.java @@ -87,6 +87,12 @@ protected void registerStatesAndModels() { crateBlock(ModBlocks.ORANGE_CRATE, "orange"); crateBlock(ModBlocks.CITRON_CRATE, "citron"); crateBlock(ModBlocks.RASPBERRY_CRATE, "raspberry"); + + signBlock((StandingSignBlock) ModBlocks.CITRON_SIGN.get(), (WallSignBlock) ModBlocks.CITRON_WALL_SIGN.get(), modLoc("block/citron_planks")); + hangingSignBlock((CeilingHangingSignBlock) ModBlocks.CITRON_HANGING_SIGN.get(), (WallHangingSignBlock) ModBlocks.CITRON_WALL_HANGING_SIGN.get(), modLoc("block/citron_planks")); + signBlock((StandingSignBlock) ModBlocks.ORANGE_SIGN.get(), (WallSignBlock) ModBlocks.ORANGE_WALL_SIGN.get(), modLoc("block/citron_planks")); + hangingSignBlock((CeilingHangingSignBlock) ModBlocks.ORANGE_HANGING_SIGN.get(), (WallHangingSignBlock) ModBlocks.ORANGE_WALL_HANGING_SIGN.get(), modLoc("block/orange_planks")); + } public void crateBlock(DeferredBlock deferredBlock, String fruitName) { diff --git a/src/main/java/net/doppelr/lemonmates/datagen/ModItemModelProvider.java b/src/main/java/net/doppelr/lemonmates/datagen/ModItemModelProvider.java index 3c0010c..af495d0 100644 --- a/src/main/java/net/doppelr/lemonmates/datagen/ModItemModelProvider.java +++ b/src/main/java/net/doppelr/lemonmates/datagen/ModItemModelProvider.java @@ -29,12 +29,16 @@ protected void registerModels() { buttonItem(ModBlocks.CITRON_BUTTON, ModBlocks.CITRON_PLANKS); fenceItem(ModBlocks.CITRON_FENCE, ModBlocks.CITRON_PLANKS); basicItem(ModBlocks.CITRON_DOOR.asItem()); + basicItem(ModItems.CITRON_SIGN.get()); + basicItem(ModItems.CITRON_HANGING_SIGN.get()); basicItem(ModItems.ORANGE.get()); saplingItem(ModBlocks.ORANGE_SAPLING); buttonItem(ModBlocks.ORANGE_BUTTON, ModBlocks.ORANGE_PLANKS); fenceItem(ModBlocks.ORANGE_FENCE, ModBlocks.ORANGE_PLANKS); basicItem(ModBlocks.ORANGE_DOOR.asItem()); + basicItem(ModItems.ORANGE_SIGN.get()); + basicItem(ModItems.ORANGE_HANGING_SIGN.get()); } private ItemModelBuilder lemonadeItem(DeferredItem item) { diff --git a/src/main/java/net/doppelr/lemonmates/event/ModClientEvents.java b/src/main/java/net/doppelr/lemonmates/event/ModClientEvents.java new file mode 100644 index 0000000..ab6facb --- /dev/null +++ b/src/main/java/net/doppelr/lemonmates/event/ModClientEvents.java @@ -0,0 +1,20 @@ +package net.doppelr.lemonmates.event; + +import net.doppelr.lemonmates.LemonMates; +import net.doppelr.lemonmates.block.entity.ModBlockEntities; +import net.minecraft.client.renderer.blockentity.HangingSignRenderer; +import net.minecraft.client.renderer.blockentity.SignRenderer; +import net.neoforged.api.distmarker.Dist; +import net.neoforged.bus.api.SubscribeEvent; +import net.neoforged.fml.common.EventBusSubscriber; +import net.neoforged.neoforge.client.event.EntityRenderersEvent; + + +@EventBusSubscriber(modid = LemonMates.MOD_ID, bus = EventBusSubscriber.Bus.MOD, value = Dist.CLIENT) +public class ModClientEvents { + @SubscribeEvent + public static void registerBlockEntityRenderers(EntityRenderersEvent.RegisterRenderers event) { + event.registerBlockEntityRenderer(ModBlockEntities.SIGN.get(), SignRenderer::new); + event.registerBlockEntityRenderer(ModBlockEntities.HANGING_SIGN.get(), HangingSignRenderer::new); + } +} diff --git a/src/main/java/net/doppelr/lemonmates/item/ModItems.java b/src/main/java/net/doppelr/lemonmates/item/ModItems.java index cfa786a..5b669cb 100644 --- a/src/main/java/net/doppelr/lemonmates/item/ModItems.java +++ b/src/main/java/net/doppelr/lemonmates/item/ModItems.java @@ -3,8 +3,8 @@ import net.doppelr.lemonmates.LemonMates; import net.doppelr.lemonmates.AllFoodProperties; import net.doppelr.lemonmates.block.ModBlocks; -import net.minecraft.world.item.Item; -import net.minecraft.world.item.ItemNameBlockItem; +import net.minecraft.world.entity.vehicle.Boat; +import net.minecraft.world.item.*; import net.neoforged.bus.api.IEventBus; import net.neoforged.neoforge.registries.DeferredItem; import net.neoforged.neoforge.registries.DeferredRegister; @@ -125,6 +125,22 @@ public class ModItems { public static final DeferredItem RASPBERRY = ITEMS.register("raspberry", () -> new ItemNameBlockItem(ModBlocks.RASPBERRY_BUSH.get(), new Item.Properties().food(AllFoodProperties.RASPBERRY))); + // Wood Items + public static final DeferredItem CITRON_SIGN = ITEMS.register("citron_sign", + () -> new SignItem(new Item.Properties().stacksTo(16), ModBlocks.CITRON_SIGN.get(), ModBlocks.CITRON_WALL_SIGN.get())); + public static final DeferredItem CITRON_HANGING_SIGN = ITEMS.register("citron_hanging_sign", + () -> new HangingSignItem(ModBlocks.CITRON_HANGING_SIGN.get(), ModBlocks.CITRON_WALL_HANGING_SIGN.get(), new Item.Properties().stacksTo(16))); + public static final DeferredItem ORANGE_SIGN = ITEMS.register("orange_sign", + () -> new SignItem(new Item.Properties().stacksTo(16), ModBlocks.ORANGE_SIGN.get(), ModBlocks.ORANGE_WALL_SIGN.get())); + public static final DeferredItem ORANGE_HANGING_SIGN = ITEMS.register("orange_hanging_sign", + () -> new HangingSignItem(ModBlocks.ORANGE_HANGING_SIGN.get(), ModBlocks.ORANGE_WALL_HANGING_SIGN.get(), new Item.Properties().stacksTo(16))); + + public static final DeferredItem CITRON_BOAT = ITEMS.register("citron_boat", + () -> new BoatItem(false, Boat.Type.OAK, new Item.Properties())); + public static final DeferredItem ORANGE_BOAT = ITEMS.register("orange_boat", + () -> new BoatItem(false, Boat.Type.OAK, new Item.Properties())); + + // Juices public static final DeferredItem CITRON_JUICE = ITEMS.register("citron_juice", () -> new Item(new Item.Properties().food(AllFoodProperties.JUICE_DRINK))); diff --git a/src/main/resources/assets/lemonmates/lang/en_US.json b/src/main/resources/assets/lemonmates/lang/en_US.json index 88f6ebe..3ddce6f 100644 --- a/src/main/resources/assets/lemonmates/lang/en_US.json +++ b/src/main/resources/assets/lemonmates/lang/en_US.json @@ -71,6 +71,8 @@ "block.lemonmates.citron_fence_gate": "Citron Fence Gate", "block.lemonmates.citron_door": "Citron Door", "block.lemonmates.citron_trapdoor": "Citron Trapdoor", + "block.lemonmates.citron_sign": "Citron Sign", + "block.lemonmates.citron_hanging_sign": "Citron Hanging Sign", "item.lemonmates.orange": "Orange", "block.lemonmates.orange_log": "Orange Log", @@ -88,6 +90,8 @@ "block.lemonmates.orange_fence_gate": "Orange Fence Gate", "block.lemonmates.orange_door": "Orange Door", "block.lemonmates.orange_trapdoor": "Orange Trapdoor", + "block.lemonmates.orange_sign": "Orange Sign", + "block.lemonmates.orange_hanging_sign": "Orange Hanging Sign", "block.lemonmates.orange_crate": "Orange Crate", "block.lemonmates.citron_crate": "Citron Crate", diff --git a/src/main/resources/assets/lemonmates/textures/block/citron_crate_side.png b/src/main/resources/assets/lemonmates/textures/block/citron_crate_side.png index be3d13c..0b75d64 100644 Binary files a/src/main/resources/assets/lemonmates/textures/block/citron_crate_side.png and b/src/main/resources/assets/lemonmates/textures/block/citron_crate_side.png differ diff --git a/src/main/resources/assets/lemonmates/textures/block/citron_crate_top.png b/src/main/resources/assets/lemonmates/textures/block/citron_crate_top.png index d0f206c..11be411 100644 Binary files a/src/main/resources/assets/lemonmates/textures/block/citron_crate_top.png and b/src/main/resources/assets/lemonmates/textures/block/citron_crate_top.png differ diff --git a/src/main/resources/assets/lemonmates/textures/entity/signs/citron.png b/src/main/resources/assets/lemonmates/textures/entity/signs/citron.png new file mode 100644 index 0000000..87db7e5 Binary files /dev/null and b/src/main/resources/assets/lemonmates/textures/entity/signs/citron.png differ diff --git a/src/main/resources/assets/lemonmates/textures/entity/signs/hanging/citron.png b/src/main/resources/assets/lemonmates/textures/entity/signs/hanging/citron.png new file mode 100644 index 0000000..e304f41 Binary files /dev/null and b/src/main/resources/assets/lemonmates/textures/entity/signs/hanging/citron.png differ diff --git a/src/main/resources/assets/lemonmates/textures/entity/signs/hanging/orange.png b/src/main/resources/assets/lemonmates/textures/entity/signs/hanging/orange.png new file mode 100644 index 0000000..74c1f8f Binary files /dev/null and b/src/main/resources/assets/lemonmates/textures/entity/signs/hanging/orange.png differ diff --git a/src/main/resources/assets/lemonmates/textures/entity/signs/orange.png b/src/main/resources/assets/lemonmates/textures/entity/signs/orange.png new file mode 100644 index 0000000..b10e07a Binary files /dev/null and b/src/main/resources/assets/lemonmates/textures/entity/signs/orange.png differ diff --git a/src/main/resources/assets/lemonmates/textures/item/citron_hanging_sign.png b/src/main/resources/assets/lemonmates/textures/item/citron_hanging_sign.png new file mode 100644 index 0000000..da9d835 Binary files /dev/null and b/src/main/resources/assets/lemonmates/textures/item/citron_hanging_sign.png differ diff --git a/src/main/resources/assets/lemonmates/textures/item/citron_sign.png b/src/main/resources/assets/lemonmates/textures/item/citron_sign.png new file mode 100644 index 0000000..f2067c0 Binary files /dev/null and b/src/main/resources/assets/lemonmates/textures/item/citron_sign.png differ diff --git a/src/main/resources/assets/lemonmates/textures/item/orange.png b/src/main/resources/assets/lemonmates/textures/item/orange.png index e004e39..08ad576 100644 Binary files a/src/main/resources/assets/lemonmates/textures/item/orange.png and b/src/main/resources/assets/lemonmates/textures/item/orange.png differ diff --git a/src/main/resources/assets/lemonmates/textures/item/orange_hanging_sign.png b/src/main/resources/assets/lemonmates/textures/item/orange_hanging_sign.png new file mode 100644 index 0000000..58c275d Binary files /dev/null and b/src/main/resources/assets/lemonmates/textures/item/orange_hanging_sign.png differ diff --git a/src/main/resources/assets/lemonmates/textures/item/orange_sign.png b/src/main/resources/assets/lemonmates/textures/item/orange_sign.png new file mode 100644 index 0000000..fa34fca Binary files /dev/null and b/src/main/resources/assets/lemonmates/textures/item/orange_sign.png differ diff --git a/src/main/resources/assets/lemonmates/textures/item/raspberry.png b/src/main/resources/assets/lemonmates/textures/item/raspberry.png index ab7c36f..caf6c83 100644 Binary files a/src/main/resources/assets/lemonmates/textures/item/raspberry.png and b/src/main/resources/assets/lemonmates/textures/item/raspberry.png differ