diff --git a/TODO-26.2.md b/TODO-26.2.md new file mode 100644 index 000000000..b8475a14b --- /dev/null +++ b/TODO-26.2.md @@ -0,0 +1,95 @@ +# Farmer's Delight 26.2 Port TODO + +Current state observed on 2026-07-27: + +- `./gradlew.bat compileJava` succeeds with the core source tree and JEI included. +- `./gradlew.bat build` succeeds with the core source tree, JEI compile API, AppleSkin compile API, and the current temporary integration excludes. +- `./gradlew.bat runClientData` succeeds through scoped generated `data` preservation, the fully re-ported 26.2 `BlockStates` provider, the 26.2 `ItemModels` provider, and `SoundDefinitions`. +- `./gradlew.bat runServerData` succeeds through scoped generated `assets` preservation after changing cooking-pot tag ingredients to serialize unresolved tag references and adding canvas wall-sign loot tables. +- `./gradlew.bat runGameTestServer` succeeds in the dev environment. +- `./gradlew.bat runServer` reaches the dedicated server `Done` state in the dev environment after removing a common-load dependency on client-only `RecipeUtils` from `RegistryAliases`. +- `./gradlew.bat runClient` reaches client resource startup with only Farmer's Delight installed; the latest smoke reaches OpenAL and block-atlas creation with no Farmer's Delight item-model parse errors or Farmer's Delight missing-texture warnings. +- `./gradlew.bat runServer -Pfd.serverWorld=fd_only_smoke` creates a fresh dedicated server world with only Farmer's Delight installed and reaches the server `Done` state. +- The built jar is `build/libs/FarmersDelight-26.2-1.3.2.jar`; jar inspection confirms generated resource cache files are excluded. +- CurseForge `Test 26.2` world-load failure from `latest.log` was traced to `FoodServingRecipe` failing NeoForge recipe-content sync; fixed the stateless custom recipe stream codecs for `FoodServingRecipe` and `DoughRecipe`, rebuilt, and copied the jar into the test instance for retesting. +- Canvas sign block models now use 26.2-style square block textures instead of the old 64x32 sign entity sheets, fixing misplaced/stretched placed-sign textures. +- `build.gradle` currently excludes only `vectorwing/farmersdelight/integration/emi/**` and `vectorwing/farmersdelight/integration/crafttweaker/**`, because the checked Maven coordinates do not provide usable 26.2-compatible APIs yet. +- AppleSkin was updated to `squeek.appleskin:appleskin-neoforge:mc26.2-3.0.10`; its API resolves for compilation, and its dev runtime is opt-in with `-Pfd.includeAppleSkinRuntime=true` so default smoke runs stay Farmer's Delight-only. +- Old EMI/CraftTweaker coordinates are opt-in with `-Pfd.includeUnavailableIntegrations=true` for future port work; default builds no longer resolve 1.21-era optional integration APIs. + +## Must Fix Before Release + +- [ ] Remove the remaining temporary Java source excludes from `build.gradle` and make EMI/CraftTweaker compile once usable 26.2 APIs exist. +- [x] Replace `ExistingGeneratedResources` with real datagen coverage; client/server datagen now only preserve the opposite generated pack while sharing `src/generated/resources`. +- [x] Re-port the rest of `BlockStates` to the 26.2/NeoForge client model datagen APIs. + - [x] Re-port simple opaque block families with byte-stable generated output: rice bag, rice bale, crop crates, straw bale, rich soil, rich soil farmland, and organic compost. + - [x] Re-port existing-model and horizontal/orientable block families with byte-stable generated output: safety net, canvas rug, baskets, cutting board, half tatami mat, cabinets, cooking pot, skillet, and stove. + - [x] Re-port pie and feast blockstates/models with byte-stable generated output. + - [x] Re-port crop, mushroom colony, wild crop, and double-plant blockstates/models with byte-stable generated output. + - [x] Re-port rope, rope fence, rope fence gate, tatami, and full tatami mat blockstates/models with byte-stable generated output. +- [x] Re-port canvas sign and hanging canvas sign blockstates/models to the 26.2 `ModelProvider` API. + - [x] Add a `minecraft:blocks` atlas contribution for Farmer's Delight canvas sign entity textures so generated sign block models resolve cleanly. +- [x] Re-port `ItemModels` to the 26.2 item model/datagen APIs for non-skillet generated item definitions and item models. +- [x] Re-port the skillet's 26.2 item definition/model behavior once its special item renderer and cooking predicate are restored. +- [x] Fix server datagen lookup inputs so `runServerData` can emit common tags such as `c:drinks/milk`. +- [x] Add generated loot tables for canvas wall signs and hanging canvas wall signs. +- [x] Regenerate data and assets with `runClientData` and `runServerData`. +- [x] Review the remaining generated resource diff for stale 1.21 formats and bridge-preserved files. + - The current generated-resource diff removes stale block-item indirection models now covered by 26.2 item definitions, drops obsolete tag/global-loot manifest paths, and rewrites configured-feature JSON through the 26.2 registry provider. +- [x] Re-port cooking pot recipe book support: + - [x] Replace the placeholder `RecipeCategories` implementation with the 26.2 recipe book registry model. + - [x] Replace the placeholder `CookingPotRecipeBookComponent`. + - [x] Stop falling back to `RecipeBookType.FURNACE` and `RecipeBookCategories.FURNACE_FOOD` where Farmer's Delight needs its own cooking pot categories. + - [x] Verify `META-INF/enumextensions.json` is still the right way to register `FARMERSDELIGHT_COOKING`, or replace it with the 26.2-native registry path. + - Cooking pot recipes now publish recipe displays, route into registered `farmersdelight:cooking_*` recipe-book categories, use the `FARMERSDELIGHT_COOKING` recipe book type, and register a NeoForge search category for the client recipe book. +- [x] Re-port HUD overlays for Nourishment and Comfort in `HUDOverlays`. +- [x] Re-port the skillet client item behavior in `ClientSetupEvents` and `SkilletItemRenderer`. +- [x] Re-port canvas rug block-breaking texture suppression in `HideBlockBreakProgressMixin` and re-add it to `farmersdelight.mixins.json` only after it targets the 26.2 renderer pipeline correctly. +- [x] Revisit mixins removed from `farmersdelight.mixins.json`: + - [x] Decide whether `datafix.V3818_3Mixin` is obsolete or needs a 26.2 equivalent. + - [x] Decide whether `KeepRichSoilGiantTreeMixin` is obsolete or needs a 26.2 equivalent. +- [x] Implement block/entity item transfer support for 26.2: + - [x] Basket capability/transfer registration. + - [x] Cabinet capability/transfer registration. + - [x] Cooking Pot sided input/output transfer registration. + - [x] Cutting Board single-slot transfer registration. + - [x] Skillet and stove inventory transfer behavior audit. + - [x] Update utility APIs that still expose `IItemHandler` if NeoForge transfer is now the supported integration surface. +- [x] Replace the old villager-trade config toggles with a data-driven 26.2-compatible mechanism, or intentionally remove the toggles and document the behavior change. + - Farmer's Delight villager and wandering trader offers now live in `data/farmersdelight/villager_trade`, and vanilla trade tags are extended under `data/minecraft/tags/villager_trade`. The old runtime config toggles were removed because 26.2 villager trades are datapack-driven. +- [ ] Re-enable and port optional integrations: + - [x] JEI recipe population; built-in Farmer's Delight cooking/cutting recipes are decoded from packaged recipe resources for JEI registration, with the dough-from-water synthetic recipe restored. + - [ ] EMI; official `dev.emi:emi-neoforge` metadata still targets 1.21.1-era Minecraft versions. + - [x] AppleSkin runtime/dev setup; compile API uses `squeek.appleskin:appleskin-neoforge:mc26.2-3.0.10`, and dev runtime can be enabled with `-Pfd.includeAppleSkinRuntime=true`. + - [ ] CraftTweaker recipe managers, docs, and scripts; `CraftTweaker-neoforge-26.2` is not published on BlameJared Maven as of 2026-07-27. + - Checked Maven metadata on 2026-07-27: official EMI still has no 26.2 artifact, `CraftTweaker-neoforge-26.2` returns 404, and the latest available CraftTweaker NeoForge artifact is still `CraftTweaker-neoforge-1.21.1:21.0.38`. +- [x] Update optional dependency handling in `build.gradle`; JEI and AppleSkin use 26.2 artifacts by default, while old EMI/CraftTweaker coordinates are gated behind `-Pfd.includeUnavailableIntegrations=true` until 26.2 APIs exist. +- [x] Update `neoforge.mods.toml` optional dependency ranges; the stale CraftTweaker optional dependency block is removed until a 26.2-compatible CraftTweaker artifact exists. + +## Functional QA + +- [x] Launch a 26.2 client with only Farmer's Delight installed. +- [x] Launch a 26.2 dedicated server with only Farmer's Delight installed. +- [ ] Place, break, rotate, waterlog, and render every block family. +- [ ] Test all crops: planting, growth, bonemeal, harvesting, wild crop generation, rich soil behavior, and villager crop targeting. +- [ ] Test Cooking Pot input, cooking progress, output serving, shift-clicking, recipe unlocks, recipe book UI, XP, custom name, block-item meal storage, and comparator output. +- [ ] Test Cutting Board manual use, dispenser use, fortune outputs, invalid tool feedback, and item carving. +- [ ] Test Skillet held cooking, placed cooking, flipping, custom renderer/model, sounds, combat, and drops. +- [ ] Test Basket/Cabinet automation with vanilla hoppers and common item-transfer mods once integrations are available. +- [ ] Test all loot modifiers: structure loot, mob scavenging, grass/straw drops, and pastry slicing. +- [ ] Test datafix/migration paths with old worlds/items containing Farmer's Delight block entities and componentized item data. +- [ ] Test all network payloads on a real client-server connection. +- [ ] Test translations after the 26.2 item/block translation-key alias changes. + +## Release Cleanup + +- [x] Remove or resolve all source/build `TODO 26.2` placeholders. +- [ ] Remove temporary build exclusions once EMI/CraftTweaker publish 26.2-compatible APIs; commented-out runtime dependency placeholders have been removed. +- [x] Confirm `./gradlew.bat clean build` succeeds. +- [x] Confirm `./gradlew.bat runClient` reaches client resource startup with only Farmer's Delight installed and without Farmer's Delight item-model parse errors or missing-texture warnings. +- [ ] Confirm `./gradlew.bat runClientData` and `./gradlew.bat runServerData` both succeed from a clean checkout. +- [x] Confirm the generated resource diff is intentional and reproducible. + - Re-ran `runServerData` followed by `runClientData` on 2026-07-27 and confirmed the generated-resource diff name list stayed stable. +- [x] Update README, changelog, supported Minecraft/NeoForge version ranges, and release metadata. +- [x] Build the release jar and smoke-test it outside the dev workspace. + - Built and installed `FarmersDelight-26.2-1.3.2.jar` into the CurseForge `Test 26.2` instance after the recipe-sync fix; manual jar retest passed on 2026-08-01. diff --git a/build.gradle b/build.gradle index 4897de7dc..9c9822085 100644 --- a/build.gradle +++ b/build.gradle @@ -3,7 +3,7 @@ plugins { id 'eclipse' id 'idea' id 'maven-publish' - id 'net.neoforged.moddev' version '1.0.0' + id 'net.neoforged.moddev' version '2.0.142' } tasks.named('wrapper', Wrapper).configure { @@ -27,7 +27,7 @@ repositories { maven { url "https://maven.ryanliptak.com/" } maven { // EMI - url = "https://maven.terraformersmc.com/" + url = "https://maven.terraformersmc.com/releases/" } } @@ -35,16 +35,11 @@ base { archivesName = 'FarmersDelight' } -java.toolchain.languageVersion = JavaLanguageVersion.of(21) +java.toolchain.languageVersion = JavaLanguageVersion.of(25) neoForge { version = project.neo_version - parchment { - mappingsVersion = project.parchment_mappings_version - minecraftVersion = project.parchment_minecraft_version - } - // This line is optional. Access Transformers are automatically detected // accessTransformers = project.files('src/main/resources/META-INF/accesstransformer.cfg') @@ -59,6 +54,9 @@ neoForge { server { server() // programArgument '--nogui' + providers.gradleProperty('fd.serverWorld').orNull?.with { + programArguments.addAll '--world', it + } systemProperty 'neoforge.enabledGameTestNamespaces', project.mod_id } @@ -70,8 +68,8 @@ neoForge { systemProperty 'neoforge.enabledGameTestNamespaces', project.mod_id } - data { - data() + clientData { + clientData() // example of overriding the workingDirectory set in configureEach above, uncomment if you want to use it // gameDirectory = project.file('run-data') @@ -80,6 +78,13 @@ neoForge { programArguments.addAll '--mod', project.mod_id, '--all', '--output', file('src/generated/resources/').getAbsolutePath(), '--existing', file('src/main/resources/').getAbsolutePath() } + serverData { + serverData() + + // Specify the modid for data generation, where to output the resulting resource, and where to look for existing resources. + programArguments.addAll '--mod', project.mod_id, '--all', '--output', file('src/generated/resources/').getAbsolutePath(), '--existing', file('src/main/resources/').getAbsolutePath() + } + configureEach { // Recommended logging data for a userdev environment // The markers can be added/remove as needed separated by commas. @@ -107,27 +112,34 @@ sourceSets.main.resources { srcDir 'src/generated/resources' } +sourceSets.main.java { + // Re-enable once EMI and CraftTweaker publish 26.2-compatible NeoForge APIs. + exclude 'vectorwing/farmersdelight/integration/emi/**' + exclude 'vectorwing/farmersdelight/integration/crafttweaker/**' +} + configurations { runtimeClasspath.extendsFrom localRuntime } dependencies { // JEI - compileOnly "mezz.jei:jei-${jei_minecraft}-common-api:${jei_version}" - compileOnly "mezz.jei:jei-${jei_minecraft}-neoforge-api:${jei_version}" -// localRuntime "mezz.jei:jei-${jei_minecraft}-neoforge:${jei_version}" + compileOnly "mezz.jei:jei-${minecraft_version}-common-api:${jei_version}" + compileOnly "mezz.jei:jei-${minecraft_version}-neoforge-api:${jei_version}" + + if (providers.gradleProperty('fd.includeUnavailableIntegrations').map { it.toBoolean() }.orElse(false).get()) { + // EMI and CraftTweaker do not publish usable 26.2 NeoForge APIs yet. + compileOnly "dev.emi:emi-neoforge:${emi_version}:api" - // EMI - compileOnly "dev.emi:emi-neoforge:${emi_version}:api" - runtimeOnly "dev.emi:emi-neoforge:${emi_version}" + def ctDep = "com.blamejared.crafttweaker:CraftTweaker-neoforge-${crafttweaker_minecraft}:${crafttweaker_version}" + compileOnly ctDep + } // AppleSkin compileOnly "squeek.appleskin:appleskin-neoforge:${appleskin_version}:api" - runtimeOnly "squeek.appleskin:appleskin-neoforge:${appleskin_version}" - - def ctDep = "com.blamejared.crafttweaker:CraftTweaker-neoforge-${crafttweaker_minecraft}:${crafttweaker_version}" - compileOnly ctDep - runtimeOnly ctDep + if (providers.gradleProperty('fd.includeAppleSkinRuntime').map { it.toBoolean() }.orElse(false).get()) { + runtimeOnly "squeek.appleskin:appleskin-neoforge:${appleskin_version}" + } } tasks.withType(ProcessResources).configureEach { @@ -174,9 +186,3 @@ idea { downloadJavadoc = true } } - -//////////////// - -//compileJava { -// options.compilerArgs << "-Acrafttweaker.processor.document.output_directory=${file('docsOut')}" -//} diff --git a/changelog.md b/changelog.md index eaa4b9e42..68de3d321 100644 --- a/changelog.md +++ b/changelog.md @@ -2,6 +2,14 @@ ## 1.3.2 +### 26.2 Port +- Ported the NeoForge build to Minecraft 26.2 and NeoForge 26.2. +- Reworked generated blockstates, item definitions, loot/data outputs, recipe book support, transfer support, and client render hooks for the 26.2 APIs. +- Repacked canvas sign block textures for Minecraft 26.2's baked sign models. +- Fixed stateless Farmer's Delight custom recipes failing NeoForge recipe-content network sync when joining a world. +- Verified `build`, datagen, GameTest server, FD-only client startup, and FD-only dedicated server startup. +- JEI and AppleSkin compile against 26.2 artifacts. EMI and CraftTweaker integrations are temporarily excluded until usable 26.2-compatible APIs are published. + ### Updates - Fried Rice and Chicken Soup have been nerfed down to the 3-minute tier of meals, due to their ease of cooking; - Rice Bag has been removed from the `straw_blocks` tag, due to not being actually made with Straw. diff --git a/gradle.properties b/gradle.properties index 1dc5f37fb..b0cabfd99 100644 --- a/gradle.properties +++ b/gradle.properties @@ -5,16 +5,12 @@ org.gradle.parallel=true org.gradle.caching=true org.gradle.configuration-cache=true -# Parchment -parchment_minecraft_version=1.21 -parchment_mappings_version=2024.07.28 - # Minecraft -minecraft_version=1.21.1 -minecraft_version_range=[1.21.1] -neo_version=21.1.219 -neo_version_range=[21.1.219,) -loader_version_range=[4,) +minecraft_version=26.2 +minecraft_version_range=[26.2] +neo_version=26.2.0.0-beta +neo_version_range=[26.2.0.0-beta,) +loader_version_range=[11,) # Mod Info mod_version=1.3.2 @@ -25,10 +21,9 @@ mod_authors=vectorwing mod_description=A cozy farming and cooking expansion for Minecraft! # Dependency Info -jei_minecraft=1.21 -jei_version=19.8.2.99 +jei_version=30.14.0.93 emi_version=1.1.22+1.21.1 -appleskin_version=mc1.21-3.0.5 +appleskin_version=mc26.2-3.0.10 crafttweaker_minecraft=1.21 crafttweaker_version=20.0.21 crafttweaker_ap_version=3.0.0.15 diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index a4413138c..2e1113280 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,6 +1,6 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-8.8-bin.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-9.1.0-bin.zip networkTimeout=10000 validateDistributionUrl=true zipStoreBase=GRADLE_USER_HOME diff --git a/settings.gradle b/settings.gradle index ada876e2e..bf5d52767 100644 --- a/settings.gradle +++ b/settings.gradle @@ -7,5 +7,5 @@ pluginManagement { } plugins { - id 'org.gradle.toolchains.foojay-resolver-convention' version '0.8.0' + id 'org.gradle.toolchains.foojay-resolver-convention' version '1.0.0' } diff --git a/src/generated/resources/.cache/103d9f3f36b01595f1aa5172191e60eff02e6924 b/src/generated/resources/.cache/103d9f3f36b01595f1aa5172191e60eff02e6924 deleted file mode 100644 index 9079ffc16..000000000 --- a/src/generated/resources/.cache/103d9f3f36b01595f1aa5172191e60eff02e6924 +++ /dev/null @@ -1,31 +0,0 @@ -// 1.21.1 2026-03-25T01:14:08.5586308 Registries -4387b3e6bd6f9ff8d3ae66e966e738a5fde4337f data/farmersdelight/damage_type/stove_burn.json -48ad03e2df0feee96e57fceb54a43d1d4b006d58 data/farmersdelight/enchantment/backstabbing.json -4f45ee9ff396947b66b0ffabd4afb669d50ce439 data/farmersdelight/neoforge/biome_modifier/brown_mushroom_colony.json -dbd7f7f88134d531e5177e196169e51ff0a15ea4 data/farmersdelight/neoforge/biome_modifier/red_mushroom_colony.json -a6435d8e4d0dbac9b128fa3806c5d2f0b1a3e300 data/farmersdelight/neoforge/biome_modifier/wild_beetroots.json -cbe3cd5686ad84fdb80d9be27a1ec03d66e525c4 data/farmersdelight/neoforge/biome_modifier/wild_cabbages.json -ffcc0c7cc7da20b79b888b046a6df80fedbdd2d3 data/farmersdelight/neoforge/biome_modifier/wild_carrots.json -a4c3c2bb57a6578ab48e220d745aba03a57ec7c6 data/farmersdelight/neoforge/biome_modifier/wild_onions.json -3cf4cdbefb2c2c196975d28254ebd8356b6f93c7 data/farmersdelight/neoforge/biome_modifier/wild_potatoes.json -62e66e2b528b3f232b947e756e512630b271ca88 data/farmersdelight/neoforge/biome_modifier/wild_rice.json -1f0b89560771f1f02ac416106cd55ea0631e48ab data/farmersdelight/neoforge/biome_modifier/wild_tomatoes.json -951a6ee2d7aea9400310a21bb67a4df4de60c69f data/farmersdelight/worldgen/configured_feature/patch_brown_mushroom_colony.json -645aee5931bac710c0dc6bd62d5a1ac26f27503d data/farmersdelight/worldgen/configured_feature/patch_red_mushroom_colony.json -e3c8a1ea50b010de426f96772929616890a02a7f data/farmersdelight/worldgen/configured_feature/patch_sandy_shrub.json -8f9675b5ef3d04c3a35bdcd4530f6d3a722e6759 data/farmersdelight/worldgen/configured_feature/patch_wild_beetroots.json -a239483228d40679183c64da5df643fd5d943394 data/farmersdelight/worldgen/configured_feature/patch_wild_cabbages.json -5b92c3cf0aecb0b1bd5530a60919da079751ee19 data/farmersdelight/worldgen/configured_feature/patch_wild_carrots.json -6e2b9dadb61813dfc9fbe0a30fb19a76203c171a data/farmersdelight/worldgen/configured_feature/patch_wild_onions.json -d49a6b0d6f072bbdc0b548261a7bd490a836e021 data/farmersdelight/worldgen/configured_feature/patch_wild_potatoes.json -67e9b95ef47808ade91c1b0d315e0dd78d1ebe74 data/farmersdelight/worldgen/configured_feature/patch_wild_rice.json -747e6297036eee6159fb7874512af53d7f040a53 data/farmersdelight/worldgen/configured_feature/patch_wild_tomatoes.json -e5a340593fef17334cf944f1ccad603caa89825e data/farmersdelight/worldgen/placed_feature/patch_brown_mushroom_colony.json -903cd7906654430e62803ee7e718ed1ae64808b7 data/farmersdelight/worldgen/placed_feature/patch_red_mushroom_colony.json -a1297cf83bc9ae40f53c8d98ce2ab5c9cc7a90ad data/farmersdelight/worldgen/placed_feature/patch_wild_beetroots.json -132b6db9c0c6c71cfa966a3033c9e97307a3d5ec data/farmersdelight/worldgen/placed_feature/patch_wild_cabbages.json -1667f7fd78d6320e911e6660e47f8f2dd5886ef7 data/farmersdelight/worldgen/placed_feature/patch_wild_carrots.json -34670ed948555afdec580f9dd92258b3e6275ce4 data/farmersdelight/worldgen/placed_feature/patch_wild_onions.json -5495473575ef637f995df4100cb2cb9ecdf43acb data/farmersdelight/worldgen/placed_feature/patch_wild_potatoes.json -d7847a6e2325a88a6689a4dc65fc1f07fd09b51d data/farmersdelight/worldgen/placed_feature/patch_wild_rice.json -652c9b8f9ce78c63c479d6d8b8cd730c26c3f834 data/farmersdelight/worldgen/placed_feature/patch_wild_tomatoes.json diff --git a/src/generated/resources/.cache/29ee286a2d6cd601f6e5d1bc1d3be98b664427a3 b/src/generated/resources/.cache/29ee286a2d6cd601f6e5d1bc1d3be98b664427a3 deleted file mode 100644 index 4294c7706..000000000 --- a/src/generated/resources/.cache/29ee286a2d6cd601f6e5d1bc1d3be98b664427a3 +++ /dev/null @@ -1,5 +0,0 @@ -// 1.21.1 2024-09-30T21:24:00.9272047 Tags for minecraft:damage_type mod id farmersdelight -a1fcf33bc5dc1acb53ffc1e382daa29409111ff2 data/minecraft/tags/damage_type/burn_from_stepping.json -a1fcf33bc5dc1acb53ffc1e382daa29409111ff2 data/minecraft/tags/damage_type/is_fire.json -a1fcf33bc5dc1acb53ffc1e382daa29409111ff2 data/minecraft/tags/damage_type/no_knockback.json -a1fcf33bc5dc1acb53ffc1e382daa29409111ff2 data/minecraft/tags/damage_type/panic_environmental_causes.json diff --git a/src/generated/resources/.cache/3c70f769a4f2d243e9f890a91656e3bb3d36fea6 b/src/generated/resources/.cache/3c70f769a4f2d243e9f890a91656e3bb3d36fea6 deleted file mode 100644 index 77e39a593..000000000 --- a/src/generated/resources/.cache/3c70f769a4f2d243e9f890a91656e3bb3d36fea6 +++ /dev/null @@ -1,2 +0,0 @@ -// 1.21.1 2024-09-30T21:24:00.8991996 Tags for minecraft:enchantment mod id farmersdelight -0ab52467bec84691a02b21e5de3b38d307f6f713 data/minecraft/tags/enchantment/non_treasure.json diff --git a/src/generated/resources/.cache/4394a922362a46e7168ebf92a9b34ed348d0c5bc b/src/generated/resources/.cache/4394a922362a46e7168ebf92a9b34ed348d0c5bc deleted file mode 100644 index 80e890abe..000000000 --- a/src/generated/resources/.cache/4394a922362a46e7168ebf92a9b34ed348d0c5bc +++ /dev/null @@ -1,185 +0,0 @@ -// 1.21.1 2026-03-25T01:14:08.5546299 Item Models: farmersdelight -01e23a47f469a0c2107b2a1b6fc7f7c8f0c23d55 assets/farmersdelight/models/item/acacia_cabinet.json -a58cc863fafd0f13d1235a2f7344b446f853ae55 assets/farmersdelight/models/item/apple_cider.json -8348e66b9efe6a92614cca78c3463d3efaea57fa assets/farmersdelight/models/item/apple_pie.json -28f30b5c9272045e5fc6f5a418b723982d564aae assets/farmersdelight/models/item/apple_pie_slice.json -ad2a8f7967c3246637ca59cc318dd622da19e59c assets/farmersdelight/models/item/bacon.json -52d5d47595857a38040a68d360b49037fd0f0e07 assets/farmersdelight/models/item/bacon_and_eggs.json -fdf3aec6a0587d7433fc34838c06bc4629b42b6f assets/farmersdelight/models/item/bacon_sandwich.json -bc153118bad1dff35ed07c8f14b40c7676c834b7 assets/farmersdelight/models/item/baked_cod_stew.json -c4a8253f42ff047f4db79dcd111de31dea794751 assets/farmersdelight/models/item/bamboo_basket.json -656871638f7f6400f46632cd51d5442dfdfcb58c assets/farmersdelight/models/item/bamboo_cabinet.json -3f305623cf41b67d5a413a67291a1c0a5c50e8fc assets/farmersdelight/models/item/barbecue_stick.json -204aea5fb950c545194b505b420083f03d274fe5 assets/farmersdelight/models/item/beef_patty.json -849ebf719f4e3dfe046dad1f95a294a05ad92669 assets/farmersdelight/models/item/beef_stew.json -4dcb43ecd354f9df032c031d8d37f3c0a514c668 assets/farmersdelight/models/item/beetroot_crate.json -791daff700210270a8580f1669db836632636f26 assets/farmersdelight/models/item/birch_cabinet.json -4809e3369a27fc4e1b5d6c559d858c0daeeca10b assets/farmersdelight/models/item/black_canvas_sign.json -b0de759977514812c715c8b6442cd5b3afe716a7 assets/farmersdelight/models/item/black_hanging_canvas_sign.json -9a1a8922c14b117316b3f55eb3192c7e4a32e9c4 assets/farmersdelight/models/item/blue_canvas_sign.json -77ff2ae863630d9c2ac5a05d19d455ae1948f2d9 assets/farmersdelight/models/item/blue_hanging_canvas_sign.json -96a3f2a00ab931a19daacf8b3904837985907bc9 assets/farmersdelight/models/item/bone_broth.json -3471c18a8d1a7b9a09d02b2286664f5c4b2df6b6 assets/farmersdelight/models/item/brown_canvas_sign.json -bffa31ad92b5b1e4460292a1ccb20fe909e7bd46 assets/farmersdelight/models/item/brown_hanging_canvas_sign.json -62871cff7c5bd2746a3e4156baa3460eb1b903fb assets/farmersdelight/models/item/brown_mushroom_colony.json -2cb118cee1b5aa89228ff3c7935c2b9712cab82f assets/farmersdelight/models/item/cabbage.json -3edba649dde27a8eb958ebe460eab9024369e386 assets/farmersdelight/models/item/cabbage_crate.json -fbc9aeced286d441e6d2f9fa2d3634431a85746b assets/farmersdelight/models/item/cabbage_leaf.json -8c297a334371c8f2dcded0f3c78d92240c67be3e assets/farmersdelight/models/item/cabbage_rolls.json -37092a3f661532502834aa4ea3543d0d5b195677 assets/farmersdelight/models/item/cabbage_seeds.json -2e8ef78768ddc080fc592d88347e66df6326adac assets/farmersdelight/models/item/cake_slice.json -f6fba3fac94e89d80192f0e74995b49067804593 assets/farmersdelight/models/item/canvas.json -730f4bcbd88aaed74b67ecda0313d8f45f2c7160 assets/farmersdelight/models/item/canvas_rug.json -e84a0b6f51f2b3fa65a7dc11f1be128d1af7f87d assets/farmersdelight/models/item/canvas_sign.json -db33220ac9b3d4777d316560c25a0647a7c55e61 assets/farmersdelight/models/item/carrot_crate.json -1b466feba1ae7fb71a8ad8db0dae2988794a5240 assets/farmersdelight/models/item/cherry_cabinet.json -dffb28c59c7451fdd763ab7157d59f7722b1a36f assets/farmersdelight/models/item/chicken_cuts.json -7be865ac00c8572b1fab06ef4d474549b38c9651 assets/farmersdelight/models/item/chicken_sandwich.json -394628d5ee734c0c2c69c9ec31174198ce5a50de assets/farmersdelight/models/item/chicken_soup.json -2c717c3b78eff927bac96dbc2e2c2d768cd168e0 assets/farmersdelight/models/item/chocolate_pie.json -c0389c28d9a719192947390f82f8e21835c14542 assets/farmersdelight/models/item/chocolate_pie_slice.json -c84474984c0eac247302331dc999c9a79aa7b787 assets/farmersdelight/models/item/cod_roll.json -3e37ac289dcd54a1f0f4eec904be66530c0e6fbe assets/farmersdelight/models/item/cod_slice.json -f097ef00daddcaeb4714fa0cf42df9482b98e047 assets/farmersdelight/models/item/cooked_bacon.json -4d0143a2aabcfa016cb3a9527e58837108ba5cb7 assets/farmersdelight/models/item/cooked_chicken_cuts.json -3564bd42d781955191f4fd19d0c548d59957b7a8 assets/farmersdelight/models/item/cooked_cod_slice.json -0a5899ea62a3bc142a969d00eb94b605491f5117 assets/farmersdelight/models/item/cooked_mutton_chops.json -4da5710d0936158de50578f95ab0d85098c305f8 assets/farmersdelight/models/item/cooked_rice.json -217248d43c15ff6f3212a6e9d40326d358a6bc39 assets/farmersdelight/models/item/cooked_salmon_slice.json -c31f20fa9fa0742e64a448a1c49a5c9e484ae31c assets/farmersdelight/models/item/cooking_pot.json -679c209be0391227a3b2be54fd0b52917dcb3bed assets/farmersdelight/models/item/crimson_cabinet.json -8aeae632a08ec1501c0c5fea12e7041907eee959 assets/farmersdelight/models/item/cutting_board.json -a691864348915a571a4a9928eba459db5a0187f3 assets/farmersdelight/models/item/cyan_canvas_sign.json -c9224c94911851e0b3d6c18a6b0911425e44a9d7 assets/farmersdelight/models/item/cyan_hanging_canvas_sign.json -cdf2a07752514b7aaffb8cc63b8c1a53efcd4901 assets/farmersdelight/models/item/dark_oak_cabinet.json -eddeaac38c032ffb2b9070e62bba663d8d0bb7ba assets/farmersdelight/models/item/debug_pumpkin_pie.json -62c4845186802120d39f2e52610dc51cc5186c9f assets/farmersdelight/models/item/diamond_knife.json -3871c48190a671fa457aa0a2b9b8791e410845c8 assets/farmersdelight/models/item/dog_food.json -9f8fc38ac6e5e8f49dc27599fd50d75d98c2665a assets/farmersdelight/models/item/dumplings.json -1f6706dedd64bd7f48ef13f667335a9b300cbefe assets/farmersdelight/models/item/egg_sandwich.json -50acb51ac1675973fc8bf17c0bfe39a7f3265a00 assets/farmersdelight/models/item/fish_stew.json -ff5649c08334d4c2c8b6fef66989d12b040252bc assets/farmersdelight/models/item/flint_knife.json -4b14387aa929058b4937d9bf965b858ddef6fc71 assets/farmersdelight/models/item/fried_egg.json -12b3bd5c682412a932242927fa97d206fafac05f assets/farmersdelight/models/item/fried_rice.json -6e6936311a0d6ff359613f6d84947140ea860266 assets/farmersdelight/models/item/fruit_salad.json -7781caaeef1e03dbcaad9fdc822dcd83e84affde assets/farmersdelight/models/item/full_tatami_mat.json -56a04b176750bd9ebd04c47b361483b5f0a4a001 assets/farmersdelight/models/item/gleaming_salad.json -025994a3e2f41db400539edd2a90eccfb11a67bf assets/farmersdelight/models/item/gleaming_salad_block.json -7478b2c8395db2ad15eb4d32fc15fe0cd376ce8a assets/farmersdelight/models/item/glow_berry_custard.json -a4314660221dcffd6c4276a1ae8dc8e0914a3309 assets/farmersdelight/models/item/golden_knife.json -4ba6f6ca71923cf71e4f7c1285b0901309023e97 assets/farmersdelight/models/item/gray_canvas_sign.json -9a1054ae49b07d919f51434a7f28cb420f2e8dcb assets/farmersdelight/models/item/gray_hanging_canvas_sign.json -0707392a7b2cf8c889d724a644a728f27d8db21e assets/farmersdelight/models/item/green_canvas_sign.json -e288586ba82daaf04fb31becc8594b044e4f3d04 assets/farmersdelight/models/item/green_hanging_canvas_sign.json -67c739e3fc5caa80a076ea52f5dae0c2e30255b8 assets/farmersdelight/models/item/grilled_salmon.json -e4a898e51b9e7e412756e886c09eacb449f0dd70 assets/farmersdelight/models/item/half_tatami_mat.json -d4d4a5e824ae415efc16aedbaf04be3dd381ccef assets/farmersdelight/models/item/ham.json -2409a4cff59afc6932b205ed287337765f412f8c assets/farmersdelight/models/item/hamburger.json -6675be7dd97b8c19ac7344029cad926a3b444b61 assets/farmersdelight/models/item/hanging_canvas_sign.json -6863801e307626d269f520abcf247ef7cb6818f4 assets/farmersdelight/models/item/honey_cookie.json -2c43c586cc0553726a6904a4b1aa3f7aa5e12fd4 assets/farmersdelight/models/item/honey_glazed_ham.json -db8cd73cb30ef5633964155e90c29897aa58810a assets/farmersdelight/models/item/honey_glazed_ham_block.json -cf2a22b63d8daf6cd9b1cdb2a2bd2da6932f7d6f assets/farmersdelight/models/item/horse_feed.json -8dea6006499057f7b97173602c6ffa7b9f7e36b4 assets/farmersdelight/models/item/hot_cocoa.json -133febcd14bbe80692c99d0f67542686780490de assets/farmersdelight/models/item/iron_knife.json -3d4038cde35f6c1006addcf1e9f790fc78ca2c59 assets/farmersdelight/models/item/jungle_cabinet.json -a0836f799b4c9b924f0def317912ec9182ab0b54 assets/farmersdelight/models/item/kelp_roll.json -1e848c3f12993557d462f6ddfe41093988ef57ce assets/farmersdelight/models/item/kelp_roll_slice.json -1a43b8a7161fb30d9310370018247e1ce96446ed assets/farmersdelight/models/item/light_blue_canvas_sign.json -b896f01f9e21b436154aacc4f329e412ae8c3717 assets/farmersdelight/models/item/light_blue_hanging_canvas_sign.json -e1c7ade4a3eef3131c8edd4de7484f15888bc6d4 assets/farmersdelight/models/item/light_gray_canvas_sign.json -34f8375231138fecea68b1e00cd9a44d96ea2312 assets/farmersdelight/models/item/light_gray_hanging_canvas_sign.json -68b37c34e22afb1ddd484ab700936d7b0f60002e assets/farmersdelight/models/item/lime_canvas_sign.json -0ee022311a0bdaa1fa50baa0fac81048a61c15d8 assets/farmersdelight/models/item/lime_hanging_canvas_sign.json -6c0e75ae202186a85e8b8a5914022b766079b2f8 assets/farmersdelight/models/item/magenta_canvas_sign.json -dd5abf5e41e50624420fcaa0171c4429be9cdf3a assets/farmersdelight/models/item/magenta_hanging_canvas_sign.json -8af79d6418e9a0d651c40fda774b7655380d7a03 assets/farmersdelight/models/item/mangrove_cabinet.json -92496d1709e022d50fd4bd0c57d5839eacff70fe assets/farmersdelight/models/item/melon_juice.json -c3a381356341fa39957aca63a5f787fa9e7008ef assets/farmersdelight/models/item/melon_popsicle.json -6ab158c9d3318baaf2ea2fac85ac74a1c15aaff4 assets/farmersdelight/models/item/milk_bottle.json -3675d619cde5b97996a94432bf551f7664d129a8 assets/farmersdelight/models/item/minced_beef.json -0eeab3877e770caaec83789ab8c9d76ef2db8975 assets/farmersdelight/models/item/mixed_salad.json -492dbf3486f0b2558a31d49022caa9a11d836346 assets/farmersdelight/models/item/mushroom_rice.json -1a39d8da91d4b4df29ec6a998eeb4de99f345c07 assets/farmersdelight/models/item/mutton_chops.json -9b2fa3d0a64e63a92eee674992bf2cb832e0cb03 assets/farmersdelight/models/item/mutton_wrap.json -cec3a2e5a114d876a21f4be6a65c9e87a3259441 assets/farmersdelight/models/item/netherite_knife.json -b0ef7784e4c3dc2ea1d66b3e81cbf592bb4a4722 assets/farmersdelight/models/item/nether_salad.json -7a025a63ece7dcb7e26c482c172d55bc5f837e9d assets/farmersdelight/models/item/noodle_soup.json -c618156e552a2b76ffc9c0407cb2ae5bb3170e1a assets/farmersdelight/models/item/oak_cabinet.json -8238d120d6fb4abb3e3fc1c6a3a1e4e7ae6b54d9 assets/farmersdelight/models/item/onion.json -5d84cfa5c552be830a7714fe23a43d857416c931 assets/farmersdelight/models/item/onion_crate.json -719de2e57e084b100323aae588e7cb4c8753378c assets/farmersdelight/models/item/onion_soup.json -396cd864adc7fbdb4c80ad81cc883ce2d975ae1c assets/farmersdelight/models/item/orange_canvas_sign.json -a8c85cf3bfcd9253aeb47b6d644d48ffb3aada2c assets/farmersdelight/models/item/orange_hanging_canvas_sign.json -6508ad0722f28b2bb4d0a9e508c6ed17cdd9af45 assets/farmersdelight/models/item/organic_compost.json -921e90b74177f0ac79cf38b45f6d7b63edcb1ca3 assets/farmersdelight/models/item/pasta_with_meatballs.json -5c3f7c116c79005dfe7e0849035113605da69e0d assets/farmersdelight/models/item/pasta_with_mutton_chop.json -69d6ecf35c18fa4dc95a310dbc8ef1884b17313a assets/farmersdelight/models/item/pie_crust.json -810e3872fd42a96f9b3b0f63ff3706e57a6d9cdf assets/farmersdelight/models/item/pink_canvas_sign.json -5ba1c9f67fa35c404f397071208c6d6868297281 assets/farmersdelight/models/item/pink_hanging_canvas_sign.json -ffc94c7a973136fda794828ab5f015d6f0d06553 assets/farmersdelight/models/item/potato_crate.json -2e4db83eacf20bc99113960e1257b4120d6cd35f assets/farmersdelight/models/item/pumpkin_pie_slice.json -74fafba2f812b545a7a9d040eb1f81555a1945c7 assets/farmersdelight/models/item/pumpkin_slice.json -b69b0a3497b81b2046748f1339af526a8920a1f1 assets/farmersdelight/models/item/pumpkin_soup.json -56dbbbdcb21b258b8a94c6b9c8c7efb31eb689a4 assets/farmersdelight/models/item/purple_canvas_sign.json -bc495aedc79706c0e608d0ac20271edba839c10d assets/farmersdelight/models/item/purple_hanging_canvas_sign.json -942f2ab7e0eb2906c300dfe71b6bf00e3a6befda assets/farmersdelight/models/item/ratatouille.json -1443b93d0569eb4fbc81a5bedaf867061a415524 assets/farmersdelight/models/item/raw_pasta.json -29b78b7f448aa2066937a817113308ce4d4b3d47 assets/farmersdelight/models/item/red_canvas_sign.json -31ea5624a613c42849af5d7147e3289a8521f99d assets/farmersdelight/models/item/red_hanging_canvas_sign.json -dcce1bd48fadd0842ec30d3f97f6fd054ca1ee15 assets/farmersdelight/models/item/red_mushroom_colony.json -bb975bb4dafb2afc9fe854434e94557faf841b2d assets/farmersdelight/models/item/rice.json -6a9ad96b42ce534f2f0871f97cf6e0f44f35b031 assets/farmersdelight/models/item/rice_bag.json -ab6f26a770692b1ba0d55d989858e850518a40e7 assets/farmersdelight/models/item/rice_bale.json -e757f56f1f494b15e0fb40ebfc9cc8a12af3256f assets/farmersdelight/models/item/rice_panicle.json -63e2894acae33e9912e85c0e9c941a7c7a3cc6f3 assets/farmersdelight/models/item/rice_roll_medley_block.json -9937f5b62a6bc6b5caec58b45d16e751cec8a9eb assets/farmersdelight/models/item/rich_soil.json -67c90c8abf35154aa852d0216fd1a30513225b93 assets/farmersdelight/models/item/rich_soil_farmland.json -2d14bba24f1b4ebc7e22b71164934a653a1ae11e assets/farmersdelight/models/item/roasted_mutton_chops.json -61977acbfe4a439f360e42bff6f2d27620734f9d assets/farmersdelight/models/item/roast_chicken.json -98dd366831303816384882e4aa1a202ad544afc3 assets/farmersdelight/models/item/roast_chicken_block.json -b15a223c8c507c4e37589d6d8d04ab406e58c660 assets/farmersdelight/models/item/rope.json -f301173739c6edeacd34e65b3b5d9702fa2866ba assets/farmersdelight/models/item/rope_fence.json -20ce4552759aaa97287f4063059a2a8b37238633 assets/farmersdelight/models/item/rope_fence_gate.json -fc557dc149fd5dad772bb096cffe465d6352ffb7 assets/farmersdelight/models/item/rotten_tomato.json -805a255189bc6723f392a197ce88c78804365e8f assets/farmersdelight/models/item/safety_net.json -df9fcba774634b5fd6df69ed914ad983a954fcd5 assets/farmersdelight/models/item/salmon_roll.json -5a4804df4b08628ad1a7c5848d34046210406230 assets/farmersdelight/models/item/salmon_slice.json -ce514f125e3b8c84e0e03397b686ef11adaa4901 assets/farmersdelight/models/item/sandy_shrub.json -fae467eaced9bfe275f42a92235a49d3cea40d2f assets/farmersdelight/models/item/shepherds_pie.json -d9673de312d6419827b6822485821cdf39f2481e assets/farmersdelight/models/item/shepherds_pie_block.json -c7b9c428da59e499e63fc63a6dffd18954540b2d assets/farmersdelight/models/item/smoked_ham.json -62c3da00f12f9616dc51974b6a21ab9fc543036c assets/farmersdelight/models/item/spruce_cabinet.json -90043b128322c6889a624d2711c73cdca78b3091 assets/farmersdelight/models/item/squid_ink_pasta.json -3495a87a87f0ef87068aa5083b1f224e5721baab assets/farmersdelight/models/item/steak_and_potatoes.json -11f55a11b172daf0f8daa2a55d6b1ebd5aedfcf4 assets/farmersdelight/models/item/stove.json -b35701a977b869c74a825c10c9d352e9550af711 assets/farmersdelight/models/item/straw.json -8d8221d6ea6cfc7fc9eaf01cac4c695da0122a05 assets/farmersdelight/models/item/straw_bale.json -bb7a680a396b98c468a2bb81e1822f7a6c8d6a47 assets/farmersdelight/models/item/stuffed_potato.json -870ea003d41702209ef68372c54b35b23f7678a2 assets/farmersdelight/models/item/stuffed_pumpkin.json -47c5bf597dd60bee20b7c202414903e80deaffb9 assets/farmersdelight/models/item/stuffed_pumpkin_block.json -852ff7ab1dfb6f27e4ad9b883b080bc8961c2d9e assets/farmersdelight/models/item/sweet_berry_cheesecake.json -74eb84ea702c4f6cef3870f128a12c2a9b41a227 assets/farmersdelight/models/item/sweet_berry_cheesecake_slice.json -07c3ba71e6b0815a62ff5ef98fd3f96d7a239351 assets/farmersdelight/models/item/sweet_berry_cookie.json -37b0151fca7e60c9bb241864e262ecc4fb2c02b3 assets/farmersdelight/models/item/tatami.json -3db16d1b3f4f637b69edaa13ff022640351b88b2 assets/farmersdelight/models/item/tomato.json -47515fc69dd7e5d38675619479e6e8e2360e2c8e assets/farmersdelight/models/item/tomato_crate.json -866d0fa2336c2e085cce9707e9e2e0a153be791b assets/farmersdelight/models/item/tomato_sauce.json -12a5748e427e3e6f6472784f73b0635e0ca3662a assets/farmersdelight/models/item/tomato_seeds.json -4b8ac882b0d2da18a50dce84a3733d1d8b6c3dbc assets/farmersdelight/models/item/tree_bark.json -4a52d396e47fea251781cb81682b1165c08ee4bf assets/farmersdelight/models/item/vegetable_noodles.json -9ff3ce1e41f509694a0283523c223fcd162f0327 assets/farmersdelight/models/item/vegetable_soup.json -aa9129a8faa42a698778f58de26e2eb4fab07365 assets/farmersdelight/models/item/warped_cabinet.json -a634b899a40afb954687cb05b4d92420e1584fff assets/farmersdelight/models/item/wheat_dough.json -8f5b480ffffcee4b8bb2999dff640e692f323e2f assets/farmersdelight/models/item/white_canvas_sign.json -2adddb7cb6fa2b4b3a4c52f54c13e10addd76e6f assets/farmersdelight/models/item/white_hanging_canvas_sign.json -cfd08c1aabe6c928432873b4e65f4cae588295e0 assets/farmersdelight/models/item/wild_beetroots.json -e69be57b3c82877a1b206cc3939611e51fdb1f58 assets/farmersdelight/models/item/wild_cabbages.json -1af9a8b0161bcf4c736811a1992169cbe24e97c5 assets/farmersdelight/models/item/wild_carrots.json -fdb1712097f483c988f1772c4e2d5acb7ab5df5c assets/farmersdelight/models/item/wild_onions.json -a6714943bd149e3f8d5ceec7360c97c2d73f58e0 assets/farmersdelight/models/item/wild_potatoes.json -bbb0d8ddc79bea8017820879d8de85615bdb335a assets/farmersdelight/models/item/wild_rice.json -a411b17beb9b8789122f746d47803b36e8282618 assets/farmersdelight/models/item/wild_tomatoes.json -ae42d03e5476c9ac7655af87fd8f5712be62cf0d assets/farmersdelight/models/item/wooden_basket.json -667a990f59dcf205ffb4fecc0f7667dc4383e8bf assets/farmersdelight/models/item/yellow_canvas_sign.json -e21c56208bb57a47cd68b87c9ce04f0b0851becb assets/farmersdelight/models/item/yellow_hanging_canvas_sign.json diff --git a/src/generated/resources/.cache/55b530523832603ee79ac7ef34cbb3a3a66f5973 b/src/generated/resources/.cache/55b530523832603ee79ac7ef34cbb3a3a66f5973 deleted file mode 100644 index 714a4ecc4..000000000 --- a/src/generated/resources/.cache/55b530523832603ee79ac7ef34cbb3a3a66f5973 +++ /dev/null @@ -1,66 +0,0 @@ -// 1.21.1 2026-05-12T22:48:02.3817964 Tags for minecraft:block mod id farmersdelight -38f828e4676e464f280ee9fcbbd1065fa89e4218 data/create/tags/block/brittle.json -8481234a20c9d13f4da1a07b9651d1b99bbd0fad data/create/tags/block/fan_transparent.json -89dff4a2813a4b6fe13cde6e775266a1d606a4aa data/create/tags/block/passive_boiler_heaters.json -76c23603e65410291af111793aa931640128fae8 data/c/tags/block/fences.json -1ba129ce39f820a673b8ed7d47d083a5252dd5e3 data/c/tags/block/fence_gates.json -35133e95f1c8fdd7a1c21afcc231fc0bffefb9a8 data/c/tags/block/mineable/knife.json -c484c51d2c48af8c323a29257df2d3f0d180a19a data/c/tags/block/ropes.json -8a1e5da26c9752cf0618aaec7a6aab66633087ae data/c/tags/block/storage_blocks.json -da0d6934eabdb3acd06d9f7491f75608e9f0641f data/c/tags/block/storage_blocks/beetroot.json -afd3592ccefe001b743061344b7d2c827f40eef3 data/c/tags/block/storage_blocks/cabbage.json -5732bc2b22a77e42ce97c02dfb2a353db7f7c496 data/c/tags/block/storage_blocks/carrot.json -dc41382aa4ff1c9d8989532e2a70d6139fe3985e data/c/tags/block/storage_blocks/onion.json -38c32fcd46883629fae32771481257fe22079a22 data/c/tags/block/storage_blocks/potato.json -9d8915524697016a73aca8a902282f939274ddc7 data/c/tags/block/storage_blocks/rice.json -b1919af26385c8c277cbefc52e2d517cfa896190 data/c/tags/block/storage_blocks/rice_panicle.json -934b73c62dcc70c5ad128e42c34671a5e8530b46 data/c/tags/block/storage_blocks/straw.json -7ad993790e1a604a556656dd00b68f9ab8c12638 data/c/tags/block/storage_blocks/tomato.json -21d6792ce7de98e9396c3829ab52f8574595557b data/farmersdelight/tags/block/cabinets.json -19fcfae5f5396dfec4a1ca0d53473ceec4d202c0 data/farmersdelight/tags/block/cabinets/wooden.json -6644ebda4035b2e597066fa2def42ba14650cfbc data/farmersdelight/tags/block/campfire_signal_smoke.json -a3e0620f099da33e71998eb0cb6aa2fd9e457a51 data/farmersdelight/tags/block/compost_activators.json -17bf02f1662de477e421a897a9b1a092da3fd1b4 data/farmersdelight/tags/block/drops_cake_slice.json -e0807dee5085dc45ed2c07737845f88270bc224e data/farmersdelight/tags/block/feasts.json -bfaccff8e729039a0c1d0db4d359ded77f7c60c8 data/farmersdelight/tags/block/heat_conductors.json -641a6e1f4ea5020a7d3d0ccd6b1642b3426c3455 data/farmersdelight/tags/block/heat_sources.json -49978ea39eabccbf5b3035473d24e93adaf9aae9 data/farmersdelight/tags/block/mineable/knife.json -3c0ae55321aa932ca588fba70a103c5d62acaebc data/farmersdelight/tags/block/mushroom_colonies.json -d0812613832bbc602d7ff3274c81d5729e91c2ea data/farmersdelight/tags/block/mushroom_colony_growable_on.json -98e3a919647e0011c07a101e42982f0e806f074b data/farmersdelight/tags/block/pies.json -5e89bac3342aaba8808a09b1801224241b9fd48b data/farmersdelight/tags/block/planted_from_below.json -9d9610c9406031bb23309314f1cf668eae51544f data/farmersdelight/tags/block/ropes.json -7fb4a165414cdcfd2ba7931bc908720e4eeb9d0f data/farmersdelight/tags/block/straw_blocks.json -e4d28099b3557b120274c2ef7593e202019c4d65 data/farmersdelight/tags/block/terrain.json -90c6f0a64d1a682335e4b5dca86a5c85073951a0 data/farmersdelight/tags/block/tray_heat_sources.json -106f8e5a8993cd993c7bba3b04b5e6431908e5fb data/farmersdelight/tags/block/unaffected_by_rich_soil.json -5596501768488a25c5bcc6ef16c2fc5ca3ab49e9 data/farmersdelight/tags/block/wild_crops.json -d0812613832bbc602d7ff3274c81d5729e91c2ea data/minecraft/tags/block/bamboo_plantable_on.json -859810b0bf4f36e275af5b6a86c3c7b9a968dbd3 data/minecraft/tags/block/ceiling_hanging_signs.json -ba20db5500d52fd1d778ebf4beffbb5f5f3e9ef8 data/minecraft/tags/block/climbable.json -0da15d7e6b0822bc549fda4415b52284b244626d data/minecraft/tags/block/combination_step_sound_blocks.json -b6a491ddff6438e24735c2dd0910826455e61c68 data/minecraft/tags/block/crops.json -d0812613832bbc602d7ff3274c81d5729e91c2ea data/minecraft/tags/block/dirt.json -76c23603e65410291af111793aa931640128fae8 data/minecraft/tags/block/fences.json -1ba129ce39f820a673b8ed7d47d083a5252dd5e3 data/minecraft/tags/block/fence_gates.json -46eba184858bae298b1430bbab858976e323111c data/minecraft/tags/block/maintains_farmland.json -6b3db202de5fe047ba94806e175ccf38b458afba data/minecraft/tags/block/mineable/axe.json -2a8f19bc7b45789f94892524a425f28c21f4d227 data/minecraft/tags/block/mineable/hoe.json -963c2f1508fda246255005f0ac460a274c704ecd data/minecraft/tags/block/mineable/pickaxe.json -0eb2b01360e681e4689610044f4da8ace960e921 data/minecraft/tags/block/mineable/shovel.json -70df609f6a7436162e87d14c6a742f3f0c3dff35 data/minecraft/tags/block/mushroom_grow_block.json -6bed2bc685973bf66e23513668eae44c1b875754 data/minecraft/tags/block/replaceable.json -6bed2bc685973bf66e23513668eae44c1b875754 data/minecraft/tags/block/replaceable_by_trees.json -f3b1539ad9a9117d3c48eca8dc67768f1a118df4 data/minecraft/tags/block/small_flowers.json -f689dbe322491c7ad7b7aa512fbd981bc4d7ec45 data/minecraft/tags/block/standing_signs.json -166fca1b0d8b63bf7564f93e9e7d0bf3dd45bf03 data/minecraft/tags/block/tall_flowers.json -4bc9553c952a9d40a7ff218395d48f27f8c08df7 data/minecraft/tags/block/wall_hanging_signs.json -42655e1b47b467aeaf7593e6f2fca0a16786fb87 data/minecraft/tags/block/wall_signs.json -d899a783b5e4f2dcef445788a2e88b0d687a20b8 data/neoforge/tags/block/villager_farmlands.json -ffcda20518c10de0e50800211be05f13cf25b4cb data/sable/tags/block/light.json -9fda3460187737aebd30a3fe54c798fef33d9f0b data/sable/tags/block/super_light.json -4dcc51aef8cad784cecedbc69fe3a14020a9288c data/sereneseasons/tags/block/autumn_crops.json -ee4421cfb87b30b984db41666b2a17df2d9097f9 data/sereneseasons/tags/block/spring_crops.json -842275996c27c76aaae4c691715f96933d5ff0b0 data/sereneseasons/tags/block/summer_crops.json -ee4421cfb87b30b984db41666b2a17df2d9097f9 data/sereneseasons/tags/block/unbreakable_infertile_crops.json -31d5d71e1ecdce81c8fb8b9e085d8a726cf9ce6c data/sereneseasons/tags/block/winter_crops.json diff --git a/src/generated/resources/.cache/59eb3dbb5f86130e09b3c62d89b9525ee01cf52d b/src/generated/resources/.cache/59eb3dbb5f86130e09b3c62d89b9525ee01cf52d deleted file mode 100644 index d5e0f59d8..000000000 --- a/src/generated/resources/.cache/59eb3dbb5f86130e09b3c62d89b9525ee01cf52d +++ /dev/null @@ -1,113 +0,0 @@ -// 1.21.1 2026-03-25T01:14:08.5546299 Loot Tables -cee3ddcf0129e742307f35926b2f1b713d0f5ea1 data/farmersdelight/loot_table/blocks/acacia_cabinet.json -23fb8611e8fde16b90b760500fb6d39c0042c092 data/farmersdelight/loot_table/blocks/apple_pie.json -9b2ab65cc0cff153f89f4ba4b59d2b807315767e data/farmersdelight/loot_table/blocks/bamboo_basket.json -e088b51239f2c7e718d8da6f7d31a18334556251 data/farmersdelight/loot_table/blocks/bamboo_cabinet.json -da434db268e536926559cbd2a6ef9f9de09fa673 data/farmersdelight/loot_table/blocks/beetroot_crate.json -9f1f6e8cca7e33273c484a1c8c0189088e7bb393 data/farmersdelight/loot_table/blocks/birch_cabinet.json -125f58c92dfe754760f9de87892744b65ab58144 data/farmersdelight/loot_table/blocks/black_canvas_sign.json -45fc89cfebf9966e7fc7f096a76ee7acf2cbeb46 data/farmersdelight/loot_table/blocks/black_hanging_canvas_sign.json -60e56b2a833cec57f77b15765abf1912473922bf data/farmersdelight/loot_table/blocks/blue_canvas_sign.json -f9eabbb7f589639600b06f7de82c16b1bfcc5500 data/farmersdelight/loot_table/blocks/blue_hanging_canvas_sign.json -b1e7a56d66e290349c2cf4c225d9768788cb4a2a data/farmersdelight/loot_table/blocks/brown_canvas_sign.json -7f94b52e3e9ca3a365f333752ea5b22372d70a28 data/farmersdelight/loot_table/blocks/brown_hanging_canvas_sign.json -e5304c1d93d81ae047a7cf02810c5cb67c6497c9 data/farmersdelight/loot_table/blocks/brown_mushroom_colony.json -810b8a869e8485e0bbed4cb6053d1e10a1b926e8 data/farmersdelight/loot_table/blocks/budding_tomatoes.json -b8a2b6a9304806f1be910c1660cbf669dd45e434 data/farmersdelight/loot_table/blocks/cabbages.json -ef30aafe2e8e73ef42ddedc5793ab18ee034aceb data/farmersdelight/loot_table/blocks/cabbage_crate.json -b528bf71d8eff4d7ebbdf465d0ba09f0c0109df4 data/farmersdelight/loot_table/blocks/canvas_rug.json -45b9267d8fe04f46d2d742f5c9327907776220eb data/farmersdelight/loot_table/blocks/canvas_sign.json -5e10190fc83f2ece9e8d48708b269e9fcc7a02bf data/farmersdelight/loot_table/blocks/carrot_crate.json -f35d8244edd7924b59ebdd9afede2393e1379c82 data/farmersdelight/loot_table/blocks/cherry_cabinet.json -6964c37344609eccdc841f5365bc31624a2983e2 data/farmersdelight/loot_table/blocks/chocolate_pie.json -4b475ec3b2d1b0d2c3c0bf55dfdbc59805922467 data/farmersdelight/loot_table/blocks/cooking_pot.json -2758a40cabd48877f05c1bf2c0a4ec6fd4b7da39 data/farmersdelight/loot_table/blocks/crimson_cabinet.json -8dcd4c77dc83f4b5f09a61c4c91252408155f5af data/farmersdelight/loot_table/blocks/cutting_board.json -5ceb276a44167095c01d7722d15aaec47527678b data/farmersdelight/loot_table/blocks/cyan_canvas_sign.json -a65e59e4721635a0e414ce4a20dc2d533d713ee5 data/farmersdelight/loot_table/blocks/cyan_hanging_canvas_sign.json -b58c6181526bafd737cc98bf891dfdbda7685762 data/farmersdelight/loot_table/blocks/dark_oak_cabinet.json -88a96703cb60bdcd9d3d23c8afe1d57621609160 data/farmersdelight/loot_table/blocks/full_tatami_mat.json -d529b5f3a368595999a9e3df50285639d4223e7b data/farmersdelight/loot_table/blocks/gleaming_salad_block.json -4d845038b429cdeb02c2bd3e34d1eafc5ddbcc08 data/farmersdelight/loot_table/blocks/gray_canvas_sign.json -efb1d02be56af5931db784b1a8f59e74e1e9c530 data/farmersdelight/loot_table/blocks/gray_hanging_canvas_sign.json -bad04fd6f62ecfe5555dd0d4320c3e8bfe414262 data/farmersdelight/loot_table/blocks/green_canvas_sign.json -4105a63be53f1a06dbc21fa1a7d48ceca1b2f4c0 data/farmersdelight/loot_table/blocks/green_hanging_canvas_sign.json -87360ee6a0b76f9b31c6e33993e4c09d1b994ab7 data/farmersdelight/loot_table/blocks/half_tatami_mat.json -5d447efa169496f63fe5cdbba1edb608722e1154 data/farmersdelight/loot_table/blocks/hanging_canvas_sign.json -5b77127e8c7dc8168ac520afe87a56c25103d59d data/farmersdelight/loot_table/blocks/honey_glazed_ham_block.json -014a385b59d3ea857a941c42f7cf3cd4233cee13 data/farmersdelight/loot_table/blocks/jungle_cabinet.json -61d6fc49ad6388ba31c7a580b59ba41124df73ac data/farmersdelight/loot_table/blocks/light_blue_canvas_sign.json -d82a0d0b3eabbc7eabe9d73bf28c2c97f0774b52 data/farmersdelight/loot_table/blocks/light_blue_hanging_canvas_sign.json -884c8df9a08b83831edfa423fc1f0cc88d21485d data/farmersdelight/loot_table/blocks/light_gray_canvas_sign.json -268ead03375ab5fd1364d8162085588d6ac18977 data/farmersdelight/loot_table/blocks/light_gray_hanging_canvas_sign.json -6e8590e2e70370fa0236307e3f118263fcc61b37 data/farmersdelight/loot_table/blocks/lime_canvas_sign.json -917b487bad6b3156f9798558a31cb5e893f13acf data/farmersdelight/loot_table/blocks/lime_hanging_canvas_sign.json -258b2410199336f6ea621d8ba385aa694077941b data/farmersdelight/loot_table/blocks/magenta_canvas_sign.json -92912842a5b383afe9767014fcabd67804b48703 data/farmersdelight/loot_table/blocks/magenta_hanging_canvas_sign.json -b38c2b716f6f66a82453d1f58d036f6f5c43f6c7 data/farmersdelight/loot_table/blocks/mangrove_cabinet.json -4955866095389f960ec3ede01b768b2ae6542bb7 data/farmersdelight/loot_table/blocks/oak_cabinet.json -3353404c9738428313450cce621d9689ca12b32e data/farmersdelight/loot_table/blocks/onions.json -7cf62b3338d016d91651d1cf29463532cf0e93dd data/farmersdelight/loot_table/blocks/onion_crate.json -126ff540f386733d5c9f8abd4019ede05444f5f1 data/farmersdelight/loot_table/blocks/orange_canvas_sign.json -8c915f1d051cbeb95df494d2e22e74366b6d470f data/farmersdelight/loot_table/blocks/orange_hanging_canvas_sign.json -49ddd1bd1007fba1abe10a6a5d07b8323267c2a8 data/farmersdelight/loot_table/blocks/organic_compost.json -014d4efe43b8e05411515efbe0cb2afdb514ac44 data/farmersdelight/loot_table/blocks/pink_canvas_sign.json -29289334a9e02966378640bf8962ab3e94800ba2 data/farmersdelight/loot_table/blocks/pink_hanging_canvas_sign.json -5b6fbf70eb057a3225bf33109249208fdf76c201 data/farmersdelight/loot_table/blocks/potato_crate.json -2526418b29b77eea13b7020798db9ec10e10d68a data/farmersdelight/loot_table/blocks/pumpkin_pie.json -15735bd85b408fb2d87ac9daef3a8cd922881082 data/farmersdelight/loot_table/blocks/purple_canvas_sign.json -c84027d9499abaf0147d2b6d4b926ba0bc528495 data/farmersdelight/loot_table/blocks/purple_hanging_canvas_sign.json -28d82b66e8d0c86419ae321d5b4827748a5f0aab data/farmersdelight/loot_table/blocks/red_canvas_sign.json -28aab00e4d4dba456b286e9462a1da65ce69303c data/farmersdelight/loot_table/blocks/red_hanging_canvas_sign.json -af58aaba0594f4a2073610f71b1b2aa4c7c1f5be data/farmersdelight/loot_table/blocks/red_mushroom_colony.json -4b28affd1eb40a3648fa76211963d7a742ddef9a data/farmersdelight/loot_table/blocks/rice.json -5631a97f846bda9766d1357746ef530593aeea31 data/farmersdelight/loot_table/blocks/rice_bag.json -601eb487c5b3b053e076f067bc861f464961bd9e data/farmersdelight/loot_table/blocks/rice_bale.json -9e3d24d3afa45869f9946a3823cb4d97a2e1b8d9 data/farmersdelight/loot_table/blocks/rice_panicles.json -40117d39c42ac15305859c87d5063fa779274510 data/farmersdelight/loot_table/blocks/rice_roll_medley_block.json -fc7e3156f648c2134f235208d9c2b22964c735e7 data/farmersdelight/loot_table/blocks/rich_soil.json -c1d03a43ac609d07995c2aa0e9b2abd73cefe3ae data/farmersdelight/loot_table/blocks/rich_soil_farmland.json -62f85673d10bc300044b5f909aec017b0e33fefd data/farmersdelight/loot_table/blocks/roast_chicken_block.json -37528dbafe10dcbb0b52f7858cd67b84fa27587c data/farmersdelight/loot_table/blocks/rope.json -c7285841a32a8c9070c0162a5cbd7d76c184d0dd data/farmersdelight/loot_table/blocks/rope_fence.json -63e6ee8c9e04192f7bb624f30261cfac5963213e data/farmersdelight/loot_table/blocks/rope_fence_gate.json -4022aaf7e682d2846d57833eaf3a5d201a96a874 data/farmersdelight/loot_table/blocks/safety_net.json -f6c36b1d75344518ef1d17729643ee550fb8f846 data/farmersdelight/loot_table/blocks/sandy_shrub.json -8d990d5783094b750d98b649076d9a040df5b506 data/farmersdelight/loot_table/blocks/shepherds_pie_block.json -e3e7a97b507231eaf6bab7914659bd95b3321e56 data/farmersdelight/loot_table/blocks/skillet.json -edbb17b80cccc1af3d68d6964a9c701952cdb31f data/farmersdelight/loot_table/blocks/spruce_cabinet.json -4f43c96dcffa0a206cb08178c5d5a1d579749564 data/farmersdelight/loot_table/blocks/stove.json -4457c2b15dac4b716e0d03c249728b65d12b0317 data/farmersdelight/loot_table/blocks/straw_bale.json -f3cf5a0368e06ba5d28a6614cc1494d3c46e4597 data/farmersdelight/loot_table/blocks/stuffed_pumpkin_block.json -4c479a56ddc822da575cb1a3e0b07d95e9e0292d data/farmersdelight/loot_table/blocks/sweet_berry_cheesecake.json -c0fb174db26a5834f442e2e0be23f2422355866e data/farmersdelight/loot_table/blocks/tatami.json -7267ae9031194b816df4fd0f824c5d64b64b7d45 data/farmersdelight/loot_table/blocks/tomatoes.json -5a47c9bc04e460ad0e1bb12af4a8fd2799e69aaa data/farmersdelight/loot_table/blocks/tomatoes_on_rope.json -8b1f49427d5719b897c3dc8aa2a7984af67a6bcd data/farmersdelight/loot_table/blocks/tomato_crate.json -af22b37001dc28484c2bf8b3bf3b4d93afd6e556 data/farmersdelight/loot_table/blocks/warped_cabinet.json -31b05783f24e3a87674ee216c702178cbaf2f690 data/farmersdelight/loot_table/blocks/white_canvas_sign.json -b8e545f14f0fd94d7a67f4afe8111c686b019cd2 data/farmersdelight/loot_table/blocks/white_hanging_canvas_sign.json -0a5225a15d03a6a378f4986c5f86d86454178d9e data/farmersdelight/loot_table/blocks/wild_beetroots.json -4a086ee3627b317bccc2edd94ca1db9bae909c5c data/farmersdelight/loot_table/blocks/wild_cabbages.json -592d19d0f48597aee6fd1453400f5f7c35072f68 data/farmersdelight/loot_table/blocks/wild_carrots.json -d85b412c62850536db19346520280b99bd9917b2 data/farmersdelight/loot_table/blocks/wild_onions.json -55803bdd62414cf79aec1e1ea610c9bdb0fe3a71 data/farmersdelight/loot_table/blocks/wild_potatoes.json -c05a484ded633fcaff52a501fd11edd1c2501afb data/farmersdelight/loot_table/blocks/wild_rice.json -76500253f3d09cb84f70c7abb3823c571ba4376b data/farmersdelight/loot_table/blocks/wild_tomatoes.json -d72eac3f5ba31720db045090ac07b30acff680ac data/farmersdelight/loot_table/blocks/wooden_basket.json -95ea36155e6f8a089b4ca93783af1d5cd27e44d4 data/farmersdelight/loot_table/blocks/yellow_canvas_sign.json -94feb431ac6b7039d5e76313342a50982b6bac54 data/farmersdelight/loot_table/blocks/yellow_hanging_canvas_sign.json -29257be8f8e8b315f9818c64153d316cb94ec35b data/farmersdelight/loot_table/chests/fd_abandoned_mineshaft.json -ff57a704a12738074d29e45ecefa50c438374018 data/farmersdelight/loot_table/chests/fd_bastion_hoglin_stable.json -362b827285a4d87ac085bbf14810fff6c88bd027 data/farmersdelight/loot_table/chests/fd_bastion_treasure.json -86c2c402cb101a5cfa1bbb40cbcc28f50a7fc096 data/farmersdelight/loot_table/chests/fd_end_city_treasure.json -aeb2c76cecb777c5bc8561fde5dc68d1731e6fc7 data/farmersdelight/loot_table/chests/fd_pillager_outpost.json -9a463d219c66279cea8bb5699bd1b1abf1349837 data/farmersdelight/loot_table/chests/fd_ruined_portal.json -f4a742b27346772ccf8b80bd3d9a3f476ba66289 data/farmersdelight/loot_table/chests/fd_shipwreck_supply.json -ed6b7aa03feb4f55ec1bf2dbe9a20691f299f02c data/farmersdelight/loot_table/chests/fd_simple_dungeon.json -2a03dbad18c0bd6a128c32e0aadc137b1bb96a46 data/farmersdelight/loot_table/chests/fd_village_butcher.json -d0ab2bcb3423310aef49919e1dcfd4665b4fd079 data/farmersdelight/loot_table/chests/fd_village_desert_house.json -c1beb05c68d350e197c83a3a8a63ad5acbb19afd data/farmersdelight/loot_table/chests/fd_village_plains_house.json -17470691894fabfa92c87d1145e1f130535325b0 data/farmersdelight/loot_table/chests/fd_village_savanna_house.json -553b8e5b81101adf72ecc060ad71569f94a8e5f1 data/farmersdelight/loot_table/chests/fd_village_snowy_house.json -57961e8922d46b38548f87b1effba59e241ea6b9 data/farmersdelight/loot_table/chests/fd_village_taiga_house.json diff --git a/src/generated/resources/.cache/5a0a6788f4a1a24610c1c0c10b075dc92982eeef b/src/generated/resources/.cache/5a0a6788f4a1a24610c1c0c10b075dc92982eeef deleted file mode 100644 index f3ba4882f..000000000 --- a/src/generated/resources/.cache/5a0a6788f4a1a24610c1c0c10b075dc92982eeef +++ /dev/null @@ -1 +0,0 @@ -// 1.21.1 2024-09-30T21:24:00.906199 Update structure files in structures/village/houses diff --git a/src/generated/resources/.cache/5b24237c90163b576498ce1130f3afc9fd6fdb33 b/src/generated/resources/.cache/5b24237c90163b576498ce1130f3afc9fd6fdb33 deleted file mode 100644 index a35b3c59d..000000000 --- a/src/generated/resources/.cache/5b24237c90163b576498ce1130f3afc9fd6fdb33 +++ /dev/null @@ -1,106 +0,0 @@ -// 1.21.1 2026-04-17T15:50:57.228736 Tags for minecraft:item mod id farmersdelight -65eba9e0353834055ff822059bd7e1784fe218ad data/createaddition/tags/item/plants.json -f55c336a7c0c249fc90b76c979cfa5d5f6a277bf data/createaddition/tags/item/plant_foods.json -578c1c9a03e76fe2831f34ee8a74b0d5396e7c0e data/create/tags/item/upright_on_belt.json -37edc107822c138cf74a13a3bd862c2f77ae8e8c data/c/tags/item/crops.json -5bbfb299379c168bb2327bda9407b207ac10f4ea data/c/tags/item/crops/cabbage.json -0f562b0fbe6970c38dd03e21aaba2cef5e08540c data/c/tags/item/crops/grain.json -67cc2b5a00311a0164d09c5487c714d091be00d9 data/c/tags/item/crops/onion.json -e07a7ae115045b2965657efe36300a94364de4af data/c/tags/item/crops/rice.json -0fe37095f12c7c6a3bca60606cab33162378e60d data/c/tags/item/crops/tomato.json -c6d731fe8fcecc9b674a5d0375fd7c4c58c1d899 data/c/tags/item/drinks.json -9f3f07dbd96f9d69d569c7918bfe0e7bab509d9e data/c/tags/item/drinks/milk.json -76c23603e65410291af111793aa931640128fae8 data/c/tags/item/fences.json -1ba129ce39f820a673b8ed7d47d083a5252dd5e3 data/c/tags/item/fence_gates.json -3f8f73ca2266fa7a4d17c97204b329c0e7f4bc5b data/c/tags/item/foods.json -5bbfb299379c168bb2327bda9407b207ac10f4ea data/c/tags/item/foods/cabbage.json -3303db8c35b37ceda9538f0642448ff9ee6c42d0 data/c/tags/item/foods/cooked_bacon.json -239cd4652a85bba6a88770dbcc0daab6e9087ad8 data/c/tags/item/foods/cooked_beef.json -eaeec4b02a1d41a895f1e5fec0b1347ed3acd73f data/c/tags/item/foods/cooked_chicken.json -8a9cdfd84d30be9690da31005680cce8cb846e76 data/c/tags/item/foods/cooked_cod.json -07c77bd8ad8c4e6d1964a40a9214a6a34cb92d9e data/c/tags/item/foods/cooked_egg.json -0ab69720fd5c1ffba79f92ac31bc9edaffb1c259 data/c/tags/item/foods/cooked_fish.json -aed89f4d52bf4812e716038b56f18584ee06db82 data/c/tags/item/foods/cooked_meat.json -5eae6a1178eb833f52d2b34227acaf59baba87af data/c/tags/item/foods/cooked_mutton.json -57b96a97b0785ba40705a7fa69474ceda4e8fd7d data/c/tags/item/foods/cooked_pork.json -9abb7a585095d238db90289d9239fc7cf980070f data/c/tags/item/foods/cooked_salmon.json -139eb819e6cdc4f3a30b90708f4b0fab277fb3a0 data/c/tags/item/foods/cookie.json -e2f69da8312f6b119d15ab810d2f7bc859f85e12 data/c/tags/item/foods/dough.json -009e3ca74df76edfe88b0b1f2a043b3bc593957a data/c/tags/item/foods/dough/wheat.json -00251a84e738b1c2cc55b08913f27c5655ede242 data/c/tags/item/foods/edible_when_placed.json -336dcdf52ca0980fdba4668ae996f5034cad9432 data/c/tags/item/foods/food_poisoning.json -475e2e580d3e2d9e7d241515a791d6925591ca65 data/c/tags/item/foods/leafy_green.json -67cc2b5a00311a0164d09c5487c714d091be00d9 data/c/tags/item/foods/onion.json -cc07bf42ee781fd6b78320d408c87a7d65276184 data/c/tags/item/foods/pasta.json -2ab4137036af9ba68d84341e754e663edd00dc0a data/c/tags/item/foods/pie.json -ef52cc197127c8679eb1c5b78795a4bde37e1d04 data/c/tags/item/foods/raw_bacon.json -92f699bda4cf5f5533b1f7e80e1f95e32b0192d2 data/c/tags/item/foods/raw_beef.json -05194311998bffa86a518e72aad4dcfa09f8b745 data/c/tags/item/foods/raw_chicken.json -4672824ff90e71870906006ee8f84592d88bc509 data/c/tags/item/foods/raw_cod.json -5af5005e77d7bbd7864fd5917614333217c55823 data/c/tags/item/foods/raw_fish.json -950888a3dcbe868d985e818a288db41f0896498c data/c/tags/item/foods/raw_meat.json -3a49a4024d4369ce405f4090eee021ca4c3ae4d3 data/c/tags/item/foods/raw_mutton.json -3cd469a93f4fb0f57ba2466cea9ec798627ef103 data/c/tags/item/foods/raw_pork.json -7c238208767949f224e484e22241b21edb79c2f0 data/c/tags/item/foods/raw_salmon.json -47648304fde04bb2ad5c37551c4371ea3f6a548d data/c/tags/item/foods/safe_raw_fish.json -4fca776d2df70acaa08665ca1dfb39ce23034a5e data/c/tags/item/foods/soup.json -0fe37095f12c7c6a3bca60606cab33162378e60d data/c/tags/item/foods/tomato.json -918c0f66af478fb6e30369d568b5a8fb9713348b data/c/tags/item/foods/vegetable.json -c484c51d2c48af8c323a29257df2d3f0d180a19a data/c/tags/item/ropes.json -72e49310839c0faed01ba86225e802ae4961cb5e data/c/tags/item/seeds.json -8a1e5da26c9752cf0618aaec7a6aab66633087ae data/c/tags/item/storage_blocks.json -da0d6934eabdb3acd06d9f7491f75608e9f0641f data/c/tags/item/storage_blocks/beetroot.json -afd3592ccefe001b743061344b7d2c827f40eef3 data/c/tags/item/storage_blocks/cabbage.json -5732bc2b22a77e42ce97c02dfb2a353db7f7c496 data/c/tags/item/storage_blocks/carrot.json -dc41382aa4ff1c9d8989532e2a70d6139fe3985e data/c/tags/item/storage_blocks/onion.json -38c32fcd46883629fae32771481257fe22079a22 data/c/tags/item/storage_blocks/potato.json -9d8915524697016a73aca8a902282f939274ddc7 data/c/tags/item/storage_blocks/rice.json -b1919af26385c8c277cbefc52e2d517cfa896190 data/c/tags/item/storage_blocks/rice_panicle.json -934b73c62dcc70c5ad128e42c34671a5e8530b46 data/c/tags/item/storage_blocks/straw.json -7ad993790e1a604a556656dd00b68f9ab8c12638 data/c/tags/item/storage_blocks/tomato.json -ca5d704c80ce87e8088c90a25812a2eb1e56c353 data/c/tags/item/tools.json -edaf49470d0e1c903468fd6902234bbeec85c337 data/c/tags/item/tools/knife.json -21d6792ce7de98e9396c3829ab52f8574595557b data/farmersdelight/tags/item/cabinets.json -19fcfae5f5396dfec4a1ca0d53473ceec4d202c0 data/farmersdelight/tags/item/cabinets/wooden.json -f689dbe322491c7ad7b7aa512fbd981bc4d7ec45 data/farmersdelight/tags/item/canvas_signs.json -b51fbc41ab996b99a6b4807508b1fbb7010069c3 data/farmersdelight/tags/item/drinks.json -b1d4ce3e56c5776870a8fdd487526210fd93ecbd data/farmersdelight/tags/item/enchantable/knife.json -e0807dee5085dc45ed2c07737845f88270bc224e data/farmersdelight/tags/item/feasts.json -573af7240d931c25837df7bf140759f86076b288 data/farmersdelight/tags/item/flat_on_cutting_board.json -859810b0bf4f36e275af5b6a86c3c7b9a968dbd3 data/farmersdelight/tags/item/hanging_canvas_signs.json -ccfa3b08069d06ce1fe3e23e3cfa19f8ecf44e15 data/farmersdelight/tags/item/meals.json -3c0ae55321aa932ca588fba70a103c5d62acaebc data/farmersdelight/tags/item/mushroom_colonies.json -c3e930dad76c9cbf50c1fc53fa493632e943a4e5 data/farmersdelight/tags/item/pies.json -d837fdcf195d0755d48909cc19e0ad7aed1c4c72 data/farmersdelight/tags/item/serving_containers.json -5758fee70d4345cd53ca8032cb0d7507f4265e04 data/farmersdelight/tags/item/snacks.json -b1d4ce3e56c5776870a8fdd487526210fd93ecbd data/farmersdelight/tags/item/straw_harvesters.json -f2692ca880b3bf403e556560fc3a97ce251139e1 data/farmersdelight/tags/item/sweets.json -edaf49470d0e1c903468fd6902234bbeec85c337 data/farmersdelight/tags/item/tools/knives.json -5596501768488a25c5bcc6ef16c2fc5ca3ab49e9 data/farmersdelight/tags/item/wild_crops.json -b1d4ce3e56c5776870a8fdd487526210fd93ecbd data/minecraft/tags/item/breaks_decorated_pots.json -5c8e4e84a66c3a1ab8a04b6363ddeb3f475ddf1b data/minecraft/tags/item/cat_food.json -9980a57042decbe4d29e529febb0c76a7ae1b152 data/minecraft/tags/item/chicken_food.json -b144808149c1364e3cd3dc4b4128b76b24e00bf1 data/minecraft/tags/item/enchantable/durability.json -b144808149c1364e3cd3dc4b4128b76b24e00bf1 data/minecraft/tags/item/enchantable/fire_aspect.json -b1d4ce3e56c5776870a8fdd487526210fd93ecbd data/minecraft/tags/item/enchantable/mining.json -b1d4ce3e56c5776870a8fdd487526210fd93ecbd data/minecraft/tags/item/enchantable/mining_loot.json -b144808149c1364e3cd3dc4b4128b76b24e00bf1 data/minecraft/tags/item/enchantable/sharp_weapon.json -b144808149c1364e3cd3dc4b4128b76b24e00bf1 data/minecraft/tags/item/enchantable/sword.json -b144808149c1364e3cd3dc4b4128b76b24e00bf1 data/minecraft/tags/item/enchantable/weapon.json -7441d3370afb8b426c09f3608f0dd0aea4f54e4d data/minecraft/tags/item/hanging_signs.json -9f7c54970bfbea398bb27fdc66750b6459bc9946 data/minecraft/tags/item/horse_tempt_items.json -ab8d571e62fc4b847ce3e023c22e53e76c98328a data/minecraft/tags/item/meat.json -9980a57042decbe4d29e529febb0c76a7ae1b152 data/minecraft/tags/item/parrot_food.json -fe7bdb9a3a19d42543aea1030ea44f1db041a878 data/minecraft/tags/item/piglin_loved.json -0b772a759b7363772f8ebecf5ec7df857d4ac6aa data/minecraft/tags/item/pig_food.json -f1e2b43c8bc399294b2561cb228e3da8fc403a94 data/minecraft/tags/item/rabbit_food.json -38e1524ee683c493a01193efe4926abb88caa287 data/minecraft/tags/item/signs.json -f3b1539ad9a9117d3c48eca8dc67768f1a118df4 data/minecraft/tags/item/small_flowers.json -166fca1b0d8b63bf7564f93e9e7d0bf3dd45bf03 data/minecraft/tags/item/tall_flowers.json -71f39b71e1a7298641682ad8682ca945f8f7a35d data/minecraft/tags/item/villager_plantable_seeds.json -f305fbe067478314b9763bd8e60893ec468f423b data/origins/tags/item/meat.json -da9c9878a953f308686cf68600b9cc33de2301ae data/sereneseasons/tags/item/autumn_crops.json -67cc2b5a00311a0164d09c5487c714d091be00d9 data/sereneseasons/tags/item/spring_crops.json -50fb0b1581d0ccf95fd37303afe49dda35daaeb5 data/sereneseasons/tags/item/summer_crops.json -637db2b92cd8d3c4e06bd04d8b9c6b35cbf3e9c2 data/sereneseasons/tags/item/winter_crops.json -67cc2b5a00311a0164d09c5487c714d091be00d9 data/tconstruct/tags/item/seeds.json diff --git a/src/generated/resources/.cache/7054f8c78298fe6da7c2d4c03a539a35554ee1d7 b/src/generated/resources/.cache/7054f8c78298fe6da7c2d4c03a539a35554ee1d7 deleted file mode 100644 index 8efd42b67..000000000 --- a/src/generated/resources/.cache/7054f8c78298fe6da7c2d4c03a539a35554ee1d7 +++ /dev/null @@ -1,4 +0,0 @@ -// 1.21.1 2024-09-30T21:24:00.9051984 Tags for minecraft:entity_type mod id farmersdelight -7de65935b0b39ff2ffe91074550ac77e9fae7a84 data/farmersdelight/tags/entity_type/dog_food_users.json -113fcf0aefa526f67eaf6f17722d13ae48d538fa data/farmersdelight/tags/entity_type/horse_feed_tempted.json -76ade8f40615f7dd72ce5bd44f25eec9ef10fe98 data/farmersdelight/tags/entity_type/horse_feed_users.json diff --git a/src/generated/resources/.cache/735031f3addf80804addae5e3f53249900116f1e b/src/generated/resources/.cache/735031f3addf80804addae5e3f53249900116f1e index 6b7d0b5cf..40d55d23b 100644 --- a/src/generated/resources/.cache/735031f3addf80804addae5e3f53249900116f1e +++ b/src/generated/resources/.cache/735031f3addf80804addae5e3f53249900116f1e @@ -1,2 +1,2 @@ -// 1.21.1 2026-04-17T00:10:58.0448487 Sound Definitions -3a9a3087e7e01be0ddce05141ecdbc4e2e9ae482 assets/farmersdelight/sounds.json +// 26.2 2026-07-27T13:17:33.0045606 Sound Definitions +53d39f6dfef665661514a77e72690b33ec4cc0bf assets/farmersdelight/sounds.json diff --git a/src/generated/resources/.cache/744202df1d69ca3f1fe9bb1ddcd98221c68c3b51 b/src/generated/resources/.cache/744202df1d69ca3f1fe9bb1ddcd98221c68c3b51 deleted file mode 100644 index b05c32e73..000000000 --- a/src/generated/resources/.cache/744202df1d69ca3f1fe9bb1ddcd98221c68c3b51 +++ /dev/null @@ -1,39 +0,0 @@ -// 1.21.1 2026-05-01T20:39:13.6124005 Global Loot Modifiers : farmersdelight -ae0955bb3dfc6fb01f34c29b9211a9736df01cce data/farmersdelight/loot_modifiers/add_loot_abandoned_mineshaft.json -52d2381558c52b69845ce0685ca898f84d9d3c5f data/farmersdelight/loot_modifiers/add_loot_bastion_hoglin_stable.json -f0b389ce3b3c00311fb4d4ea3cc1000b5eba70c7 data/farmersdelight/loot_modifiers/add_loot_bastion_treasure.json -e4f45c7f57b1ea5b22f7eef07344305f631d6010 data/farmersdelight/loot_modifiers/add_loot_end_city_treasure.json -4a846ac08fe6b6bfc0e325ee6d58a6b327c9fad5 data/farmersdelight/loot_modifiers/add_loot_pillager_outpost.json -e733c02e2e68f14150c2e8f743c4f75310e9f152 data/farmersdelight/loot_modifiers/add_loot_ruined_portal.json -74ba526cb07a55d863d723d7b68aaec8e2d3f638 data/farmersdelight/loot_modifiers/add_loot_shipwreck_supply.json -a15542a38b1d35a236fae2ea3f454a0ca1f11dd0 data/farmersdelight/loot_modifiers/add_loot_simple_dungeon.json -98994ecf258d997d38b55fb948daa9a742568ad7 data/farmersdelight/loot_modifiers/add_loot_village_butcher.json -62b1cc34915606efd812194b740329d82de9a157 data/farmersdelight/loot_modifiers/add_loot_village_desert_house.json -634e889df6a332f2831f73efcc99df06919026b6 data/farmersdelight/loot_modifiers/add_loot_village_plains_house.json -547ca7afb1cf1d395884655ea5935925725d5e01 data/farmersdelight/loot_modifiers/add_loot_village_savanna_house.json -63199a5e3d94fdb19ca7d06b01ea2b7ea962dd1b data/farmersdelight/loot_modifiers/add_loot_village_snowy_house.json -877676151330187f81adc735ff37deb84d264b69 data/farmersdelight/loot_modifiers/add_loot_village_taiga_house.json -cdc7281ca0f316e17e35974c3658e5cfb2f506db data/farmersdelight/loot_modifiers/add_onion_to_illagers.json -8ec1266a05499250cad8d43530e3c98b4e699db6 data/farmersdelight/loot_modifiers/add_onion_to_zombies.json -eba287e56b8e9d9ca98ea8b9216d907e99b0660a data/farmersdelight/loot_modifiers/scavenging_feather.json -c21eeb88bb53aef5ddb5175652126dd73472a628 data/farmersdelight/loot_modifiers/scavenging_ham_from_hoglin.json -53f025cf409cc80ee0cb326eb3f9013f33de0d6d data/farmersdelight/loot_modifiers/scavenging_ham_from_pig.json -ce7c21ace4d56468d9029808fee439c3d38111d5 data/farmersdelight/loot_modifiers/scavenging_leather.json -b72f17a6830fa2dd897766faa330e5932956d6bd data/farmersdelight/loot_modifiers/scavenging_pumpkin.json -5fab5da51ee91f2ad7d6fb6bcfe75b15509df3de data/farmersdelight/loot_modifiers/scavenging_rabbit_hide.json -37a3f28dfc802bc8caea1a626b93e8456331b5b3 data/farmersdelight/loot_modifiers/scavenging_shulker_shell.json -4fe58542de2111a6b47b56d84624b2b0fd13c419 data/farmersdelight/loot_modifiers/scavenging_smoked_ham_from_hoglin.json -4da5cea813649a7bebe29f796e8ab790c4a2a6f4 data/farmersdelight/loot_modifiers/scavenging_smoked_ham_from_pig.json -2eb2ccaf0ffbd1fbe3420999d07581d9e88b9304 data/farmersdelight/loot_modifiers/scavenging_string.json -e56423501dbf23427123fc64418e47da45822328 data/farmersdelight/loot_modifiers/slicing_apple_pie.json -07844c87745ee498e644730a966922bc272bf6e7 data/farmersdelight/loot_modifiers/slicing_cake.json -dda2693ec801eb03549edce9fe9003e26f1a40e0 data/farmersdelight/loot_modifiers/slicing_candle_cake.json -ce09f3d5bcef428d17dcc1ad90bd1850706296ea data/farmersdelight/loot_modifiers/slicing_chocolate_pie.json -5fe5f150c08d0901d99c5b531a072e618d57a943 data/farmersdelight/loot_modifiers/slicing_pumpkin_pie.json -487c654ebdcd807f328089dcf04b5df9bb21e07a data/farmersdelight/loot_modifiers/slicing_sweet_berry_cheesecake.json -7fe6c4ecb307cfe27a0fa9e9a6028fcec663a300 data/farmersdelight/loot_modifiers/straw_from_grass.json -8a6a29bdb871716fcaa5fbd3f7d50579324db7d8 data/farmersdelight/loot_modifiers/straw_from_mature_rice.json -e7230adbcc4b2ccd0a4dd4f7e6aca864056c1827 data/farmersdelight/loot_modifiers/straw_from_mature_wheat.json -ebad934cde83602b0b817298de60f110f523bfdc data/farmersdelight/loot_modifiers/straw_from_sandy_shrub.json -22d5706733ffa686b68f50d0b668eac1ac30c84f data/farmersdelight/loot_modifiers/straw_from_tall_grass.json -5a08b2bb6f2767894e6c4d65da07a01eb491bcd3 data/neoforge/loot_modifiers/global_loot_modifiers.json diff --git a/src/generated/resources/.cache/97dae6a6bd6cfb24d5459d777e90cb18cb611ec0 b/src/generated/resources/.cache/97dae6a6bd6cfb24d5459d777e90cb18cb611ec0 new file mode 100644 index 000000000..4fe08ead2 --- /dev/null +++ b/src/generated/resources/.cache/97dae6a6bd6cfb24d5459d777e90cb18cb611ec0 @@ -0,0 +1,481 @@ +// 26.2 2026-07-27T17:57:56.9907147 Block Model Definitions - farmersdelight +d4d9057afde725ea2a48206d8c1ea6eee4ec1c24 assets/farmersdelight/blockstates/acacia_cabinet.json +c1a643b06507467b350b8eedb4cc05f93d71abb2 assets/farmersdelight/blockstates/apple_pie.json +9b32f44318d93a46cd087e21d1834a77d2b14fa7 assets/farmersdelight/blockstates/bamboo_basket.json +5cf28a36e15368244462670289f57eb16fa0a086 assets/farmersdelight/blockstates/bamboo_cabinet.json +12936227789a93a5f57fe04f99a7697b9d47121b assets/farmersdelight/blockstates/beetroot_crate.json +a9fe3db0d209aa7e3dd328b32ebc776e0b8e998d assets/farmersdelight/blockstates/birch_cabinet.json +0fad78dfb08e557c4a1c26c05a85bce0630698a7 assets/farmersdelight/blockstates/black_canvas_sign.json +b1506ea84d3605a5aa7cfb2af2ab8c0327885c0c assets/farmersdelight/blockstates/black_canvas_wall_sign.json +a497233fd14d6774bad40382dd13daafa5fd7de7 assets/farmersdelight/blockstates/black_hanging_canvas_sign.json +ccfe382f87d4df061eb9b9e0f3b82869a1e66a8f assets/farmersdelight/blockstates/black_wall_hanging_canvas_sign.json +f2db47b211124b9e308ff6058313aa74c7e5aa36 assets/farmersdelight/blockstates/blue_canvas_sign.json +1e5ba7ad3585b0bff861d81be05be7c6f80d2e98 assets/farmersdelight/blockstates/blue_canvas_wall_sign.json +8cb369435ef7d7e517988fe4ccfe5d8aa9ab0243 assets/farmersdelight/blockstates/blue_hanging_canvas_sign.json +4b035dacd8697634324e1d613e2af5c8a854ec1f assets/farmersdelight/blockstates/blue_wall_hanging_canvas_sign.json +fb3f61bcdc0b28d6b2385ce805efd64437333ea0 assets/farmersdelight/blockstates/brown_canvas_sign.json +2238031445431befcd297936276da92629540e3b assets/farmersdelight/blockstates/brown_canvas_wall_sign.json +25b24e575bee78d96abafcd4a4cd61e6e3d2b1ac assets/farmersdelight/blockstates/brown_hanging_canvas_sign.json +197de96806339c6bd5e99d8da9156c746b530128 assets/farmersdelight/blockstates/brown_mushroom_colony.json +c3b0b58c2d638a9b2fb9499244474e4040935422 assets/farmersdelight/blockstates/brown_wall_hanging_canvas_sign.json +07e7cbfda72043537fb5be1765cfa8864c17a205 assets/farmersdelight/blockstates/budding_tomatoes.json +0e2dcbbb710b5aac3929ecbecc1e158abe456087 assets/farmersdelight/blockstates/cabbages.json +b95ef5c1d0b1538ac6b6c9c538760d4106ac18ca assets/farmersdelight/blockstates/cabbage_crate.json +c24712bba0c0bf4d82e5c4d10366e1c1bf6b8ef2 assets/farmersdelight/blockstates/canvas_rug.json +75fc846c6f2c694b17e6049f654c20918979224d assets/farmersdelight/blockstates/canvas_sign.json +4ec907e47c43ef01079b91664b046243cad3b5e9 assets/farmersdelight/blockstates/canvas_wall_sign.json +c0f89cb303eb1a79be5959b3af35f486786bbfad assets/farmersdelight/blockstates/carrot_crate.json +8426c4e5f1684aaf8be4d78082e548dacc3af5e1 assets/farmersdelight/blockstates/cherry_cabinet.json +47ee340614aea91969545b1f55cb9ef4a6052b52 assets/farmersdelight/blockstates/chocolate_pie.json +6225b34d22e652269d4040ba5e3b5caf54512fce assets/farmersdelight/blockstates/cooking_pot.json +c04b606f243c989a5ef6718961134ccf92fd1323 assets/farmersdelight/blockstates/crimson_cabinet.json +f2cdfdf57f84b5e538ef28b793361da993bcc7d3 assets/farmersdelight/blockstates/cutting_board.json +33b30e9b8cf3da520cccc713e002874007a1eac4 assets/farmersdelight/blockstates/cyan_canvas_sign.json +5ed20c38d1e74216906a8359a3b8a8c425ee149e assets/farmersdelight/blockstates/cyan_canvas_wall_sign.json +ecc75fdf77f498a1c630d671fe42deaa38044c11 assets/farmersdelight/blockstates/cyan_hanging_canvas_sign.json +19ad4a404a54050be4aca63e4d6d9c2a5075cd97 assets/farmersdelight/blockstates/cyan_wall_hanging_canvas_sign.json +7fe5bdcd3dab8725b3f9457657d11c490f9e4750 assets/farmersdelight/blockstates/dark_oak_cabinet.json +55c4c48f207c7ad958f5d591c207847ab52b311d assets/farmersdelight/blockstates/full_tatami_mat.json +a7fe5c7b4401d355ecbe19728198637810bebdd1 assets/farmersdelight/blockstates/gleaming_salad_block.json +2a029ca5f211520ce150e5f4f31b2e13bb1ff584 assets/farmersdelight/blockstates/gray_canvas_sign.json +588f7151786a52ec88f1d716f8309b392c23a70d assets/farmersdelight/blockstates/gray_canvas_wall_sign.json +8fae02c704dd75f486ce14f32b44486ef41c360d assets/farmersdelight/blockstates/gray_hanging_canvas_sign.json +bd6d75fbe421ecbb54147df6351bc38e087a2995 assets/farmersdelight/blockstates/gray_wall_hanging_canvas_sign.json +6193bb94357c8f9c2be798429618b4417eba2be9 assets/farmersdelight/blockstates/green_canvas_sign.json +1405b3f5eb52ea8671976bb71cea2a49c5626c99 assets/farmersdelight/blockstates/green_canvas_wall_sign.json +7ccccbfbcb7111951fea360a8f2ef6af6adc13df assets/farmersdelight/blockstates/green_hanging_canvas_sign.json +b9442268ed159b4473a32dcc44c0098b96f697ae assets/farmersdelight/blockstates/green_wall_hanging_canvas_sign.json +5c0ee990cd3c994d79b0b45aab2af9dfa67b18e7 assets/farmersdelight/blockstates/half_tatami_mat.json +e5d2eb133a1e475a89740e61a6e75cdb5bf77ae8 assets/farmersdelight/blockstates/hanging_canvas_sign.json +a6d3d3adf7b588d6c0e7dfa1db78a6e678a0e752 assets/farmersdelight/blockstates/honey_glazed_ham_block.json +278ecbe852ffc3904b2a55b24a7b5e0d1220807a assets/farmersdelight/blockstates/jungle_cabinet.json +4e3cc349551bb84e3ebaa4259c2527f6608737d5 assets/farmersdelight/blockstates/light_blue_canvas_sign.json +6265f09fae8cf7386f37a1f5441cfb584cc8bef2 assets/farmersdelight/blockstates/light_blue_canvas_wall_sign.json +6621523027353124d0a482079fbbad8e1e9f21a2 assets/farmersdelight/blockstates/light_blue_hanging_canvas_sign.json +880671b9bfa2a6d36e291800e4fbaad3d9767d65 assets/farmersdelight/blockstates/light_blue_wall_hanging_canvas_sign.json +8ef7ef96060379c0e25f16c7c5cc10af56350edc assets/farmersdelight/blockstates/light_gray_canvas_sign.json +523caf4af7f775919a90fff90d8873c69d0a8958 assets/farmersdelight/blockstates/light_gray_canvas_wall_sign.json +eecef1047f77d3cf35d9b2762e3f5f56bb75d6bb assets/farmersdelight/blockstates/light_gray_hanging_canvas_sign.json +d5aa27a0bf5c6909fc706aeddacf799c0e660e5d assets/farmersdelight/blockstates/light_gray_wall_hanging_canvas_sign.json +2dfba63d8546ed09d96beaa83fcbec479c950201 assets/farmersdelight/blockstates/lime_canvas_sign.json +addea394a3761cbb74837c91dd46d6829b95b4d4 assets/farmersdelight/blockstates/lime_canvas_wall_sign.json +81a614faf8200bf25333124785845f1f454cd07e assets/farmersdelight/blockstates/lime_hanging_canvas_sign.json +4d0e7b13e8e4daabc245ed448dc3112e0bf1c3d2 assets/farmersdelight/blockstates/lime_wall_hanging_canvas_sign.json +2c6066bf7432b20d28acc1c1fc7456c1b81382a8 assets/farmersdelight/blockstates/magenta_canvas_sign.json +4c73142cee474c8afbb25154aac017b66e0a8e5a assets/farmersdelight/blockstates/magenta_canvas_wall_sign.json +b8fe084a64f03b4f30b2d9ab0f33245616a55999 assets/farmersdelight/blockstates/magenta_hanging_canvas_sign.json +e34cd8d8a6f2c147315dc80c388a6b2c17d68687 assets/farmersdelight/blockstates/magenta_wall_hanging_canvas_sign.json +83d4e1f74cec4b0091e4f6104544a2dd09542ab3 assets/farmersdelight/blockstates/mangrove_cabinet.json +934dee95295c21888f9873c7317c46f8bae48579 assets/farmersdelight/blockstates/oak_cabinet.json +f81af0a46763e17ef99dcdee35610540af574672 assets/farmersdelight/blockstates/onions.json +860f0d03ca8d6571d3d1182978a2b28d878ae143 assets/farmersdelight/blockstates/onion_crate.json +43587a1ab364d3d5256778fa577862e03abdc6d9 assets/farmersdelight/blockstates/orange_canvas_sign.json +4e7606845a565118baf1fa56107e250017b2159f assets/farmersdelight/blockstates/orange_canvas_wall_sign.json +6040c7235ff1057931c15303fce3327e67f00cb6 assets/farmersdelight/blockstates/orange_hanging_canvas_sign.json +2aa70b0c17f0bd06270d6456da2ecf8c4139b542 assets/farmersdelight/blockstates/orange_wall_hanging_canvas_sign.json +5eedefd9f6fba07ef77badbcf46404cc2abc0b1b assets/farmersdelight/blockstates/organic_compost.json +a1a26ce3c7bacef9b25118e9e2a1f10d0c515d6c assets/farmersdelight/blockstates/pink_canvas_sign.json +5abe27065a50f8314982c140f1de645b166ead9c assets/farmersdelight/blockstates/pink_canvas_wall_sign.json +1c3066e5ffbefe55bb520ba99095995b8aff4ff1 assets/farmersdelight/blockstates/pink_hanging_canvas_sign.json +2d1f7c7e257d3b76de54b855bed5b583555522b9 assets/farmersdelight/blockstates/pink_wall_hanging_canvas_sign.json +0568fd1eff87eca71788bbbac4fbfdf393586f57 assets/farmersdelight/blockstates/potato_crate.json +625c22cdf0f5d263f6652f0800b4e5bc33e49283 assets/farmersdelight/blockstates/pumpkin_pie.json +3ee732a81099eae4cdacf2413c488b53c56666c2 assets/farmersdelight/blockstates/purple_canvas_sign.json +308ba4f109a6f3bb7072336fb6a0ef495ed62d84 assets/farmersdelight/blockstates/purple_canvas_wall_sign.json +1a0348880572a1e71fa78f5aa2bd381b9971089a assets/farmersdelight/blockstates/purple_hanging_canvas_sign.json +0b3c07877a56485f097ecbd86a5c03f895e6a2b2 assets/farmersdelight/blockstates/purple_wall_hanging_canvas_sign.json +14b3de9e81a5f2a771c73f17797ae9e11c7d8518 assets/farmersdelight/blockstates/red_canvas_sign.json +348dc13fbbefc8f60dde6521c48e74afce5a41e0 assets/farmersdelight/blockstates/red_canvas_wall_sign.json +e2692ca4faf13aa98a3014fe1655fd3a29b55d69 assets/farmersdelight/blockstates/red_hanging_canvas_sign.json +0c61048a65e6b8999e03986101f35fda3a088574 assets/farmersdelight/blockstates/red_mushroom_colony.json +85211a42bbc3e80cd37b14af464cf042fe081678 assets/farmersdelight/blockstates/red_wall_hanging_canvas_sign.json +e178501982b618876daf01ff44ac5947c7bf9888 assets/farmersdelight/blockstates/rice.json +d0b942f2e9c9036277e4cb89a70a56877df0e678 assets/farmersdelight/blockstates/rice_bag.json +980cc829202fcd8649768dd586ec546eb98ba757 assets/farmersdelight/blockstates/rice_bale.json +52b8c058185c61469e179156c24cbdda195d0d14 assets/farmersdelight/blockstates/rice_panicles.json +08c41011732ed1dcb0704d62f122168ed52f6278 assets/farmersdelight/blockstates/rice_roll_medley_block.json +ee9526c2fe9ef142e74d2f52b3ba25dd7f5d55c4 assets/farmersdelight/blockstates/rich_soil.json +8554219ee8e40471f8ac0d2b2f1f16227a6b636c assets/farmersdelight/blockstates/rich_soil_farmland.json +4611d78590f032e316656f841f821883fe3c2430 assets/farmersdelight/blockstates/roast_chicken_block.json +50b80e7e84e50cb4ffd96d5ac84284668ffb27ee assets/farmersdelight/blockstates/rope.json +0e7f283cae48ae7368e8daeb064023d9cddc2521 assets/farmersdelight/blockstates/rope_fence.json +f1073da24a6366a1ad65a90001a45311a9e6f3ee assets/farmersdelight/blockstates/rope_fence_gate.json +61339c185ed423cf1b33dfd7d540977ab83a2a2a assets/farmersdelight/blockstates/safety_net.json +487d56bbfa59470e8eca28982c05791be4791ed2 assets/farmersdelight/blockstates/sandy_shrub.json +910183f56aa0fcbae9c24bf911ab6d1b64fa1b3d assets/farmersdelight/blockstates/shepherds_pie_block.json +77ecf0475e5f62746049e12aae9f948da8ed286f assets/farmersdelight/blockstates/skillet.json +16597c0101a4c2ce503d003edcfaa0873691d60b assets/farmersdelight/blockstates/spruce_cabinet.json +653635b0425a7ff2454da971a8560c2c2bde97cb assets/farmersdelight/blockstates/stove.json +e275dcdaf2a65932201b532fc34d083c41c4d0a0 assets/farmersdelight/blockstates/straw_bale.json +bdb7a47a0e248d9f67be404f44d5a97676cd582f assets/farmersdelight/blockstates/stuffed_pumpkin_block.json +27b03cbc175283c7940eb6fffc11454aac15f156 assets/farmersdelight/blockstates/sweet_berry_cheesecake.json +19e8d4cb9ce19b5ea6d59ef0a1c0e237c7f6f39b assets/farmersdelight/blockstates/tatami.json +e31c3dcf1a5788a832ce96d089e208fca72f4dae assets/farmersdelight/blockstates/tomatoes.json +8c6f44a480e62fb6b1983d39b96e761615f808e7 assets/farmersdelight/blockstates/tomatoes_on_rope.json +0666ee92b7657919e5167bb5da94d890eb97661c assets/farmersdelight/blockstates/tomato_crate.json +d0a600462a74c65284813b5f444e8f3383b3ba12 assets/farmersdelight/blockstates/wall_hanging_canvas_sign.json +698a33c1632c8b9e29f528a6692800b9670b96b5 assets/farmersdelight/blockstates/warped_cabinet.json +2309517ffd5b227b43a91a323dfa76c2fb30ec79 assets/farmersdelight/blockstates/white_canvas_sign.json +69544b73fc0f896a435e4db6e0044ecbf6ccfce0 assets/farmersdelight/blockstates/white_canvas_wall_sign.json +e68eddabde459536e23640a6a7a53068d7de70cf assets/farmersdelight/blockstates/white_hanging_canvas_sign.json +ab7d7af04fb1a82ae737900575da323ff8beb8b0 assets/farmersdelight/blockstates/white_wall_hanging_canvas_sign.json +135b21938512a43aa959901b863a16625d1189c4 assets/farmersdelight/blockstates/wild_beetroots.json +873dab9a61f37d91fa897bcb1a87ba948bb954a6 assets/farmersdelight/blockstates/wild_cabbages.json +3197896b35b8ed1e5ffa5056cae7cf87658588c2 assets/farmersdelight/blockstates/wild_carrots.json +593bef2941f2fa68f0e5be3694d97ad829c8e202 assets/farmersdelight/blockstates/wild_onions.json +e77532d8756f00cf2a82c90255d34c1ac17c152a assets/farmersdelight/blockstates/wild_potatoes.json +4712db9ad29901ea4054995d4d3005c7fc1010ef assets/farmersdelight/blockstates/wild_rice.json +09675b11ce997c535691d07bd9629de6f68ecf20 assets/farmersdelight/blockstates/wild_tomatoes.json +d053948aee7876cb64205c6c5bffaeb66c947899 assets/farmersdelight/blockstates/wooden_basket.json +745db05f379253d3fc6de284b952ed90c29d9881 assets/farmersdelight/blockstates/yellow_canvas_sign.json +8e161e29fe20eb0c795da69034f8225ed62a4cd4 assets/farmersdelight/blockstates/yellow_canvas_wall_sign.json +cffeacdb1aa413768b2f4bdd39f000267f119c03 assets/farmersdelight/blockstates/yellow_hanging_canvas_sign.json +2997893ee65fbb3d574237ca16dd368790b402f4 assets/farmersdelight/blockstates/yellow_wall_hanging_canvas_sign.json +6ab3a61b72239b7a42e7e2c9bfd5354909699182 assets/farmersdelight/models/block/acacia_cabinet.json +0d0f0dbf5922f4452c61f0f3a653dfcbd17b543e assets/farmersdelight/models/block/acacia_cabinet_open.json +442f56f161fe6bbfd4ed3c5fb037e441dd6f059c assets/farmersdelight/models/block/apple_pie.json +76eeb4fac950c51cbdaba01e6da2a2d02ca38051 assets/farmersdelight/models/block/apple_pie_slice1.json +c266c6c9f6be4f5532d480d26e86c60535e9b7bb assets/farmersdelight/models/block/apple_pie_slice2.json +711cb02140d1ed42c797168e490393398918b79d assets/farmersdelight/models/block/apple_pie_slice3.json +97cbc2e167d1e9c87c03880de1b546ea23c9539b assets/farmersdelight/models/block/bamboo_basket.json +155954b90f601fdbd1e26370216b225470836b6b assets/farmersdelight/models/block/bamboo_cabinet.json +00055b1fe956f199672c50c0be67e98d061b68c5 assets/farmersdelight/models/block/bamboo_cabinet_open.json +51a00fe2c6d2d5d68a2a3de8df2b77983b121e50 assets/farmersdelight/models/block/beetroot_crate.json +2a06fb5184f222f8b47497d39e52ebdc3b404b14 assets/farmersdelight/models/block/birch_cabinet.json +18ca5ea9dde353677327341ba8533a44f142d25b assets/farmersdelight/models/block/birch_cabinet_open.json +23fc00a8ea1c6d9504eb172e8dc29058f49bfbe3 assets/farmersdelight/models/block/black_canvas_sign_rot_0.json +7aa042a2d2945d2b42cce665395197bcf2601c2a assets/farmersdelight/models/block/black_canvas_sign_rot_1.json +64207d1bfd4444aa4fcb517eab56c4fe5b44440b assets/farmersdelight/models/block/black_canvas_sign_rot_2.json +1be6978dc8196a6dfad59389f25676be70092542 assets/farmersdelight/models/block/black_canvas_sign_rot_3.json +0caa41d62ce20ad7f105a99b4bb904d67e123444 assets/farmersdelight/models/block/black_canvas_wall_sign.json +a377aa9f57cb6becf04de1049a34397baa98eed6 assets/farmersdelight/models/block/black_hanging_canvas_sign_attached_rot_0.json +907885a84418961be9cb12065367308c06106a6b assets/farmersdelight/models/block/black_hanging_canvas_sign_attached_rot_1.json +d528afb7ae7ee087be8615f6328ce2c1f42f5db6 assets/farmersdelight/models/block/black_hanging_canvas_sign_attached_rot_2.json +72bd599d15789e9fe563f1abeefc473fef385922 assets/farmersdelight/models/block/black_hanging_canvas_sign_attached_rot_3.json +271c90fc864e38101e9435d13019accec007cc5d assets/farmersdelight/models/block/black_hanging_canvas_sign_rot_0.json +17491e453e21b0e36ece16211a016c8c8308e645 assets/farmersdelight/models/block/black_hanging_canvas_sign_rot_1.json +4072462a80c4bac67745870d2276f13d428e901a assets/farmersdelight/models/block/black_hanging_canvas_sign_rot_2.json +3a90cd9f65a87d95355a93b29dee5aa8e363f494 assets/farmersdelight/models/block/black_hanging_canvas_sign_rot_3.json +fe56419bfa1f9b09d841d41d246739edff996429 assets/farmersdelight/models/block/black_wall_hanging_canvas_sign.json +ef915d9ac9966f5586708145e1e7be52166ec507 assets/farmersdelight/models/block/blue_canvas_sign_rot_0.json +8e70da5767f3e58bb7d160ac18fb3f233ece38fd assets/farmersdelight/models/block/blue_canvas_sign_rot_1.json +70bb2a2aa1c06970826a91166de0fcaed96f5120 assets/farmersdelight/models/block/blue_canvas_sign_rot_2.json +f23b8e204328f6abc2a906301a0f6c0da61a4180 assets/farmersdelight/models/block/blue_canvas_sign_rot_3.json +5ef1a727123cbb9a67b945e34d2ebe738c9189f9 assets/farmersdelight/models/block/blue_canvas_wall_sign.json +9fb1cc7fed6f2343d9f0f7d3ba423216438be27c assets/farmersdelight/models/block/blue_hanging_canvas_sign_attached_rot_0.json +285de2c20c839d78dd98c3aae41202417469ab01 assets/farmersdelight/models/block/blue_hanging_canvas_sign_attached_rot_1.json +c842030c20b7289688d504351223ea3eb2d7923a assets/farmersdelight/models/block/blue_hanging_canvas_sign_attached_rot_2.json +36bc60ba10d669d5aa9b092614655e3b2ea2f3ca assets/farmersdelight/models/block/blue_hanging_canvas_sign_attached_rot_3.json +1836334d647b551a31c2139d9dc09fbb64eef139 assets/farmersdelight/models/block/blue_hanging_canvas_sign_rot_0.json +235aead65d80046a588067a6a94001098101d738 assets/farmersdelight/models/block/blue_hanging_canvas_sign_rot_1.json +9ad7756d43215902c148a0879d6401419f3b2e36 assets/farmersdelight/models/block/blue_hanging_canvas_sign_rot_2.json +e98fd0caae87e8abac58a929cffe81681a01682d assets/farmersdelight/models/block/blue_hanging_canvas_sign_rot_3.json +5258358e44b822e0fde2563fa0aaa7606baf9e3b assets/farmersdelight/models/block/blue_wall_hanging_canvas_sign.json +d375e1b23c09851f37cdd99528a738fae0a4461e assets/farmersdelight/models/block/brown_canvas_sign_rot_0.json +9b234bbced4c735e64b3970e678cab75c0848b7f assets/farmersdelight/models/block/brown_canvas_sign_rot_1.json +890d990670d8e4e816ed83f5edbf27d2fd033a67 assets/farmersdelight/models/block/brown_canvas_sign_rot_2.json +efea208794cdaedb0f304fd7159f8e2e2a26b6b1 assets/farmersdelight/models/block/brown_canvas_sign_rot_3.json +08eaf47b48dfea214a6e8dc8021c1b51e67a9f59 assets/farmersdelight/models/block/brown_canvas_wall_sign.json +58443b47a1a01733eb8d2b679137fb8c0ef1fdab assets/farmersdelight/models/block/brown_hanging_canvas_sign_attached_rot_0.json +9a7e0296b528f2dd3440323d11feabd0fc656f30 assets/farmersdelight/models/block/brown_hanging_canvas_sign_attached_rot_1.json +445747367f7fd7883def1e5728cfd6fa0db53018 assets/farmersdelight/models/block/brown_hanging_canvas_sign_attached_rot_2.json +94c5ca3096fdff38c7f4eb40586090ac001dad76 assets/farmersdelight/models/block/brown_hanging_canvas_sign_attached_rot_3.json +57fffc39fa446d395159e87ac0615aac012b1621 assets/farmersdelight/models/block/brown_hanging_canvas_sign_rot_0.json +4a8f4c5c40769b812d73cd9bc9bd81ebbafd4526 assets/farmersdelight/models/block/brown_hanging_canvas_sign_rot_1.json +1f13745e877281eec46e7b850c14d1b27e5800c7 assets/farmersdelight/models/block/brown_hanging_canvas_sign_rot_2.json +4770a0a81a5516262972b557541eb7001fa9db61 assets/farmersdelight/models/block/brown_hanging_canvas_sign_rot_3.json +1d491f18383da274f53a49570065d5c85810b7ba assets/farmersdelight/models/block/brown_mushroom_colony_stage0.json +8f0aa05969e4e8c02047b238355c4707eefd711c assets/farmersdelight/models/block/brown_mushroom_colony_stage1.json +656c64b0c5e96c989c631194d870f809d248bf4e assets/farmersdelight/models/block/brown_mushroom_colony_stage2.json +0aaec25a68c24f86f69a2eb0d7d25aa650bfe35c assets/farmersdelight/models/block/brown_mushroom_colony_stage3.json +e771827c573394146801953870bfc4a3f295da16 assets/farmersdelight/models/block/brown_wall_hanging_canvas_sign.json +5348211b73dff4a5892f5a16bbb5cec470e01a4e assets/farmersdelight/models/block/budding_tomatoes_stage0.json +1950c3c400211d9c5dc067d5ccb385c5c1e728d4 assets/farmersdelight/models/block/budding_tomatoes_stage1.json +e238b017129442e2ae0ee8017b2636555f6119fb assets/farmersdelight/models/block/budding_tomatoes_stage2.json +4cacfa341e4309b6b50478000151c57242488315 assets/farmersdelight/models/block/budding_tomatoes_stage3.json +6c9a50282afaa748ba5e4dc3bfb6cd028e2a9110 assets/farmersdelight/models/block/cabbages_stage0.json +acd1381d42b69eb08729f8a2929595643ad91873 assets/farmersdelight/models/block/cabbages_stage1.json +975e77a424145d562b892f8fb8569eba9d3a21c2 assets/farmersdelight/models/block/cabbages_stage2.json +31f7b3289155fecd8cf511a1414200003a77ec1b assets/farmersdelight/models/block/cabbages_stage3.json +8f982f7a83d36067f3daa408d651133294e352e9 assets/farmersdelight/models/block/cabbages_stage4.json +819557f2c7e01a7e4ac8569ca632371f2bd1f629 assets/farmersdelight/models/block/cabbages_stage5.json +faa878060ceaa6063d33cdb6cb6c3f699aa58ed9 assets/farmersdelight/models/block/cabbages_stage6.json +8aad746e663cf897721b3a72ef46d6943e1edf0e assets/farmersdelight/models/block/cabbages_stage7.json +4dcde84c4be5ad47c5ef754946b498e43799bc27 assets/farmersdelight/models/block/cabbage_crate.json +63d51d7d07c95c6e2052c0952d93077befd239ce assets/farmersdelight/models/block/canvas_sign_rot_0.json +00ca6d5330f2a9ce0501e7b98936f2190fbfd2a2 assets/farmersdelight/models/block/canvas_sign_rot_1.json +df60b3dee2ff515318b054f35417853c61486c84 assets/farmersdelight/models/block/canvas_sign_rot_2.json +ff1cc5f8d9d3a29b679e0916017fd4f359f895c4 assets/farmersdelight/models/block/canvas_sign_rot_3.json +57df450b40816d91db84f0ebce4844b002ae0777 assets/farmersdelight/models/block/canvas_wall_sign.json +210e68f641ec7e0ba589396d3fcc2f8773cf2110 assets/farmersdelight/models/block/carrot_crate.json +4939345b9e8654490481472d981b31361ee8b0b2 assets/farmersdelight/models/block/cherry_cabinet.json +894c82fbaaee0511394ffee9e991c333187c9d42 assets/farmersdelight/models/block/cherry_cabinet_open.json +f0d2b689fc26a5d35fce396f1d6f48fc385dc44b assets/farmersdelight/models/block/crimson_cabinet.json +3f118e753503eba3a35fa0642fefa7a55d1a05ab assets/farmersdelight/models/block/crimson_cabinet_open.json +24465176a3df2c1767609410e73f7694b3f14cf4 assets/farmersdelight/models/block/cyan_canvas_sign_rot_0.json +6f7895c7f39e22a785c7247c3bb501df94ed8689 assets/farmersdelight/models/block/cyan_canvas_sign_rot_1.json +1ad709ed170ab4d6b06d95b43f0f81ff7f648cd3 assets/farmersdelight/models/block/cyan_canvas_sign_rot_2.json +028ef2219e7997923a6afaa8c13be73669207d7a assets/farmersdelight/models/block/cyan_canvas_sign_rot_3.json +f80e777c1052886328d73155f5d0d9f1bd72a548 assets/farmersdelight/models/block/cyan_canvas_wall_sign.json +d4e7ed686510c2158097c5ead6ad6b699a9aaa3e assets/farmersdelight/models/block/cyan_hanging_canvas_sign_attached_rot_0.json +5aee8162bb963072e9b994ae3c80fd47424b75fd assets/farmersdelight/models/block/cyan_hanging_canvas_sign_attached_rot_1.json +a4feedb9d213cfdfc713b5bddc3a74df00f588bd assets/farmersdelight/models/block/cyan_hanging_canvas_sign_attached_rot_2.json +54a54fc2ed27977102b16bdcc2f6b09c93452dee assets/farmersdelight/models/block/cyan_hanging_canvas_sign_attached_rot_3.json +c5380a466adc92f0a6995e7f2605cf23e9113505 assets/farmersdelight/models/block/cyan_hanging_canvas_sign_rot_0.json +d24726b8272dbf2ca2f8edfd0d23eda7d4099b80 assets/farmersdelight/models/block/cyan_hanging_canvas_sign_rot_1.json +1a5e12bb5a54728eda2232112b40c15b13880718 assets/farmersdelight/models/block/cyan_hanging_canvas_sign_rot_2.json +240c2841dc8e65b747a872f70aa3c012785b1dab assets/farmersdelight/models/block/cyan_hanging_canvas_sign_rot_3.json +92a559987207d68a5b35d0cff65f0419d39c1443 assets/farmersdelight/models/block/cyan_wall_hanging_canvas_sign.json +a2cb3a5bd4cdf08aae10c81d0585e002d2aa494c assets/farmersdelight/models/block/dark_oak_cabinet.json +1ef17903981c3677bc0dd711ae00864003f5b52b assets/farmersdelight/models/block/dark_oak_cabinet_open.json +51ca985aa81bfb7f47c0dfbee1534e5555d188e3 assets/farmersdelight/models/block/gray_canvas_sign_rot_0.json +35dfa9df679bd185ad54bfc987ea966a6ddddcac assets/farmersdelight/models/block/gray_canvas_sign_rot_1.json +64a12a2ae8683701b5f0c25509e29629592757bc assets/farmersdelight/models/block/gray_canvas_sign_rot_2.json +0533d06cd24030ab81f2b16fbe15b38e5e352731 assets/farmersdelight/models/block/gray_canvas_sign_rot_3.json +48c4cecd1eab27cdec6fbfb8c803ff98fd39a2cd assets/farmersdelight/models/block/gray_canvas_wall_sign.json +e61a56bbb28a54832001d37eed88edd77a0161db assets/farmersdelight/models/block/gray_hanging_canvas_sign_attached_rot_0.json +cedfdb18d728b022ef0b52ed76cb76a62abe85df assets/farmersdelight/models/block/gray_hanging_canvas_sign_attached_rot_1.json +1dbbc526c87c436a4a13cf16309e416bc0578688 assets/farmersdelight/models/block/gray_hanging_canvas_sign_attached_rot_2.json +75456c1b7fddbe5f44aef850d425601cb2ce715b assets/farmersdelight/models/block/gray_hanging_canvas_sign_attached_rot_3.json +e99e21e1b5b028f83a37f63140ae5e3f9cd3047f assets/farmersdelight/models/block/gray_hanging_canvas_sign_rot_0.json +5284cd4ab1d6ed262c6bba0e1e1e39708d982886 assets/farmersdelight/models/block/gray_hanging_canvas_sign_rot_1.json +efcb8324c5db3032b512b6b208478806bb2e9c92 assets/farmersdelight/models/block/gray_hanging_canvas_sign_rot_2.json +e8311866e1ac48ce84112dc58a9ad40aa0ed8b5c assets/farmersdelight/models/block/gray_hanging_canvas_sign_rot_3.json +ec4c81a3c023aaf6c67f5645ae07fceed0bf4284 assets/farmersdelight/models/block/gray_wall_hanging_canvas_sign.json +c9cbd545285c96d9af4a12373a19cdf2c9334e9b assets/farmersdelight/models/block/green_canvas_sign_rot_0.json +aa70775bce2dc6fd49d68af459414bb37333305e assets/farmersdelight/models/block/green_canvas_sign_rot_1.json +8a524c821589d2743d00776fec3a576a58573a6b assets/farmersdelight/models/block/green_canvas_sign_rot_2.json +778ff23bd940e6c3f6c8041406f3301a40e5f32b assets/farmersdelight/models/block/green_canvas_sign_rot_3.json +7ca4599630c78032865c34775ca7dfc70c191056 assets/farmersdelight/models/block/green_canvas_wall_sign.json +2c5ab3bfa1c6b439a66926a407798136d9256842 assets/farmersdelight/models/block/green_hanging_canvas_sign_attached_rot_0.json +3b53fcbe1ab9b584e4b19206d28d1a73bc422b66 assets/farmersdelight/models/block/green_hanging_canvas_sign_attached_rot_1.json +71005ff43a1367ee8abb4d00ca1ea21dded6e064 assets/farmersdelight/models/block/green_hanging_canvas_sign_attached_rot_2.json +07b904a493b4ed6ba25e9d85be2b0e86b2906ac4 assets/farmersdelight/models/block/green_hanging_canvas_sign_attached_rot_3.json +9aa013d6fde8970dd1da34315ef90c4dbdee49b5 assets/farmersdelight/models/block/green_hanging_canvas_sign_rot_0.json +52b733c1b00a9dc3943df0a23ac772db7795a434 assets/farmersdelight/models/block/green_hanging_canvas_sign_rot_1.json +64c1d5722999aad594966237ef89f72137f7f4b6 assets/farmersdelight/models/block/green_hanging_canvas_sign_rot_2.json +6666d631fa0c45007a5cdaf7000c230f3c439435 assets/farmersdelight/models/block/green_hanging_canvas_sign_rot_3.json +067b5303ca7596d843916769692b620ade59c00b assets/farmersdelight/models/block/green_wall_hanging_canvas_sign.json +e2cd1ddbf432584c26872ce0b39c17c35563be69 assets/farmersdelight/models/block/hanging_canvas_sign_attached_rot_0.json +b3094554f59fff05731defeb24170498a2f025c8 assets/farmersdelight/models/block/hanging_canvas_sign_attached_rot_1.json +f14dacf7b8522b36befc405dd6a656b447457eeb assets/farmersdelight/models/block/hanging_canvas_sign_attached_rot_2.json +1449423a0dbd16b5630ecec2c140f3213b5adc88 assets/farmersdelight/models/block/hanging_canvas_sign_attached_rot_3.json +800a0b2bc6747e20404e5f88d9ee20f8125dd879 assets/farmersdelight/models/block/hanging_canvas_sign_rot_0.json +044a11f021bbc18a2c69290d70e2bd8ebee282d7 assets/farmersdelight/models/block/hanging_canvas_sign_rot_1.json +72d7567351abe8bd75f72dd23a601803b01c0179 assets/farmersdelight/models/block/hanging_canvas_sign_rot_2.json +946e359d8dc006d4693ee8e46667917d075c6d7e assets/farmersdelight/models/block/hanging_canvas_sign_rot_3.json +aae31a595248c85770a2e62522f055d16abff8f5 assets/farmersdelight/models/block/jungle_cabinet.json +7651f37bd6095c044775574d02ee5049e8902cdc assets/farmersdelight/models/block/jungle_cabinet_open.json +616f3181cdf4799599c96888dbb20411cbdf56ba assets/farmersdelight/models/block/light_blue_canvas_sign_rot_0.json +5a543163533251789bb1dd6dc938cafcf7c4dc5d assets/farmersdelight/models/block/light_blue_canvas_sign_rot_1.json +7e6e64f37442de113f1a20eb8cd35dfa30952931 assets/farmersdelight/models/block/light_blue_canvas_sign_rot_2.json +2e6353965deb759d7aec6baa7f293aec48150f3f assets/farmersdelight/models/block/light_blue_canvas_sign_rot_3.json +3c38d3f20f55e1a3fe5f9f7a34ca30348ffc3aad assets/farmersdelight/models/block/light_blue_canvas_wall_sign.json +0f39331b7339c0b459c34d933474d836cee0ebbf assets/farmersdelight/models/block/light_blue_hanging_canvas_sign_attached_rot_0.json +1ae8184def307b068515934e11cf66f63a934fa9 assets/farmersdelight/models/block/light_blue_hanging_canvas_sign_attached_rot_1.json +b0a12a8aa11f728548613274602249987e9b3461 assets/farmersdelight/models/block/light_blue_hanging_canvas_sign_attached_rot_2.json +7355be2d4281dcbffccd6684f411bfdda7e2dace assets/farmersdelight/models/block/light_blue_hanging_canvas_sign_attached_rot_3.json +ce42d32789c6199a864abe11e461cbccd69efa18 assets/farmersdelight/models/block/light_blue_hanging_canvas_sign_rot_0.json +28be2f11880ea8a21968dd4da3d5c7697d283710 assets/farmersdelight/models/block/light_blue_hanging_canvas_sign_rot_1.json +4e6af23cb52e91d4f0f00af81eb2fc223ec50375 assets/farmersdelight/models/block/light_blue_hanging_canvas_sign_rot_2.json +8c0bb88924adfa83df3be8246d1ceffd56c41ad0 assets/farmersdelight/models/block/light_blue_hanging_canvas_sign_rot_3.json +a237cafdc402d1c524c1b55133ccd00b26339949 assets/farmersdelight/models/block/light_blue_wall_hanging_canvas_sign.json +fbd07631ab255225078968ac9dd144c1d3f639f2 assets/farmersdelight/models/block/light_gray_canvas_sign_rot_0.json +be1acede78ebf5e10a7112d2187ffbb343618dd8 assets/farmersdelight/models/block/light_gray_canvas_sign_rot_1.json +648cd13a41a36d02498ef22ffcdc53f3192ecc03 assets/farmersdelight/models/block/light_gray_canvas_sign_rot_2.json +c728ba44b578be239de1079b45acc93b5b26c113 assets/farmersdelight/models/block/light_gray_canvas_sign_rot_3.json +8769bd9bb75f3066c46f3e8b5530f44718100893 assets/farmersdelight/models/block/light_gray_canvas_wall_sign.json +8c2374d6dea1e29bcb87faf05b5dac5d3a7adf2d assets/farmersdelight/models/block/light_gray_hanging_canvas_sign_attached_rot_0.json +33af9757a84e1294c35ee44152c304aa2d72f2b5 assets/farmersdelight/models/block/light_gray_hanging_canvas_sign_attached_rot_1.json +9d9fb0bbb96f6a430d0e59763c736744ca54ab80 assets/farmersdelight/models/block/light_gray_hanging_canvas_sign_attached_rot_2.json +8da33f3e60871666eb66beea736cb10bd0b83a6e assets/farmersdelight/models/block/light_gray_hanging_canvas_sign_attached_rot_3.json +e701969293b6cdc46ede9c0933d8e6a658ec464a assets/farmersdelight/models/block/light_gray_hanging_canvas_sign_rot_0.json +ef641a3e6e858799f2f709513377ac13aeaf6137 assets/farmersdelight/models/block/light_gray_hanging_canvas_sign_rot_1.json +d0a852de533acf3ae0b23d4d3397f803081b7b83 assets/farmersdelight/models/block/light_gray_hanging_canvas_sign_rot_2.json +407ea7a06d531703e20a20ef91ea82bf866a5d14 assets/farmersdelight/models/block/light_gray_hanging_canvas_sign_rot_3.json +432d25caf58fcd6ee788477beb26e20cf7afc28f assets/farmersdelight/models/block/light_gray_wall_hanging_canvas_sign.json +8f42b0f054a10d7123c206e7850956482f5845eb assets/farmersdelight/models/block/lime_canvas_sign_rot_0.json +d52669b00877d4f1c081dfcb216d9be993543b07 assets/farmersdelight/models/block/lime_canvas_sign_rot_1.json +6b853c8c0c47cc4eb58e9d2dd4134b86e3d892c3 assets/farmersdelight/models/block/lime_canvas_sign_rot_2.json +4596345bc1975fb3e23d08c1977f71d00ffdcf63 assets/farmersdelight/models/block/lime_canvas_sign_rot_3.json +b12167c1c6240424d215f9d70ed71110008bec63 assets/farmersdelight/models/block/lime_canvas_wall_sign.json +0f672d33296a130443d9a25604b328dc82a4a47f assets/farmersdelight/models/block/lime_hanging_canvas_sign_attached_rot_0.json +eb66f596d46c8d6268a01ee57db5ba3bc4822eea assets/farmersdelight/models/block/lime_hanging_canvas_sign_attached_rot_1.json +7aaf7780b0d20a3190b54a57973df9c666239a77 assets/farmersdelight/models/block/lime_hanging_canvas_sign_attached_rot_2.json +5b4b0d7f14cf786dc9225ae38201a87b92625634 assets/farmersdelight/models/block/lime_hanging_canvas_sign_attached_rot_3.json +13f2a5c54d6f4b98b2ed6404a0e76d791e6dc486 assets/farmersdelight/models/block/lime_hanging_canvas_sign_rot_0.json +454f0709fa94508966b7829e437d2ad7764c79f7 assets/farmersdelight/models/block/lime_hanging_canvas_sign_rot_1.json +de9748c5ece9171e1900b737f15de68e78194da3 assets/farmersdelight/models/block/lime_hanging_canvas_sign_rot_2.json +b3b52007df300b222a0d81d11f98edb0794aa9b1 assets/farmersdelight/models/block/lime_hanging_canvas_sign_rot_3.json +c00e511135de5f3af9c47b0b94fdf40b4072ec7f assets/farmersdelight/models/block/lime_wall_hanging_canvas_sign.json +f08464b89d794438f9b12f71c1e3441dfaf4d979 assets/farmersdelight/models/block/magenta_canvas_sign_rot_0.json +a706c48beaedd3e2bb74f658a3070deb80d8f7f7 assets/farmersdelight/models/block/magenta_canvas_sign_rot_1.json +3b8fecaebbada3ebad0693e2312cad77667d5938 assets/farmersdelight/models/block/magenta_canvas_sign_rot_2.json +4f4e921c57ec825a36f7f1b7694c854daeede2da assets/farmersdelight/models/block/magenta_canvas_sign_rot_3.json +11368025733980bbc3fd10111b81a42c164446f2 assets/farmersdelight/models/block/magenta_canvas_wall_sign.json +ce5da510ee041f2810fa2284e063841bc2efb140 assets/farmersdelight/models/block/magenta_hanging_canvas_sign_attached_rot_0.json +142ebc47fb1d4f8bcc65b4f65e7e57e116d319bc assets/farmersdelight/models/block/magenta_hanging_canvas_sign_attached_rot_1.json +5c1a7dc2fd5533fb1e0c93955180bdc6cfe54c94 assets/farmersdelight/models/block/magenta_hanging_canvas_sign_attached_rot_2.json +15de3149421999996ab3d8a7d95b6af2bc254959 assets/farmersdelight/models/block/magenta_hanging_canvas_sign_attached_rot_3.json +ca92ec3dfc95173d2fc9049df97d1726e4f5f6cd assets/farmersdelight/models/block/magenta_hanging_canvas_sign_rot_0.json +48863c314052564c6d16b32cd29446cf017d969f assets/farmersdelight/models/block/magenta_hanging_canvas_sign_rot_1.json +8705c0bf32b4fd283980c94a9ed6e5cb25990523 assets/farmersdelight/models/block/magenta_hanging_canvas_sign_rot_2.json +0a1fa8d192efb5976f616dacc1dc0ea7eb14ee70 assets/farmersdelight/models/block/magenta_hanging_canvas_sign_rot_3.json +c93daa5d2583f20d004870a8b03273b08a3945f2 assets/farmersdelight/models/block/magenta_wall_hanging_canvas_sign.json +8f42cfa3b2ef5e352dbf563caa68df42e7449447 assets/farmersdelight/models/block/mangrove_cabinet.json +2d45fd0bd71255d75ae5ef5e7dbd46c520e32806 assets/farmersdelight/models/block/mangrove_cabinet_open.json +9f642c986c54df8c0d77b13a102df03a96ccdc20 assets/farmersdelight/models/block/oak_cabinet.json +d2203f0d2411c26fd1020e183a18ec673251e8e5 assets/farmersdelight/models/block/oak_cabinet_open.json +e27c0d455a04c49249022c696028b9c58459cc60 assets/farmersdelight/models/block/onions_stage0.json +b28744d36508e1d5d6deb7c94e68f188bdfcd68b assets/farmersdelight/models/block/onions_stage1.json +f5c7b74e81b0a265515507c490971e2df772f1f1 assets/farmersdelight/models/block/onions_stage2.json +a64ec960f3d5575f8a2ce4daf4c36239c4f39f81 assets/farmersdelight/models/block/onions_stage3.json +c44ae5cec8d0595293a80824a8b013dee710be86 assets/farmersdelight/models/block/onion_crate.json +2ece18d4371729c3ba1630bd09a985c0f4cf6be7 assets/farmersdelight/models/block/orange_canvas_sign_rot_0.json +7d6164645a8c8f4f420a002cf52f12bda96289b8 assets/farmersdelight/models/block/orange_canvas_sign_rot_1.json +e425e543ca2c727af066a67477f670939f4a0dc5 assets/farmersdelight/models/block/orange_canvas_sign_rot_2.json +914b8fa75002dd77c0c7296381e876f7fcd785ae assets/farmersdelight/models/block/orange_canvas_sign_rot_3.json +cb8f65f544c09ec0c7e27ba62fd65e4bd1934fc3 assets/farmersdelight/models/block/orange_canvas_wall_sign.json +3c1004a5a2b2e3ec9d79012536b36591ac129624 assets/farmersdelight/models/block/orange_hanging_canvas_sign_attached_rot_0.json +6026b281622a4743b12b63d926f59d73fa9af936 assets/farmersdelight/models/block/orange_hanging_canvas_sign_attached_rot_1.json +cd0a177a9c36e81492178e4ad6817182c8ebc055 assets/farmersdelight/models/block/orange_hanging_canvas_sign_attached_rot_2.json +ff5271a712004218c58b2b570a398c002512e9df assets/farmersdelight/models/block/orange_hanging_canvas_sign_attached_rot_3.json +be115c5f8d654b306477f4d2b9c5bc927a915ae3 assets/farmersdelight/models/block/orange_hanging_canvas_sign_rot_0.json +6ae3245d9f14ae56ed901b9429ff147d579517f1 assets/farmersdelight/models/block/orange_hanging_canvas_sign_rot_1.json +875ce8285fee9bcf8936a88f2b0e20611cf0c06c assets/farmersdelight/models/block/orange_hanging_canvas_sign_rot_2.json +b4d6bd27d294e4ef6188619b73efad827f40f6d4 assets/farmersdelight/models/block/orange_hanging_canvas_sign_rot_3.json +345257c78fc9247e8baf7a3810f068953c228afc assets/farmersdelight/models/block/orange_wall_hanging_canvas_sign.json +78d1def19336a05151ff87e48b4d917bbdaac9b2 assets/farmersdelight/models/block/organic_compost_stage0.json +ec4ca27f8c944993841015c79550c8bc2004a774 assets/farmersdelight/models/block/organic_compost_stage1.json +b47635a33020e3bc72553d5b8d5333de319ba660 assets/farmersdelight/models/block/organic_compost_stage2.json +3b799a62220cd8f9fc5ed09b5ff5926de6a408a8 assets/farmersdelight/models/block/organic_compost_stage3.json +14cefff6c530de59b8b0646715545ed78c7bc21c assets/farmersdelight/models/block/pink_canvas_sign_rot_0.json +8f015e7ecbdd0e2077df177f8a52067e5eec5f85 assets/farmersdelight/models/block/pink_canvas_sign_rot_1.json +13feed5391c43edad1509bda1e5aaded1b910d5e assets/farmersdelight/models/block/pink_canvas_sign_rot_2.json +6c8080125ce76f2995ec0cecac2b5ca85b58dd9a assets/farmersdelight/models/block/pink_canvas_sign_rot_3.json +f68831061f66cca2ede2547828d9d9e726ada84c assets/farmersdelight/models/block/pink_canvas_wall_sign.json +df320c4d6744f405130cdd62f45b360caafeffb1 assets/farmersdelight/models/block/pink_hanging_canvas_sign_attached_rot_0.json +1fedd0b0e4d316dac480a021a2ec19856d1e2fae assets/farmersdelight/models/block/pink_hanging_canvas_sign_attached_rot_1.json +1c83917e7fcf43e89f8262b6384c33d4d9c5b190 assets/farmersdelight/models/block/pink_hanging_canvas_sign_attached_rot_2.json +a350a8faf375a3ef384d924d4a746f3affc9a1c4 assets/farmersdelight/models/block/pink_hanging_canvas_sign_attached_rot_3.json +0cdf50e05cb442f032e9166d8df8df62c043d34f assets/farmersdelight/models/block/pink_hanging_canvas_sign_rot_0.json +45a0dd92d1d6aae19f0c3ca5336ebac2c71d0428 assets/farmersdelight/models/block/pink_hanging_canvas_sign_rot_1.json +37d332ef8d73508c95c9aa53e855881ef8cc1103 assets/farmersdelight/models/block/pink_hanging_canvas_sign_rot_2.json +66d778929faec710856038d15c592392e4708863 assets/farmersdelight/models/block/pink_hanging_canvas_sign_rot_3.json +08871b4d713e5fb3e8a8bc1f432382abac3caa98 assets/farmersdelight/models/block/pink_wall_hanging_canvas_sign.json +5c4b76209d4fd845774d983b573024b52fbf3f57 assets/farmersdelight/models/block/potato_crate.json +83d3936cc1340a03daacedae1d0b54726af8ea07 assets/farmersdelight/models/block/pumpkin_pie.json +c9163a8485eeecfe8c461b2ca923972258f90475 assets/farmersdelight/models/block/pumpkin_pie_slice1.json +24208268e7459a3c8719510dbbf8aa54700f7fe3 assets/farmersdelight/models/block/pumpkin_pie_slice2.json +cbced5c6d939098c0b2e3551fe31240ebcf9dea3 assets/farmersdelight/models/block/pumpkin_pie_slice3.json +f7ecb99f029117663ba934390243dc98d7cc065a assets/farmersdelight/models/block/purple_canvas_sign_rot_0.json +1f701a8c35fef8873672980941effcec18ee0b37 assets/farmersdelight/models/block/purple_canvas_sign_rot_1.json +0ba56a1a71be4a8691579f1029ce23ef8058478f assets/farmersdelight/models/block/purple_canvas_sign_rot_2.json +58b83270b97a2b7b924b690b1395afe163675dbe assets/farmersdelight/models/block/purple_canvas_sign_rot_3.json +f92c74b7494ecd56bc9911fa223293592b8a4e5a assets/farmersdelight/models/block/purple_canvas_wall_sign.json +e6df2940dd6140c550b2f70eefd3d3db49e1b775 assets/farmersdelight/models/block/purple_hanging_canvas_sign_attached_rot_0.json +0f3acc53b68207e944d13b32f10b404eb7c3e411 assets/farmersdelight/models/block/purple_hanging_canvas_sign_attached_rot_1.json +8735e5560ebcb9a7ab5cf298a53a58335cd3141a assets/farmersdelight/models/block/purple_hanging_canvas_sign_attached_rot_2.json +72c46d6ba260206780449ee5e99fd2a49cb527c4 assets/farmersdelight/models/block/purple_hanging_canvas_sign_attached_rot_3.json +3871500dbf6038255df525e1319a355232c0f418 assets/farmersdelight/models/block/purple_hanging_canvas_sign_rot_0.json +ae2f42e5644d8cbdc985381338f245a500e9e56b assets/farmersdelight/models/block/purple_hanging_canvas_sign_rot_1.json +74a5bd8c53654e3ded8f0b525be99c7987c0c2a5 assets/farmersdelight/models/block/purple_hanging_canvas_sign_rot_2.json +cb2737fe3c42b4000963e151acea84a552de94a5 assets/farmersdelight/models/block/purple_hanging_canvas_sign_rot_3.json +2b719647f67c04770bbf47edff5c562de64518cd assets/farmersdelight/models/block/purple_wall_hanging_canvas_sign.json +6a25aaae38f9d8dd45b774726981243f52c2258b assets/farmersdelight/models/block/red_canvas_sign_rot_0.json +c4c092527d34ad9ed84fb0530afd0e88b18907b3 assets/farmersdelight/models/block/red_canvas_sign_rot_1.json +d747e58be60629447df1e31e5bcb3bd5ef38d766 assets/farmersdelight/models/block/red_canvas_sign_rot_2.json +5d0a823f7a33087051f267d3843ff5df24a79842 assets/farmersdelight/models/block/red_canvas_sign_rot_3.json +9205649de4a1533016d10b8ee4653dd2023d5712 assets/farmersdelight/models/block/red_canvas_wall_sign.json +dc143c9f7f3c8a902b666ddacfe1db1d89fd3dc1 assets/farmersdelight/models/block/red_hanging_canvas_sign_attached_rot_0.json +61a2e8fade8446ac5889aaa799728d7137121d57 assets/farmersdelight/models/block/red_hanging_canvas_sign_attached_rot_1.json +3ef521d40257d0e5ddc780e473eb6a2f454451ab assets/farmersdelight/models/block/red_hanging_canvas_sign_attached_rot_2.json +a151376349a80fc42722ce44fc14f86ab92ef26b assets/farmersdelight/models/block/red_hanging_canvas_sign_attached_rot_3.json +89e1609e1331a2c80908f4ab7ef64b254f82256e assets/farmersdelight/models/block/red_hanging_canvas_sign_rot_0.json +06ff2a2355c42339ed6aa5b72cec051fa1213aad assets/farmersdelight/models/block/red_hanging_canvas_sign_rot_1.json +35cbd40bfcd84a8346e18508291b0ee38c86c9dc assets/farmersdelight/models/block/red_hanging_canvas_sign_rot_2.json +95884b785e8e7c6dfa0c0a2e64a3f0f390556ab7 assets/farmersdelight/models/block/red_hanging_canvas_sign_rot_3.json +8820611c3fffb261b829c9c04c454a61a60a78c0 assets/farmersdelight/models/block/red_mushroom_colony_stage0.json +0a360060dde0a6ebe4b76b7c7edae2062888c795 assets/farmersdelight/models/block/red_mushroom_colony_stage1.json +df3d55a99f5a94d0acc79a7d8ce9cafef5e5fdf8 assets/farmersdelight/models/block/red_mushroom_colony_stage2.json +4ce06178ae6c31003840fb48740d232916f3cb00 assets/farmersdelight/models/block/red_mushroom_colony_stage3.json +1252c83cf11644713f84590ebba96aecc19089ef assets/farmersdelight/models/block/red_wall_hanging_canvas_sign.json +13f0134669353f4926ecd34c081b4eec185a5563 assets/farmersdelight/models/block/rice_bag.json +88de555887a69f71a77256e39155e5f076731331 assets/farmersdelight/models/block/rice_bale.json +9070be2b1f6b47e478c73ed10d2bbee906e0e8c0 assets/farmersdelight/models/block/rice_panicles_stage0.json +2a0ca5276a239499661ca63ec5310ae2e70e1b7f assets/farmersdelight/models/block/rice_panicles_stage1.json +6df16828196b34b6be23c1c4b35f2c809f7bcbbd assets/farmersdelight/models/block/rice_panicles_stage2.json +57c4f896a17513d3bb1017c8d64b410d6454edc5 assets/farmersdelight/models/block/rice_panicles_stage3.json +ffaf62f2dcad14511b2f52497c69cf0436f69754 assets/farmersdelight/models/block/rice_stage0.json +d4ad28abe2322cfb58a071555376f3e8a1e0f58d assets/farmersdelight/models/block/rice_stage1.json +9284c022c41149c45d1c449f8c6e051e7f1c23c8 assets/farmersdelight/models/block/rice_stage2.json +d91b5b0be5ad98f912b9beeddc443401bf328914 assets/farmersdelight/models/block/rice_stage3.json +3084c1f6dab7fdcde3d687afe05a2d6efa6ff9cd assets/farmersdelight/models/block/rice_supporting.json +e32f59a6806c497071eda244734ee05a4c67429a assets/farmersdelight/models/block/rich_soil.json +edceda6d919789455e6add4d2b63ea150ef3a26f assets/farmersdelight/models/block/rich_soil_farmland.json +3c5fd53e4ebbe1d7060a2ea6491236c38739c991 assets/farmersdelight/models/block/rich_soil_farmland_moist.json +0aa9d5b543da7c84b7efc90848167ec16a0eb8bc assets/farmersdelight/models/block/sandy_shrub.json +0c4920dd449120a0c9615f31f9ed2d478c9ac5c2 assets/farmersdelight/models/block/spruce_cabinet.json +bee1fa8b8cfae229b920578100130bf29545b8c4 assets/farmersdelight/models/block/spruce_cabinet_open.json +35887d2cfc65ae1c39d38f2f39b7d06fddb66e6c assets/farmersdelight/models/block/stove.json +3546e13bda0952bbf34366087aab27b5822bd1fb assets/farmersdelight/models/block/stove_on.json +f837eb2172d2e9c93511715b8ad99eefea0f1306 assets/farmersdelight/models/block/straw_bale.json +a38791dde4f9a0a964579cacaa579a3d21045b09 assets/farmersdelight/models/block/straw_bale_horizontal.json +b1cf4e84aa3f2a4d7c71d88232f49412f21218c5 assets/farmersdelight/models/block/sweet_berry_cheesecake.json +229da3f5d478b6dab1886871bcb8fb7fc1490858 assets/farmersdelight/models/block/sweet_berry_cheesecake_slice1.json +e9578bde598d70bfb430fa4bffd4df0f8016500d assets/farmersdelight/models/block/sweet_berry_cheesecake_slice2.json +f5273735a81c1055366c346a41c0368d38955e26 assets/farmersdelight/models/block/sweet_berry_cheesecake_slice3.json +73293b6f6be6379d499556364dc3ecf0b0e8815d assets/farmersdelight/models/block/tatami_half.json +9e64168021b1042479b7c82e6b47bf62ab761b9a assets/farmersdelight/models/block/tomatoes_old_stage0.json +13fe7e37f4f81b1bddfa6ac95f7090e62d241654 assets/farmersdelight/models/block/tomatoes_old_stage1.json +96b216516789582a282ae4ac6faa4c0c28f88cc7 assets/farmersdelight/models/block/tomatoes_old_stage2.json +13161d03535d730d178b7cee628ca4e4e51aa895 assets/farmersdelight/models/block/tomatoes_old_stage3.json +3018ed1ad4fd2f2144783c3979b19e7a0534f325 assets/farmersdelight/models/block/tomatoes_on_rope_stage0.json +822c93744c923306b8530e2a35374fedb6b3778a assets/farmersdelight/models/block/tomatoes_on_rope_stage1.json +df2af79a3d78a01fdc68e740bc9aa5a75c2d7e46 assets/farmersdelight/models/block/tomatoes_on_rope_stage2.json +8e92c913f7fad762a6fda030f26316ab63204ab1 assets/farmersdelight/models/block/tomatoes_on_rope_stage3.json +beccd6cadce8e1566f9f380f66c144145c8394c5 assets/farmersdelight/models/block/tomatoes_stage0.json +fd064d1d9652546b4e68439eb4411848c8568336 assets/farmersdelight/models/block/tomatoes_stage1.json +0aaab9d9fe1e32cfb64d2369c33bc3efe1c707c5 assets/farmersdelight/models/block/tomatoes_stage2.json +2dee9329f125b5e9827f4ab040ad86ac70d6018c assets/farmersdelight/models/block/tomatoes_stage3.json +16a3aff2e9db72922a9f927a7226cd7c6f087e5e assets/farmersdelight/models/block/tomato_crate.json +ffb2de63c5ab64d0d3de07d93828e2585ece2a1d assets/farmersdelight/models/block/wall_hanging_canvas_sign.json +6446b367173a02332113194898e86426cedbb9dc assets/farmersdelight/models/block/warped_cabinet.json +f68ef3c4f9a9a03980b6853c8b9cbe6a9faad24d assets/farmersdelight/models/block/warped_cabinet_open.json +b2313e5782393c444c7428541a85c09d254c1d0f assets/farmersdelight/models/block/white_canvas_sign_rot_0.json +1a18bbc536d31c640a947049337fc981d9f411e6 assets/farmersdelight/models/block/white_canvas_sign_rot_1.json +1877e763bc289416055cf506ea2fe7fa9fb98fd3 assets/farmersdelight/models/block/white_canvas_sign_rot_2.json +dc28fb2192a78ecb3c365feae6e9ae21f9dea168 assets/farmersdelight/models/block/white_canvas_sign_rot_3.json +3cffcf6cf2bbb13630cc1d185ac6d1b7ed395d60 assets/farmersdelight/models/block/white_canvas_wall_sign.json +204bd8fc49ce6c5ebc4ec23210ccb2f256dcd5f7 assets/farmersdelight/models/block/white_hanging_canvas_sign_attached_rot_0.json +5d3bfdb2055c425e35200ec1b50a81a2ebe52bd2 assets/farmersdelight/models/block/white_hanging_canvas_sign_attached_rot_1.json +8e93509dbaa18ec4d6d0d8b3a3e01359f727e45f assets/farmersdelight/models/block/white_hanging_canvas_sign_attached_rot_2.json +ee2c1ed3594612ac34ad71610007f1b1b675fc38 assets/farmersdelight/models/block/white_hanging_canvas_sign_attached_rot_3.json +0ebe5c14fb5d6de030a9d52c76ab7af18c399349 assets/farmersdelight/models/block/white_hanging_canvas_sign_rot_0.json +55af8a7dd88c67d11320539cc9c21bbba1757165 assets/farmersdelight/models/block/white_hanging_canvas_sign_rot_1.json +03f5d98be8f5045a09001a2482c299bd7fd677d6 assets/farmersdelight/models/block/white_hanging_canvas_sign_rot_2.json +f3c3d665699036eca0f4186119ab17ac91532870 assets/farmersdelight/models/block/white_hanging_canvas_sign_rot_3.json +00aa0b5d7c5b1c445d4b2e254e3d7fd1044fbb75 assets/farmersdelight/models/block/white_wall_hanging_canvas_sign.json +ff59a1421e41e5b2f17a8135248c91a6a56ccad7 assets/farmersdelight/models/block/wild_beetroots.json +d9420c8ad5f5a018a497594400e6fbd7d1a54b43 assets/farmersdelight/models/block/wild_cabbages.json +438c31396d7d24944def99f6e205c57c25e02a96 assets/farmersdelight/models/block/wild_carrots.json +da4724d8d5cb641cd5e6463f7bcba5ed00149780 assets/farmersdelight/models/block/wild_onions.json +e955b3ffd9eb52df9b3b9a537779d6de4729cc96 assets/farmersdelight/models/block/wild_potatoes.json +26edf462ea1f9dea2954967e62b00bfd6ad75f36 assets/farmersdelight/models/block/wild_rice_bottom.json +ee82f8d3eeed08c6faef2ced554970b3c5f770e7 assets/farmersdelight/models/block/wild_rice_top.json +e8700437f29df8d09c712eb0925351255c43c4f4 assets/farmersdelight/models/block/wild_tomatoes.json +28c38e5f414a3102ceada0ef0fb12f7cf13414d7 assets/farmersdelight/models/block/wooden_basket.json +f0b48f39e99b75d3b2beca1a88ea491e563e0a96 assets/farmersdelight/models/block/yellow_canvas_sign_rot_0.json +f5bbeb2e57fe5e528fe4a6a978c910f427060a1f assets/farmersdelight/models/block/yellow_canvas_sign_rot_1.json +5f72d986e72816e446b31c4c8d1473635f1cd11c assets/farmersdelight/models/block/yellow_canvas_sign_rot_2.json +a4c9659daf56cfc0fe48f9d19ed71703a4b9d25a assets/farmersdelight/models/block/yellow_canvas_sign_rot_3.json +04cba18f44fbefd79918676cc78d72e4e9cd7eed assets/farmersdelight/models/block/yellow_canvas_wall_sign.json +4af6294f9620b25eccca85039a297049c309f01a assets/farmersdelight/models/block/yellow_hanging_canvas_sign_attached_rot_0.json +c583c859ab68de1debc33effdbe5ee0ff80783ac assets/farmersdelight/models/block/yellow_hanging_canvas_sign_attached_rot_1.json +a6707b965a166027b870da340142db708693b2cf assets/farmersdelight/models/block/yellow_hanging_canvas_sign_attached_rot_2.json +ab3caa48588b4d81906534dfad257e71a9cbb72c assets/farmersdelight/models/block/yellow_hanging_canvas_sign_attached_rot_3.json +6b515e3bc232315966e7a29471dc7ed44140b0ce assets/farmersdelight/models/block/yellow_hanging_canvas_sign_rot_0.json +6c38f8e21b8f401dcea5688d35aadfd69baa73de assets/farmersdelight/models/block/yellow_hanging_canvas_sign_rot_1.json +cb03f6274ad8e08fcb6006cb81079751eb4fcb4d assets/farmersdelight/models/block/yellow_hanging_canvas_sign_rot_2.json +3d681efe3ad42e643648e8928bb09d7e49a25813 assets/farmersdelight/models/block/yellow_hanging_canvas_sign_rot_3.json +ef750b5f1896d46bf1736e75c9afe35f1e479978 assets/farmersdelight/models/block/yellow_wall_hanging_canvas_sign.json diff --git a/src/generated/resources/.cache/9fb1092f32d4fcbf9e061ffd718d4ec689c6c95e b/src/generated/resources/.cache/9fb1092f32d4fcbf9e061ffd718d4ec689c6c95e deleted file mode 100644 index c3df1f365..000000000 --- a/src/generated/resources/.cache/9fb1092f32d4fcbf9e061ffd718d4ec689c6c95e +++ /dev/null @@ -1,502 +0,0 @@ -// 1.21.1 2026-04-17T00:10:58.0343385 Recipes -0053d4db6868789324c8ab586cbfc9b588ce30ff data/farmersdelight/advancement/recipes/building_blocks/beetroot_crate.json -527c466425a9e580792dfe83176fd8057f08fb72 data/farmersdelight/advancement/recipes/building_blocks/cabbage_crate.json -5b6b7b02e582b796cef6d0c65ac910f9789f8897 data/farmersdelight/advancement/recipes/building_blocks/carrot_crate.json -81011a80ddb7cb97eea9eb452468ba8c5e695886 data/farmersdelight/advancement/recipes/building_blocks/onion_crate.json -dd2b7998f66decf7b30b273857296636614fcca1 data/farmersdelight/advancement/recipes/building_blocks/organic_compost_from_rotten_flesh.json -2e8651d4dc4939271a885b210566df44cfe3d152 data/farmersdelight/advancement/recipes/building_blocks/organic_compost_from_tree_bark.json -813ddc3fd690d2dc4f0b7ea468f8582420e1ada0 data/farmersdelight/advancement/recipes/building_blocks/packed_mud_from_straw.json -2997e34f08bbdd8bc2604f8deb2fcd67d51f156b data/farmersdelight/advancement/recipes/building_blocks/potato_crate.json -1806f6c6e065df8483ec7c878fd7f2ee3993ef6c data/farmersdelight/advancement/recipes/building_blocks/pumpkin_from_slices.json -993b8be46f8244c9a75d0900a2e19fcdd920d9c5 data/farmersdelight/advancement/recipes/building_blocks/rice_bag.json -bb925172c8412ba4a973cfa48292ef592108bd85 data/farmersdelight/advancement/recipes/building_blocks/rice_bale.json -7652f6cb45e414176b223c0a79beaeb50619cf80 data/farmersdelight/advancement/recipes/building_blocks/straw_bale.json -d10de7a1e6b09c1f6e49d83ddafaa575cff8179e data/farmersdelight/advancement/recipes/building_blocks/tatami.json -05529e72ac866ecabb30ba199bfbfe3aef2640a3 data/farmersdelight/advancement/recipes/building_blocks/tatami_block_from_full.json -f47d67c52ab5b27f3ead4a97ce1c312ab93eb0c0 data/farmersdelight/advancement/recipes/building_blocks/tomato_crate.json -0b235fda96c307bd590e18b7caeca6590d391c79 data/farmersdelight/advancement/recipes/combat/diamond_knife.json -b94e06475951529c04216359a2cb7d8d456a0a45 data/farmersdelight/advancement/recipes/combat/flint_knife.json -28daf25aa5f0a612da00e3af184e14ba74bfd064 data/farmersdelight/advancement/recipes/combat/golden_knife.json -30d3c8d8ecdde88c08e13e29fc212e6684855f9a data/farmersdelight/advancement/recipes/combat/iron_knife.json -b94d72726e3804fb2b7af8f9c44a9bc2070ff2d1 data/farmersdelight/advancement/recipes/combat/netherite_knife_smithing.json -873309aeaad4adfe9c9e1b0d4d2d131579b36bba data/farmersdelight/advancement/recipes/cooking/apple_cider.json -c0b4aeb951e3205fbf45085d6101c03afcb62002 data/farmersdelight/advancement/recipes/cooking/baked_cod_stew.json -cc1f405c14398baea18bf61b822b27045e7f1ad5 data/farmersdelight/advancement/recipes/cooking/beef_stew.json -9fff52afaf2c6f44f23bc30ace8be2be2c9890f8 data/farmersdelight/advancement/recipes/cooking/beetroot_soup.json -06a4c798dcad0c53f4a9483a66a720caf5f45e30 data/farmersdelight/advancement/recipes/cooking/bone_broth.json -9833717773e120d1bdb7fbc4ebf11d364d61c5d5 data/farmersdelight/advancement/recipes/cooking/cabbage_rolls.json -73fad39681a83e0e984846d6a6ca274efe2dd601 data/farmersdelight/advancement/recipes/cooking/chicken_soup.json -921f6fa0518007736c432a7daa866b9899660574 data/farmersdelight/advancement/recipes/cooking/cooked_rice.json -46134595446b9b1922febbe83568fe1468961507 data/farmersdelight/advancement/recipes/cooking/dog_food.json -f25f433faf87a2494c15cec905278d7f969d4cb6 data/farmersdelight/advancement/recipes/cooking/dumplings.json -901715a7179ce15771e609d025bed0fbdbc65ed6 data/farmersdelight/advancement/recipes/cooking/fish_stew.json -a065264f51252d616c65fb4e590eeb51ec103d0c data/farmersdelight/advancement/recipes/cooking/fried_rice.json -36cad8d8c3490406e93548f6a77b2394d124d52d data/farmersdelight/advancement/recipes/cooking/glow_berry_custard.json -42c881f63f7f2366d3083281d0fb6f3e55d65c34 data/farmersdelight/advancement/recipes/cooking/hot_cocoa.json -b254d91dc9c6fc553af2d7213187b668cf30476c data/farmersdelight/advancement/recipes/cooking/mushroom_rice.json -32c28663e6ef276511f907e380165aba963c1269 data/farmersdelight/advancement/recipes/cooking/mushroom_stew.json -72a1deb2d7e82b639d092769fb8bf46cf960bcff data/farmersdelight/advancement/recipes/cooking/noodle_soup.json -c39ebe4319e20bf002a5da818e1b612cafa661be data/farmersdelight/advancement/recipes/cooking/onion_soup.json -e2d62c5cef068c164f257091e4dcd98bed3b4e44 data/farmersdelight/advancement/recipes/cooking/pasta_with_meatballs.json -75976eb0a61c98736513c87878721f181a2e047a data/farmersdelight/advancement/recipes/cooking/pasta_with_mutton_chop.json -87fe7f7f7d86df1f10ec4bebfa6c64d6173075fb data/farmersdelight/advancement/recipes/cooking/pumpkin_soup.json -f4a0a8426a8b9d25131761924483cb1e5d81ce78 data/farmersdelight/advancement/recipes/cooking/rabbit_stew.json -8f5a5e3dab16e8a2bc80669da19eb404dd5c1278 data/farmersdelight/advancement/recipes/cooking/ratatouille.json -404c55d2075738ccb8b4455ee6b615495e317b28 data/farmersdelight/advancement/recipes/cooking/squid_ink_pasta.json -a5a4df9d98599fa0801e0685b97fb478c82e35d9 data/farmersdelight/advancement/recipes/cooking/stuffed_pumpkin_block.json -0f57d9bc8124db6078f28f87d86634c5f569544a data/farmersdelight/advancement/recipes/cooking/tomato_sauce.json -f50ea404958e39d6ccdf9fa514486228cab44f0a data/farmersdelight/advancement/recipes/cooking/vegetable_noodles.json -65518866adca88fb6b9dc9ac89040d6eca1309c9 data/farmersdelight/advancement/recipes/cooking/vegetable_soup.json -88ac7ee5fcd3cb7a6a0d3402b1b4152c367d44b6 data/farmersdelight/advancement/recipes/decorations/acacia_cabinet.json -cb81a2ac96f4ff605bf3ab2c66bb82bed7ce84f4 data/farmersdelight/advancement/recipes/decorations/bamboo_basket.json -61699b3e95534a820a93e07dadaa728deda7c45e data/farmersdelight/advancement/recipes/decorations/bamboo_cabinet.json -a8b8b76a991a7124cb99f9221879d72b50cbab8e data/farmersdelight/advancement/recipes/decorations/birch_cabinet.json -cbb2f98b8222189d5642cc1018313551e2f409cc data/farmersdelight/advancement/recipes/decorations/black_canvas_sign.json -62167b0edfbe5743a8fcd8386c55dfaaa7637b3e data/farmersdelight/advancement/recipes/decorations/black_hanging_canvas_sign.json -697a7d2357a4db3dee7bfd8438f2e27c12e0c15a data/farmersdelight/advancement/recipes/decorations/blue_canvas_sign.json -c84470c0d0a2b29a93de2947777754786650a30f data/farmersdelight/advancement/recipes/decorations/blue_hanging_canvas_sign.json -267ef38926b2fe63c5739c73956ae025bf3dfce5 data/farmersdelight/advancement/recipes/decorations/brown_canvas_sign.json -e529817a3a61918491093933f693d6480c53b491 data/farmersdelight/advancement/recipes/decorations/brown_hanging_canvas_sign.json -0dc3b2694832a026089618f3eb6b6ea924ced84f data/farmersdelight/advancement/recipes/decorations/canvas_rug.json -89a71316003ebacd77a863fb398fe7c7a5e72236 data/farmersdelight/advancement/recipes/decorations/canvas_sign.json -a906ee472b80597ddd5d270139817316f99a38fe data/farmersdelight/advancement/recipes/decorations/cherry_cabinet.json -f4bc690b7390053b9e8e7f601bb5775bad619ffc data/farmersdelight/advancement/recipes/decorations/cooking_pot.json -d9bd6345e683a582049895f7ee847d5248fbb3b9 data/farmersdelight/advancement/recipes/decorations/crimson_cabinet.json -a56c8338e5d4da26eed80c3bdf6f8bf44e1f6c7b data/farmersdelight/advancement/recipes/decorations/cutting_board.json -a68e92d72c547f38834cbb3c7e5fb75e9271e4a3 data/farmersdelight/advancement/recipes/decorations/cyan_canvas_sign.json -1eda43444a78b51d8e16990b6d0dcb5b011a67f0 data/farmersdelight/advancement/recipes/decorations/cyan_hanging_canvas_sign.json -549e8e07c6578912659aadba56bddac24bfe9969 data/farmersdelight/advancement/recipes/decorations/dark_oak_cabinet.json -6662d1186402eaf06f9211cf5e7256191d35d8e0 data/farmersdelight/advancement/recipes/decorations/full_tatami_mat.json -59a262180c7928d99ce1684d4eaff23d530d7cd1 data/farmersdelight/advancement/recipes/decorations/full_tatami_mat_from_halves.json -8fc1e5a959f494cb7969db8ccd95c604fae29b7f data/farmersdelight/advancement/recipes/decorations/gray_canvas_sign.json -293223b48f3ebae29cea08c18bc316fc85939f17 data/farmersdelight/advancement/recipes/decorations/gray_hanging_canvas_sign.json -ba41cf8db2b8157bef290c597d5521547916b4dd data/farmersdelight/advancement/recipes/decorations/green_canvas_sign.json -f682507f753b36a131654ae8247a5d7e1a45371b data/farmersdelight/advancement/recipes/decorations/green_hanging_canvas_sign.json -2f8c098882cf75fd385f84f2ec93c08b5603da19 data/farmersdelight/advancement/recipes/decorations/half_tatami_mat.json -cf418077284afc5e11affff0bd6e1d074afacac3 data/farmersdelight/advancement/recipes/decorations/hanging_canvas_sign.json -661863d9a33277f8c6228d56cef7973a366ba55e data/farmersdelight/advancement/recipes/decorations/jungle_cabinet.json -8073bf04ba2e45a8d6983b48f6fba36f5f03ef1c data/farmersdelight/advancement/recipes/decorations/light_blue_canvas_sign.json -ea157a4775596b0caebc3fc12ffc64e86ce0b601 data/farmersdelight/advancement/recipes/decorations/light_blue_hanging_canvas_sign.json -2fd234cfaa5e33587dbad22d163de4695176ea19 data/farmersdelight/advancement/recipes/decorations/light_gray_canvas_sign.json -e4e00eec951ce8368d39d9b25385b37fbc2357df data/farmersdelight/advancement/recipes/decorations/light_gray_hanging_canvas_sign.json -f147cb6dffe88adeacdfff5ed6e3d5fe585be150 data/farmersdelight/advancement/recipes/decorations/lime_canvas_sign.json -e25ef0b5e7f908b42aa0fc53930eb516590d312e data/farmersdelight/advancement/recipes/decorations/lime_hanging_canvas_sign.json -9448cf2fac51391e9c9b7d8c94040574a2747883 data/farmersdelight/advancement/recipes/decorations/magenta_canvas_sign.json -f8778345e44600896f00b0ea332436d8b3ba1a55 data/farmersdelight/advancement/recipes/decorations/magenta_hanging_canvas_sign.json -18336b100f9c85b64265ca692ac492d522abd1b1 data/farmersdelight/advancement/recipes/decorations/mangrove_cabinet.json -df5b1203ab60c5270d19070d269d207dcc01bd72 data/farmersdelight/advancement/recipes/decorations/oak_cabinet.json -0ba7bbc992aa9dae8f7afe3555dd4be823d0814c data/farmersdelight/advancement/recipes/decorations/orange_canvas_sign.json -f47adecfbb40830942a31df89097cf7d874bff1d data/farmersdelight/advancement/recipes/decorations/orange_hanging_canvas_sign.json -1225a578cce9157b27824f883a03f6c492a5a7cf data/farmersdelight/advancement/recipes/decorations/painting_from_canvas.json -85418deec78c56be55ac5b400f011b6a7998f0e4 data/farmersdelight/advancement/recipes/decorations/pink_canvas_sign.json -34df70b52254ae914763d0ede3028cfa5d944817 data/farmersdelight/advancement/recipes/decorations/pink_hanging_canvas_sign.json -0974908175de1a2b5691bd7885937c4bd5ac87b5 data/farmersdelight/advancement/recipes/decorations/purple_canvas_sign.json -90d572bbdf40d4d77c06061d1bdf4b85185a3350 data/farmersdelight/advancement/recipes/decorations/purple_hanging_canvas_sign.json -55bce3c922116578c2a1f83d8a61322d39992e13 data/farmersdelight/advancement/recipes/decorations/red_canvas_sign.json -43215d368d2d2086daf0a7279acf79e495cbd83a data/farmersdelight/advancement/recipes/decorations/red_hanging_canvas_sign.json -68df79301dfb98a2161398b5b0948127de9071cc data/farmersdelight/advancement/recipes/decorations/rope.json -332b1fd5bbdb034b1076dd275adfea0261a589ec data/farmersdelight/advancement/recipes/decorations/rope_fence.json -804b08da28a5c31600ebbf4e8d120d3c7c412511 data/farmersdelight/advancement/recipes/decorations/rope_fence_gate.json -c9c084c3fc159b54d79febafcd9bb07d2d58a465 data/farmersdelight/advancement/recipes/decorations/rope_from_safety_net.json -a19a044983b42b922e32410529b122a32dcf4d80 data/farmersdelight/advancement/recipes/decorations/safety_net.json -381a4bd172bec90d0725d70f1f8f5ed5b2f35c02 data/farmersdelight/advancement/recipes/decorations/scaffolding_from_canvas.json -ea4b584f884878a6c239c32951e1f9cd33a92781 data/farmersdelight/advancement/recipes/decorations/skillet.json -c488f4fd0de5188fe00b5f01ec748b8a00510536 data/farmersdelight/advancement/recipes/decorations/spruce_cabinet.json -0f21ecadf31e55a26fb9ce19077d701ab5fb4f97 data/farmersdelight/advancement/recipes/decorations/stove.json -07d07445ee9db9c8480c4fdc2ff3af649975fb87 data/farmersdelight/advancement/recipes/decorations/warped_cabinet.json -0167cd90139ec274f9efdb4635606b9cb1ba0f91 data/farmersdelight/advancement/recipes/decorations/white_canvas_sign.json -9f84cd80941b7a833cad165778044bef37b5763c data/farmersdelight/advancement/recipes/decorations/white_hanging_canvas_sign.json -47c9e391e70ec757609d901773a11591c9c616f4 data/farmersdelight/advancement/recipes/decorations/wooden_basket.json -59fc36948b8a0348b11a39e35a3791231a002640 data/farmersdelight/advancement/recipes/decorations/yellow_canvas_sign.json -63694277e2f6a954ea9a9ca8849d486626f1895a data/farmersdelight/advancement/recipes/decorations/yellow_hanging_canvas_sign.json -5a265e3ddb3244a3457bcdbb547565df54390cbf data/farmersdelight/advancement/recipes/food/apple_pie.json -8a5032d436ce7a0b64d2e1ad3ea3ad74efec8765 data/farmersdelight/advancement/recipes/food/apple_pie_from_slices.json -c471d51075d64c4ab2f6d529baf4153b8a91c4dc data/farmersdelight/advancement/recipes/food/bacon_and_eggs.json -cae52c493ddd224e8965180d8ee0b599306a1f6b data/farmersdelight/advancement/recipes/food/bacon_sandwich.json -c08a6db96e1ff8b3444406252239ec66f0054d62 data/farmersdelight/advancement/recipes/food/barbecue_stick.json -875bbeee720e49df64811d4babdeae505c2ae621 data/farmersdelight/advancement/recipes/food/beef_patty.json -44f9528bb1881704324ab2b5e8d17ec62190489d data/farmersdelight/advancement/recipes/food/beef_patty_from_campfire_cooking.json -4ad642209215387f4c28a7eb6445dd66e033a047 data/farmersdelight/advancement/recipes/food/beef_patty_from_smoking.json -8a559baf14cf733a0bf69241699d496f046c0178 data/farmersdelight/advancement/recipes/food/beetroot_from_crate.json -08fc73298c765528aef149deeba420f3cf7ded8e data/farmersdelight/advancement/recipes/food/bread_from_smelting.json -c00dbbee34ca065ed8167d852ba50b1eab0f0417 data/farmersdelight/advancement/recipes/food/bread_from_smoking.json -6c200bae3a800def73099f3905623c9663814535 data/farmersdelight/advancement/recipes/food/cabbage.json -b05a6deffd5c8140c19bc66c4dd666dbf02a3ce9 data/farmersdelight/advancement/recipes/food/cabbage_from_leaves.json -69ebe738d3ba5a1cfe49e20043bdfec2774e3d18 data/farmersdelight/advancement/recipes/food/cake_from_milk_bottle.json -596a9b4cdf61226845804f63d72ae23388066bf2 data/farmersdelight/advancement/recipes/food/cake_from_slices.json -72be029267a970bf3e94af72f9cc0e0ec8d86995 data/farmersdelight/advancement/recipes/food/carrot_from_crate.json -04140096a446fbad85c443e776317b4776d9c558 data/farmersdelight/advancement/recipes/food/chicken_sandwich.json -636a413c06ff3b9c4ddbd45cb0c12fc20191c803 data/farmersdelight/advancement/recipes/food/chocolate_pie.json -b3ef98e3cb27ad8aa932ca7fea95b8eebd876758 data/farmersdelight/advancement/recipes/food/chocolate_pie_from_slices.json -ad6bfea735b42e434044a66a8357ca7b46dd8c6b data/farmersdelight/advancement/recipes/food/cod_roll.json -b2291d9df1e6fca52c37d6b2c2fc14edff125641 data/farmersdelight/advancement/recipes/food/cooked_bacon.json -241123e8b73f02245bb9342a95a5bf208cd2af1c data/farmersdelight/advancement/recipes/food/cooked_bacon_from_campfire_cooking.json -f2a87f6e1b496252a9e3a52817282d8a39aba6ab data/farmersdelight/advancement/recipes/food/cooked_bacon_from_smoking.json -af36d83bae54307baee95e53f96e18c1fd33202b data/farmersdelight/advancement/recipes/food/cooked_chicken_cuts.json -301e7fc7799bc772eae85edc1680e02239e5368c data/farmersdelight/advancement/recipes/food/cooked_chicken_cuts_from_campfire_cooking.json -d1837d116ad1d7776268ca90ced20f762f4163dc data/farmersdelight/advancement/recipes/food/cooked_chicken_cuts_from_smoking.json -e0400d94a387fe7ee6388face64e0472e36294ee data/farmersdelight/advancement/recipes/food/cooked_cod_slice.json -5b305a4694fc439d3d0805eaabf1e7b309465ed0 data/farmersdelight/advancement/recipes/food/cooked_cod_slice_from_campfire_cooking.json -4104144c02f694fab96ea5d91d0b290821db8392 data/farmersdelight/advancement/recipes/food/cooked_cod_slice_from_smoking.json -f9a47519d0aab302bb2d0ff85978f61a4274bd91 data/farmersdelight/advancement/recipes/food/cooked_mutton_chops.json -19324dd9534dcb894019046755389d6cbf89a86a data/farmersdelight/advancement/recipes/food/cooked_mutton_chops_from_campfire_cooking.json -b1b97614d4ad8644d0fe3caaece546dc262872e8 data/farmersdelight/advancement/recipes/food/cooked_mutton_chops_from_smoking.json -48f52efa8096577d7fdf5148246b46534d060fe5 data/farmersdelight/advancement/recipes/food/cooked_salmon_slice.json -8d775a332d0c9924f89f2464339dc970fbc73e59 data/farmersdelight/advancement/recipes/food/cooked_salmon_slice_from_campfire_cooking.json -69c46196cf011601b2ebeedb09d7e33af66ea409 data/farmersdelight/advancement/recipes/food/cooked_salmon_slice_from_smoking.json -321e070c09ee746771bb17c8bc3858c897425160 data/farmersdelight/advancement/recipes/food/egg_sandwich.json -823115c9a277cc780eef2a9df747c333f31f668c data/farmersdelight/advancement/recipes/food/fried_egg.json -4296ac6da82fe1feac9f98b1e6e1a741eb1f4063 data/farmersdelight/advancement/recipes/food/fried_egg_from_campfire_cooking.json -875e120aacc58d18561fb7782c4f93c9ce8ad008 data/farmersdelight/advancement/recipes/food/fried_egg_from_smoking.json -a602c7bb5790b26c52d90cfcb13ed34e889aabb3 data/farmersdelight/advancement/recipes/food/fruit_salad.json -7120925a625adbfeab2dd40e9dd36f72597bd297 data/farmersdelight/advancement/recipes/food/gleaming_salad_block.json -0d33ea9907c1cc4a379f68260b3f1c684c5e8440 data/farmersdelight/advancement/recipes/food/grilled_salmon.json -d2ad30114f0a14a6cd6460766e9694e3466db644 data/farmersdelight/advancement/recipes/food/hamburger.json -a8c772bea4f4162d39ae68500745844a3f2de57c data/farmersdelight/advancement/recipes/food/honey_cookie.json -c5b0c86e1d4d71132d8ca25fe5f64e64e95a1425 data/farmersdelight/advancement/recipes/food/honey_glazed_ham_block.json -190ddc5cf045f6cc8c79837ea17960c399c75c85 data/farmersdelight/advancement/recipes/food/horse_feed.json -fd0dc77a4a3765d7a486e242900b001859cdae63 data/farmersdelight/advancement/recipes/food/kelp_roll.json -2c4a27360a025bd5199664709281f5ab98ef9d1b data/farmersdelight/advancement/recipes/food/melon_juice.json -259a63e372ae23def384c436fc3d580fb626f94a data/farmersdelight/advancement/recipes/food/melon_popsicle.json -7ad611eb908085e1a8198bdaef4518e2850c51b1 data/farmersdelight/advancement/recipes/food/milk_bottle.json -5e2df9fbf7dedcc6a0339b641db2e3ba797d99b9 data/farmersdelight/advancement/recipes/food/mixed_salad.json -e0711b48464db5347a1768216b98f84051a8e37e data/farmersdelight/advancement/recipes/food/mutton_wrap.json -de71493911654fff980031b56c8de0fa0c02347a data/farmersdelight/advancement/recipes/food/nether_salad.json -97c8198131854664a80018335a35406eb89ebe24 data/farmersdelight/advancement/recipes/food/onion.json -f0dc9acb0997709db8c6bb79e735a41013f98129 data/farmersdelight/advancement/recipes/food/pie_crust.json -a26fee3cf13248603636cece45e91f23520a4883 data/farmersdelight/advancement/recipes/food/potato_from_crate.json -6461884710d8d408592bb2aa114efa02c2488547 data/farmersdelight/advancement/recipes/food/pumpkin_pie_from_pie_crust.json -d3213ea03aab35de2f719deb4d305ea019fc9f6f data/farmersdelight/advancement/recipes/food/pumpkin_pie_from_slices.json -94695432131bfc4e80da7c029131d2e175f917b1 data/farmersdelight/advancement/recipes/food/rice.json -8e5905f8e94ce27336fe8b10f227be2e9fc99057 data/farmersdelight/advancement/recipes/food/rice_from_bag.json -8fc7d2b295db25d74e077511bce38e21871158df data/farmersdelight/advancement/recipes/food/rice_panicle.json -5cf3dc3dc0c4658d9120b54956ba8561f8a94f63 data/farmersdelight/advancement/recipes/food/rice_roll_medley_block.json -341b0a6d3519bd93466a4dc939638e0b22d5fd8f data/farmersdelight/advancement/recipes/food/roasted_mutton_chops.json -af51d195bc392eab4a79afbd3885f549188186ab data/farmersdelight/advancement/recipes/food/roast_chicken_block.json -a420ac38c51f84f3756d53ce49c97c815438d2cd data/farmersdelight/advancement/recipes/food/salmon_roll.json -00a9b862e86f21f1dee6352faa6e041d03ca3292 data/farmersdelight/advancement/recipes/food/shepherds_pie_block.json -a1f5a52f1b93352f47ca10438d87aa3df0384bfb data/farmersdelight/advancement/recipes/food/smoked_ham.json -da0bb52279d7894a4ddd75b53747c18f2538070c data/farmersdelight/advancement/recipes/food/steak_and_potatoes.json -6763e5fcf59d3e4748037dcbcd47e9cd25042857 data/farmersdelight/advancement/recipes/food/stuffed_potato.json -a4f4f404459a08c4a534d535345edfd5fda52e13 data/farmersdelight/advancement/recipes/food/sweet_berry_cheesecake.json -584666a6c45d202b58ac1e99ea2c3b1feed56b79 data/farmersdelight/advancement/recipes/food/sweet_berry_cheesecake_from_slices.json -fbdd1b2248d41c4b2e13266d07026e30e594949e data/farmersdelight/advancement/recipes/food/sweet_berry_cookie.json -70304b10b2fe6b3d80f31abd4a959dbc40ebf5db data/farmersdelight/advancement/recipes/food/tomato.json -832330ac62e822b146f9cd632e447d778819cfff data/farmersdelight/advancement/recipes/food/wheat_dough_from_egg.json -da92ade5c860504c22486866f4137208575859ba data/farmersdelight/advancement/recipes/misc/book_from_canvas.json -63715476dc69bb487764316cd82344ff2ce5636e data/farmersdelight/advancement/recipes/misc/canvas.json -69e2fcec5067be20dd8bb0e361cb086a539b6b9e data/farmersdelight/advancement/recipes/misc/canvas_from_canvas_rug.json -8d624a51bbc0646f5d111fc44b00847901eec7f6 data/farmersdelight/advancement/recipes/misc/gold_nugget_from_blasting_knife.json -80ecea22649959f3ace798c5e8d58debaec8b2e8 data/farmersdelight/advancement/recipes/misc/gold_nugget_from_smelting_knife.json -3632d90abb2861af5a24063587d455a8ea72125e data/farmersdelight/advancement/recipes/misc/iron_nugget_from_blasting_knife.json -c1975e769fff57f2d6bdcc9df2aa4a984c128449 data/farmersdelight/advancement/recipes/misc/iron_nugget_from_smelting_knife.json -8946a73f6f66812ea617bfc7cddb23c5422b7893 data/farmersdelight/advancement/recipes/misc/milk_bucket_from_bottles.json -6cde9810fa94c422efecbe8386a250d2b64b2b38 data/farmersdelight/advancement/recipes/misc/paper_from_tree_bark.json -f5bc43c7086bb916c6384f1ea773128231a39c49 data/farmersdelight/advancement/recipes/misc/pumpkin_seeds_from_slice.json -0e0b9dadb7f18bfdfd7a39759983d32e3903b2fd data/farmersdelight/advancement/recipes/misc/straw.json -883e978b8ff413d6a786075bbd8a744b57f9acd0 data/farmersdelight/advancement/recipes/misc/tomato_seeds.json -58e97deaff98b23e57ac97d612f4ff388b03e721 data/farmersdelight/advancement/recipes/tools/lead_from_straw.json -3b5279b92a6bc730ea7dc7e62900251bc7e96ebe data/farmersdelight/recipe/acacia_cabinet.json -c125a9aa0f89b5fc66c9c51a13fd0db104c3716b data/farmersdelight/recipe/apple_pie.json -db7c3adf2c7277dc7b5126efcab59b1d447237b4 data/farmersdelight/recipe/apple_pie_from_slices.json -653f3d9cc6583e2b970efeeaf76e2a10f9e2a50a data/farmersdelight/recipe/bacon_and_eggs.json -3543d19497226fa1c2644f8d6e1aa26e2fd7882c data/farmersdelight/recipe/bacon_sandwich.json -27c80b7208ecc9655097fd750cf2b16f297de0b8 data/farmersdelight/recipe/bamboo_basket.json -2b38776cb464fd62a7963ef2db20f8d660b1cfd5 data/farmersdelight/recipe/bamboo_cabinet.json -8b369814963326835b00a2ae8f5bf84a3925dc2f data/farmersdelight/recipe/barbecue_stick.json -5570c4ea2dc4debdf7b8d6ed05d228d3dabb31b6 data/farmersdelight/recipe/beef_patty.json -e73cee2543e2ba173b435fcf5008c521206cc8da data/farmersdelight/recipe/beef_patty_from_campfire_cooking.json -73213607793fca7e433fbbd5629ed7759d8a5e21 data/farmersdelight/recipe/beef_patty_from_smoking.json -a0916d31fa6c587af3aced29f2032d2d9b7b6fc3 data/farmersdelight/recipe/beetroot_crate.json -0874f610786fb6962afecdf83756d47670ac4a41 data/farmersdelight/recipe/beetroot_from_crate.json -ae74e446fef505294f963f7c6cfdba19b7bdc557 data/farmersdelight/recipe/birch_cabinet.json -6cbf1598e784de986ee9cf2078a872fbdb41305e data/farmersdelight/recipe/black_canvas_sign.json -a52394409e58b279e7530f33b16502b46b20c216 data/farmersdelight/recipe/black_hanging_canvas_sign.json -b6826dd06f009e1418c1f44aa9032e0aa95e0403 data/farmersdelight/recipe/blue_canvas_sign.json -09bc2abc13be6bdc4bafcb5d464cbc0337acda81 data/farmersdelight/recipe/blue_hanging_canvas_sign.json -4099fb363148c4835eb880e368c9f3c5ad3b4701 data/farmersdelight/recipe/book_from_canvas.json -26c29e7361b423e0523e38e7f0ecfde1017455b6 data/farmersdelight/recipe/bread_from_smelting.json -85fbee7f35ac49853190c7602938427e397e83a9 data/farmersdelight/recipe/bread_from_smoking.json -299a337a4338d9f2073f178f21b8a478f79470dd data/farmersdelight/recipe/brown_canvas_sign.json -8fe065a470c931209696684bdd822067cec0e35d data/farmersdelight/recipe/brown_hanging_canvas_sign.json -cde4fa3b0c319d5dfb3afb4e18ce7b9acd4cc4d7 data/farmersdelight/recipe/cabbage.json -af914b02a223a07ce1d53ed8e41a30dd9278a81b data/farmersdelight/recipe/cabbage_crate.json -e090508ada2e381ff67b5a56c3baa7083f8040cd data/farmersdelight/recipe/cabbage_from_leaves.json -201a88eaaf49e5e4db0cc86775589aba6457ba55 data/farmersdelight/recipe/cake_from_milk_bottle.json -ebcab763d9b2e83fd8d523da49b61c094379b1c8 data/farmersdelight/recipe/cake_from_slices.json -15ca9f61ee2433004579781479532a789da7c56b data/farmersdelight/recipe/canvas.json -94be290bb8b886fbcfdb4ad552cfc7415fdbf166 data/farmersdelight/recipe/canvas_from_canvas_rug.json -a88f8e947d33e97d69716a513780632a579d4029 data/farmersdelight/recipe/canvas_rug.json -dbae74bd2d8bb15bd080064ac8f7bba35f1f0b74 data/farmersdelight/recipe/canvas_sign.json -d8fb35faa84ddb506493e761660373882706e1c5 data/farmersdelight/recipe/carrot_crate.json -b9c55414bbcd32954bcb711795cf045a101e748e data/farmersdelight/recipe/carrot_from_crate.json -08564182275880aa5884bbc9b692c5f1488d2b88 data/farmersdelight/recipe/cherry_cabinet.json -a3ad6cc98275ee870434a711b3e1cae2ef6d99c9 data/farmersdelight/recipe/chicken_sandwich.json -5cddcfd0eb44f6b52689b072b49b1f259d2a6f42 data/farmersdelight/recipe/chocolate_pie.json -4395917be3bb1d00c930d790fb5e31b70a7384b3 data/farmersdelight/recipe/chocolate_pie_from_slices.json -9353197c3521e8f2d08ea3b58a2942c8c3604768 data/farmersdelight/recipe/cod_roll.json -ca55ce1c7535b28e931ef21c30b2c6d4d3e6ec63 data/farmersdelight/recipe/cooked_bacon.json -176bead0e6c095c1bb7a62c188c9667d015e4d03 data/farmersdelight/recipe/cooked_bacon_from_campfire_cooking.json -eb51b14095e9cbb6f8e678b109dc7682cd300258 data/farmersdelight/recipe/cooked_bacon_from_smoking.json -a733b8d137de93d98773759e651592d2fdd29e93 data/farmersdelight/recipe/cooked_chicken_cuts.json -f5d78b4160bf354dc283e0ac894f79d821209b0a data/farmersdelight/recipe/cooked_chicken_cuts_from_campfire_cooking.json -3147e7bbe0ac30ce2d077da8018e920502d5c5d6 data/farmersdelight/recipe/cooked_chicken_cuts_from_smoking.json -bd5079808ee011dd6d7c9d6f8a56403516731504 data/farmersdelight/recipe/cooked_cod_slice.json -3a77340ac484bdcfc1bf6f3600d1852f1e4e2cd3 data/farmersdelight/recipe/cooked_cod_slice_from_campfire_cooking.json -92f5e93594a7231ed8b90e2ec27307cc9b994949 data/farmersdelight/recipe/cooked_cod_slice_from_smoking.json -0cfb832632781d0808dbb6cb719c41c365bf4b1b data/farmersdelight/recipe/cooked_mutton_chops.json -318645c7f76f6da6f2e40f490a77bff3972a08b0 data/farmersdelight/recipe/cooked_mutton_chops_from_campfire_cooking.json -c03a81e3dc454d3df8336838dc3b0c87133a35cf data/farmersdelight/recipe/cooked_mutton_chops_from_smoking.json -62dba348d3fad0bbc47efb5b99eef0ada7c29f9f data/farmersdelight/recipe/cooked_salmon_slice.json -91f0978d692d97ddd744ef36b2d0da82eac34dda data/farmersdelight/recipe/cooked_salmon_slice_from_campfire_cooking.json -df039a22200c0e2e73bf9a3acb00966be27ca6a8 data/farmersdelight/recipe/cooked_salmon_slice_from_smoking.json -a8cb875c8b278ddb3e8a2a2a5136f4732e1b1590 data/farmersdelight/recipe/cooking/apple_cider.json -e6d6f3d89fe03c69315e6ad549c3ff1e7814b6d6 data/farmersdelight/recipe/cooking/baked_cod_stew.json -77ab5926f218e8e3d563c5220f56819780bda215 data/farmersdelight/recipe/cooking/beef_stew.json -7309c46dcf256771f54c1d9ed7a4ff8b600a5f19 data/farmersdelight/recipe/cooking/beetroot_soup.json -86a4552c978874afd08fb2129bab09a5c9cc4276 data/farmersdelight/recipe/cooking/bone_broth.json -a3a1a8dd2c70ade101a93421cac0817b8ac75fb2 data/farmersdelight/recipe/cooking/cabbage_rolls.json -1784889390a86b2b39089afa89c981006c53109a data/farmersdelight/recipe/cooking/chicken_soup.json -958d51555359fcce0777339788dde822c4c41e6d data/farmersdelight/recipe/cooking/cooked_rice.json -1480257263a25bb5fa104172017b05b0d8509cf7 data/farmersdelight/recipe/cooking/dog_food.json -69eca1985affda57a7f421cb7a448dc9dd1ce232 data/farmersdelight/recipe/cooking/dumplings.json -b04857ce872ea98d437ed933554af15dbc6d24c1 data/farmersdelight/recipe/cooking/fish_stew.json -dc17c44852a0cc2fafba48bdd22a431bb62da09d data/farmersdelight/recipe/cooking/fried_rice.json -cb0239c8f60bfbdee1df86eed6481effae418763 data/farmersdelight/recipe/cooking/glow_berry_custard.json -78d1513479b5c1e8bad042995680d8d2e7977a5f data/farmersdelight/recipe/cooking/hot_cocoa.json -d8f886634d353d180b50342f4968735c6617d0b7 data/farmersdelight/recipe/cooking/mushroom_rice.json -d002646c4307445a0932a95d87356b9275b5efd5 data/farmersdelight/recipe/cooking/mushroom_stew.json -93a6117ed70748d341a02e1d945d5733709b0044 data/farmersdelight/recipe/cooking/noodle_soup.json -6139616ca77b408f6a27df1c5d66ce17c471bfe9 data/farmersdelight/recipe/cooking/onion_soup.json -d4856405f34b658c8faa5575000652c78c15bb59 data/farmersdelight/recipe/cooking/pasta_with_meatballs.json -672f00da811e3c1ee1a0fbeb8f0a7e073f03f746 data/farmersdelight/recipe/cooking/pasta_with_mutton_chop.json -efe076fef5383aa6bc7f4532293cf84cbe5cfa80 data/farmersdelight/recipe/cooking/pumpkin_soup.json -7187c8697910a055b812305379c502316b77974e data/farmersdelight/recipe/cooking/rabbit_stew.json -63ac042793f3fcbdcbfb35a2a2ecc6364626f538 data/farmersdelight/recipe/cooking/ratatouille.json -20db3de20a0187bbeec68053935ea8f4ee0e4801 data/farmersdelight/recipe/cooking/squid_ink_pasta.json -572e6d0ebf744915fce0681b8286876ffa5bd4de data/farmersdelight/recipe/cooking/stuffed_pumpkin_block.json -2eba6da2f1f5a1c3b75d5a0473f4222ccf7ccf1d data/farmersdelight/recipe/cooking/tomato_sauce.json -c0b0f908ca4eb66c06a939c3e0688fd455e11020 data/farmersdelight/recipe/cooking/vegetable_noodles.json -2a16c767e0cd8911b732c0ff9dbeab2f4d7aee64 data/farmersdelight/recipe/cooking/vegetable_soup.json -87d17a7ddb79d9693a5d10165ec0bb86dfd724a3 data/farmersdelight/recipe/cooking_pot.json -08bbf5ef3918a1a76cf40983a662e7d6d084af72 data/farmersdelight/recipe/crimson_cabinet.json -252116a16614f24778aa9e9544e564d8729204d0 data/farmersdelight/recipe/cutting/acacia_log.json -1fd4388ba6619820b8835c58179792c1d1a93e5c data/farmersdelight/recipe/cutting/acacia_wood.json -05dd35d5209fa8dde87ee1f842aea271a9bc939d data/farmersdelight/recipe/cutting/allium.json -0bf2812d6d8df6ceb8d57a28cb424b8c0cf7f681 data/farmersdelight/recipe/cutting/apple_pie.json -a0b69c1aa77d63915f0703854f5af7dad2871cd9 data/farmersdelight/recipe/cutting/azure_bluet.json -4a65f4463ecf273618885bd3b2fb2aaad8befb68 data/farmersdelight/recipe/cutting/bamboo_basket.json -0346fde37c34c252c67956f911e7950c3848eb95 data/farmersdelight/recipe/cutting/bamboo_block.json -3a064b13209863b267c8a2d40670062fa7851c31 data/farmersdelight/recipe/cutting/beef.json -c7d6f4af15c03f89bedff234affc9a2144898948 data/farmersdelight/recipe/cutting/birch_log.json -ac0da541938fe86eb24477e793faef883c16b38e data/farmersdelight/recipe/cutting/birch_wood.json -ac9f1b15c05bbf37afaaab67136ca279cb0fa824 data/farmersdelight/recipe/cutting/blue_orchid.json -e9885c45a00a559b5b71377d17fc0ff80e526c23 data/farmersdelight/recipe/cutting/brown_mushroom_colony.json -77d4855691891d3c65828a9cb60db79680430602 data/farmersdelight/recipe/cutting/cabbage.json -256a419b28dfc695fe3755527b2a427bf8d62d18 data/farmersdelight/recipe/cutting/cake.json -d85b0945fbf4917e3e21ac368be5d062729e0bd7 data/farmersdelight/recipe/cutting/cherry_log.json -d54d2f981524b9472a67f0a35d8755f2a780dcf0 data/farmersdelight/recipe/cutting/cherry_wood.json -591479f0850720f34389b7d2ba11c8a77002a9dc data/farmersdelight/recipe/cutting/chicken.json -dd3f7f5e153622105e4c227f9d09da4b6d3cb45e data/farmersdelight/recipe/cutting/chocolate_pie.json -668d1ae6761c8e54e11cd097e3081d42915c7aea data/farmersdelight/recipe/cutting/clay.json -658fb03ddde729aa6c396e123585525b1008831c data/farmersdelight/recipe/cutting/cod.json -6b6ed2d2eea9c5a85a19473263b8cf96bf4e238d data/farmersdelight/recipe/cutting/cooked_chicken.json -64623690d399261675788f28b831619927416547 data/farmersdelight/recipe/cutting/cooked_cod.json -374a142fc1931a7ca89f424e0ce94592ceafcd0b data/farmersdelight/recipe/cutting/cooked_mutton.json -daba82927a4d3c25d6300a192cf99bb3a45e85ae data/farmersdelight/recipe/cutting/cooked_salmon.json -f6a3817cdebb9c3644083c7668cca6544dcef205 data/farmersdelight/recipe/cutting/cornflower.json -a0c823a9d89b9a594539839ca20ef2e2830a14c7 data/farmersdelight/recipe/cutting/crimson_hyphae.json -cfee55594c23e5575f9dae38dce25bfb6aa7cacd data/farmersdelight/recipe/cutting/crimson_stem.json -6b50887444569b98db902debbafc10853ef31862 data/farmersdelight/recipe/cutting/dandelion.json -15115dbe8b5f1c86ffb55be1bb1944f1ce4644ab data/farmersdelight/recipe/cutting/dark_oak_log.json -693b473d446f667af599daed71b39d0da7d8583f data/farmersdelight/recipe/cutting/dark_oak_wood.json -0b724c5408e7130c9a24835de1c7d8da3c7b4c84 data/farmersdelight/recipe/cutting/gravel.json -e9228b0e97f6f0e18209bd1f3a8de9167a10b24e data/farmersdelight/recipe/cutting/ham.json -f8c5546e04f50ab9db2f75e2f4d74a9c04bf982d data/farmersdelight/recipe/cutting/ink_sac.json -125a7585470f3a48ffbac9a1e21f64e1912ad322 data/farmersdelight/recipe/cutting/jungle_log.json -f86e1ca88383005f17032eba69f0368a51eeeaca data/farmersdelight/recipe/cutting/jungle_wood.json -01813807c2d9d2c99cef1df2619343e4725d1825 data/farmersdelight/recipe/cutting/kelp_roll.json -b7ffb631ee178436bb719b5952f803d830c7d98a data/farmersdelight/recipe/cutting/lily_of_the_valley.json -25c2e85b2932a2d409dcee71bfba4f1ef61995bc data/farmersdelight/recipe/cutting/mangrove_log.json -310f90282ab0464e92678d6507db3e0aec790ca9 data/farmersdelight/recipe/cutting/mangrove_wood.json -8a616c25ff70a8a73c50c46d4120556a60843e29 data/farmersdelight/recipe/cutting/melon.json -a73bd19fd35fb35c6478bc2a01afb924b8e8e17d data/farmersdelight/recipe/cutting/mutton.json -9dc4b98d4285d0ad6be374543b7b4165555d98ba data/farmersdelight/recipe/cutting/oak_log.json -afa31c2e20da19eacf44c46f13b0a0239e737e9f data/farmersdelight/recipe/cutting/oak_wood.json -64f5e052b5cdbedb657363649ecbeb5116b0d4e3 data/farmersdelight/recipe/cutting/orange_tulip.json -b707e0ea08e6dac30d016e8fc58fc32407b1947e data/farmersdelight/recipe/cutting/oxeye_daisy.json -0e0633a2792b6057fc7ae104c61bcf79e2f578da data/farmersdelight/recipe/cutting/pink_tulip.json -8a62bf349abea9664e8d45a0231247bf89b32d52 data/farmersdelight/recipe/cutting/poppy.json -fee4495ad6960cd8c84cb3fded453af623525285 data/farmersdelight/recipe/cutting/porkchop.json -16467a874b1982f8418a23cc789b373c7b44f543 data/farmersdelight/recipe/cutting/pumpkin.json -6a12e39745dfc00fb47ddf9692781973615274ca data/farmersdelight/recipe/cutting/pumpkin_pie.json -4538199ef1c1e1bf6248a24ad5272efa7f22cbfe data/farmersdelight/recipe/cutting/red_mushroom_colony.json -3796c427c262f36bab1d55dedaf8c030a06d9a8a data/farmersdelight/recipe/cutting/red_tulip.json -b8a0ead95af93e084572aa7b9aa76eb3293e6f1e data/farmersdelight/recipe/cutting/rice_panicle.json -13944c2dd3a733663280716c92172ddce658ba9f data/farmersdelight/recipe/cutting/salmon.json -404acbd29a250d05b9b9ff42e663bc4f82bef1fc data/farmersdelight/recipe/cutting/smoked_ham.json -e98c59dc694ef100aea549e9f256b2f6b1d07831 data/farmersdelight/recipe/cutting/spruce_log.json -6527babdb3bd317f661941af35f03d7478f0fedf data/farmersdelight/recipe/cutting/spruce_wood.json -7be442ee91a848462d0b81aa15b36c654b7bf106 data/farmersdelight/recipe/cutting/sweet_berry_cheesecake.json -9423bc4b76e302368cd009b968b3b46d540f58b2 data/farmersdelight/recipe/cutting/tag_dough.json -ee1543d094b029fa7b2cc076c465031a52aa6f9a data/farmersdelight/recipe/cutting/torchflower.json -d888c968a8340cf4fddec541c3c1d7dc520e5b6d data/farmersdelight/recipe/cutting/warped_hyphae.json -8f31eb648f19231bbaebf35f71b6ecdb992fc6df data/farmersdelight/recipe/cutting/warped_stem.json -8ebe5b07c60016339f24e35b29eb06822fddf68d data/farmersdelight/recipe/cutting/white_tulip.json -3c7aef146cfe0af23f0e8146feb25245b9534ff7 data/farmersdelight/recipe/cutting/wild_beetroots.json -c49b8bba52e7074f33e0c45d5b5521feb934eec6 data/farmersdelight/recipe/cutting/wild_cabbages.json -8bd12a96ff49cf096c4adffac979b84b67ec643a data/farmersdelight/recipe/cutting/wild_carrots.json -f5eef4295860b504e283fac9f38bbd5d1a4c7730 data/farmersdelight/recipe/cutting/wild_onions.json -81843fbae0891f0afd89655e83ec59fd6ec2fa54 data/farmersdelight/recipe/cutting/wild_potatoes.json -b28617f4a77adcdd3ace97c481e286eaf522327b data/farmersdelight/recipe/cutting/wild_rice.json -3d57ba27c9320577219cc4687183d51e0ed2b850 data/farmersdelight/recipe/cutting/wild_tomatoes.json -7096a18431aa6a4c7c2a6f67467c318f936bfaf1 data/farmersdelight/recipe/cutting/wither_rose.json -c68a5e10fda267a813704f611647072cb44df2d0 data/farmersdelight/recipe/cutting/wooden_basket.json -336a6dd34c4047997f212f361013018fbceff73f data/farmersdelight/recipe/cutting_board.json -4f1c30eceea374a541131733ee02934b6fa61781 data/farmersdelight/recipe/cyan_canvas_sign.json -900222528c843203ed2ecc912a4c200e36f59d93 data/farmersdelight/recipe/cyan_hanging_canvas_sign.json -2cf02116fcea823a159eaab995bcade1b036c6ae data/farmersdelight/recipe/dark_oak_cabinet.json -be8e3426278342dec70a93363e55ec8a00ef3c2b data/farmersdelight/recipe/diamond_knife.json -468920114f6133d4fa0fb30feb56a38e3612178e data/farmersdelight/recipe/egg_sandwich.json -bfaa9b0c6308f3e5010a3245b62cb3f3b2d7e910 data/farmersdelight/recipe/flint_knife.json -892fa20d0321fecdc92f482761b92855bf2d8b44 data/farmersdelight/recipe/food_serving.json -7eee64aae9190faee4dd415f75d4552b62412345 data/farmersdelight/recipe/fried_egg.json -61a962ed1552fd24c81912192f9d3b48a9188c85 data/farmersdelight/recipe/fried_egg_from_campfire_cooking.json -57e3b943d6bf35f980bb00f6806d1b8071558a6d data/farmersdelight/recipe/fried_egg_from_smoking.json -01dd0d659a9e8560e4772e5225b8ab05ae6b16ee data/farmersdelight/recipe/fruit_salad.json -e63eaf1c7a85c755cd96791149f8740538dc828b data/farmersdelight/recipe/full_tatami_mat.json -e0ebffe74bce3333f52aca834f7a821908e9b440 data/farmersdelight/recipe/full_tatami_mat_from_halves.json -3d4044b2b003d1cd4767795073773d086702b102 data/farmersdelight/recipe/gleaming_salad_block.json -81d03ab5d72981ec89f32caa717fb16107db73d9 data/farmersdelight/recipe/golden_knife.json -ef52294ab36a9796284678e5fc8a50561a396275 data/farmersdelight/recipe/gold_nugget_from_blasting_knife.json -3a9a7e4b97d395a03c8c7e12ee986100de115021 data/farmersdelight/recipe/gold_nugget_from_smelting_knife.json -fcd0dfe6eb396892395c35b9b26cdcc236649209 data/farmersdelight/recipe/gray_canvas_sign.json -28c1c0167e4c321737494e0f2d59caa263222180 data/farmersdelight/recipe/gray_hanging_canvas_sign.json -91312d2464657087a3493532b0c544594e85239c data/farmersdelight/recipe/green_canvas_sign.json -65f1091b2843925a2a91bdb547a4532d5d50c07d data/farmersdelight/recipe/green_hanging_canvas_sign.json -7eb041f3012c59a7659b4092b68f899ecba3b52d data/farmersdelight/recipe/grilled_salmon.json -6ae3219ad1aa998c15d73e7e96d50692e0718503 data/farmersdelight/recipe/half_tatami_mat.json -9cd55c7313ca2be2a9f687e9d48d592ceddcfaec data/farmersdelight/recipe/hamburger.json -b43ff1a35d4627ed6778f3ea335b950084ca3e9e data/farmersdelight/recipe/hanging_canvas_sign.json -65c527b4b005b6dbc96b854739db2bd85ab2ee20 data/farmersdelight/recipe/honey_cookie.json -21650aa1fec783c3eef1772bb32e5a96abe31930 data/farmersdelight/recipe/honey_glazed_ham_block.json -d791f879dbec2219cdcc3963676f970f142e6a6f data/farmersdelight/recipe/horse_feed.json -0de70ee06958b4ae7a703d11daa49b009ba0607a data/farmersdelight/recipe/iron_knife.json -c1eeaef09c6d30f759d5067fb9997b1ffdc34c3d data/farmersdelight/recipe/iron_nugget_from_blasting_knife.json -df24c440f100751a198a12e9010ef9e439649015 data/farmersdelight/recipe/iron_nugget_from_smelting_knife.json -32c81309c733fbed01d5e8efdebe625a07e196af data/farmersdelight/recipe/jungle_cabinet.json -79fc05971606fb11fd07679878b4cd0945cf969e data/farmersdelight/recipe/kelp_roll.json -e92e908943b879827e5bc9d584296d0119c1e6fd data/farmersdelight/recipe/lead_from_straw.json -33c055a7cd14345fa92354af48772a60224ef888 data/farmersdelight/recipe/light_blue_canvas_sign.json -d1d357b786d179b0c153e1ff3887ad152d3ce7b9 data/farmersdelight/recipe/light_blue_hanging_canvas_sign.json -f46f675a2ef7e865ce1ef9077851881496dd841b data/farmersdelight/recipe/light_gray_canvas_sign.json -f0deb09a2a0cd260b83713e1660607d683412a16 data/farmersdelight/recipe/light_gray_hanging_canvas_sign.json -77c3e7d4ce6be56d837677e28b27cd62e1dcd019 data/farmersdelight/recipe/lime_canvas_sign.json -0467fe21a7e1c81ba5700cbb7ebe2ebf75a8cada data/farmersdelight/recipe/lime_hanging_canvas_sign.json -035b0e51b4695284f265f1abfe09464585dd6b42 data/farmersdelight/recipe/magenta_canvas_sign.json -fce582873389b9e8b68d65b62b872def3c1d7327 data/farmersdelight/recipe/magenta_hanging_canvas_sign.json -b2cba7d8bcd969f2f46c093c23cb5acb936c5aad data/farmersdelight/recipe/mangrove_cabinet.json -c1bdf2d0ec6d02b8426ab918f79b8f18ff075c4c data/farmersdelight/recipe/melon_juice.json -56af19d2ec76c2456f5665fd63fb746b9aab76a6 data/farmersdelight/recipe/melon_popsicle.json -05e850c9fefde78f736475b98e047cbad0b85c3e data/farmersdelight/recipe/milk_bottle.json -cceb5f7d6257093ae89b933048c2bc5f3c571258 data/farmersdelight/recipe/milk_bucket_from_bottles.json -56d01cb8f60859137dac6e530272f7869465bae4 data/farmersdelight/recipe/mixed_salad.json -b764f78ebeadca66a614ad4fe620366273f17734 data/farmersdelight/recipe/mutton_wrap.json -055a81da2dcb9da4408cc6bf6e55644a8df31268 data/farmersdelight/recipe/netherite_knife_smithing.json -b1f9520a168a2aabc9ad1d1361a4d94e8af3eefd data/farmersdelight/recipe/nether_salad.json -3bc00b6c560cbc36362984028f95bbab297af306 data/farmersdelight/recipe/oak_cabinet.json -1822e5b5b9386f56a61b569fdb053616da70b0d8 data/farmersdelight/recipe/onion.json -c1092b62bca73ea6fbcaf821dcc28e8a35c71712 data/farmersdelight/recipe/onion_crate.json -645b7b15ae216a9c6439c1c473451ef5c979593e data/farmersdelight/recipe/orange_canvas_sign.json -937181a99c0c9d158768d17f55ffc70f61a62067 data/farmersdelight/recipe/orange_hanging_canvas_sign.json -53188490d2a159192f92dea41b964b11f997fd19 data/farmersdelight/recipe/organic_compost_from_rotten_flesh.json -dc9b18da540cac4997f2570dc8d9c4cc35f8da1f data/farmersdelight/recipe/organic_compost_from_tree_bark.json -fc6eefc1f5ff6f0eac52c922e6527216d31886f8 data/farmersdelight/recipe/packed_mud_from_straw.json -47e6b22264a3dba49c36a98b4780719fe669a905 data/farmersdelight/recipe/painting_from_canvas.json -05368043bfc624f1bcf962d66d3f06864d963dc0 data/farmersdelight/recipe/paper_from_tree_bark.json -c64d6a92736e5d1d3aeb5ad569ecc15235748231 data/farmersdelight/recipe/pie_crust.json -956725be3d8e3106f78cae52a065c8a595e2768e data/farmersdelight/recipe/pink_canvas_sign.json -8c2b6865a9e1477bf85cdbba190ebf8883f97dd8 data/farmersdelight/recipe/pink_hanging_canvas_sign.json -6836f748069f5c151db37ae80a6c85499ea99569 data/farmersdelight/recipe/potato_crate.json -7f6025588d015b97a577310ba6f2eab1028d4f8a data/farmersdelight/recipe/potato_from_crate.json -c839b9fa24cec511c23e1b34558838abbc18dcf1 data/farmersdelight/recipe/pumpkin_from_slices.json -2ddb2e043fa295ce06792a59ab73643db5cbe4e4 data/farmersdelight/recipe/pumpkin_pie_from_pie_crust.json -df3a61df81e611eaebfef14c5526828e38166a72 data/farmersdelight/recipe/pumpkin_pie_from_slices.json -9d56021a8ded6ac803e6b81ba98f09ad4062f3b5 data/farmersdelight/recipe/pumpkin_seeds_from_slice.json -09ce3daac17eef72c7304a3312efe2fa8af933e8 data/farmersdelight/recipe/purple_canvas_sign.json -8870de2d29c189cca81f20c440631380762196ad data/farmersdelight/recipe/purple_hanging_canvas_sign.json -126205c092f8669734550bc0d1cc2fe99355eedd data/farmersdelight/recipe/red_canvas_sign.json -a65ef957449301d0ca504ad32c6cb4631af5f8cb data/farmersdelight/recipe/red_hanging_canvas_sign.json -5bb1daa56d8c456513b599dfeb95ecda00ed9b34 data/farmersdelight/recipe/rice.json -d2e8644255a572452b29a3aa73e181b7ab52b568 data/farmersdelight/recipe/rice_bag.json -863203446e8f28021f1a2a2018f9a10876d2ebbf data/farmersdelight/recipe/rice_bale.json -6ca326da160da64c75b485fcb1fc4542ac4ffdf7 data/farmersdelight/recipe/rice_from_bag.json -d3afd3569c4d64b3d8985e11ed210aed5f123040 data/farmersdelight/recipe/rice_panicle.json -b978e78b82047e1c5e383f601d889cf7db6dc923 data/farmersdelight/recipe/rice_roll_medley_block.json -f085de4d5649341529f817d814ed4da7fa646a26 data/farmersdelight/recipe/roasted_mutton_chops.json -2fe4e24d17518508bfb2a2c10d66ee5576768cfd data/farmersdelight/recipe/roast_chicken_block.json -6e80f12db92d5e8ca46918fa947e5e15e6542d60 data/farmersdelight/recipe/rope.json -5960d9719d948b0d02e25b8247c59f8edfd55b38 data/farmersdelight/recipe/rope_fence.json -ee8c32a71e4e7b21525d5bf20867b30e785ae3a6 data/farmersdelight/recipe/rope_fence_gate.json -2dc57ce4cfff96dee008f3672e33587eca5b95f4 data/farmersdelight/recipe/rope_from_safety_net.json -185408223eca813ffba93f6511658b1fb35c9123 data/farmersdelight/recipe/safety_net.json -02f309ba9a88bb0ebcc55466daf676725b9196a5 data/farmersdelight/recipe/salmon_roll.json -14813928fa4dee36ed343755151b3255c2fad720 data/farmersdelight/recipe/salvaging/acacia_chest_boat.json -6ecafd5fae123f36511d38fd7b57e17b364f9d9c data/farmersdelight/recipe/salvaging/acacia_furniture.json -3989692f53b6a03dbc450c0465939f8a09a8d8c6 data/farmersdelight/recipe/salvaging/amethyst_block.json -7054f8dc5dba59098eaa7cc73de74e51f497f691 data/farmersdelight/recipe/salvaging/bamboo_chest_raft.json -542b78fdae728df2a79a2c6c29ee85fe55306319 data/farmersdelight/recipe/salvaging/bamboo_furniture.json -d6857f6020ba3c73e19d88f9fc259127aa8f9097 data/farmersdelight/recipe/salvaging/birch_chest_boat.json -0156be30fa2e5057d2fade486aa53286fed523a0 data/farmersdelight/recipe/salvaging/birch_furniture.json -850dc5bebbf3b9741b8e7a5d1de8db71f1e91e39 data/farmersdelight/recipe/salvaging/bricks.json -f08682550a1131bb3a17eca813074940dac257de data/farmersdelight/recipe/salvaging/cherry_chest_boat.json -27f6f03bbdd86132136908454245472a151f5318 data/farmersdelight/recipe/salvaging/cherry_furniture.json -59561ae8328cb23f95256db476fea716237549ec data/farmersdelight/recipe/salvaging/chest_minecart.json -89137ebc6f01995b158f8d92294b4a346ec8f4cb data/farmersdelight/recipe/salvaging/crimson_furniture.json -4f020a0dd468f24e8318b7afcfb3222ae794047f data/farmersdelight/recipe/salvaging/dark_oak_chest_boat.json -c9d324c53f9ca61604926cbe22d7627d1a4f9896 data/farmersdelight/recipe/salvaging/dark_oak_furniture.json -6f631abd6dca58902cb1cf486c8d6ff26cf75171 data/farmersdelight/recipe/salvaging/deepslate.json -e3637bd9bcbe7d997f325c1bdf50e3862ea90438 data/farmersdelight/recipe/salvaging/furnace_minecart.json -9362ae7d99803005c7e99db2c55f1f1afaf5b50a data/farmersdelight/recipe/salvaging/hopper_minecart.json -932a820be44e31897c4566c28ff46c8e409ee31d data/farmersdelight/recipe/salvaging/jungle_chest_boat.json -2a8013671bf81e53c82e114414db72a9aabf7997 data/farmersdelight/recipe/salvaging/jungle_furniture.json -03786c0dbd681473e254943ad25f873a49207cb5 data/farmersdelight/recipe/salvaging/leather_armor.json -69350534315e7235ee3ed7ce7d9cce0f913f6b2b data/farmersdelight/recipe/salvaging/leather_horse_armor.json -38b78080973007ceb7ef083aff34a34729804973 data/farmersdelight/recipe/salvaging/mangrove_chest_boat.json -c802628d849030067f595a8ce656448bda1ca575 data/farmersdelight/recipe/salvaging/mangrove_furniture.json -41f0ca670099a2f8fb4fed49615ce0a69eb8193e data/farmersdelight/recipe/salvaging/nether_bricks.json -a6f7052b435b96103b6496d04c3d0fae8f3ad743 data/farmersdelight/recipe/salvaging/oak_chest_boat.json -7020ee05898cd7936a129c65cf231a3f3d4ed674 data/farmersdelight/recipe/salvaging/oak_furniture.json -66f0b71f2ca3f12341341e45cd9db1ed824ebc36 data/farmersdelight/recipe/salvaging/quartz_block.json -9629b0f6e7fb7985b0c19aa7b7aef12bfb5a44ba data/farmersdelight/recipe/salvaging/saddle.json -874767ade8df375525654e90ab6820b64cc8bebb data/farmersdelight/recipe/salvaging/spruce_chest_boat.json -f30bd61abcb0f9b11295719c813ece89f3476977 data/farmersdelight/recipe/salvaging/spruce_furniture.json -446b7c03443b07303614b7b2925e54ee9d0c7db8 data/farmersdelight/recipe/salvaging/stone.json -1d51d0b8fe169f66cf5cfeb9f033ebf529db8136 data/farmersdelight/recipe/salvaging/tnt_minecart.json -21f0979c05a40aa001d3f3e1b66a4c1b0f0db452 data/farmersdelight/recipe/salvaging/warped_furniture.json -232982e41322cd6b2b4c737b632026b4efc40790 data/farmersdelight/recipe/scaffolding_from_canvas.json -76a42a6e8cf866ad19b4bb8403bf128ec41ac890 data/farmersdelight/recipe/shepherds_pie_block.json -26d917e184877ebe507e379fde4bf85440373774 data/farmersdelight/recipe/skillet.json -71b135d0b792cb51def9727b78d624f21f75996c data/farmersdelight/recipe/smoked_ham.json -d178169fdc058502073692e074f129fb19c54c51 data/farmersdelight/recipe/spruce_cabinet.json -b23725c0d9feb20bbf8243d3856f1a34599f2861 data/farmersdelight/recipe/steak_and_potatoes.json -c67ba33f107f81aa6030a6478abca6565b8888b1 data/farmersdelight/recipe/stove.json -2ec7cef3f9dd73589218f06f08a65ee7ede8ce04 data/farmersdelight/recipe/straw.json -41828f7b67b20fee4e6a89932faaaf37678ffaca data/farmersdelight/recipe/straw_bale.json -2970ac5777def9c333e926afea802d458d233eb3 data/farmersdelight/recipe/stuffed_potato.json -3e40cbe69e6c6a0d5bb5aa0a79daa949ca85ce63 data/farmersdelight/recipe/sweet_berry_cheesecake.json -671cafa5a62b0c5897ad5acfccb257c23281694a data/farmersdelight/recipe/sweet_berry_cheesecake_from_slices.json -ffaf0213a73ad600f7e19bcd5f59380ce6453920 data/farmersdelight/recipe/sweet_berry_cookie.json -8acd75f21b611c9b7a392b0cc3a31b14815ca8a8 data/farmersdelight/recipe/tatami.json -793fb38c273d303f019aad9282cf81bc3fdc8150 data/farmersdelight/recipe/tatami_block_from_full.json -e5a57f481dbf597f16abec3a89373acaa8258a6b data/farmersdelight/recipe/tomato.json -bb532a0b52a1f99e9e12a41b4ee6bdd810792bab data/farmersdelight/recipe/tomato_crate.json -699614886697a702e51ec8e1958cc13dff144e58 data/farmersdelight/recipe/tomato_seeds.json -b99ab07af19f6d8d5256b81270827ffe945282a8 data/farmersdelight/recipe/warped_cabinet.json -13d9bbb44f4ff79b8ffd6768a19b862a59680c64 data/farmersdelight/recipe/wheat_dough_from_egg.json -41fe143edc521907cc12899c96dff5cd90f2e567 data/farmersdelight/recipe/wheat_dough_from_water.json -b324bcaaeccbfbacd0e71ee8d6ed454204399a19 data/farmersdelight/recipe/white_canvas_sign.json -58b3654e32961ea59117544ad2d942d5b8805b80 data/farmersdelight/recipe/white_hanging_canvas_sign.json -784ea1ac6f792f4df23553694497a1027447123e data/farmersdelight/recipe/wooden_basket.json -342623834798ecfd6159d3d9db68dee4e42dd28d data/farmersdelight/recipe/yellow_canvas_sign.json -76af29b4bf74ff47dea7db4ddb17d136426ed1f1 data/farmersdelight/recipe/yellow_hanging_canvas_sign.json diff --git a/src/generated/resources/.cache/ad6447458930dc7735623f5f132a7fc79db07b3e b/src/generated/resources/.cache/ad6447458930dc7735623f5f132a7fc79db07b3e new file mode 100644 index 000000000..d37f6f943 --- /dev/null +++ b/src/generated/resources/.cache/ad6447458930dc7735623f5f132a7fc79db07b3e @@ -0,0 +1,913 @@ +// 26.2 2026-07-27T13:17:32.9963329 Generated data Resource Preserver +65eba9e0353834055ff822059bd7e1784fe218ad data/createaddition/tags/item/plants.json +f55c336a7c0c249fc90b76c979cfa5d5f6a277bf data/createaddition/tags/item/plant_foods.json +38f828e4676e464f280ee9fcbbd1065fa89e4218 data/create/tags/block/brittle.json +8481234a20c9d13f4da1a07b9651d1b99bbd0fad data/create/tags/block/fan_transparent.json +89dff4a2813a4b6fe13cde6e775266a1d606a4aa data/create/tags/block/passive_boiler_heaters.json +578c1c9a03e76fe2831f34ee8a74b0d5396e7c0e data/create/tags/item/upright_on_belt.json +76c23603e65410291af111793aa931640128fae8 data/c/tags/block/fences.json +1ba129ce39f820a673b8ed7d47d083a5252dd5e3 data/c/tags/block/fence_gates.json +35133e95f1c8fdd7a1c21afcc231fc0bffefb9a8 data/c/tags/block/mineable/knife.json +c484c51d2c48af8c323a29257df2d3f0d180a19a data/c/tags/block/ropes.json +8a1e5da26c9752cf0618aaec7a6aab66633087ae data/c/tags/block/storage_blocks.json +da0d6934eabdb3acd06d9f7491f75608e9f0641f data/c/tags/block/storage_blocks/beetroot.json +afd3592ccefe001b743061344b7d2c827f40eef3 data/c/tags/block/storage_blocks/cabbage.json +5732bc2b22a77e42ce97c02dfb2a353db7f7c496 data/c/tags/block/storage_blocks/carrot.json +dc41382aa4ff1c9d8989532e2a70d6139fe3985e data/c/tags/block/storage_blocks/onion.json +38c32fcd46883629fae32771481257fe22079a22 data/c/tags/block/storage_blocks/potato.json +9d8915524697016a73aca8a902282f939274ddc7 data/c/tags/block/storage_blocks/rice.json +b1919af26385c8c277cbefc52e2d517cfa896190 data/c/tags/block/storage_blocks/rice_panicle.json +934b73c62dcc70c5ad128e42c34671a5e8530b46 data/c/tags/block/storage_blocks/straw.json +7ad993790e1a604a556656dd00b68f9ab8c12638 data/c/tags/block/storage_blocks/tomato.json +37edc107822c138cf74a13a3bd862c2f77ae8e8c data/c/tags/item/crops.json +5bbfb299379c168bb2327bda9407b207ac10f4ea data/c/tags/item/crops/cabbage.json +0f562b0fbe6970c38dd03e21aaba2cef5e08540c data/c/tags/item/crops/grain.json +67cc2b5a00311a0164d09c5487c714d091be00d9 data/c/tags/item/crops/onion.json +e07a7ae115045b2965657efe36300a94364de4af data/c/tags/item/crops/rice.json +0fe37095f12c7c6a3bca60606cab33162378e60d data/c/tags/item/crops/tomato.json +c6d731fe8fcecc9b674a5d0375fd7c4c58c1d899 data/c/tags/item/drinks.json +9f3f07dbd96f9d69d569c7918bfe0e7bab509d9e data/c/tags/item/drinks/milk.json +76c23603e65410291af111793aa931640128fae8 data/c/tags/item/fences.json +1ba129ce39f820a673b8ed7d47d083a5252dd5e3 data/c/tags/item/fence_gates.json +3f8f73ca2266fa7a4d17c97204b329c0e7f4bc5b data/c/tags/item/foods.json +5bbfb299379c168bb2327bda9407b207ac10f4ea data/c/tags/item/foods/cabbage.json +3303db8c35b37ceda9538f0642448ff9ee6c42d0 data/c/tags/item/foods/cooked_bacon.json +239cd4652a85bba6a88770dbcc0daab6e9087ad8 data/c/tags/item/foods/cooked_beef.json +eaeec4b02a1d41a895f1e5fec0b1347ed3acd73f data/c/tags/item/foods/cooked_chicken.json +8a9cdfd84d30be9690da31005680cce8cb846e76 data/c/tags/item/foods/cooked_cod.json +07c77bd8ad8c4e6d1964a40a9214a6a34cb92d9e data/c/tags/item/foods/cooked_egg.json +0ab69720fd5c1ffba79f92ac31bc9edaffb1c259 data/c/tags/item/foods/cooked_fish.json +aed89f4d52bf4812e716038b56f18584ee06db82 data/c/tags/item/foods/cooked_meat.json +5eae6a1178eb833f52d2b34227acaf59baba87af data/c/tags/item/foods/cooked_mutton.json +57b96a97b0785ba40705a7fa69474ceda4e8fd7d data/c/tags/item/foods/cooked_pork.json +9abb7a585095d238db90289d9239fc7cf980070f data/c/tags/item/foods/cooked_salmon.json +139eb819e6cdc4f3a30b90708f4b0fab277fb3a0 data/c/tags/item/foods/cookie.json +e2f69da8312f6b119d15ab810d2f7bc859f85e12 data/c/tags/item/foods/dough.json +009e3ca74df76edfe88b0b1f2a043b3bc593957a data/c/tags/item/foods/dough/wheat.json +00251a84e738b1c2cc55b08913f27c5655ede242 data/c/tags/item/foods/edible_when_placed.json +336dcdf52ca0980fdba4668ae996f5034cad9432 data/c/tags/item/foods/food_poisoning.json +475e2e580d3e2d9e7d241515a791d6925591ca65 data/c/tags/item/foods/leafy_green.json +67cc2b5a00311a0164d09c5487c714d091be00d9 data/c/tags/item/foods/onion.json +cc07bf42ee781fd6b78320d408c87a7d65276184 data/c/tags/item/foods/pasta.json +2ab4137036af9ba68d84341e754e663edd00dc0a data/c/tags/item/foods/pie.json +ef52cc197127c8679eb1c5b78795a4bde37e1d04 data/c/tags/item/foods/raw_bacon.json +92f699bda4cf5f5533b1f7e80e1f95e32b0192d2 data/c/tags/item/foods/raw_beef.json +05194311998bffa86a518e72aad4dcfa09f8b745 data/c/tags/item/foods/raw_chicken.json +4672824ff90e71870906006ee8f84592d88bc509 data/c/tags/item/foods/raw_cod.json +5af5005e77d7bbd7864fd5917614333217c55823 data/c/tags/item/foods/raw_fish.json +950888a3dcbe868d985e818a288db41f0896498c data/c/tags/item/foods/raw_meat.json +3a49a4024d4369ce405f4090eee021ca4c3ae4d3 data/c/tags/item/foods/raw_mutton.json +3cd469a93f4fb0f57ba2466cea9ec798627ef103 data/c/tags/item/foods/raw_pork.json +7c238208767949f224e484e22241b21edb79c2f0 data/c/tags/item/foods/raw_salmon.json +47648304fde04bb2ad5c37551c4371ea3f6a548d data/c/tags/item/foods/safe_raw_fish.json +4fca776d2df70acaa08665ca1dfb39ce23034a5e data/c/tags/item/foods/soup.json +0fe37095f12c7c6a3bca60606cab33162378e60d data/c/tags/item/foods/tomato.json +918c0f66af478fb6e30369d568b5a8fb9713348b data/c/tags/item/foods/vegetable.json +c484c51d2c48af8c323a29257df2d3f0d180a19a data/c/tags/item/ropes.json +72e49310839c0faed01ba86225e802ae4961cb5e data/c/tags/item/seeds.json +8a1e5da26c9752cf0618aaec7a6aab66633087ae data/c/tags/item/storage_blocks.json +da0d6934eabdb3acd06d9f7491f75608e9f0641f data/c/tags/item/storage_blocks/beetroot.json +afd3592ccefe001b743061344b7d2c827f40eef3 data/c/tags/item/storage_blocks/cabbage.json +5732bc2b22a77e42ce97c02dfb2a353db7f7c496 data/c/tags/item/storage_blocks/carrot.json +dc41382aa4ff1c9d8989532e2a70d6139fe3985e data/c/tags/item/storage_blocks/onion.json +38c32fcd46883629fae32771481257fe22079a22 data/c/tags/item/storage_blocks/potato.json +9d8915524697016a73aca8a902282f939274ddc7 data/c/tags/item/storage_blocks/rice.json +b1919af26385c8c277cbefc52e2d517cfa896190 data/c/tags/item/storage_blocks/rice_panicle.json +934b73c62dcc70c5ad128e42c34671a5e8530b46 data/c/tags/item/storage_blocks/straw.json +7ad993790e1a604a556656dd00b68f9ab8c12638 data/c/tags/item/storage_blocks/tomato.json +ca5d704c80ce87e8088c90a25812a2eb1e56c353 data/c/tags/item/tools.json +edaf49470d0e1c903468fd6902234bbeec85c337 data/c/tags/item/tools/knife.json +831ed56d761c453158ce16754a61434c314e4bbc data/farmersdelight/advancement/main/craft_knife.json +78035710700cea4b6cd85c0f3adea232640a74b3 data/farmersdelight/advancement/main/eat_nourishing_food.json +bebc40877fccbc16ce69fecc4c0b7f837f290222 data/farmersdelight/advancement/main/get_fd_seed.json +e10797d0ad39ccaa00598ca160449f5308a7ccda data/farmersdelight/advancement/main/get_ham.json +2dda63ebed22c4e0babe562dd154f0500d0780c3 data/farmersdelight/advancement/main/get_mushroom_colony.json +07c8cb24335437406bb529fc8eb98f2e0e0a056d data/farmersdelight/advancement/main/get_rich_soil.json +aad6d5daa02a0bb8aa446e68292b39159beacd39 data/farmersdelight/advancement/main/harvest_ropelogged_tomato.json +b90ee9a1e3f9446c2f2a40e720029af66eb4bef4 data/farmersdelight/advancement/main/harvest_straw.json +c7e6e23ebee23520b1ea8ce27ec99b56ebe81bcd data/farmersdelight/advancement/main/hit_raider_with_rotten_tomato.json +9df41ec64e2283b3cf20835e04d9f9d1660dded9 data/farmersdelight/advancement/main/master_chef.json +9d03b621d75d245527ebf27b280d2f2a4efed346 data/farmersdelight/advancement/main/obtain_netherite_knife.json +e8b35ff5508422a4462c9be79ab1928457e4358a data/farmersdelight/advancement/main/place_campfire.json +9e1f3e64164ee4950a113f09fae9da269e1b9dc1 data/farmersdelight/advancement/main/place_cooking_pot.json +4a78038031b3a63e5303debe3c7ae453b20e7381 data/farmersdelight/advancement/main/place_feast.json +356fcabae710fda4c0dfe03670f5f2aae5aacf19 data/farmersdelight/advancement/main/place_organic_compost.json +cb7acc6d3b15d4c90f568578aed64501b7aec390 data/farmersdelight/advancement/main/place_skillet.json +fb23b7a1f6c9c36e9d6643a5261c62f69e4e29b3 data/farmersdelight/advancement/main/plant_all_crops.json +ce2080a033b866271e708b7e15dfcd8e4c7ff9c8 data/farmersdelight/advancement/main/plant_rice.json +b5620ad5a9fb754b591f725acbe70307b10ea644 data/farmersdelight/advancement/main/root.json +a67ef656690dfaf2c4e6e11f28d1e59de2ccc909 data/farmersdelight/advancement/main/use_cutting_board.json +a4b132309d1da3bb77a4531910296ce2c2ad27ab data/farmersdelight/advancement/main/use_skillet.json +0053d4db6868789324c8ab586cbfc9b588ce30ff data/farmersdelight/advancement/recipes/building_blocks/beetroot_crate.json +527c466425a9e580792dfe83176fd8057f08fb72 data/farmersdelight/advancement/recipes/building_blocks/cabbage_crate.json +5b6b7b02e582b796cef6d0c65ac910f9789f8897 data/farmersdelight/advancement/recipes/building_blocks/carrot_crate.json +81011a80ddb7cb97eea9eb452468ba8c5e695886 data/farmersdelight/advancement/recipes/building_blocks/onion_crate.json +dd2b7998f66decf7b30b273857296636614fcca1 data/farmersdelight/advancement/recipes/building_blocks/organic_compost_from_rotten_flesh.json +2e8651d4dc4939271a885b210566df44cfe3d152 data/farmersdelight/advancement/recipes/building_blocks/organic_compost_from_tree_bark.json +813ddc3fd690d2dc4f0b7ea468f8582420e1ada0 data/farmersdelight/advancement/recipes/building_blocks/packed_mud_from_straw.json +2997e34f08bbdd8bc2604f8deb2fcd67d51f156b data/farmersdelight/advancement/recipes/building_blocks/potato_crate.json +1806f6c6e065df8483ec7c878fd7f2ee3993ef6c data/farmersdelight/advancement/recipes/building_blocks/pumpkin_from_slices.json +993b8be46f8244c9a75d0900a2e19fcdd920d9c5 data/farmersdelight/advancement/recipes/building_blocks/rice_bag.json +bb925172c8412ba4a973cfa48292ef592108bd85 data/farmersdelight/advancement/recipes/building_blocks/rice_bale.json +7652f6cb45e414176b223c0a79beaeb50619cf80 data/farmersdelight/advancement/recipes/building_blocks/straw_bale.json +d10de7a1e6b09c1f6e49d83ddafaa575cff8179e data/farmersdelight/advancement/recipes/building_blocks/tatami.json +05529e72ac866ecabb30ba199bfbfe3aef2640a3 data/farmersdelight/advancement/recipes/building_blocks/tatami_block_from_full.json +f47d67c52ab5b27f3ead4a97ce1c312ab93eb0c0 data/farmersdelight/advancement/recipes/building_blocks/tomato_crate.json +0b235fda96c307bd590e18b7caeca6590d391c79 data/farmersdelight/advancement/recipes/combat/diamond_knife.json +b94e06475951529c04216359a2cb7d8d456a0a45 data/farmersdelight/advancement/recipes/combat/flint_knife.json +28daf25aa5f0a612da00e3af184e14ba74bfd064 data/farmersdelight/advancement/recipes/combat/golden_knife.json +30d3c8d8ecdde88c08e13e29fc212e6684855f9a data/farmersdelight/advancement/recipes/combat/iron_knife.json +b94d72726e3804fb2b7af8f9c44a9bc2070ff2d1 data/farmersdelight/advancement/recipes/combat/netherite_knife_smithing.json +873309aeaad4adfe9c9e1b0d4d2d131579b36bba data/farmersdelight/advancement/recipes/cooking/apple_cider.json +c0b4aeb951e3205fbf45085d6101c03afcb62002 data/farmersdelight/advancement/recipes/cooking/baked_cod_stew.json +cc1f405c14398baea18bf61b822b27045e7f1ad5 data/farmersdelight/advancement/recipes/cooking/beef_stew.json +9fff52afaf2c6f44f23bc30ace8be2be2c9890f8 data/farmersdelight/advancement/recipes/cooking/beetroot_soup.json +06a4c798dcad0c53f4a9483a66a720caf5f45e30 data/farmersdelight/advancement/recipes/cooking/bone_broth.json +9833717773e120d1bdb7fbc4ebf11d364d61c5d5 data/farmersdelight/advancement/recipes/cooking/cabbage_rolls.json +73fad39681a83e0e984846d6a6ca274efe2dd601 data/farmersdelight/advancement/recipes/cooking/chicken_soup.json +921f6fa0518007736c432a7daa866b9899660574 data/farmersdelight/advancement/recipes/cooking/cooked_rice.json +46134595446b9b1922febbe83568fe1468961507 data/farmersdelight/advancement/recipes/cooking/dog_food.json +f25f433faf87a2494c15cec905278d7f969d4cb6 data/farmersdelight/advancement/recipes/cooking/dumplings.json +901715a7179ce15771e609d025bed0fbdbc65ed6 data/farmersdelight/advancement/recipes/cooking/fish_stew.json +a065264f51252d616c65fb4e590eeb51ec103d0c data/farmersdelight/advancement/recipes/cooking/fried_rice.json +36cad8d8c3490406e93548f6a77b2394d124d52d data/farmersdelight/advancement/recipes/cooking/glow_berry_custard.json +42c881f63f7f2366d3083281d0fb6f3e55d65c34 data/farmersdelight/advancement/recipes/cooking/hot_cocoa.json +b254d91dc9c6fc553af2d7213187b668cf30476c data/farmersdelight/advancement/recipes/cooking/mushroom_rice.json +32c28663e6ef276511f907e380165aba963c1269 data/farmersdelight/advancement/recipes/cooking/mushroom_stew.json +72a1deb2d7e82b639d092769fb8bf46cf960bcff data/farmersdelight/advancement/recipes/cooking/noodle_soup.json +c39ebe4319e20bf002a5da818e1b612cafa661be data/farmersdelight/advancement/recipes/cooking/onion_soup.json +e2d62c5cef068c164f257091e4dcd98bed3b4e44 data/farmersdelight/advancement/recipes/cooking/pasta_with_meatballs.json +75976eb0a61c98736513c87878721f181a2e047a data/farmersdelight/advancement/recipes/cooking/pasta_with_mutton_chop.json +87fe7f7f7d86df1f10ec4bebfa6c64d6173075fb data/farmersdelight/advancement/recipes/cooking/pumpkin_soup.json +f4a0a8426a8b9d25131761924483cb1e5d81ce78 data/farmersdelight/advancement/recipes/cooking/rabbit_stew.json +8f5a5e3dab16e8a2bc80669da19eb404dd5c1278 data/farmersdelight/advancement/recipes/cooking/ratatouille.json +404c55d2075738ccb8b4455ee6b615495e317b28 data/farmersdelight/advancement/recipes/cooking/squid_ink_pasta.json +a5a4df9d98599fa0801e0685b97fb478c82e35d9 data/farmersdelight/advancement/recipes/cooking/stuffed_pumpkin_block.json +0f57d9bc8124db6078f28f87d86634c5f569544a data/farmersdelight/advancement/recipes/cooking/tomato_sauce.json +f50ea404958e39d6ccdf9fa514486228cab44f0a data/farmersdelight/advancement/recipes/cooking/vegetable_noodles.json +65518866adca88fb6b9dc9ac89040d6eca1309c9 data/farmersdelight/advancement/recipes/cooking/vegetable_soup.json +88ac7ee5fcd3cb7a6a0d3402b1b4152c367d44b6 data/farmersdelight/advancement/recipes/decorations/acacia_cabinet.json +cb81a2ac96f4ff605bf3ab2c66bb82bed7ce84f4 data/farmersdelight/advancement/recipes/decorations/bamboo_basket.json +61699b3e95534a820a93e07dadaa728deda7c45e data/farmersdelight/advancement/recipes/decorations/bamboo_cabinet.json +a8b8b76a991a7124cb99f9221879d72b50cbab8e data/farmersdelight/advancement/recipes/decorations/birch_cabinet.json +cbb2f98b8222189d5642cc1018313551e2f409cc data/farmersdelight/advancement/recipes/decorations/black_canvas_sign.json +62167b0edfbe5743a8fcd8386c55dfaaa7637b3e data/farmersdelight/advancement/recipes/decorations/black_hanging_canvas_sign.json +697a7d2357a4db3dee7bfd8438f2e27c12e0c15a data/farmersdelight/advancement/recipes/decorations/blue_canvas_sign.json +c84470c0d0a2b29a93de2947777754786650a30f data/farmersdelight/advancement/recipes/decorations/blue_hanging_canvas_sign.json +267ef38926b2fe63c5739c73956ae025bf3dfce5 data/farmersdelight/advancement/recipes/decorations/brown_canvas_sign.json +e529817a3a61918491093933f693d6480c53b491 data/farmersdelight/advancement/recipes/decorations/brown_hanging_canvas_sign.json +0dc3b2694832a026089618f3eb6b6ea924ced84f data/farmersdelight/advancement/recipes/decorations/canvas_rug.json +89a71316003ebacd77a863fb398fe7c7a5e72236 data/farmersdelight/advancement/recipes/decorations/canvas_sign.json +a906ee472b80597ddd5d270139817316f99a38fe data/farmersdelight/advancement/recipes/decorations/cherry_cabinet.json +f4bc690b7390053b9e8e7f601bb5775bad619ffc data/farmersdelight/advancement/recipes/decorations/cooking_pot.json +d9bd6345e683a582049895f7ee847d5248fbb3b9 data/farmersdelight/advancement/recipes/decorations/crimson_cabinet.json +a56c8338e5d4da26eed80c3bdf6f8bf44e1f6c7b data/farmersdelight/advancement/recipes/decorations/cutting_board.json +a68e92d72c547f38834cbb3c7e5fb75e9271e4a3 data/farmersdelight/advancement/recipes/decorations/cyan_canvas_sign.json +1eda43444a78b51d8e16990b6d0dcb5b011a67f0 data/farmersdelight/advancement/recipes/decorations/cyan_hanging_canvas_sign.json +549e8e07c6578912659aadba56bddac24bfe9969 data/farmersdelight/advancement/recipes/decorations/dark_oak_cabinet.json +6662d1186402eaf06f9211cf5e7256191d35d8e0 data/farmersdelight/advancement/recipes/decorations/full_tatami_mat.json +59a262180c7928d99ce1684d4eaff23d530d7cd1 data/farmersdelight/advancement/recipes/decorations/full_tatami_mat_from_halves.json +8fc1e5a959f494cb7969db8ccd95c604fae29b7f data/farmersdelight/advancement/recipes/decorations/gray_canvas_sign.json +293223b48f3ebae29cea08c18bc316fc85939f17 data/farmersdelight/advancement/recipes/decorations/gray_hanging_canvas_sign.json +ba41cf8db2b8157bef290c597d5521547916b4dd data/farmersdelight/advancement/recipes/decorations/green_canvas_sign.json +f682507f753b36a131654ae8247a5d7e1a45371b data/farmersdelight/advancement/recipes/decorations/green_hanging_canvas_sign.json +2f8c098882cf75fd385f84f2ec93c08b5603da19 data/farmersdelight/advancement/recipes/decorations/half_tatami_mat.json +cf418077284afc5e11affff0bd6e1d074afacac3 data/farmersdelight/advancement/recipes/decorations/hanging_canvas_sign.json +661863d9a33277f8c6228d56cef7973a366ba55e data/farmersdelight/advancement/recipes/decorations/jungle_cabinet.json +8073bf04ba2e45a8d6983b48f6fba36f5f03ef1c data/farmersdelight/advancement/recipes/decorations/light_blue_canvas_sign.json +ea157a4775596b0caebc3fc12ffc64e86ce0b601 data/farmersdelight/advancement/recipes/decorations/light_blue_hanging_canvas_sign.json +2fd234cfaa5e33587dbad22d163de4695176ea19 data/farmersdelight/advancement/recipes/decorations/light_gray_canvas_sign.json +e4e00eec951ce8368d39d9b25385b37fbc2357df data/farmersdelight/advancement/recipes/decorations/light_gray_hanging_canvas_sign.json +f147cb6dffe88adeacdfff5ed6e3d5fe585be150 data/farmersdelight/advancement/recipes/decorations/lime_canvas_sign.json +e25ef0b5e7f908b42aa0fc53930eb516590d312e data/farmersdelight/advancement/recipes/decorations/lime_hanging_canvas_sign.json +9448cf2fac51391e9c9b7d8c94040574a2747883 data/farmersdelight/advancement/recipes/decorations/magenta_canvas_sign.json +f8778345e44600896f00b0ea332436d8b3ba1a55 data/farmersdelight/advancement/recipes/decorations/magenta_hanging_canvas_sign.json +18336b100f9c85b64265ca692ac492d522abd1b1 data/farmersdelight/advancement/recipes/decorations/mangrove_cabinet.json +df5b1203ab60c5270d19070d269d207dcc01bd72 data/farmersdelight/advancement/recipes/decorations/oak_cabinet.json +0ba7bbc992aa9dae8f7afe3555dd4be823d0814c data/farmersdelight/advancement/recipes/decorations/orange_canvas_sign.json +f47adecfbb40830942a31df89097cf7d874bff1d data/farmersdelight/advancement/recipes/decorations/orange_hanging_canvas_sign.json +1225a578cce9157b27824f883a03f6c492a5a7cf data/farmersdelight/advancement/recipes/decorations/painting_from_canvas.json +85418deec78c56be55ac5b400f011b6a7998f0e4 data/farmersdelight/advancement/recipes/decorations/pink_canvas_sign.json +34df70b52254ae914763d0ede3028cfa5d944817 data/farmersdelight/advancement/recipes/decorations/pink_hanging_canvas_sign.json +0974908175de1a2b5691bd7885937c4bd5ac87b5 data/farmersdelight/advancement/recipes/decorations/purple_canvas_sign.json +90d572bbdf40d4d77c06061d1bdf4b85185a3350 data/farmersdelight/advancement/recipes/decorations/purple_hanging_canvas_sign.json +55bce3c922116578c2a1f83d8a61322d39992e13 data/farmersdelight/advancement/recipes/decorations/red_canvas_sign.json +43215d368d2d2086daf0a7279acf79e495cbd83a data/farmersdelight/advancement/recipes/decorations/red_hanging_canvas_sign.json +68df79301dfb98a2161398b5b0948127de9071cc data/farmersdelight/advancement/recipes/decorations/rope.json +332b1fd5bbdb034b1076dd275adfea0261a589ec data/farmersdelight/advancement/recipes/decorations/rope_fence.json +804b08da28a5c31600ebbf4e8d120d3c7c412511 data/farmersdelight/advancement/recipes/decorations/rope_fence_gate.json +c9c084c3fc159b54d79febafcd9bb07d2d58a465 data/farmersdelight/advancement/recipes/decorations/rope_from_safety_net.json +a19a044983b42b922e32410529b122a32dcf4d80 data/farmersdelight/advancement/recipes/decorations/safety_net.json +381a4bd172bec90d0725d70f1f8f5ed5b2f35c02 data/farmersdelight/advancement/recipes/decorations/scaffolding_from_canvas.json +ea4b584f884878a6c239c32951e1f9cd33a92781 data/farmersdelight/advancement/recipes/decorations/skillet.json +c488f4fd0de5188fe00b5f01ec748b8a00510536 data/farmersdelight/advancement/recipes/decorations/spruce_cabinet.json +0f21ecadf31e55a26fb9ce19077d701ab5fb4f97 data/farmersdelight/advancement/recipes/decorations/stove.json +07d07445ee9db9c8480c4fdc2ff3af649975fb87 data/farmersdelight/advancement/recipes/decorations/warped_cabinet.json +0167cd90139ec274f9efdb4635606b9cb1ba0f91 data/farmersdelight/advancement/recipes/decorations/white_canvas_sign.json +9f84cd80941b7a833cad165778044bef37b5763c data/farmersdelight/advancement/recipes/decorations/white_hanging_canvas_sign.json +47c9e391e70ec757609d901773a11591c9c616f4 data/farmersdelight/advancement/recipes/decorations/wooden_basket.json +59fc36948b8a0348b11a39e35a3791231a002640 data/farmersdelight/advancement/recipes/decorations/yellow_canvas_sign.json +63694277e2f6a954ea9a9ca8849d486626f1895a data/farmersdelight/advancement/recipes/decorations/yellow_hanging_canvas_sign.json +5a265e3ddb3244a3457bcdbb547565df54390cbf data/farmersdelight/advancement/recipes/food/apple_pie.json +8a5032d436ce7a0b64d2e1ad3ea3ad74efec8765 data/farmersdelight/advancement/recipes/food/apple_pie_from_slices.json +c471d51075d64c4ab2f6d529baf4153b8a91c4dc data/farmersdelight/advancement/recipes/food/bacon_and_eggs.json +cae52c493ddd224e8965180d8ee0b599306a1f6b data/farmersdelight/advancement/recipes/food/bacon_sandwich.json +c08a6db96e1ff8b3444406252239ec66f0054d62 data/farmersdelight/advancement/recipes/food/barbecue_stick.json +875bbeee720e49df64811d4babdeae505c2ae621 data/farmersdelight/advancement/recipes/food/beef_patty.json +44f9528bb1881704324ab2b5e8d17ec62190489d data/farmersdelight/advancement/recipes/food/beef_patty_from_campfire_cooking.json +4ad642209215387f4c28a7eb6445dd66e033a047 data/farmersdelight/advancement/recipes/food/beef_patty_from_smoking.json +8a559baf14cf733a0bf69241699d496f046c0178 data/farmersdelight/advancement/recipes/food/beetroot_from_crate.json +08fc73298c765528aef149deeba420f3cf7ded8e data/farmersdelight/advancement/recipes/food/bread_from_smelting.json +c00dbbee34ca065ed8167d852ba50b1eab0f0417 data/farmersdelight/advancement/recipes/food/bread_from_smoking.json +6c200bae3a800def73099f3905623c9663814535 data/farmersdelight/advancement/recipes/food/cabbage.json +b05a6deffd5c8140c19bc66c4dd666dbf02a3ce9 data/farmersdelight/advancement/recipes/food/cabbage_from_leaves.json +69ebe738d3ba5a1cfe49e20043bdfec2774e3d18 data/farmersdelight/advancement/recipes/food/cake_from_milk_bottle.json +596a9b4cdf61226845804f63d72ae23388066bf2 data/farmersdelight/advancement/recipes/food/cake_from_slices.json +72be029267a970bf3e94af72f9cc0e0ec8d86995 data/farmersdelight/advancement/recipes/food/carrot_from_crate.json +04140096a446fbad85c443e776317b4776d9c558 data/farmersdelight/advancement/recipes/food/chicken_sandwich.json +636a413c06ff3b9c4ddbd45cb0c12fc20191c803 data/farmersdelight/advancement/recipes/food/chocolate_pie.json +b3ef98e3cb27ad8aa932ca7fea95b8eebd876758 data/farmersdelight/advancement/recipes/food/chocolate_pie_from_slices.json +ad6bfea735b42e434044a66a8357ca7b46dd8c6b data/farmersdelight/advancement/recipes/food/cod_roll.json +b2291d9df1e6fca52c37d6b2c2fc14edff125641 data/farmersdelight/advancement/recipes/food/cooked_bacon.json +241123e8b73f02245bb9342a95a5bf208cd2af1c data/farmersdelight/advancement/recipes/food/cooked_bacon_from_campfire_cooking.json +f2a87f6e1b496252a9e3a52817282d8a39aba6ab data/farmersdelight/advancement/recipes/food/cooked_bacon_from_smoking.json +af36d83bae54307baee95e53f96e18c1fd33202b data/farmersdelight/advancement/recipes/food/cooked_chicken_cuts.json +301e7fc7799bc772eae85edc1680e02239e5368c data/farmersdelight/advancement/recipes/food/cooked_chicken_cuts_from_campfire_cooking.json +d1837d116ad1d7776268ca90ced20f762f4163dc data/farmersdelight/advancement/recipes/food/cooked_chicken_cuts_from_smoking.json +e0400d94a387fe7ee6388face64e0472e36294ee data/farmersdelight/advancement/recipes/food/cooked_cod_slice.json +5b305a4694fc439d3d0805eaabf1e7b309465ed0 data/farmersdelight/advancement/recipes/food/cooked_cod_slice_from_campfire_cooking.json +4104144c02f694fab96ea5d91d0b290821db8392 data/farmersdelight/advancement/recipes/food/cooked_cod_slice_from_smoking.json +f9a47519d0aab302bb2d0ff85978f61a4274bd91 data/farmersdelight/advancement/recipes/food/cooked_mutton_chops.json +19324dd9534dcb894019046755389d6cbf89a86a data/farmersdelight/advancement/recipes/food/cooked_mutton_chops_from_campfire_cooking.json +b1b97614d4ad8644d0fe3caaece546dc262872e8 data/farmersdelight/advancement/recipes/food/cooked_mutton_chops_from_smoking.json +48f52efa8096577d7fdf5148246b46534d060fe5 data/farmersdelight/advancement/recipes/food/cooked_salmon_slice.json +8d775a332d0c9924f89f2464339dc970fbc73e59 data/farmersdelight/advancement/recipes/food/cooked_salmon_slice_from_campfire_cooking.json +69c46196cf011601b2ebeedb09d7e33af66ea409 data/farmersdelight/advancement/recipes/food/cooked_salmon_slice_from_smoking.json +321e070c09ee746771bb17c8bc3858c897425160 data/farmersdelight/advancement/recipes/food/egg_sandwich.json +823115c9a277cc780eef2a9df747c333f31f668c data/farmersdelight/advancement/recipes/food/fried_egg.json +4296ac6da82fe1feac9f98b1e6e1a741eb1f4063 data/farmersdelight/advancement/recipes/food/fried_egg_from_campfire_cooking.json +875e120aacc58d18561fb7782c4f93c9ce8ad008 data/farmersdelight/advancement/recipes/food/fried_egg_from_smoking.json +a602c7bb5790b26c52d90cfcb13ed34e889aabb3 data/farmersdelight/advancement/recipes/food/fruit_salad.json +7120925a625adbfeab2dd40e9dd36f72597bd297 data/farmersdelight/advancement/recipes/food/gleaming_salad_block.json +0d33ea9907c1cc4a379f68260b3f1c684c5e8440 data/farmersdelight/advancement/recipes/food/grilled_salmon.json +d2ad30114f0a14a6cd6460766e9694e3466db644 data/farmersdelight/advancement/recipes/food/hamburger.json +a8c772bea4f4162d39ae68500745844a3f2de57c data/farmersdelight/advancement/recipes/food/honey_cookie.json +c5b0c86e1d4d71132d8ca25fe5f64e64e95a1425 data/farmersdelight/advancement/recipes/food/honey_glazed_ham_block.json +190ddc5cf045f6cc8c79837ea17960c399c75c85 data/farmersdelight/advancement/recipes/food/horse_feed.json +fd0dc77a4a3765d7a486e242900b001859cdae63 data/farmersdelight/advancement/recipes/food/kelp_roll.json +2c4a27360a025bd5199664709281f5ab98ef9d1b data/farmersdelight/advancement/recipes/food/melon_juice.json +259a63e372ae23def384c436fc3d580fb626f94a data/farmersdelight/advancement/recipes/food/melon_popsicle.json +7ad611eb908085e1a8198bdaef4518e2850c51b1 data/farmersdelight/advancement/recipes/food/milk_bottle.json +5e2df9fbf7dedcc6a0339b641db2e3ba797d99b9 data/farmersdelight/advancement/recipes/food/mixed_salad.json +e0711b48464db5347a1768216b98f84051a8e37e data/farmersdelight/advancement/recipes/food/mutton_wrap.json +de71493911654fff980031b56c8de0fa0c02347a data/farmersdelight/advancement/recipes/food/nether_salad.json +97c8198131854664a80018335a35406eb89ebe24 data/farmersdelight/advancement/recipes/food/onion.json +f0dc9acb0997709db8c6bb79e735a41013f98129 data/farmersdelight/advancement/recipes/food/pie_crust.json +a26fee3cf13248603636cece45e91f23520a4883 data/farmersdelight/advancement/recipes/food/potato_from_crate.json +6461884710d8d408592bb2aa114efa02c2488547 data/farmersdelight/advancement/recipes/food/pumpkin_pie_from_pie_crust.json +d3213ea03aab35de2f719deb4d305ea019fc9f6f data/farmersdelight/advancement/recipes/food/pumpkin_pie_from_slices.json +94695432131bfc4e80da7c029131d2e175f917b1 data/farmersdelight/advancement/recipes/food/rice.json +8e5905f8e94ce27336fe8b10f227be2e9fc99057 data/farmersdelight/advancement/recipes/food/rice_from_bag.json +8fc7d2b295db25d74e077511bce38e21871158df data/farmersdelight/advancement/recipes/food/rice_panicle.json +5cf3dc3dc0c4658d9120b54956ba8561f8a94f63 data/farmersdelight/advancement/recipes/food/rice_roll_medley_block.json +341b0a6d3519bd93466a4dc939638e0b22d5fd8f data/farmersdelight/advancement/recipes/food/roasted_mutton_chops.json +af51d195bc392eab4a79afbd3885f549188186ab data/farmersdelight/advancement/recipes/food/roast_chicken_block.json +a420ac38c51f84f3756d53ce49c97c815438d2cd data/farmersdelight/advancement/recipes/food/salmon_roll.json +00a9b862e86f21f1dee6352faa6e041d03ca3292 data/farmersdelight/advancement/recipes/food/shepherds_pie_block.json +a1f5a52f1b93352f47ca10438d87aa3df0384bfb data/farmersdelight/advancement/recipes/food/smoked_ham.json +da0bb52279d7894a4ddd75b53747c18f2538070c data/farmersdelight/advancement/recipes/food/steak_and_potatoes.json +6763e5fcf59d3e4748037dcbcd47e9cd25042857 data/farmersdelight/advancement/recipes/food/stuffed_potato.json +a4f4f404459a08c4a534d535345edfd5fda52e13 data/farmersdelight/advancement/recipes/food/sweet_berry_cheesecake.json +584666a6c45d202b58ac1e99ea2c3b1feed56b79 data/farmersdelight/advancement/recipes/food/sweet_berry_cheesecake_from_slices.json +fbdd1b2248d41c4b2e13266d07026e30e594949e data/farmersdelight/advancement/recipes/food/sweet_berry_cookie.json +70304b10b2fe6b3d80f31abd4a959dbc40ebf5db data/farmersdelight/advancement/recipes/food/tomato.json +832330ac62e822b146f9cd632e447d778819cfff data/farmersdelight/advancement/recipes/food/wheat_dough_from_egg.json +da92ade5c860504c22486866f4137208575859ba data/farmersdelight/advancement/recipes/misc/book_from_canvas.json +63715476dc69bb487764316cd82344ff2ce5636e data/farmersdelight/advancement/recipes/misc/canvas.json +69e2fcec5067be20dd8bb0e361cb086a539b6b9e data/farmersdelight/advancement/recipes/misc/canvas_from_canvas_rug.json +8d624a51bbc0646f5d111fc44b00847901eec7f6 data/farmersdelight/advancement/recipes/misc/gold_nugget_from_blasting_knife.json +80ecea22649959f3ace798c5e8d58debaec8b2e8 data/farmersdelight/advancement/recipes/misc/gold_nugget_from_smelting_knife.json +3632d90abb2861af5a24063587d455a8ea72125e data/farmersdelight/advancement/recipes/misc/iron_nugget_from_blasting_knife.json +c1975e769fff57f2d6bdcc9df2aa4a984c128449 data/farmersdelight/advancement/recipes/misc/iron_nugget_from_smelting_knife.json +8946a73f6f66812ea617bfc7cddb23c5422b7893 data/farmersdelight/advancement/recipes/misc/milk_bucket_from_bottles.json +6cde9810fa94c422efecbe8386a250d2b64b2b38 data/farmersdelight/advancement/recipes/misc/paper_from_tree_bark.json +f5bc43c7086bb916c6384f1ea773128231a39c49 data/farmersdelight/advancement/recipes/misc/pumpkin_seeds_from_slice.json +0e0b9dadb7f18bfdfd7a39759983d32e3903b2fd data/farmersdelight/advancement/recipes/misc/straw.json +883e978b8ff413d6a786075bbd8a744b57f9acd0 data/farmersdelight/advancement/recipes/misc/tomato_seeds.json +58e97deaff98b23e57ac97d612f4ff388b03e721 data/farmersdelight/advancement/recipes/tools/lead_from_straw.json +4387b3e6bd6f9ff8d3ae66e966e738a5fde4337f data/farmersdelight/damage_type/stove_burn.json +48ad03e2df0feee96e57fceb54a43d1d4b006d58 data/farmersdelight/enchantment/backstabbing.json +9ab029c58682401cb065926a82617c5c7144051e data/farmersdelight/loot_modifiers/add_loot_abandoned_mineshaft.json +603c798eb41334c5ba1702cd903b1d43362c3269 data/farmersdelight/loot_modifiers/add_loot_bastion_hoglin_stable.json +fedc0cc08a6c34f0e7111dd57e473f0b8771faf7 data/farmersdelight/loot_modifiers/add_loot_bastion_treasure.json +b5fce3188cb0e7308f9d53f8d22b6bedf96633af data/farmersdelight/loot_modifiers/add_loot_end_city_treasure.json +5396225c9a68f121a95dc355ae72c69ff9bf287c data/farmersdelight/loot_modifiers/add_loot_pillager_outpost.json +2823ddb752f7d9d7de4f6cee79e703c196ef0f5b data/farmersdelight/loot_modifiers/add_loot_ruined_portal.json +a2f3b59ac3e4038af7a381867390c3fabbae9df3 data/farmersdelight/loot_modifiers/add_loot_shipwreck_supply.json +db51abb871693bbe8248fcceeea50c74dceb4510 data/farmersdelight/loot_modifiers/add_loot_simple_dungeon.json +8233402867895cbad607873ffe6209f2a9c6b35a data/farmersdelight/loot_modifiers/add_loot_village_butcher.json +25cf8c7e37436e499acdeee74b64200cc7d5d597 data/farmersdelight/loot_modifiers/add_loot_village_desert_house.json +05654d632bd371a820fdd99aa82a7b20d9fbf05e data/farmersdelight/loot_modifiers/add_loot_village_plains_house.json +159659c65b462e49853991f1c2dc60a9eb4cc976 data/farmersdelight/loot_modifiers/add_loot_village_savanna_house.json +685ac09c865716059cf25b24587a0fe0d9a740fb data/farmersdelight/loot_modifiers/add_loot_village_snowy_house.json +e49b80092c8847964ee40279e432112bad5f12ce data/farmersdelight/loot_modifiers/add_loot_village_taiga_house.json +9f9ec5c32c6a3671e872b13f8ae7c3af0d1556bf data/farmersdelight/loot_modifiers/add_onion_to_illagers.json +b9427871442a6be8a23c084c7e37d01b995e46fa data/farmersdelight/loot_modifiers/add_onion_to_zombies.json +27c929cec55955c1dcc74b551c0d1187b2197f2f data/farmersdelight/loot_modifiers/scavenging_feather.json +ad2409d20ffe207cb35ef2f15debce4f79d09189 data/farmersdelight/loot_modifiers/scavenging_ham_from_hoglin.json +fd9f2e8c0f18a996ab55ae899ac625b0fbb84e69 data/farmersdelight/loot_modifiers/scavenging_ham_from_pig.json +93b0c8a1e15450fb72e153c75c91655d3259879a data/farmersdelight/loot_modifiers/scavenging_leather.json +60e7536d5796f4c7dda870bcd385707725811884 data/farmersdelight/loot_modifiers/scavenging_pumpkin.json +f626bfd1e5af0544aa326dc2e13770498f982898 data/farmersdelight/loot_modifiers/scavenging_rabbit_hide.json +a496a1d5dee5f904dc2088fffb4112caaa420bb2 data/farmersdelight/loot_modifiers/scavenging_shulker_shell.json +0182c212abd4bd41a5cb4112a0a48375003d1e65 data/farmersdelight/loot_modifiers/scavenging_smoked_ham_from_hoglin.json +86bb08c4ad9bf3ecd42f3e1e61e5e9b5442a6f1e data/farmersdelight/loot_modifiers/scavenging_smoked_ham_from_pig.json +cb146c3027d7f66a1f0269fd7253fe48d36a2eae data/farmersdelight/loot_modifiers/scavenging_string.json +3fb687cb12f61dcdaba21eb2a63e9b9b874959e8 data/farmersdelight/loot_modifiers/slicing_apple_pie.json +839cbbcae121d9f1dce8a89bd5bea1876684c3f5 data/farmersdelight/loot_modifiers/slicing_cake.json +e36dda486e0224ba1832d2bac33de8492b533f82 data/farmersdelight/loot_modifiers/slicing_candle_cake.json +d07a23ff9b481bb23be85d17fb7154b336a63fc9 data/farmersdelight/loot_modifiers/slicing_chocolate_pie.json +1ac59353a13aab05601f6c031cceb0d5442f97dd data/farmersdelight/loot_modifiers/slicing_pumpkin_pie.json +4c5e7ea6cff6f357dc6addb0cdb53ccc9cb1f3bf data/farmersdelight/loot_modifiers/slicing_sweet_berry_cheesecake.json +349d667c94263037885cd81c9d1243ff1fc30f51 data/farmersdelight/loot_modifiers/straw_from_grass.json +b12c7ca47b5eff8623d2588c94b3ecd5010d9d1b data/farmersdelight/loot_modifiers/straw_from_mature_rice.json +3da4e0cc0e05eeeac06d03c37291b589a7174ae4 data/farmersdelight/loot_modifiers/straw_from_mature_wheat.json +7e8d74d6473f769ed0bc3eec538b8ccbdd1a1bda data/farmersdelight/loot_modifiers/straw_from_sandy_shrub.json +520183f2787d2a04bac28140f5f96e936bdb98ea data/farmersdelight/loot_modifiers/straw_from_tall_grass.json +cee3ddcf0129e742307f35926b2f1b713d0f5ea1 data/farmersdelight/loot_table/blocks/acacia_cabinet.json +23fb8611e8fde16b90b760500fb6d39c0042c092 data/farmersdelight/loot_table/blocks/apple_pie.json +9b2ab65cc0cff153f89f4ba4b59d2b807315767e data/farmersdelight/loot_table/blocks/bamboo_basket.json +e088b51239f2c7e718d8da6f7d31a18334556251 data/farmersdelight/loot_table/blocks/bamboo_cabinet.json +da434db268e536926559cbd2a6ef9f9de09fa673 data/farmersdelight/loot_table/blocks/beetroot_crate.json +9f1f6e8cca7e33273c484a1c8c0189088e7bb393 data/farmersdelight/loot_table/blocks/birch_cabinet.json +125f58c92dfe754760f9de87892744b65ab58144 data/farmersdelight/loot_table/blocks/black_canvas_sign.json +9f893647ce08d6e60574bab72e6126924cefd1e8 data/farmersdelight/loot_table/blocks/black_canvas_wall_sign.json +45fc89cfebf9966e7fc7f096a76ee7acf2cbeb46 data/farmersdelight/loot_table/blocks/black_hanging_canvas_sign.json +af3ded8f239253f3b1c271c76adcb1f7c0d84b30 data/farmersdelight/loot_table/blocks/black_wall_hanging_canvas_sign.json +60e56b2a833cec57f77b15765abf1912473922bf data/farmersdelight/loot_table/blocks/blue_canvas_sign.json +33b458e6933842db3b82c7e0b2eb7350fc88099a data/farmersdelight/loot_table/blocks/blue_canvas_wall_sign.json +f9eabbb7f589639600b06f7de82c16b1bfcc5500 data/farmersdelight/loot_table/blocks/blue_hanging_canvas_sign.json +e51ec139148384fd88cae426881c06051bc60337 data/farmersdelight/loot_table/blocks/blue_wall_hanging_canvas_sign.json +b1e7a56d66e290349c2cf4c225d9768788cb4a2a data/farmersdelight/loot_table/blocks/brown_canvas_sign.json +d2de73fad9cd84e0ee97fbff6130316f45dca230 data/farmersdelight/loot_table/blocks/brown_canvas_wall_sign.json +7f94b52e3e9ca3a365f333752ea5b22372d70a28 data/farmersdelight/loot_table/blocks/brown_hanging_canvas_sign.json +0d70b123b6c75e29ad59a7bad9d6efb6c25f45c9 data/farmersdelight/loot_table/blocks/brown_mushroom_colony.json +a14f86d5f394116c8b7f504b42b6b44b59ea9d4c data/farmersdelight/loot_table/blocks/brown_wall_hanging_canvas_sign.json +810b8a869e8485e0bbed4cb6053d1e10a1b926e8 data/farmersdelight/loot_table/blocks/budding_tomatoes.json +b8a2b6a9304806f1be910c1660cbf669dd45e434 data/farmersdelight/loot_table/blocks/cabbages.json +ef30aafe2e8e73ef42ddedc5793ab18ee034aceb data/farmersdelight/loot_table/blocks/cabbage_crate.json +b528bf71d8eff4d7ebbdf465d0ba09f0c0109df4 data/farmersdelight/loot_table/blocks/canvas_rug.json +45b9267d8fe04f46d2d742f5c9327907776220eb data/farmersdelight/loot_table/blocks/canvas_sign.json +d813f137b1a5d1eb951ef77fa91ee326e2e7b5b9 data/farmersdelight/loot_table/blocks/canvas_wall_sign.json +5e10190fc83f2ece9e8d48708b269e9fcc7a02bf data/farmersdelight/loot_table/blocks/carrot_crate.json +f35d8244edd7924b59ebdd9afede2393e1379c82 data/farmersdelight/loot_table/blocks/cherry_cabinet.json +6964c37344609eccdc841f5365bc31624a2983e2 data/farmersdelight/loot_table/blocks/chocolate_pie.json +4b475ec3b2d1b0d2c3c0bf55dfdbc59805922467 data/farmersdelight/loot_table/blocks/cooking_pot.json +2758a40cabd48877f05c1bf2c0a4ec6fd4b7da39 data/farmersdelight/loot_table/blocks/crimson_cabinet.json +8dcd4c77dc83f4b5f09a61c4c91252408155f5af data/farmersdelight/loot_table/blocks/cutting_board.json +5ceb276a44167095c01d7722d15aaec47527678b data/farmersdelight/loot_table/blocks/cyan_canvas_sign.json +66f5010ff46c65fdd725a72c0ccc1bd79d1c6c1f data/farmersdelight/loot_table/blocks/cyan_canvas_wall_sign.json +a65e59e4721635a0e414ce4a20dc2d533d713ee5 data/farmersdelight/loot_table/blocks/cyan_hanging_canvas_sign.json +1f34c1e3df780b4ad6ae5140507083e5fcc554e5 data/farmersdelight/loot_table/blocks/cyan_wall_hanging_canvas_sign.json +b58c6181526bafd737cc98bf891dfdbda7685762 data/farmersdelight/loot_table/blocks/dark_oak_cabinet.json +88a96703cb60bdcd9d3d23c8afe1d57621609160 data/farmersdelight/loot_table/blocks/full_tatami_mat.json +d529b5f3a368595999a9e3df50285639d4223e7b data/farmersdelight/loot_table/blocks/gleaming_salad_block.json +4d845038b429cdeb02c2bd3e34d1eafc5ddbcc08 data/farmersdelight/loot_table/blocks/gray_canvas_sign.json +9b25afec9636cce47cd11c0dc79813afd77c6c5b data/farmersdelight/loot_table/blocks/gray_canvas_wall_sign.json +efb1d02be56af5931db784b1a8f59e74e1e9c530 data/farmersdelight/loot_table/blocks/gray_hanging_canvas_sign.json +2fb8ab3e785ab4525f308b3a82e3cc2a1665c7d4 data/farmersdelight/loot_table/blocks/gray_wall_hanging_canvas_sign.json +bad04fd6f62ecfe5555dd0d4320c3e8bfe414262 data/farmersdelight/loot_table/blocks/green_canvas_sign.json +8dcd9ab7ef3df45782367df0869c92934c70d835 data/farmersdelight/loot_table/blocks/green_canvas_wall_sign.json +4105a63be53f1a06dbc21fa1a7d48ceca1b2f4c0 data/farmersdelight/loot_table/blocks/green_hanging_canvas_sign.json +9c8d57bd26dcf46de4a73d383bce3a0f1a020db2 data/farmersdelight/loot_table/blocks/green_wall_hanging_canvas_sign.json +87360ee6a0b76f9b31c6e33993e4c09d1b994ab7 data/farmersdelight/loot_table/blocks/half_tatami_mat.json +5d447efa169496f63fe5cdbba1edb608722e1154 data/farmersdelight/loot_table/blocks/hanging_canvas_sign.json +5b77127e8c7dc8168ac520afe87a56c25103d59d data/farmersdelight/loot_table/blocks/honey_glazed_ham_block.json +014a385b59d3ea857a941c42f7cf3cd4233cee13 data/farmersdelight/loot_table/blocks/jungle_cabinet.json +61d6fc49ad6388ba31c7a580b59ba41124df73ac data/farmersdelight/loot_table/blocks/light_blue_canvas_sign.json +ab059aa9abe93cec786b220de1b5d07d2aacffc2 data/farmersdelight/loot_table/blocks/light_blue_canvas_wall_sign.json +d82a0d0b3eabbc7eabe9d73bf28c2c97f0774b52 data/farmersdelight/loot_table/blocks/light_blue_hanging_canvas_sign.json +84cd9e4615c0fee0222e30146a0c9848bf8def5f data/farmersdelight/loot_table/blocks/light_blue_wall_hanging_canvas_sign.json +884c8df9a08b83831edfa423fc1f0cc88d21485d data/farmersdelight/loot_table/blocks/light_gray_canvas_sign.json +18ed97e958881881b1a88776b230d87538f42ea9 data/farmersdelight/loot_table/blocks/light_gray_canvas_wall_sign.json +268ead03375ab5fd1364d8162085588d6ac18977 data/farmersdelight/loot_table/blocks/light_gray_hanging_canvas_sign.json +88ebfb09856e27087a369a9fa72454351c60d0ac data/farmersdelight/loot_table/blocks/light_gray_wall_hanging_canvas_sign.json +6e8590e2e70370fa0236307e3f118263fcc61b37 data/farmersdelight/loot_table/blocks/lime_canvas_sign.json +69550f081e6e7ba7a5ae561c59685f73d2710088 data/farmersdelight/loot_table/blocks/lime_canvas_wall_sign.json +917b487bad6b3156f9798558a31cb5e893f13acf data/farmersdelight/loot_table/blocks/lime_hanging_canvas_sign.json +2718feb40227ca519d7e3882b7bc8ab88173fe48 data/farmersdelight/loot_table/blocks/lime_wall_hanging_canvas_sign.json +258b2410199336f6ea621d8ba385aa694077941b data/farmersdelight/loot_table/blocks/magenta_canvas_sign.json +1b3d08b778ee48d53e621f848eb948b1d521ea0e data/farmersdelight/loot_table/blocks/magenta_canvas_wall_sign.json +92912842a5b383afe9767014fcabd67804b48703 data/farmersdelight/loot_table/blocks/magenta_hanging_canvas_sign.json +dca61d3def9d63977aaced03042e888f7471b012 data/farmersdelight/loot_table/blocks/magenta_wall_hanging_canvas_sign.json +b38c2b716f6f66a82453d1f58d036f6f5c43f6c7 data/farmersdelight/loot_table/blocks/mangrove_cabinet.json +4955866095389f960ec3ede01b768b2ae6542bb7 data/farmersdelight/loot_table/blocks/oak_cabinet.json +3353404c9738428313450cce621d9689ca12b32e data/farmersdelight/loot_table/blocks/onions.json +7cf62b3338d016d91651d1cf29463532cf0e93dd data/farmersdelight/loot_table/blocks/onion_crate.json +126ff540f386733d5c9f8abd4019ede05444f5f1 data/farmersdelight/loot_table/blocks/orange_canvas_sign.json +e1e766f98ff51c5d684a5917984f60340c65c045 data/farmersdelight/loot_table/blocks/orange_canvas_wall_sign.json +8c915f1d051cbeb95df494d2e22e74366b6d470f data/farmersdelight/loot_table/blocks/orange_hanging_canvas_sign.json +39db7367bb7aed15d92570c2e451c29b94581711 data/farmersdelight/loot_table/blocks/orange_wall_hanging_canvas_sign.json +49ddd1bd1007fba1abe10a6a5d07b8323267c2a8 data/farmersdelight/loot_table/blocks/organic_compost.json +014d4efe43b8e05411515efbe0cb2afdb514ac44 data/farmersdelight/loot_table/blocks/pink_canvas_sign.json +0e707ab77f40d5c38b50bfbfde047f66443d4fd7 data/farmersdelight/loot_table/blocks/pink_canvas_wall_sign.json +29289334a9e02966378640bf8962ab3e94800ba2 data/farmersdelight/loot_table/blocks/pink_hanging_canvas_sign.json +4e79cce22ee4800bf875464605c4aa855b270898 data/farmersdelight/loot_table/blocks/pink_wall_hanging_canvas_sign.json +5b6fbf70eb057a3225bf33109249208fdf76c201 data/farmersdelight/loot_table/blocks/potato_crate.json +2526418b29b77eea13b7020798db9ec10e10d68a data/farmersdelight/loot_table/blocks/pumpkin_pie.json +15735bd85b408fb2d87ac9daef3a8cd922881082 data/farmersdelight/loot_table/blocks/purple_canvas_sign.json +da7b4d10f8d5d65e50f50518b3a34caa186fe706 data/farmersdelight/loot_table/blocks/purple_canvas_wall_sign.json +c84027d9499abaf0147d2b6d4b926ba0bc528495 data/farmersdelight/loot_table/blocks/purple_hanging_canvas_sign.json +0a780b1dfc2fe261569ba4457348b30d2f5ff942 data/farmersdelight/loot_table/blocks/purple_wall_hanging_canvas_sign.json +28d82b66e8d0c86419ae321d5b4827748a5f0aab data/farmersdelight/loot_table/blocks/red_canvas_sign.json +c589570ffe0a4ef1b38b036a903e1a8e47325c00 data/farmersdelight/loot_table/blocks/red_canvas_wall_sign.json +28aab00e4d4dba456b286e9462a1da65ce69303c data/farmersdelight/loot_table/blocks/red_hanging_canvas_sign.json +f17435ee9686683f5c8794978e40550e92068f2b data/farmersdelight/loot_table/blocks/red_mushroom_colony.json +29d3c5076c327c02eb40377c3594f93264ca3d95 data/farmersdelight/loot_table/blocks/red_wall_hanging_canvas_sign.json +4b28affd1eb40a3648fa76211963d7a742ddef9a data/farmersdelight/loot_table/blocks/rice.json +5631a97f846bda9766d1357746ef530593aeea31 data/farmersdelight/loot_table/blocks/rice_bag.json +601eb487c5b3b053e076f067bc861f464961bd9e data/farmersdelight/loot_table/blocks/rice_bale.json +9e3d24d3afa45869f9946a3823cb4d97a2e1b8d9 data/farmersdelight/loot_table/blocks/rice_panicles.json +40117d39c42ac15305859c87d5063fa779274510 data/farmersdelight/loot_table/blocks/rice_roll_medley_block.json +fc7e3156f648c2134f235208d9c2b22964c735e7 data/farmersdelight/loot_table/blocks/rich_soil.json +c1d03a43ac609d07995c2aa0e9b2abd73cefe3ae data/farmersdelight/loot_table/blocks/rich_soil_farmland.json +62f85673d10bc300044b5f909aec017b0e33fefd data/farmersdelight/loot_table/blocks/roast_chicken_block.json +37528dbafe10dcbb0b52f7858cd67b84fa27587c data/farmersdelight/loot_table/blocks/rope.json +c7285841a32a8c9070c0162a5cbd7d76c184d0dd data/farmersdelight/loot_table/blocks/rope_fence.json +63e6ee8c9e04192f7bb624f30261cfac5963213e data/farmersdelight/loot_table/blocks/rope_fence_gate.json +4022aaf7e682d2846d57833eaf3a5d201a96a874 data/farmersdelight/loot_table/blocks/safety_net.json +f6c36b1d75344518ef1d17729643ee550fb8f846 data/farmersdelight/loot_table/blocks/sandy_shrub.json +8d990d5783094b750d98b649076d9a040df5b506 data/farmersdelight/loot_table/blocks/shepherds_pie_block.json +e3e7a97b507231eaf6bab7914659bd95b3321e56 data/farmersdelight/loot_table/blocks/skillet.json +edbb17b80cccc1af3d68d6964a9c701952cdb31f data/farmersdelight/loot_table/blocks/spruce_cabinet.json +4f43c96dcffa0a206cb08178c5d5a1d579749564 data/farmersdelight/loot_table/blocks/stove.json +4457c2b15dac4b716e0d03c249728b65d12b0317 data/farmersdelight/loot_table/blocks/straw_bale.json +f3cf5a0368e06ba5d28a6614cc1494d3c46e4597 data/farmersdelight/loot_table/blocks/stuffed_pumpkin_block.json +4c479a56ddc822da575cb1a3e0b07d95e9e0292d data/farmersdelight/loot_table/blocks/sweet_berry_cheesecake.json +c0fb174db26a5834f442e2e0be23f2422355866e data/farmersdelight/loot_table/blocks/tatami.json +1158a0fbcb88d3f331bf060545035bd47829db03 data/farmersdelight/loot_table/blocks/tomatoes.json +080f254286c3eb1b6330adbaef4bb5c9b1671364 data/farmersdelight/loot_table/blocks/tomatoes_on_rope.json +8b1f49427d5719b897c3dc8aa2a7984af67a6bcd data/farmersdelight/loot_table/blocks/tomato_crate.json +81c81517724a6b1d764888b8a5dc172cf265097e data/farmersdelight/loot_table/blocks/wall_hanging_canvas_sign.json +af22b37001dc28484c2bf8b3bf3b4d93afd6e556 data/farmersdelight/loot_table/blocks/warped_cabinet.json +31b05783f24e3a87674ee216c702178cbaf2f690 data/farmersdelight/loot_table/blocks/white_canvas_sign.json +7aca39d742954e39176b1234ad05501900bb5189 data/farmersdelight/loot_table/blocks/white_canvas_wall_sign.json +b8e545f14f0fd94d7a67f4afe8111c686b019cd2 data/farmersdelight/loot_table/blocks/white_hanging_canvas_sign.json +7bcac9a2c99daeab9fb7097ebfbe4c8082d5a5ce data/farmersdelight/loot_table/blocks/white_wall_hanging_canvas_sign.json +0a5225a15d03a6a378f4986c5f86d86454178d9e data/farmersdelight/loot_table/blocks/wild_beetroots.json +4a086ee3627b317bccc2edd94ca1db9bae909c5c data/farmersdelight/loot_table/blocks/wild_cabbages.json +592d19d0f48597aee6fd1453400f5f7c35072f68 data/farmersdelight/loot_table/blocks/wild_carrots.json +3057fb4b1fe3a3f5aae7cb6c91b38799c70b3193 data/farmersdelight/loot_table/blocks/wild_onions.json +55803bdd62414cf79aec1e1ea610c9bdb0fe3a71 data/farmersdelight/loot_table/blocks/wild_potatoes.json +c05a484ded633fcaff52a501fd11edd1c2501afb data/farmersdelight/loot_table/blocks/wild_rice.json +76500253f3d09cb84f70c7abb3823c571ba4376b data/farmersdelight/loot_table/blocks/wild_tomatoes.json +d72eac3f5ba31720db045090ac07b30acff680ac data/farmersdelight/loot_table/blocks/wooden_basket.json +95ea36155e6f8a089b4ca93783af1d5cd27e44d4 data/farmersdelight/loot_table/blocks/yellow_canvas_sign.json +8e3682439ebb8e9566f8f2d11153f3f37e075297 data/farmersdelight/loot_table/blocks/yellow_canvas_wall_sign.json +94feb431ac6b7039d5e76313342a50982b6bac54 data/farmersdelight/loot_table/blocks/yellow_hanging_canvas_sign.json +eb82a04ad9261f8539bbe64664ea0d5ed77601b6 data/farmersdelight/loot_table/blocks/yellow_wall_hanging_canvas_sign.json +c12b54134f555683bafc7921023f0b2cb094556b data/farmersdelight/loot_table/chests/fd_abandoned_mineshaft.json +f5b943879a16ae3f0aa54e05459c88c36a823e69 data/farmersdelight/loot_table/chests/fd_bastion_hoglin_stable.json +7d7d28041cf6b74d2dfdfd8b060c2f8064453d31 data/farmersdelight/loot_table/chests/fd_bastion_treasure.json +86c2c402cb101a5cfa1bbb40cbcc28f50a7fc096 data/farmersdelight/loot_table/chests/fd_end_city_treasure.json +a41681fc6317d415c73308460b00bf1ee74cdac1 data/farmersdelight/loot_table/chests/fd_pillager_outpost.json +9a463d219c66279cea8bb5699bd1b1abf1349837 data/farmersdelight/loot_table/chests/fd_ruined_portal.json +716c3766c224a9d1f8a2d1c89eace5ec1278cec0 data/farmersdelight/loot_table/chests/fd_shipwreck_supply.json +479c156c0871cc032abc6d445cdfef30570ac217 data/farmersdelight/loot_table/chests/fd_simple_dungeon.json +0c2f94704035cae543f2094395ea1a30d59d85f8 data/farmersdelight/loot_table/chests/fd_village_butcher.json +e78306d0aa76cd36c177a27fcba152639812b0f9 data/farmersdelight/loot_table/chests/fd_village_desert_house.json +9e81179bfea80237132bd3176fee1d170d702129 data/farmersdelight/loot_table/chests/fd_village_plains_house.json +547718b5fe5bc812af31b48deb0ac40a0c583794 data/farmersdelight/loot_table/chests/fd_village_savanna_house.json +1b99a5c7d11db263abc60017b73a7ba118d7a960 data/farmersdelight/loot_table/chests/fd_village_snowy_house.json +872e6a86cf46ef050e50570678a6e252d93d437a data/farmersdelight/loot_table/chests/fd_village_taiga_house.json +4f45ee9ff396947b66b0ffabd4afb669d50ce439 data/farmersdelight/neoforge/biome_modifier/brown_mushroom_colony.json +dbd7f7f88134d531e5177e196169e51ff0a15ea4 data/farmersdelight/neoforge/biome_modifier/red_mushroom_colony.json +a6435d8e4d0dbac9b128fa3806c5d2f0b1a3e300 data/farmersdelight/neoforge/biome_modifier/wild_beetroots.json +cbe3cd5686ad84fdb80d9be27a1ec03d66e525c4 data/farmersdelight/neoforge/biome_modifier/wild_cabbages.json +ffcc0c7cc7da20b79b888b046a6df80fedbdd2d3 data/farmersdelight/neoforge/biome_modifier/wild_carrots.json +a4c3c2bb57a6578ab48e220d745aba03a57ec7c6 data/farmersdelight/neoforge/biome_modifier/wild_onions.json +3cf4cdbefb2c2c196975d28254ebd8356b6f93c7 data/farmersdelight/neoforge/biome_modifier/wild_potatoes.json +62e66e2b528b3f232b947e756e512630b271ca88 data/farmersdelight/neoforge/biome_modifier/wild_rice.json +1f0b89560771f1f02ac416106cd55ea0631e48ab data/farmersdelight/neoforge/biome_modifier/wild_tomatoes.json +4c969b1ad6713306c0a71623061a6f54203c0344 data/farmersdelight/recipe/acacia_cabinet.json +5d67cc537e1e1e97a8d5ebee794043106df8b8a8 data/farmersdelight/recipe/apple_pie.json +99483d32c4b2bba112675179b139974b86e6fbe8 data/farmersdelight/recipe/apple_pie_from_slices.json +011b75710537886e30a575532b0220ebb3545bcb data/farmersdelight/recipe/bacon_and_eggs.json +a566cd694963f53aa9d23c78c21f463571dbae90 data/farmersdelight/recipe/bacon_sandwich.json +8c50d23425bdc01245d943375fdde12b00b96fde data/farmersdelight/recipe/bamboo_basket.json +2279bf357393db4314e39fcc5fe41c2344885b39 data/farmersdelight/recipe/bamboo_cabinet.json +11350ea45957f335699bd564f04e5d43ade5d26e data/farmersdelight/recipe/barbecue_stick.json +dfa340e30ac2b999f065c34c699e94b2a25540e0 data/farmersdelight/recipe/beef_patty.json +8b869760ff4f376e0d3ded7071eab66412d3930e data/farmersdelight/recipe/beef_patty_from_campfire_cooking.json +e81a218dfbaee2356b1a8508bc79cc16ed812c26 data/farmersdelight/recipe/beef_patty_from_smoking.json +0d43e61b646b84966664648d3a40efdc9760e038 data/farmersdelight/recipe/beetroot_crate.json +5d68fd538e2d63e87434f8609577808ace14c51a data/farmersdelight/recipe/beetroot_from_crate.json +f94a48bd770a0157831cef24fe68aefd1a73259d data/farmersdelight/recipe/birch_cabinet.json +0fd7d680a5e5118dff6593064a766bfa3c01bf3d data/farmersdelight/recipe/black_canvas_sign.json +7fe5714fb9aba4a59ed159f069511cdb17955f3d data/farmersdelight/recipe/black_hanging_canvas_sign.json +acf93c94451be72bc0622a1c85ece068d0dd377a data/farmersdelight/recipe/blue_canvas_sign.json +294dd4741f111e884abe4aac623c7f077ecf5c86 data/farmersdelight/recipe/blue_hanging_canvas_sign.json +d7bb573063a7dd4df2f20e936165ed35cd20a923 data/farmersdelight/recipe/book_from_canvas.json +bce93a7e7ccbe623ca2720f4da350b5bf45c7dfb data/farmersdelight/recipe/bread_from_smelting.json +58fb39c6c4b7df3dec7e1cf92b384e869afa3518 data/farmersdelight/recipe/bread_from_smoking.json +0a8dae236fb83d5b600adf0b634c9e543ea9b0a3 data/farmersdelight/recipe/brown_canvas_sign.json +078fa4d8c14ffe4ec8008a34d7eabb8f1517d316 data/farmersdelight/recipe/brown_hanging_canvas_sign.json +d46ae46381beda4f3896629eb9a7bfb7f1666f64 data/farmersdelight/recipe/cabbage.json +724e5e1759bbc1de19135da0dfa4f490c5360b88 data/farmersdelight/recipe/cabbage_crate.json +54bb6ec687db6d7ad103b350d42b7b5e05c0f748 data/farmersdelight/recipe/cabbage_from_leaves.json +e1a6457f022d1335076d53d756b4aac4c2d76306 data/farmersdelight/recipe/cake_from_milk_bottle.json +a6c9f63556b932a47d7255091af28b4ca523d324 data/farmersdelight/recipe/cake_from_slices.json +b0f2eb955771c9e2e143bd9c0ae28ff846d91336 data/farmersdelight/recipe/canvas.json +87a991fe1149e7a1e9a9af4a0b17659791e30109 data/farmersdelight/recipe/canvas_from_canvas_rug.json +c912ffd016a7e781359c7d9df89aa32e031be2f3 data/farmersdelight/recipe/canvas_rug.json +816e8c634a6b45a0ffff41aefa4d908d53b75f77 data/farmersdelight/recipe/canvas_sign.json +ab09277d4c6743b14ff57354fcb2d7bb1712db92 data/farmersdelight/recipe/carrot_crate.json +0bd881b2c72ab0f33736d6cf819fc43af2fd6755 data/farmersdelight/recipe/carrot_from_crate.json +1284156f2da4d95a733ba88ae4c0ded37b7607d3 data/farmersdelight/recipe/cherry_cabinet.json +a4ad1526e28fe94361ac4f7d061f162a1ea8ef9e data/farmersdelight/recipe/chicken_sandwich.json +db04bd2a844a78617473b85cc0d00ad999762699 data/farmersdelight/recipe/chocolate_pie.json +add64a903c3bc8db5555925c58e59a0916ead38b data/farmersdelight/recipe/chocolate_pie_from_slices.json +1deacc0b0f148ecda1977ec9ffb53964238237d6 data/farmersdelight/recipe/cod_roll.json +b5589442007b93919347c9b16782c4b94c6723e7 data/farmersdelight/recipe/cooked_bacon.json +b7557822b6a2e43a664d53082a397221a8e8d294 data/farmersdelight/recipe/cooked_bacon_from_campfire_cooking.json +c5374e66b068acec6700dedc35044aab811c8d97 data/farmersdelight/recipe/cooked_bacon_from_smoking.json +24213a50029db810bde96a6f094ee64db9b59598 data/farmersdelight/recipe/cooked_chicken_cuts.json +e5cf6d6b4db33e430a5a6de5f3f328ed9443a3e5 data/farmersdelight/recipe/cooked_chicken_cuts_from_campfire_cooking.json +028d273c71ac17792ba09f7d423856c0e4aad905 data/farmersdelight/recipe/cooked_chicken_cuts_from_smoking.json +13f73690f9349a5588f32ad8cf3731d6515ff360 data/farmersdelight/recipe/cooked_cod_slice.json +63f7fdcf7c5dce5fa7891a17a23c13f949c2fd48 data/farmersdelight/recipe/cooked_cod_slice_from_campfire_cooking.json +5f4e62ec6fbc22889a3896314ba90189022e6d49 data/farmersdelight/recipe/cooked_cod_slice_from_smoking.json +4f3f581e7942ab140a044ba71af5a28bcbdf6ac0 data/farmersdelight/recipe/cooked_mutton_chops.json +ee323261d7abc0f0f5728589d2d7ed8edae33cc1 data/farmersdelight/recipe/cooked_mutton_chops_from_campfire_cooking.json +ed32335299f4b0f05c8a5bd5f7966f5d3584be94 data/farmersdelight/recipe/cooked_mutton_chops_from_smoking.json +f56f3f7788f4bfa3f50fd85f832521e29ec2ff73 data/farmersdelight/recipe/cooked_salmon_slice.json +19505bc12fdc6e9ceb03a90eec5fb16be584910c data/farmersdelight/recipe/cooked_salmon_slice_from_campfire_cooking.json +fc6f1805c160b4e06efd9a90c41184c77bfbd530 data/farmersdelight/recipe/cooked_salmon_slice_from_smoking.json +7657c993b5c6dbc0c9ac71976fd1e5bda08a3b95 data/farmersdelight/recipe/cooking/apple_cider.json +8aca96a8c586d3e15a7145d7d88e3f44ec120b32 data/farmersdelight/recipe/cooking/baked_cod_stew.json +6fcfef078565ecc001c40afd05e425b42eef76e1 data/farmersdelight/recipe/cooking/beef_stew.json +f331abc0f1c8895bdaf8a0b6f18e637efee74613 data/farmersdelight/recipe/cooking/beetroot_soup.json +dae191c4adf0910fcecb055cbb0aeb91da046d9b data/farmersdelight/recipe/cooking/bone_broth.json +6e7225a8025c900edf23ec663c9464fc1487165d data/farmersdelight/recipe/cooking/cabbage_rolls.json +c0d2f51cf38da48a07fd31af6931564c37288d00 data/farmersdelight/recipe/cooking/chicken_soup.json +167f71d58648d6fd9deaf30a76b835c124a7541e data/farmersdelight/recipe/cooking/cooked_rice.json +13ce0f5f7ec17c4e1146758bdf93edf97e244c59 data/farmersdelight/recipe/cooking/dog_food.json +f8b2666dc98bc5b9636fe7564cb42bc877e2184d data/farmersdelight/recipe/cooking/dumplings.json +02c5760c180e482b1fe05dc12183de066f8b7d10 data/farmersdelight/recipe/cooking/fish_stew.json +493e5685eef4c3438df3c06a2e83b3d5ddcafea7 data/farmersdelight/recipe/cooking/fried_rice.json +77f9593f46db99e889194bf76c4f7b361c075e7f data/farmersdelight/recipe/cooking/glow_berry_custard.json +7099985d1606ce227f6807cdc6b5a340933de98f data/farmersdelight/recipe/cooking/hot_cocoa.json +670c6b46bb4a69b586d59366673f7c448ddab607 data/farmersdelight/recipe/cooking/mushroom_rice.json +0f8fd5398acad9a93a08fa10c235d7eaa13bdf1d data/farmersdelight/recipe/cooking/mushroom_stew.json +a38fe4c82a802b1c3b60b662c96031d3fb128218 data/farmersdelight/recipe/cooking/noodle_soup.json +f5eb33b7511be2c92116636daa58280d5d44002f data/farmersdelight/recipe/cooking/onion_soup.json +df79cc7e858187229a1d91a94fc9f63bccf474da data/farmersdelight/recipe/cooking/pasta_with_meatballs.json +43cc01ee7bcba7cec11944854160a56efaefbf10 data/farmersdelight/recipe/cooking/pasta_with_mutton_chop.json +4047d2ad68570d91ca2995f68da5b8b72b8d2e33 data/farmersdelight/recipe/cooking/pumpkin_soup.json +ccf04ae47656374c42871d1670dc29fb81becff0 data/farmersdelight/recipe/cooking/rabbit_stew.json +b03de6ba0f1a35d61add8a6c2a4fd4f755f73895 data/farmersdelight/recipe/cooking/ratatouille.json +0c9194605502350422d36662de2fa8c8baa40e94 data/farmersdelight/recipe/cooking/squid_ink_pasta.json +1286378b1aa7657497d342012d11828e9d419bcb data/farmersdelight/recipe/cooking/stuffed_pumpkin_block.json +5fa467fa4c3f87b2c443e8d12967d36ee7a4e9ab data/farmersdelight/recipe/cooking/tomato_sauce.json +4fa7d6f158db733955f40c395d932baa17b22348 data/farmersdelight/recipe/cooking/vegetable_noodles.json +cfb23c5b93627ab5a767694f7c7a5e03ed45987c data/farmersdelight/recipe/cooking/vegetable_soup.json +cdbec198132fe4828a75a211379963bc77f5516a data/farmersdelight/recipe/cooking_pot.json +b16a24e44ea4b11adff250c6d0c5be933565eea3 data/farmersdelight/recipe/crimson_cabinet.json +6cda35fea261946ab123fecf6e020ae9b9efa730 data/farmersdelight/recipe/cutting/acacia_log.json +e2178791d6d1383c289983b82ec5fb06af8b52b8 data/farmersdelight/recipe/cutting/acacia_wood.json +78f2f83a394352f7038f7f10d5e8b95a068ddf70 data/farmersdelight/recipe/cutting/allium.json +016d4efcb0f3a1c57b2c870c494b49da64a7aec8 data/farmersdelight/recipe/cutting/apple_pie.json +5f4d583e8b961ad183485b468276d3832f875f15 data/farmersdelight/recipe/cutting/azure_bluet.json +b8bfc9613f701e1eda72e2afd2d44c37c75ef6f0 data/farmersdelight/recipe/cutting/bamboo_basket.json +cfc16b697635ec8d680d7f97e1b1b812560cab1b data/farmersdelight/recipe/cutting/bamboo_block.json +46581d7e0a9a33c46fea0d385b232250f88c89d6 data/farmersdelight/recipe/cutting/beef.json +6dd80da4944757f4d5d27c528ec03c9b431021d5 data/farmersdelight/recipe/cutting/birch_log.json +1e7864e935bf778e50bf7dedf3a764e6864ed7a4 data/farmersdelight/recipe/cutting/birch_wood.json +9685aa3a0e4ad5dd123ca351598f8ee69c5a9a22 data/farmersdelight/recipe/cutting/blue_orchid.json +d474fd363113c3de7160955fb3df0d235ea4f7af data/farmersdelight/recipe/cutting/brown_mushroom_colony.json +7a4e132a518c0f058d46ec6708411fac9cfd8950 data/farmersdelight/recipe/cutting/cabbage.json +61816683c1d7d6edf8906e05a8d538b066b592f1 data/farmersdelight/recipe/cutting/cake.json +c482ba6502a789e07cef306894de8aea81cde017 data/farmersdelight/recipe/cutting/cherry_log.json +c431060ad20700f9e8b58b687a07f9ca4d5b4f72 data/farmersdelight/recipe/cutting/cherry_wood.json +1188e3c4f002824b48d93bdfa38c6ae89583f1fc data/farmersdelight/recipe/cutting/chicken.json +ef5a21e9384f522c0963015e925c5202c1b5e98a data/farmersdelight/recipe/cutting/chocolate_pie.json +1078a40802a57b0cb5c5037bbbedd4715f5df827 data/farmersdelight/recipe/cutting/clay.json +9f442456ce2c87b5a1b1e31f4aac8020629b3970 data/farmersdelight/recipe/cutting/cod.json +3920bd2ae4115882e2813cc81bfa603b0fd8b13a data/farmersdelight/recipe/cutting/cooked_chicken.json +e93fdfbdb2af0ce2ede48566d354b8843188c203 data/farmersdelight/recipe/cutting/cooked_cod.json +e6bc1ab54d56c56d23adee5e690b21cc1141ed65 data/farmersdelight/recipe/cutting/cooked_mutton.json +10bdcdb3d006cb8d58c3fd0e717ff540fa761887 data/farmersdelight/recipe/cutting/cooked_salmon.json +9d544097cc1f682b5c37e4d8d84ba1423b060509 data/farmersdelight/recipe/cutting/cornflower.json +198b7f01d5eadfb239ec6a59b287296f6eff12d8 data/farmersdelight/recipe/cutting/crimson_hyphae.json +3f82cf1b6e02a2fdc909865db100f6084e6853cb data/farmersdelight/recipe/cutting/crimson_stem.json +bfa48069ed8f7549acff6e611324ccdf177b435b data/farmersdelight/recipe/cutting/dandelion.json +0c1f8a106225194e01d58814e5f1e72bbc74ca85 data/farmersdelight/recipe/cutting/dark_oak_log.json +4abf64f894b32b0f045c6f83c1f0e1e6b31a3ce1 data/farmersdelight/recipe/cutting/dark_oak_wood.json +b8906b0c087c099c3d6e033d4a8c503e547dd446 data/farmersdelight/recipe/cutting/gravel.json +e6f6caf9df51f74cd3f6c901018f201179eb285e data/farmersdelight/recipe/cutting/ham.json +26a523b693a1702d6a7e503421a89902fa02628e data/farmersdelight/recipe/cutting/ink_sac.json +974ba230c91092cd7c6ebc664932949904560538 data/farmersdelight/recipe/cutting/jungle_log.json +d514e4bf775834f9ae68b473b3db58369bfc331b data/farmersdelight/recipe/cutting/jungle_wood.json +0c9a2117b875efb9a2a36eebc7dfe430860be030 data/farmersdelight/recipe/cutting/kelp_roll.json +3cad901582cba319a3f75aea2318946caeed1133 data/farmersdelight/recipe/cutting/lily_of_the_valley.json +5697d0cd5b9c8e9b84176e5995ccc4cef6198afe data/farmersdelight/recipe/cutting/mangrove_log.json +8d29358a140b27cd0fc1bd08a236d3a49f328f66 data/farmersdelight/recipe/cutting/mangrove_wood.json +cba12913e04dd73ad0339f4144a2a8e600b18016 data/farmersdelight/recipe/cutting/melon.json +945c42df8004dcc8c625e6bd6fdacde33a07d897 data/farmersdelight/recipe/cutting/mutton.json +74e115e5641538bff15abfc2c454057c461e8b35 data/farmersdelight/recipe/cutting/oak_log.json +e82f1d1ae1e1bb0b9500584948c86e6e3c18a12e data/farmersdelight/recipe/cutting/oak_wood.json +4fe91fdc007da79502bc9e1875d6066670b88263 data/farmersdelight/recipe/cutting/orange_tulip.json +63b6432b6d394fa1a7dde93ead4ec895bb2c6971 data/farmersdelight/recipe/cutting/oxeye_daisy.json +a25067026748c99f35c7d8f12214313b4298499c data/farmersdelight/recipe/cutting/pink_tulip.json +186f059dadd4a8de4d2e35d142441b1b3cd0a0a4 data/farmersdelight/recipe/cutting/poppy.json +c96253f5acbd1900001c3af8ae654d04eb0330ae data/farmersdelight/recipe/cutting/porkchop.json +cd5a3186486d6f850d1dd23c94da735c7283bce6 data/farmersdelight/recipe/cutting/pumpkin.json +1b0e3ff3e119d6f1005daa90970b3b96aedbeba6 data/farmersdelight/recipe/cutting/pumpkin_pie.json +460263024b04cd035b17e845d426c5bf5d7332ba data/farmersdelight/recipe/cutting/red_mushroom_colony.json +dbd79c45840f3dbd5c4fe3ceb2f250955d7002ce data/farmersdelight/recipe/cutting/red_tulip.json +5822a26e12ee70ccec8455d63625e0f87b893723 data/farmersdelight/recipe/cutting/rice_panicle.json +3569cb80349353138267b1623c557cf4ade58cb6 data/farmersdelight/recipe/cutting/salmon.json +7febf408b8fba591beb1c6c59d71d6d922b68dcc data/farmersdelight/recipe/cutting/smoked_ham.json +aa78405bbda89d8b840975d00f48e09b1326590a data/farmersdelight/recipe/cutting/spruce_log.json +da6b7b812d1fe15fe8ed80073af91188d846c268 data/farmersdelight/recipe/cutting/spruce_wood.json +b024e272ad13d6329041bcd8a19b2bdd17ad5eb6 data/farmersdelight/recipe/cutting/sweet_berry_cheesecake.json +a69b3cc7d2548242dc24a88591c48701e0bb430d data/farmersdelight/recipe/cutting/tag_dough.json +30252564958f08d8e1e68880aa7541c1660324f0 data/farmersdelight/recipe/cutting/torchflower.json +cc467e206a60add160891df6cb15539883ccc531 data/farmersdelight/recipe/cutting/warped_hyphae.json +99558b503f2d72be086a4a227d680bb2d46ebc53 data/farmersdelight/recipe/cutting/warped_stem.json +e09f95ad73618a2a2cc14afad082f2d89444ff14 data/farmersdelight/recipe/cutting/white_tulip.json +544d8ecd21b0f3e7a6cc669aa9598bf7716bfe80 data/farmersdelight/recipe/cutting/wild_beetroots.json +802eb43da551d07c07c38dd56609cf38aaf917bb data/farmersdelight/recipe/cutting/wild_cabbages.json +71e94df2a5ed96e69b482305ab1ef40139de43bc data/farmersdelight/recipe/cutting/wild_carrots.json +b022b20bf004855dc14e62b99d8032af23fcc4b3 data/farmersdelight/recipe/cutting/wild_onions.json +adcd078eec08fbce06ac333201008720870bd219 data/farmersdelight/recipe/cutting/wild_potatoes.json +cfdf3ff7b64263dc6e90192dd3c3ec8fcf92258c data/farmersdelight/recipe/cutting/wild_rice.json +574b4b72b28b57c5a742c52196bbd1033229724f data/farmersdelight/recipe/cutting/wild_tomatoes.json +c1da01081a329fa42b00d028e84c8d6ed5a838b2 data/farmersdelight/recipe/cutting/wither_rose.json +d1973da9ef78dab452677ae3ea3182ff989a4fb3 data/farmersdelight/recipe/cutting/wooden_basket.json +8e03d0f29cdc4513aed7833f9f777ade9959d6f9 data/farmersdelight/recipe/cutting_board.json +5f44055e6d477e2bc084808e6966a51a2363ddde data/farmersdelight/recipe/cyan_canvas_sign.json +f304755d3711797cbdb13bb1b2db13a499eaedc4 data/farmersdelight/recipe/cyan_hanging_canvas_sign.json +6959368dfe90b43b90f64e6c8085f56b558ce4b7 data/farmersdelight/recipe/dark_oak_cabinet.json +ea8a8382d9506e4e307248cf02a8afa045a12cd0 data/farmersdelight/recipe/diamond_knife.json +b136d981cc79610bba06f79582694dec455d6731 data/farmersdelight/recipe/egg_sandwich.json +3518abcb0c75bfd90e825930dfea46d3c1ec34bb data/farmersdelight/recipe/flint_knife.json +c03d01c4b31e736cc1434bfdcbe66a3fa61e0438 data/farmersdelight/recipe/food_serving.json +267ab8b60d58ef17de396226903209787977c7f7 data/farmersdelight/recipe/fried_egg.json +04af039883f936d2bd620c4fc73dfb42a811c3f2 data/farmersdelight/recipe/fried_egg_from_campfire_cooking.json +c8c2c6be962925ac176935332fc14d5f0c3b5f1d data/farmersdelight/recipe/fried_egg_from_smoking.json +5811971c10b6e86929ad62f578f4ac4875ab3346 data/farmersdelight/recipe/fruit_salad.json +86df49075202e4e5f5034d6d01fdca213a1e9006 data/farmersdelight/recipe/full_tatami_mat.json +32486ec0f80463c0aeb18b81b068e9b4c390b11c data/farmersdelight/recipe/full_tatami_mat_from_halves.json +d094f9f8bd240b75f6d06d4086f9ac743beb26da data/farmersdelight/recipe/gleaming_salad_block.json +5ee517bdb0e5c79edbbf71facac83ddd4a0d06b8 data/farmersdelight/recipe/golden_knife.json +5cbfbc59f1da44736da2f9ae4084c444ce8e21d1 data/farmersdelight/recipe/gold_nugget_from_blasting_knife.json +3a0ced01b84d03ff985245c3a86e938c06109bd2 data/farmersdelight/recipe/gold_nugget_from_smelting_knife.json +6bc78bfab3cb6a86726d365fc8ae336fcac889b9 data/farmersdelight/recipe/gray_canvas_sign.json +f4755a1ef6ebbae94efdbd35e9d390f510dd4601 data/farmersdelight/recipe/gray_hanging_canvas_sign.json +d21bb65d0ca560762207ed59f5907122392310eb data/farmersdelight/recipe/green_canvas_sign.json +3bdabb5691a121c3252baabd4cab5303f515c0d9 data/farmersdelight/recipe/green_hanging_canvas_sign.json +14caa65bee725c549010f2f7c2ea0dda7aebe6a3 data/farmersdelight/recipe/grilled_salmon.json +372f63bc3ce0d87617ab4094fbbc537d98dd864d data/farmersdelight/recipe/half_tatami_mat.json +a4e2cb030698aadd5bfb97ed904e857952f47302 data/farmersdelight/recipe/hamburger.json +85bd3a641a2d59753c05c0fc83dd2b4112748424 data/farmersdelight/recipe/hanging_canvas_sign.json +8e5edcf39341dc7cc6f7a953abd57ce6817ba005 data/farmersdelight/recipe/honey_cookie.json +78e24e3d233a3fc0c7ce8e6e6f9d54597e031314 data/farmersdelight/recipe/honey_glazed_ham_block.json +1c2cdd80def6e523c47adedf2b803001f2e48856 data/farmersdelight/recipe/horse_feed.json +e1a7da9e3db0c9166b135984d431c079fca9ef45 data/farmersdelight/recipe/iron_knife.json +c726fbad7bfd2f75755a17948e02e8830b44b232 data/farmersdelight/recipe/iron_nugget_from_blasting_knife.json +9afdb1b284a7225951d332d819a94c132d3f64a1 data/farmersdelight/recipe/iron_nugget_from_smelting_knife.json +b3a5a68c67f1cf6e2fdff7a553025b7614dbf9c0 data/farmersdelight/recipe/jungle_cabinet.json +12f6a751b1e9f327e83630f57536268b5b9e5a24 data/farmersdelight/recipe/kelp_roll.json +60f8a5c185eeef04e8290bb5c8b46a3ae66a79b1 data/farmersdelight/recipe/lead_from_straw.json +035eda3ad566d29fae506a1a8886a88d2869cae3 data/farmersdelight/recipe/light_blue_canvas_sign.json +2c7a2f98d2515c33a2a4fa93f1fe3afb9c42e77a data/farmersdelight/recipe/light_blue_hanging_canvas_sign.json +c777b5bb09f6c6f1cdd6678aabdd8c14938c4578 data/farmersdelight/recipe/light_gray_canvas_sign.json +1dec605d82360a5a9ad4a53d8cd2d2ef1900b18a data/farmersdelight/recipe/light_gray_hanging_canvas_sign.json +cd153574fdbdb6539912ac8c99b6897936bbec33 data/farmersdelight/recipe/lime_canvas_sign.json +559a7505130bb22be12c002c740966db9595309c data/farmersdelight/recipe/lime_hanging_canvas_sign.json +10331dd6ac686ed649f2e8dec5aab29951dba137 data/farmersdelight/recipe/magenta_canvas_sign.json +8f63f8a2c11434b0157ba9fce4c1054dae6f97c3 data/farmersdelight/recipe/magenta_hanging_canvas_sign.json +4624338892ff1b2da28096dc88594a03cafd9180 data/farmersdelight/recipe/mangrove_cabinet.json +60c85558e2a7c664e709be209160f0297b31fed2 data/farmersdelight/recipe/melon_juice.json +fb3ef7225f4e03dee2e5e0e98fca19059cd58aa3 data/farmersdelight/recipe/melon_popsicle.json +ce202184246c8a0b1c542e50254cab7141654596 data/farmersdelight/recipe/milk_bottle.json +de274703c7fb9ff2b495b45bb03f06be67823f36 data/farmersdelight/recipe/milk_bucket_from_bottles.json +96cb3208945b3661574bc81195526b6b6887c4cf data/farmersdelight/recipe/mixed_salad.json +358dfa9741df047df5a2b485992c0ae2512495b8 data/farmersdelight/recipe/mutton_wrap.json +f66cb03e14fcdfc6ac9dcb14930b7456656c7325 data/farmersdelight/recipe/netherite_knife_smithing.json +a2b8d924aad1a18769b0411173421a1500398ff7 data/farmersdelight/recipe/nether_salad.json +ba99fe51932976ec2245d1a089998c9ba5025ddf data/farmersdelight/recipe/oak_cabinet.json +fcafe2d69ed4f6a012b921648ee9ee90baf9cb1a data/farmersdelight/recipe/onion.json +8ae4138b065364973e639713473ee416af045760 data/farmersdelight/recipe/onion_crate.json +2b301e7f3a8ea6b8a4e1bbb4b8025f73d9d54e77 data/farmersdelight/recipe/orange_canvas_sign.json +8d4d9c994d7364cd26247805f6d4f7d57c42f738 data/farmersdelight/recipe/orange_hanging_canvas_sign.json +8efe031be51877e4dc04362b3accb80fea7ac511 data/farmersdelight/recipe/organic_compost_from_rotten_flesh.json +25dc1811c9bcaba7043caf42f168819c605fda1a data/farmersdelight/recipe/organic_compost_from_tree_bark.json +f0ff8f4c91e8f2c6168802f3f33ab67495143628 data/farmersdelight/recipe/packed_mud_from_straw.json +9c893730ef21c8db3dd2814a0e009063711cea5a data/farmersdelight/recipe/painting_from_canvas.json +08e21ca82632ff8e9057065f4760e6518a9643cf data/farmersdelight/recipe/paper_from_tree_bark.json +5edcb8ce412eab536d10291450d470a63f72a223 data/farmersdelight/recipe/pie_crust.json +90ed93352c0602bb1f268824e66921c0b6b1eb71 data/farmersdelight/recipe/pink_canvas_sign.json +244d5514b4433149d6594c22d80e00a4145b04a3 data/farmersdelight/recipe/pink_hanging_canvas_sign.json +74be4eb4a5b2c7d1c6643dc1c8e4d2b527324bb4 data/farmersdelight/recipe/potato_crate.json +9a34fd5b90e3a594daf2e13b740a814020983723 data/farmersdelight/recipe/potato_from_crate.json +c42e955dee5385db616d7ee38069894606678d8c data/farmersdelight/recipe/pumpkin_from_slices.json +c4bf551dd5ee7d3fb7496b7952fc01265c738cd0 data/farmersdelight/recipe/pumpkin_pie_from_pie_crust.json +a6836559cd70a835078206765d3357e2cb40669e data/farmersdelight/recipe/pumpkin_pie_from_slices.json +1b68959fe74067e7b5a3874ff7164ae4abc29934 data/farmersdelight/recipe/pumpkin_seeds_from_slice.json +1eae38a29bffeca165d3352ddf38bbbdae08219b data/farmersdelight/recipe/purple_canvas_sign.json +7ff5e6befa5652509e5969eaa2d00c920827828e data/farmersdelight/recipe/purple_hanging_canvas_sign.json +e1ac4700c268cc0f2a68aee67307b89c0886363f data/farmersdelight/recipe/red_canvas_sign.json +76da0e260feefbac9d93d8381d85f39f119a1f94 data/farmersdelight/recipe/red_hanging_canvas_sign.json +98ef44c40ae86e627eae6be6915f9684a8a32e48 data/farmersdelight/recipe/rice.json +9e3c14633ecf6c98d70277b3958f31c75b5095d3 data/farmersdelight/recipe/rice_bag.json +2ceadbf81326a29df77a639f6fe2e4fd88a98c20 data/farmersdelight/recipe/rice_bale.json +0c1d757cd040075d44b0037539e66d00a6803674 data/farmersdelight/recipe/rice_from_bag.json +3f257f92f44a1408a33a0e88f5789571357ffcf4 data/farmersdelight/recipe/rice_panicle.json +023530f1c0ef6ea4d1740eab7682666998471570 data/farmersdelight/recipe/rice_roll_medley_block.json +67a5617bf579dc6b192751241c3e16099714ebca data/farmersdelight/recipe/roasted_mutton_chops.json +ac9095f4f8a8f49c1e7ff8cffa79fc866b19839b data/farmersdelight/recipe/roast_chicken_block.json +a45385fa4a1ecbdf75305884220e3b686f0d60e9 data/farmersdelight/recipe/rope.json +a334a9239df04b8a12d09c9237d555857a737b73 data/farmersdelight/recipe/rope_fence.json +3e2e496b438b58d6ea14f4432da0c28f1d5485f3 data/farmersdelight/recipe/rope_fence_gate.json +e79ef2dbcb34785dee5fe86a1bfa32224382353a data/farmersdelight/recipe/rope_from_safety_net.json +c310a777e7ad8baa313cc72711aa178af1f7ac7a data/farmersdelight/recipe/safety_net.json +7ec12e540c1dc5c38e00609ddc5576d03f75d4b4 data/farmersdelight/recipe/salmon_roll.json +1a3ada7f6faffe9676b810b30fa1258c78642d4b data/farmersdelight/recipe/salvaging/acacia_chest_boat.json +d2284d46d1d6afa06db8da97038d095613aecffb data/farmersdelight/recipe/salvaging/acacia_furniture.json +1aa25a52815c08c9b705a04075973ff1c3c066cd data/farmersdelight/recipe/salvaging/amethyst_block.json +29f8d04608f2570f3eb38b074c07bc1d84fa0f12 data/farmersdelight/recipe/salvaging/bamboo_chest_raft.json +11258775bdfa8413ce08f7dc5232e713bfaee520 data/farmersdelight/recipe/salvaging/bamboo_furniture.json +b92322f9625b7206e89b77ff280ab38ab53cbeb8 data/farmersdelight/recipe/salvaging/birch_chest_boat.json +a9eab11fa07b51eff2f04fd4858a2da0599195f2 data/farmersdelight/recipe/salvaging/birch_furniture.json +dc93355996ca8f4d948ab78716fed4132af17901 data/farmersdelight/recipe/salvaging/bricks.json +fa586ca2a1bec474834a8177c8154b323760dcaf data/farmersdelight/recipe/salvaging/cherry_chest_boat.json +bd753ff8504e33fc79811e27c77b5fa506acfb96 data/farmersdelight/recipe/salvaging/cherry_furniture.json +b9963def689c1730102c6ced36f1f430c365f819 data/farmersdelight/recipe/salvaging/chest_minecart.json +f4d0c8966e0ebe9a2a18b6664a1275e903d000c4 data/farmersdelight/recipe/salvaging/crimson_furniture.json +37e5de3a3f09b0bc2c462da33af2afad3b563923 data/farmersdelight/recipe/salvaging/dark_oak_chest_boat.json +845d8a0769555ae05ff0b4f0162896f5d79c9326 data/farmersdelight/recipe/salvaging/dark_oak_furniture.json +e1adcd3be696fc4537b08a96f2296f83fede9fb0 data/farmersdelight/recipe/salvaging/deepslate.json +426efaa261477b6c7b598fc83c72dab6f56b928f data/farmersdelight/recipe/salvaging/furnace_minecart.json +3a45f27f4165f8d479eaf79b568419784b00a708 data/farmersdelight/recipe/salvaging/hopper_minecart.json +4880a3a4b0538b3714b7c8ac16ba320ce61c3f65 data/farmersdelight/recipe/salvaging/jungle_chest_boat.json +cf8abeee3937736723b00ebf9f60fa36286e970d data/farmersdelight/recipe/salvaging/jungle_furniture.json +e78e18fc636ea43b67d954342a8eff7dac94aa0b data/farmersdelight/recipe/salvaging/leather_armor.json +5d18fbabab649c3da123387d79103dfee696f5e2 data/farmersdelight/recipe/salvaging/leather_horse_armor.json +33507779e53e24bca06ab90b9c4194700688e278 data/farmersdelight/recipe/salvaging/mangrove_chest_boat.json +29a724f87cdc4fc218ebde264786a6aaf50f62c8 data/farmersdelight/recipe/salvaging/mangrove_furniture.json +ba49a692804b42409a4022eb238112cdf05dc3e1 data/farmersdelight/recipe/salvaging/nether_bricks.json +308522dc3e8901a658420d793a8739723297f1f2 data/farmersdelight/recipe/salvaging/oak_chest_boat.json +7ab72111dae85c4a2dbfaacd61181abf0557a419 data/farmersdelight/recipe/salvaging/oak_furniture.json +728e2d494aa9407da8ba59fc6b168b2f36b59c18 data/farmersdelight/recipe/salvaging/quartz_block.json +48dc14a24aa6dba7fdc9a4f04b7cfbe23bd3c4ac data/farmersdelight/recipe/salvaging/saddle.json +395ea3188f3ea58afdbe78678f3a861b1151102b data/farmersdelight/recipe/salvaging/spruce_chest_boat.json +950023f887dafce2fb216ec7866b3df27c941446 data/farmersdelight/recipe/salvaging/spruce_furniture.json +32b5dd409e6b9b04108097986f0b44c546487c2b data/farmersdelight/recipe/salvaging/stone.json +0c59b69e2ffaa2521367f9f3ebdd94966bf0c7da data/farmersdelight/recipe/salvaging/tnt_minecart.json +0b4864d2234845c94f5c12ffad0d44caf468baa2 data/farmersdelight/recipe/salvaging/warped_furniture.json +20a6414b5ec76a9b98aad7d454d3a02081381dc1 data/farmersdelight/recipe/scaffolding_from_canvas.json +bf836a92c7e58bfcc5424d9847c1bd0f0b3c3668 data/farmersdelight/recipe/shepherds_pie_block.json +84a071b2a478d332c2ae4a20c00d6617753aa9ab data/farmersdelight/recipe/skillet.json +1e4b22f3364fafa4beeae4f47ba183d83ddc064d data/farmersdelight/recipe/smoked_ham.json +62a57648f1c7b41d26e153f333423286c656b935 data/farmersdelight/recipe/spruce_cabinet.json +9a734e7fa95f9ccb354047db3f549fb4fad48ccc data/farmersdelight/recipe/steak_and_potatoes.json +b020159b9afff6d04d345f4561e3726b197ea20d data/farmersdelight/recipe/stove.json +d4ebdc8c632a783b4f57f1c88f9ad192783c8af3 data/farmersdelight/recipe/straw.json +74e3edd6e8cb3cdeae411163e3ffde14f2aa5984 data/farmersdelight/recipe/straw_bale.json +770b969702b0afe5fb78023eb19c76475dcd8f40 data/farmersdelight/recipe/stuffed_potato.json +f3539bec436e5889da94414dc54285c45ed4064c data/farmersdelight/recipe/sweet_berry_cheesecake.json +1db817d8740378c73545424b4c238d32bb021e05 data/farmersdelight/recipe/sweet_berry_cheesecake_from_slices.json +47c43be9b34ecf7141f4e4f59137e8052341400f data/farmersdelight/recipe/sweet_berry_cookie.json +175f6aad2b988bd063414819da17f15b0b088454 data/farmersdelight/recipe/tatami.json +504c80cb2a0b0251e492e7b0a7ba8f1f119bd8c7 data/farmersdelight/recipe/tatami_block_from_full.json +91dbe7be75a5fcd87b0a4e83994da287adbdfa8d data/farmersdelight/recipe/tomato.json +75fcd3c589140648ffd1a4269869807791404b44 data/farmersdelight/recipe/tomato_crate.json +52850c2af02d9897b25f82421a446bfe9717a80e data/farmersdelight/recipe/tomato_seeds.json +8f60f052bdda60162c0cb177809ce7ac20702d21 data/farmersdelight/recipe/warped_cabinet.json +a5114173899fdb2e11faf9dbd47a84360525dc1f data/farmersdelight/recipe/wheat_dough_from_egg.json +bb201c44da5e5f4d47c89902ce66f121dc9ead92 data/farmersdelight/recipe/wheat_dough_from_water.json +07a8635d476093d3afc3127faa8f7295732be106 data/farmersdelight/recipe/white_canvas_sign.json +79db9dda971746005406a96223b51de240b19edf data/farmersdelight/recipe/white_hanging_canvas_sign.json +8d921b73ec918e62b5ff1ed9f2c848db85e94a14 data/farmersdelight/recipe/wooden_basket.json +0fbc55cfd5e2d5126c5428ba20c0227240fcb069 data/farmersdelight/recipe/yellow_canvas_sign.json +a9c2e8fb0ccbc372b81483cee2c7217da1d9750f data/farmersdelight/recipe/yellow_hanging_canvas_sign.json +21d6792ce7de98e9396c3829ab52f8574595557b data/farmersdelight/tags/block/cabinets.json +19fcfae5f5396dfec4a1ca0d53473ceec4d202c0 data/farmersdelight/tags/block/cabinets/wooden.json +6644ebda4035b2e597066fa2def42ba14650cfbc data/farmersdelight/tags/block/campfire_signal_smoke.json +a3e0620f099da33e71998eb0cb6aa2fd9e457a51 data/farmersdelight/tags/block/compost_activators.json +55214b20812db2a28666df43349c23f7ac0e45ea data/farmersdelight/tags/block/drops_cake_slice.json +e0807dee5085dc45ed2c07737845f88270bc224e data/farmersdelight/tags/block/feasts.json +bfaccff8e729039a0c1d0db4d359ded77f7c60c8 data/farmersdelight/tags/block/heat_conductors.json +641a6e1f4ea5020a7d3d0ccd6b1642b3426c3455 data/farmersdelight/tags/block/heat_sources.json +49978ea39eabccbf5b3035473d24e93adaf9aae9 data/farmersdelight/tags/block/mineable/knife.json +3c0ae55321aa932ca588fba70a103c5d62acaebc data/farmersdelight/tags/block/mushroom_colonies.json +d0812613832bbc602d7ff3274c81d5729e91c2ea data/farmersdelight/tags/block/mushroom_colony_growable_on.json +98e3a919647e0011c07a101e42982f0e806f074b data/farmersdelight/tags/block/pies.json +5e89bac3342aaba8808a09b1801224241b9fd48b data/farmersdelight/tags/block/planted_from_below.json +9d9610c9406031bb23309314f1cf668eae51544f data/farmersdelight/tags/block/ropes.json +7fb4a165414cdcfd2ba7931bc908720e4eeb9d0f data/farmersdelight/tags/block/straw_blocks.json +e4d28099b3557b120274c2ef7593e202019c4d65 data/farmersdelight/tags/block/terrain.json +90c6f0a64d1a682335e4b5dca86a5c85073951a0 data/farmersdelight/tags/block/tray_heat_sources.json +0d4f9dead27627e2cb7009d07bb5d86165f43307 data/farmersdelight/tags/block/unaffected_by_rich_soil.json +5596501768488a25c5bcc6ef16c2fc5ca3ab49e9 data/farmersdelight/tags/block/wild_crops.json +7de65935b0b39ff2ffe91074550ac77e9fae7a84 data/farmersdelight/tags/entity_type/dog_food_users.json +113fcf0aefa526f67eaf6f17722d13ae48d538fa data/farmersdelight/tags/entity_type/horse_feed_tempted.json +76ade8f40615f7dd72ce5bd44f25eec9ef10fe98 data/farmersdelight/tags/entity_type/horse_feed_users.json +21d6792ce7de98e9396c3829ab52f8574595557b data/farmersdelight/tags/item/cabinets.json +19fcfae5f5396dfec4a1ca0d53473ceec4d202c0 data/farmersdelight/tags/item/cabinets/wooden.json +f689dbe322491c7ad7b7aa512fbd981bc4d7ec45 data/farmersdelight/tags/item/canvas_signs.json +b51fbc41ab996b99a6b4807508b1fbb7010069c3 data/farmersdelight/tags/item/drinks.json +b1d4ce3e56c5776870a8fdd487526210fd93ecbd data/farmersdelight/tags/item/enchantable/knife.json +e0807dee5085dc45ed2c07737845f88270bc224e data/farmersdelight/tags/item/feasts.json +573af7240d931c25837df7bf140759f86076b288 data/farmersdelight/tags/item/flat_on_cutting_board.json +859810b0bf4f36e275af5b6a86c3c7b9a968dbd3 data/farmersdelight/tags/item/hanging_canvas_signs.json +ccfa3b08069d06ce1fe3e23e3cfa19f8ecf44e15 data/farmersdelight/tags/item/meals.json +3c0ae55321aa932ca588fba70a103c5d62acaebc data/farmersdelight/tags/item/mushroom_colonies.json +c3e930dad76c9cbf50c1fc53fa493632e943a4e5 data/farmersdelight/tags/item/pies.json +d837fdcf195d0755d48909cc19e0ad7aed1c4c72 data/farmersdelight/tags/item/serving_containers.json +5758fee70d4345cd53ca8032cb0d7507f4265e04 data/farmersdelight/tags/item/snacks.json +b1d4ce3e56c5776870a8fdd487526210fd93ecbd data/farmersdelight/tags/item/straw_harvesters.json +f2692ca880b3bf403e556560fc3a97ce251139e1 data/farmersdelight/tags/item/sweets.json +edaf49470d0e1c903468fd6902234bbeec85c337 data/farmersdelight/tags/item/tools/knives.json +5596501768488a25c5bcc6ef16c2fc5ca3ab49e9 data/farmersdelight/tags/item/wild_crops.json +951a6ee2d7aea9400310a21bb67a4df4de60c69f data/farmersdelight/worldgen/configured_feature/patch_brown_mushroom_colony.json +645aee5931bac710c0dc6bd62d5a1ac26f27503d data/farmersdelight/worldgen/configured_feature/patch_red_mushroom_colony.json +a88fd717fc2dcfef1e9edc43b945964ba28a1ccf data/farmersdelight/worldgen/configured_feature/patch_sandy_shrub.json +8f9675b5ef3d04c3a35bdcd4530f6d3a722e6759 data/farmersdelight/worldgen/configured_feature/patch_wild_beetroots.json +a239483228d40679183c64da5df643fd5d943394 data/farmersdelight/worldgen/configured_feature/patch_wild_cabbages.json +5b92c3cf0aecb0b1bd5530a60919da079751ee19 data/farmersdelight/worldgen/configured_feature/patch_wild_carrots.json +6e2b9dadb61813dfc9fbe0a30fb19a76203c171a data/farmersdelight/worldgen/configured_feature/patch_wild_onions.json +d49a6b0d6f072bbdc0b548261a7bd490a836e021 data/farmersdelight/worldgen/configured_feature/patch_wild_potatoes.json +ac8af814b9b33f08e33ba8a9dbed0dde99d128ec data/farmersdelight/worldgen/configured_feature/patch_wild_rice.json +747e6297036eee6159fb7874512af53d7f040a53 data/farmersdelight/worldgen/configured_feature/patch_wild_tomatoes.json +e5a340593fef17334cf944f1ccad603caa89825e data/farmersdelight/worldgen/placed_feature/patch_brown_mushroom_colony.json +903cd7906654430e62803ee7e718ed1ae64808b7 data/farmersdelight/worldgen/placed_feature/patch_red_mushroom_colony.json +a1297cf83bc9ae40f53c8d98ce2ab5c9cc7a90ad data/farmersdelight/worldgen/placed_feature/patch_wild_beetroots.json +132b6db9c0c6c71cfa966a3033c9e97307a3d5ec data/farmersdelight/worldgen/placed_feature/patch_wild_cabbages.json +1667f7fd78d6320e911e6660e47f8f2dd5886ef7 data/farmersdelight/worldgen/placed_feature/patch_wild_carrots.json +34670ed948555afdec580f9dd92258b3e6275ce4 data/farmersdelight/worldgen/placed_feature/patch_wild_onions.json +5495473575ef637f995df4100cb2cb9ecdf43acb data/farmersdelight/worldgen/placed_feature/patch_wild_potatoes.json +d7847a6e2325a88a6689a4dc65fc1f07fd09b51d data/farmersdelight/worldgen/placed_feature/patch_wild_rice.json +652c9b8f9ce78c63c479d6d8b8cd730c26c3f834 data/farmersdelight/worldgen/placed_feature/patch_wild_tomatoes.json +859810b0bf4f36e275af5b6a86c3c7b9a968dbd3 data/minecraft/tags/block/ceiling_hanging_signs.json +ba20db5500d52fd1d778ebf4beffbb5f5f3e9ef8 data/minecraft/tags/block/climbable.json +0da15d7e6b0822bc549fda4415b52284b244626d data/minecraft/tags/block/combination_step_sound_blocks.json +b6a491ddff6438e24735c2dd0910826455e61c68 data/minecraft/tags/block/crops.json +d0812613832bbc602d7ff3274c81d5729e91c2ea data/minecraft/tags/block/dirt.json +76c23603e65410291af111793aa931640128fae8 data/minecraft/tags/block/fences.json +1ba129ce39f820a673b8ed7d47d083a5252dd5e3 data/minecraft/tags/block/fence_gates.json +166fca1b0d8b63bf7564f93e9e7d0bf3dd45bf03 data/minecraft/tags/block/flowers.json +70df609f6a7436162e87d14c6a742f3f0c3dff35 data/minecraft/tags/block/huge_brown_mushroom_can_place_on.json +46eba184858bae298b1430bbab858976e323111c data/minecraft/tags/block/maintains_farmland.json +6b3db202de5fe047ba94806e175ccf38b458afba data/minecraft/tags/block/mineable/axe.json +2a8f19bc7b45789f94892524a425f28c21f4d227 data/minecraft/tags/block/mineable/hoe.json +963c2f1508fda246255005f0ac460a274c704ecd data/minecraft/tags/block/mineable/pickaxe.json +0eb2b01360e681e4689610044f4da8ace960e921 data/minecraft/tags/block/mineable/shovel.json +6bed2bc685973bf66e23513668eae44c1b875754 data/minecraft/tags/block/replaceable.json +6bed2bc685973bf66e23513668eae44c1b875754 data/minecraft/tags/block/replaceable_by_trees.json +f3b1539ad9a9117d3c48eca8dc67768f1a118df4 data/minecraft/tags/block/small_flowers.json +f689dbe322491c7ad7b7aa512fbd981bc4d7ec45 data/minecraft/tags/block/standing_signs.json +d0812613832bbc602d7ff3274c81d5729e91c2ea data/minecraft/tags/block/supports_bamboo.json +4bc9553c952a9d40a7ff218395d48f27f8c08df7 data/minecraft/tags/block/wall_hanging_signs.json +42655e1b47b467aeaf7593e6f2fca0a16786fb87 data/minecraft/tags/block/wall_signs.json +a1fcf33bc5dc1acb53ffc1e382daa29409111ff2 data/minecraft/tags/damage_type/burn_from_stepping.json +a1fcf33bc5dc1acb53ffc1e382daa29409111ff2 data/minecraft/tags/damage_type/is_fire.json +a1fcf33bc5dc1acb53ffc1e382daa29409111ff2 data/minecraft/tags/damage_type/no_knockback.json +a1fcf33bc5dc1acb53ffc1e382daa29409111ff2 data/minecraft/tags/damage_type/panic_environmental_causes.json +0ab52467bec84691a02b21e5de3b38d307f6f713 data/minecraft/tags/enchantment/non_treasure.json +b1d4ce3e56c5776870a8fdd487526210fd93ecbd data/minecraft/tags/item/breaks_decorated_pots.json +5c8e4e84a66c3a1ab8a04b6363ddeb3f475ddf1b data/minecraft/tags/item/cat_food.json +9980a57042decbe4d29e529febb0c76a7ae1b152 data/minecraft/tags/item/chicken_food.json +b144808149c1364e3cd3dc4b4128b76b24e00bf1 data/minecraft/tags/item/enchantable/durability.json +b144808149c1364e3cd3dc4b4128b76b24e00bf1 data/minecraft/tags/item/enchantable/fire_aspect.json +b1d4ce3e56c5776870a8fdd487526210fd93ecbd data/minecraft/tags/item/enchantable/mining.json +b1d4ce3e56c5776870a8fdd487526210fd93ecbd data/minecraft/tags/item/enchantable/mining_loot.json +b144808149c1364e3cd3dc4b4128b76b24e00bf1 data/minecraft/tags/item/enchantable/sharp_weapon.json +b144808149c1364e3cd3dc4b4128b76b24e00bf1 data/minecraft/tags/item/enchantable/weapon.json +7441d3370afb8b426c09f3608f0dd0aea4f54e4d data/minecraft/tags/item/hanging_signs.json +9f7c54970bfbea398bb27fdc66750b6459bc9946 data/minecraft/tags/item/horse_tempt_items.json +ab8d571e62fc4b847ce3e023c22e53e76c98328a data/minecraft/tags/item/meat.json +9980a57042decbe4d29e529febb0c76a7ae1b152 data/minecraft/tags/item/parrot_food.json +fe7bdb9a3a19d42543aea1030ea44f1db041a878 data/minecraft/tags/item/piglin_loved.json +0b772a759b7363772f8ebecf5ec7df857d4ac6aa data/minecraft/tags/item/pig_food.json +f1e2b43c8bc399294b2561cb228e3da8fc403a94 data/minecraft/tags/item/rabbit_food.json +38e1524ee683c493a01193efe4926abb88caa287 data/minecraft/tags/item/signs.json +71f39b71e1a7298641682ad8682ca945f8f7a35d data/minecraft/tags/item/villager_plantable_seeds.json +bd57988f73d8086c447f17df94b7d9ee4d152afc data/neoforge/data_maps/item/compostables.json +a0610df0faa29451991157d500c85187489ab17f data/neoforge/data_maps/item/furnace_fuels.json +d899a783b5e4f2dcef445788a2e88b0d687a20b8 data/neoforge/tags/block/villager_farmlands.json +f305fbe067478314b9763bd8e60893ec468f423b data/origins/tags/item/meat.json +ffcda20518c10de0e50800211be05f13cf25b4cb data/sable/tags/block/light.json +9fda3460187737aebd30a3fe54c798fef33d9f0b data/sable/tags/block/super_light.json +4dcc51aef8cad784cecedbc69fe3a14020a9288c data/sereneseasons/tags/block/autumn_crops.json +ee4421cfb87b30b984db41666b2a17df2d9097f9 data/sereneseasons/tags/block/spring_crops.json +842275996c27c76aaae4c691715f96933d5ff0b0 data/sereneseasons/tags/block/summer_crops.json +ee4421cfb87b30b984db41666b2a17df2d9097f9 data/sereneseasons/tags/block/unbreakable_infertile_crops.json +31d5d71e1ecdce81c8fb8b9e085d8a726cf9ce6c data/sereneseasons/tags/block/winter_crops.json +da9c9878a953f308686cf68600b9cc33de2301ae data/sereneseasons/tags/item/autumn_crops.json +67cc2b5a00311a0164d09c5487c714d091be00d9 data/sereneseasons/tags/item/spring_crops.json +50fb0b1581d0ccf95fd37303afe49dda35daaeb5 data/sereneseasons/tags/item/summer_crops.json +637db2b92cd8d3c4e06bd04d8b9c6b35cbf3e9c2 data/sereneseasons/tags/item/winter_crops.json +67cc2b5a00311a0164d09c5487c714d091be00d9 data/tconstruct/tags/item/seeds.json diff --git a/src/generated/resources/.cache/d5445af04020b646a520e876860cfd8236cb2c43 b/src/generated/resources/.cache/d5445af04020b646a520e876860cfd8236cb2c43 new file mode 100644 index 000000000..3a7ab9d1d --- /dev/null +++ b/src/generated/resources/.cache/d5445af04020b646a520e876860cfd8236cb2c43 @@ -0,0 +1,337 @@ +// 26.2 2026-07-27T13:17:33.0014477 Item Model Definitions - farmersdelight +92339c0a07f28cf5b583853b792876f297597884 assets/farmersdelight/items/acacia_cabinet.json +360700ba63ce7bae921bbc4ca8a0f02c6374fe39 assets/farmersdelight/items/apple_cider.json +73cc012c0a6cd97dea2ad6d64d23e18179d1d968 assets/farmersdelight/items/apple_pie.json +33946b94df9ea7ad582ea3af0a1243959a1f6bac assets/farmersdelight/items/apple_pie_slice.json +2471bbb172a8f2568be8fa8c9d56783602c60715 assets/farmersdelight/items/bacon.json +eff414ea1c7df01ae16c98a518bd979d0de14a9e assets/farmersdelight/items/bacon_and_eggs.json +2227259fb27e34f949e4e565e9a592ac8a1e60ff assets/farmersdelight/items/bacon_sandwich.json +1ed352d82f863978a9b2c148185f3f7d8530ebdf assets/farmersdelight/items/baked_cod_stew.json +4e48ad7e180c8f7f9c680258ac22a08991a88855 assets/farmersdelight/items/bamboo_basket.json +98e3491fddd1a023422c8736de593e88e5efe24f assets/farmersdelight/items/bamboo_cabinet.json +55e7a48fc8c8be327c34627e2e2b6c3d270f503d assets/farmersdelight/items/barbecue_stick.json +b455abae444e2e608b4d95927e97d77eff754522 assets/farmersdelight/items/beef_patty.json +9f1fb11241e7b393405071b877c1ec2b7ca77134 assets/farmersdelight/items/beef_stew.json +a6ab98629046ed10cc6ddcb2b4ffe8961c4e5dc1 assets/farmersdelight/items/beetroot_crate.json +06e84873e235a1c161e90665ff3fba4523e3cc38 assets/farmersdelight/items/birch_cabinet.json +0ba458500479512d06f8ed2dbc8e1ce7164debd8 assets/farmersdelight/items/black_canvas_sign.json +bb03a5e57ac5b592e428d2f68698a5e47f9cad90 assets/farmersdelight/items/black_hanging_canvas_sign.json +a5afe9337de348df614b41b13c9d4412e8d040a1 assets/farmersdelight/items/blue_canvas_sign.json +46b1aaab5e54ce91aecf1b53617c5ffadf7c0602 assets/farmersdelight/items/blue_hanging_canvas_sign.json +29c3941095a5da7dba1fac77b044d4e964a8eb3f assets/farmersdelight/items/bone_broth.json +2b83ec7949736f3aae69dc7c296b80b572ded200 assets/farmersdelight/items/brown_canvas_sign.json +cddd748491b957f8c8748e8cd6c325c6a6b9ad05 assets/farmersdelight/items/brown_hanging_canvas_sign.json +b453bd7133f9a527579045c03b33dc7583186402 assets/farmersdelight/items/brown_mushroom_colony.json +de3082bb4d3a6e4422a5b1920c38ef11a97c6977 assets/farmersdelight/items/cabbage.json +5510dc7da29f0e3d7bf26822cc49ecd3c037457e assets/farmersdelight/items/cabbage_crate.json +5317bc6a6a70944d3ab2929350893dd3cff1a96f assets/farmersdelight/items/cabbage_leaf.json +bf2a0df58ef0aa570e199579a10f5f5d4cfee648 assets/farmersdelight/items/cabbage_rolls.json +cbaac39ca2695727f3dd4dd4212bb6d8f2692740 assets/farmersdelight/items/cabbage_seeds.json +5c4d177a2dd42816981991f8dee856ef94fffbe4 assets/farmersdelight/items/cake_slice.json +7732ec4d6b52e811e0722b867d2bbda1c000058c assets/farmersdelight/items/canvas.json +34c7b22762c1f7cefe54375284663c1090839e3d assets/farmersdelight/items/canvas_rug.json +0907d6e32bcec836653d828a4f0aa02cc74ab1dd assets/farmersdelight/items/canvas_sign.json +7eff2df3cdc8ae848cac0302bd49534b0ffb086e assets/farmersdelight/items/carrot_crate.json +d57ec75f314dac603a16b49723babe55dc262261 assets/farmersdelight/items/cherry_cabinet.json +5014e3928f15583507dea87033f5404c59d2d662 assets/farmersdelight/items/chicken_cuts.json +e532a06ff659a58516acb3272fbaa7ffaedae445 assets/farmersdelight/items/chicken_sandwich.json +6507524a242a7a2cb311df9dfa84aa8aa6647201 assets/farmersdelight/items/chicken_soup.json +d55f02fc65d23c48a8173425bc0b9ff40f3e7697 assets/farmersdelight/items/chocolate_pie.json +b02b2f4c6bf142d43e3844d30543537fc724a3c5 assets/farmersdelight/items/chocolate_pie_slice.json +f573fbf8f07c322c120afd5f0d6ec55dd3cdcc88 assets/farmersdelight/items/cod_roll.json +59c2f8a27eb7f3a71c7362fb92b7e8f64fd83ccd assets/farmersdelight/items/cod_slice.json +5d0549ba475f2edc6cc442563fc1155ee86d09e0 assets/farmersdelight/items/cooked_bacon.json +cf3f2ec39a3aff912e7cf01b6ca6c3347b7ba50e assets/farmersdelight/items/cooked_chicken_cuts.json +aafbb8fb3a4807d277bab510a22299e1cfa56df3 assets/farmersdelight/items/cooked_cod_slice.json +5d0af4ef36a475d7f52d7aa2eb5b1b7679e3d5b1 assets/farmersdelight/items/cooked_mutton_chops.json +7ec68076d4a035b7a3c3dc68d51e41e69f9e4d36 assets/farmersdelight/items/cooked_rice.json +6a3b368bccd1842911b2c4f5608da10175b93893 assets/farmersdelight/items/cooked_salmon_slice.json +16f891d9483d7fea78904e46df8ad7f423d45953 assets/farmersdelight/items/cooking_pot.json +beed93a09c3823bc03444e87f69c0dfbd99cad1d assets/farmersdelight/items/crimson_cabinet.json +20ea6a7dd8a7088e550fec65a5e3e26064bd5eb9 assets/farmersdelight/items/cutting_board.json +5f315e95c7dffa69f518eb085817de2fab45b4f8 assets/farmersdelight/items/cyan_canvas_sign.json +c4b74571875e5c2d5a1bbf87a788aa5e8bc45939 assets/farmersdelight/items/cyan_hanging_canvas_sign.json +213ff2cefe698516f987bbeaf2542b30cf5e46d4 assets/farmersdelight/items/dark_oak_cabinet.json +0e998a77d67dae084bf2d845dc78be679201e371 assets/farmersdelight/items/debug_pumpkin_pie.json +55f72748c6710ba66fdf552bef185cf3a117263e assets/farmersdelight/items/diamond_knife.json +53ab9bae92b559b54af6bfa8f60cf58aa373b7a0 assets/farmersdelight/items/dog_food.json +ec368640776f8acd0b3ee2d730f75420613166eb assets/farmersdelight/items/dumplings.json +482a509d0d68dd6b931208e93fcd6f5e49c8fe1c assets/farmersdelight/items/egg_sandwich.json +5a6204cc0d3494ad6afde7a0dc13859010c56f38 assets/farmersdelight/items/fish_stew.json +3ca163b46c6b1918153b58cafcdb0d9cd0ddb195 assets/farmersdelight/items/flint_knife.json +44f45fddb6b47f2fe55054f745d864c713c4f7ac assets/farmersdelight/items/fried_egg.json +367ef9dc650ed60312a71533b03568a50082354d assets/farmersdelight/items/fried_rice.json +2d5aef68a5f4969b43fd97c2d61c9c0e545d450a assets/farmersdelight/items/fruit_salad.json +b68334517f463222f71b062d017c0b4bf7ffffd7 assets/farmersdelight/items/full_tatami_mat.json +1844af52855d43aeeaa4e100ec4cff0e262d2faf assets/farmersdelight/items/gleaming_salad.json +913014d8e21d9e05db6a9046624719964fdddd5d assets/farmersdelight/items/gleaming_salad_block.json +56f1e540d5ad77057929cf8e846204d064887eff assets/farmersdelight/items/glow_berry_custard.json +2810aa3bfa2aeb99a7805dc8c0b98e7aeccddac4 assets/farmersdelight/items/golden_knife.json +6474e55d6a86440ba060345a93ddc24a9636e7aa assets/farmersdelight/items/gray_canvas_sign.json +ec677b845cf946db324fd0e36760a9047a7e8679 assets/farmersdelight/items/gray_hanging_canvas_sign.json +4010e79362c2e3e4be603cbb78c3e079e34c8036 assets/farmersdelight/items/green_canvas_sign.json +045779d44e1065dfe054cefb876fdc77a96c0a27 assets/farmersdelight/items/green_hanging_canvas_sign.json +178a9d8ff1e77ffe3029b64291e21a5bf80e9aae assets/farmersdelight/items/grilled_salmon.json +b2e042744f82289a7cdb2389a685b92fc306cdd8 assets/farmersdelight/items/half_tatami_mat.json +8ffe012f771e6ab907030ac8fb458f839f3a2f2e assets/farmersdelight/items/ham.json +36146fb13a8c2722a9253bbc660f0eb5ec616b13 assets/farmersdelight/items/hamburger.json +bb5b58b4e74772b176d4d7acf8ede9a27d62d468 assets/farmersdelight/items/hanging_canvas_sign.json +74b583bd56619c0fd272fffd787fb52531c99b1e assets/farmersdelight/items/honey_cookie.json +0fb57ed8fccea213bc32f1ed0fb425c7a84b8d2d assets/farmersdelight/items/honey_glazed_ham.json +31dc75ee6a68642976dd8abce86b2dcefd80f8e2 assets/farmersdelight/items/honey_glazed_ham_block.json +bd5b21fad643561adca5653e0de1914537b483f9 assets/farmersdelight/items/horse_feed.json +e337b0f68695180ce152c5d984a4a38be384729b assets/farmersdelight/items/hot_cocoa.json +30cb2afe7e1d3936bef78a89d639d1afcb19f1c1 assets/farmersdelight/items/iron_knife.json +692d3dba54b5a176fb933e8858ff5e14ef10b9a8 assets/farmersdelight/items/jungle_cabinet.json +8fef8e8f796a33e7dc09aa074e0886f482004f32 assets/farmersdelight/items/kelp_roll.json +b49312379f84fa9c226693ac60a25230188c4d73 assets/farmersdelight/items/kelp_roll_slice.json +6182cda9a6df3a02ff8ba1954f928794cfb0e9d0 assets/farmersdelight/items/light_blue_canvas_sign.json +389147db815114ebb4f81de894bd395f63e88b95 assets/farmersdelight/items/light_blue_hanging_canvas_sign.json +51cd1a22a302a2d6c38c1b3c135a5650cc023e0c assets/farmersdelight/items/light_gray_canvas_sign.json +72b3d1a24e7bd24684c178c30253c9f5fef0d06d assets/farmersdelight/items/light_gray_hanging_canvas_sign.json +245fd59490aad4935f95b5ad2533e78020d7e1a3 assets/farmersdelight/items/lime_canvas_sign.json +019cb6d2de57dc83189a09eb5e010b31d2c2a428 assets/farmersdelight/items/lime_hanging_canvas_sign.json +07ff7341f9a805d42864dc60d17c2b9ab3e88cc1 assets/farmersdelight/items/magenta_canvas_sign.json +182ff796dbea7363d0fd1618204ad4a351ebef62 assets/farmersdelight/items/magenta_hanging_canvas_sign.json +4d22493477e2b3032a2c23b6278e6142303292b6 assets/farmersdelight/items/mangrove_cabinet.json +04c89b1509b4d5171076777c0fdb9cf1350d11ca assets/farmersdelight/items/melon_juice.json +73601da31d002e6d9bb6bc809c90d3ae052e89d3 assets/farmersdelight/items/melon_popsicle.json +b330fcd27e6ea0c358c6d3df831a142ba4525571 assets/farmersdelight/items/milk_bottle.json +3745e15f6e2c76da6ddf72b6190b5b24fb6cab89 assets/farmersdelight/items/minced_beef.json +cc41372163943fd7aa6607a2715dee4a1a961c03 assets/farmersdelight/items/mixed_salad.json +4b8daf4b1c1f13ca412b8cbd1da4baae2c6c9a7c assets/farmersdelight/items/mushroom_rice.json +f8772204fbe1ef161ea68f0e84ae416ee5a673f6 assets/farmersdelight/items/mutton_chops.json +b6b1d43e836c2815a3446f50eec1786f1581b501 assets/farmersdelight/items/mutton_wrap.json +d621b27bf9e03c8ed48f21fc3f3106f8cc94b822 assets/farmersdelight/items/netherite_knife.json +85c85c09014676d70b370fd7ab918485773476cd assets/farmersdelight/items/nether_salad.json +4118c3861534e4ec2ea502901fa3d87edff70915 assets/farmersdelight/items/noodle_soup.json +e4dc3e43e380084ac04c5eeaf07af2842bf4006f assets/farmersdelight/items/oak_cabinet.json +3742dc55d1a57b46a8235db4e000e7dc0f8fd303 assets/farmersdelight/items/onion.json +1e6fb9edc4b665f386c380a643cd6e1e4e12edb1 assets/farmersdelight/items/onion_crate.json +9b527580a2c0d2f64defa1ddcd4f64be3db0fd0f assets/farmersdelight/items/onion_soup.json +0cb3c658a15998448563b201b3df8ff3a9d92105 assets/farmersdelight/items/orange_canvas_sign.json +2345b206f2ea27409cf68d8bb893b2dfb43a161b assets/farmersdelight/items/orange_hanging_canvas_sign.json +82e00a2a0a6ed8422674fa0d729fda9cf2a3cf70 assets/farmersdelight/items/organic_compost.json +7487cc5c5ec6cad903d2b7fa28396c3a5848e5a0 assets/farmersdelight/items/pasta_with_meatballs.json +835329060eadafe200296d222d3cc2024556f23b assets/farmersdelight/items/pasta_with_mutton_chop.json +0cb3e65b057e2bf4660439e4ecf58bf6e407f010 assets/farmersdelight/items/pie_crust.json +f20998d73fa955670ac18bd6e00efcaac53e4117 assets/farmersdelight/items/pink_canvas_sign.json +4c342285a3a8a883f1805daaf3f81637eceb23f9 assets/farmersdelight/items/pink_hanging_canvas_sign.json +b20b29fd58df4671b4d7213f069b32e723406ac1 assets/farmersdelight/items/potato_crate.json +42562fa5b70e79dc010c7c1f9a8a22acb5ebcdf6 assets/farmersdelight/items/pumpkin_pie_slice.json +6b014318ccd0cb3dd05e634ba651c2050ab1d559 assets/farmersdelight/items/pumpkin_slice.json +239bdbe04af8e5c17a20f5ef1f080306e52f3993 assets/farmersdelight/items/pumpkin_soup.json +4e218f285467f1b8004ff224a9a39ad09ea1f366 assets/farmersdelight/items/purple_canvas_sign.json +a12421c3845c513941af966d5cd5de18857f1710 assets/farmersdelight/items/purple_hanging_canvas_sign.json +bd682d04135bde940acfd2fc6387720569e91475 assets/farmersdelight/items/ratatouille.json +e819eb100f2987b351e8f371f9dfd57e2e8bec8a assets/farmersdelight/items/raw_pasta.json +c86595be35f4c540540a425d9e23164eb3015f32 assets/farmersdelight/items/red_canvas_sign.json +fa1d7e72cb9392e6662ca95070c278fc1f965370 assets/farmersdelight/items/red_hanging_canvas_sign.json +aef7a9d4c30ecc320954602f0ac163ac2758879d assets/farmersdelight/items/red_mushroom_colony.json +4dee14d45d35c8a19e87a872020f5c1b50463825 assets/farmersdelight/items/rice.json +9bb15dda4094d8649a99092ac5c71fb557ada469 assets/farmersdelight/items/rice_bag.json +9fe6afda8ca55e108cefd20f531a084dd0306093 assets/farmersdelight/items/rice_bale.json +f7e88247ddb09bf295b3eed224047f74657db831 assets/farmersdelight/items/rice_panicle.json +ea23f67402e787d21e5fb36eed4cc431ffee98bc assets/farmersdelight/items/rice_roll_medley_block.json +648a2d8395d38b9a4bc0b6e7bf382c4bf6ccf581 assets/farmersdelight/items/rich_soil.json +5a186ba7b88ae8c1d84e0b883f1a655076f7831d assets/farmersdelight/items/rich_soil_farmland.json +51833908da6cb46ecc1a7402358e465e77646725 assets/farmersdelight/items/roasted_mutton_chops.json +d6976808c9444087518c7fbfd22c08c996235ddf assets/farmersdelight/items/roast_chicken.json +fd40736c7af86a5eb58cc64919e364553557fe1c assets/farmersdelight/items/roast_chicken_block.json +495ae7fadbe204cfa371553bcea41a13d07891e1 assets/farmersdelight/items/rope.json +0316b87d18021507bda298b778783f5af40f32e2 assets/farmersdelight/items/rope_fence.json +9649f19bb70d8e7fb9cee246710707e21833cf92 assets/farmersdelight/items/rope_fence_gate.json +da4ec821544f1526cc9a59ed4c60ad261aa4e522 assets/farmersdelight/items/rotten_tomato.json +50e6213d23b9e6f5927e789b3f5e3cd2ca437220 assets/farmersdelight/items/safety_net.json +5f24178d811aade537418a7c4e2a9ac092319b9c assets/farmersdelight/items/salmon_roll.json +a609e9d0688c03a59a9b1b8c4dfd7719e60a47d1 assets/farmersdelight/items/salmon_slice.json +465b628e61f8c214cf51bac932b113470c9a082f assets/farmersdelight/items/sandy_shrub.json +06c4cc94787b62195e1478a58d2ee87782977f4e assets/farmersdelight/items/shepherds_pie.json +f6c6e4b48eac0576bf627bc6c43e4c5bca5c1782 assets/farmersdelight/items/shepherds_pie_block.json +8f4496f34b0a1f28234dd4c11a9602c1489c41f1 assets/farmersdelight/items/smoked_ham.json +43158f909736c7e4618729fab9844c21da237d93 assets/farmersdelight/items/spruce_cabinet.json +a4235437a57158e5ed2f85ce22ef5fdabafa8cee assets/farmersdelight/items/squid_ink_pasta.json +51d78e3c186e841244c79515618d499efc714759 assets/farmersdelight/items/steak_and_potatoes.json +56ad53e88806bc96e8a04364fb9a9f7b44007d9e assets/farmersdelight/items/stove.json +f6fade9ada8468c12900bb8f00386763f1d6284e assets/farmersdelight/items/straw.json +277c19d423c3c22127428551a67087c9a8676f99 assets/farmersdelight/items/straw_bale.json +40cc08af559873b321bc5a58fb11be3eaeb98899 assets/farmersdelight/items/stuffed_potato.json +40fb97c4b843ff08f7a63510f898d01a4906a586 assets/farmersdelight/items/stuffed_pumpkin.json +bea272871076ea52f0cd36218ce6417538ff16aa assets/farmersdelight/items/stuffed_pumpkin_block.json +b32b237c793eb0629837f56a5da904611a44972b assets/farmersdelight/items/sweet_berry_cheesecake.json +d65c8430f12864b94c9ff18168ca9b667caa1038 assets/farmersdelight/items/sweet_berry_cheesecake_slice.json +4408a576e6efb791efb89c2981799129820a53eb assets/farmersdelight/items/sweet_berry_cookie.json +5b68a3e1d860893744b09d8ce955067c7272a707 assets/farmersdelight/items/tatami.json +a3b121370250f349ce6fa6a571d4602b879cebf1 assets/farmersdelight/items/tomato.json +fb115cd76ecb67c3dbadf8610109066484f1af3c assets/farmersdelight/items/tomato_crate.json +fbc29cd86b4a3262af249b33f674a7cf76bee485 assets/farmersdelight/items/tomato_sauce.json +69c927b343bb2f61885d3e1c725cb50d69d005ec assets/farmersdelight/items/tomato_seeds.json +b0e8ed97163afe116bd1013babdc60bf9dd5c485 assets/farmersdelight/items/tree_bark.json +82347ab08d450f82eddcda351ece85cfbdc3e41b assets/farmersdelight/items/vegetable_noodles.json +2d25adaeedb5d3f1afee708467bb85afe977abce assets/farmersdelight/items/vegetable_soup.json +4500ae3c41fe1fcc961af700498539cfc2bd5d85 assets/farmersdelight/items/warped_cabinet.json +a1f1584913b3c9073dfc373ba5fa0e3386f29855 assets/farmersdelight/items/wheat_dough.json +1759d6e3ed5811c28bcf23ce995724c5d2424627 assets/farmersdelight/items/white_canvas_sign.json +c6a6728fd886de4db0172899e7ac60a73dad53ae assets/farmersdelight/items/white_hanging_canvas_sign.json +59395118c4ac5823605872350405efee96956cd5 assets/farmersdelight/items/wild_beetroots.json +68b8415987fd95f824439a525b2f0ed14e888344 assets/farmersdelight/items/wild_cabbages.json +222329cf787fae0870d705bf5d98339fd668ef05 assets/farmersdelight/items/wild_carrots.json +93ed59e026b929b345df71512e3edbfc30c4bc60 assets/farmersdelight/items/wild_onions.json +0df9955fe2b4f00c056277aabc8948c132657132 assets/farmersdelight/items/wild_potatoes.json +55d6413b935087009b67cdbb7b540d8e65dc4c9f assets/farmersdelight/items/wild_rice.json +8785cc36c9ed7b43841674e371969fb6346ee2b1 assets/farmersdelight/items/wild_tomatoes.json +7d650ccbe03af1d2054f087d1c6874233749c950 assets/farmersdelight/items/wooden_basket.json +3819b13ef447e3d03f15a665c4192f1266cd8f3b assets/farmersdelight/items/yellow_canvas_sign.json +bcfc82895a068dea66193c75ca42c73f483e2d2d assets/farmersdelight/items/yellow_hanging_canvas_sign.json +a58cc863fafd0f13d1235a2f7344b446f853ae55 assets/farmersdelight/models/item/apple_cider.json +8348e66b9efe6a92614cca78c3463d3efaea57fa assets/farmersdelight/models/item/apple_pie.json +28f30b5c9272045e5fc6f5a418b723982d564aae assets/farmersdelight/models/item/apple_pie_slice.json +ad2a8f7967c3246637ca59cc318dd622da19e59c assets/farmersdelight/models/item/bacon.json +52d5d47595857a38040a68d360b49037fd0f0e07 assets/farmersdelight/models/item/bacon_and_eggs.json +fdf3aec6a0587d7433fc34838c06bc4629b42b6f assets/farmersdelight/models/item/bacon_sandwich.json +bc153118bad1dff35ed07c8f14b40c7676c834b7 assets/farmersdelight/models/item/baked_cod_stew.json +3f305623cf41b67d5a413a67291a1c0a5c50e8fc assets/farmersdelight/models/item/barbecue_stick.json +204aea5fb950c545194b505b420083f03d274fe5 assets/farmersdelight/models/item/beef_patty.json +849ebf719f4e3dfe046dad1f95a294a05ad92669 assets/farmersdelight/models/item/beef_stew.json +4809e3369a27fc4e1b5d6c559d858c0daeeca10b assets/farmersdelight/models/item/black_canvas_sign.json +b0de759977514812c715c8b6442cd5b3afe716a7 assets/farmersdelight/models/item/black_hanging_canvas_sign.json +9a1a8922c14b117316b3f55eb3192c7e4a32e9c4 assets/farmersdelight/models/item/blue_canvas_sign.json +77ff2ae863630d9c2ac5a05d19d455ae1948f2d9 assets/farmersdelight/models/item/blue_hanging_canvas_sign.json +96a3f2a00ab931a19daacf8b3904837985907bc9 assets/farmersdelight/models/item/bone_broth.json +3471c18a8d1a7b9a09d02b2286664f5c4b2df6b6 assets/farmersdelight/models/item/brown_canvas_sign.json +bffa31ad92b5b1e4460292a1ccb20fe909e7bd46 assets/farmersdelight/models/item/brown_hanging_canvas_sign.json +62871cff7c5bd2746a3e4156baa3460eb1b903fb assets/farmersdelight/models/item/brown_mushroom_colony.json +2cb118cee1b5aa89228ff3c7935c2b9712cab82f assets/farmersdelight/models/item/cabbage.json +fbc9aeced286d441e6d2f9fa2d3634431a85746b assets/farmersdelight/models/item/cabbage_leaf.json +8c297a334371c8f2dcded0f3c78d92240c67be3e assets/farmersdelight/models/item/cabbage_rolls.json +37092a3f661532502834aa4ea3543d0d5b195677 assets/farmersdelight/models/item/cabbage_seeds.json +2e8ef78768ddc080fc592d88347e66df6326adac assets/farmersdelight/models/item/cake_slice.json +f6fba3fac94e89d80192f0e74995b49067804593 assets/farmersdelight/models/item/canvas.json +e84a0b6f51f2b3fa65a7dc11f1be128d1af7f87d assets/farmersdelight/models/item/canvas_sign.json +dffb28c59c7451fdd763ab7157d59f7722b1a36f assets/farmersdelight/models/item/chicken_cuts.json +7be865ac00c8572b1fab06ef4d474549b38c9651 assets/farmersdelight/models/item/chicken_sandwich.json +394628d5ee734c0c2c69c9ec31174198ce5a50de assets/farmersdelight/models/item/chicken_soup.json +2c717c3b78eff927bac96dbc2e2c2d768cd168e0 assets/farmersdelight/models/item/chocolate_pie.json +c0389c28d9a719192947390f82f8e21835c14542 assets/farmersdelight/models/item/chocolate_pie_slice.json +c84474984c0eac247302331dc999c9a79aa7b787 assets/farmersdelight/models/item/cod_roll.json +3e37ac289dcd54a1f0f4eec904be66530c0e6fbe assets/farmersdelight/models/item/cod_slice.json +f097ef00daddcaeb4714fa0cf42df9482b98e047 assets/farmersdelight/models/item/cooked_bacon.json +4d0143a2aabcfa016cb3a9527e58837108ba5cb7 assets/farmersdelight/models/item/cooked_chicken_cuts.json +3564bd42d781955191f4fd19d0c548d59957b7a8 assets/farmersdelight/models/item/cooked_cod_slice.json +0a5899ea62a3bc142a969d00eb94b605491f5117 assets/farmersdelight/models/item/cooked_mutton_chops.json +4da5710d0936158de50578f95ab0d85098c305f8 assets/farmersdelight/models/item/cooked_rice.json +217248d43c15ff6f3212a6e9d40326d358a6bc39 assets/farmersdelight/models/item/cooked_salmon_slice.json +a691864348915a571a4a9928eba459db5a0187f3 assets/farmersdelight/models/item/cyan_canvas_sign.json +c9224c94911851e0b3d6c18a6b0911425e44a9d7 assets/farmersdelight/models/item/cyan_hanging_canvas_sign.json +eddeaac38c032ffb2b9070e62bba663d8d0bb7ba assets/farmersdelight/models/item/debug_pumpkin_pie.json +62c4845186802120d39f2e52610dc51cc5186c9f assets/farmersdelight/models/item/diamond_knife.json +3871c48190a671fa457aa0a2b9b8791e410845c8 assets/farmersdelight/models/item/dog_food.json +9f8fc38ac6e5e8f49dc27599fd50d75d98c2665a assets/farmersdelight/models/item/dumplings.json +1f6706dedd64bd7f48ef13f667335a9b300cbefe assets/farmersdelight/models/item/egg_sandwich.json +50acb51ac1675973fc8bf17c0bfe39a7f3265a00 assets/farmersdelight/models/item/fish_stew.json +ff5649c08334d4c2c8b6fef66989d12b040252bc assets/farmersdelight/models/item/flint_knife.json +4b14387aa929058b4937d9bf965b858ddef6fc71 assets/farmersdelight/models/item/fried_egg.json +12b3bd5c682412a932242927fa97d206fafac05f assets/farmersdelight/models/item/fried_rice.json +6e6936311a0d6ff359613f6d84947140ea860266 assets/farmersdelight/models/item/fruit_salad.json +7781caaeef1e03dbcaad9fdc822dcd83e84affde assets/farmersdelight/models/item/full_tatami_mat.json +56a04b176750bd9ebd04c47b361483b5f0a4a001 assets/farmersdelight/models/item/gleaming_salad.json +025994a3e2f41db400539edd2a90eccfb11a67bf assets/farmersdelight/models/item/gleaming_salad_block.json +7478b2c8395db2ad15eb4d32fc15fe0cd376ce8a assets/farmersdelight/models/item/glow_berry_custard.json +a4314660221dcffd6c4276a1ae8dc8e0914a3309 assets/farmersdelight/models/item/golden_knife.json +4ba6f6ca71923cf71e4f7c1285b0901309023e97 assets/farmersdelight/models/item/gray_canvas_sign.json +9a1054ae49b07d919f51434a7f28cb420f2e8dcb assets/farmersdelight/models/item/gray_hanging_canvas_sign.json +0707392a7b2cf8c889d724a644a728f27d8db21e assets/farmersdelight/models/item/green_canvas_sign.json +e288586ba82daaf04fb31becc8594b044e4f3d04 assets/farmersdelight/models/item/green_hanging_canvas_sign.json +67c739e3fc5caa80a076ea52f5dae0c2e30255b8 assets/farmersdelight/models/item/grilled_salmon.json +e4a898e51b9e7e412756e886c09eacb449f0dd70 assets/farmersdelight/models/item/half_tatami_mat.json +d4d4a5e824ae415efc16aedbaf04be3dd381ccef assets/farmersdelight/models/item/ham.json +2409a4cff59afc6932b205ed287337765f412f8c assets/farmersdelight/models/item/hamburger.json +6675be7dd97b8c19ac7344029cad926a3b444b61 assets/farmersdelight/models/item/hanging_canvas_sign.json +6863801e307626d269f520abcf247ef7cb6818f4 assets/farmersdelight/models/item/honey_cookie.json +2c43c586cc0553726a6904a4b1aa3f7aa5e12fd4 assets/farmersdelight/models/item/honey_glazed_ham.json +db8cd73cb30ef5633964155e90c29897aa58810a assets/farmersdelight/models/item/honey_glazed_ham_block.json +cf2a22b63d8daf6cd9b1cdb2a2bd2da6932f7d6f assets/farmersdelight/models/item/horse_feed.json +8dea6006499057f7b97173602c6ffa7b9f7e36b4 assets/farmersdelight/models/item/hot_cocoa.json +133febcd14bbe80692c99d0f67542686780490de assets/farmersdelight/models/item/iron_knife.json +a0836f799b4c9b924f0def317912ec9182ab0b54 assets/farmersdelight/models/item/kelp_roll.json +1e848c3f12993557d462f6ddfe41093988ef57ce assets/farmersdelight/models/item/kelp_roll_slice.json +1a43b8a7161fb30d9310370018247e1ce96446ed assets/farmersdelight/models/item/light_blue_canvas_sign.json +b896f01f9e21b436154aacc4f329e412ae8c3717 assets/farmersdelight/models/item/light_blue_hanging_canvas_sign.json +e1c7ade4a3eef3131c8edd4de7484f15888bc6d4 assets/farmersdelight/models/item/light_gray_canvas_sign.json +34f8375231138fecea68b1e00cd9a44d96ea2312 assets/farmersdelight/models/item/light_gray_hanging_canvas_sign.json +68b37c34e22afb1ddd484ab700936d7b0f60002e assets/farmersdelight/models/item/lime_canvas_sign.json +0ee022311a0bdaa1fa50baa0fac81048a61c15d8 assets/farmersdelight/models/item/lime_hanging_canvas_sign.json +6c0e75ae202186a85e8b8a5914022b766079b2f8 assets/farmersdelight/models/item/magenta_canvas_sign.json +dd5abf5e41e50624420fcaa0171c4429be9cdf3a assets/farmersdelight/models/item/magenta_hanging_canvas_sign.json +92496d1709e022d50fd4bd0c57d5839eacff70fe assets/farmersdelight/models/item/melon_juice.json +c3a381356341fa39957aca63a5f787fa9e7008ef assets/farmersdelight/models/item/melon_popsicle.json +6ab158c9d3318baaf2ea2fac85ac74a1c15aaff4 assets/farmersdelight/models/item/milk_bottle.json +3675d619cde5b97996a94432bf551f7664d129a8 assets/farmersdelight/models/item/minced_beef.json +0eeab3877e770caaec83789ab8c9d76ef2db8975 assets/farmersdelight/models/item/mixed_salad.json +492dbf3486f0b2558a31d49022caa9a11d836346 assets/farmersdelight/models/item/mushroom_rice.json +1a39d8da91d4b4df29ec6a998eeb4de99f345c07 assets/farmersdelight/models/item/mutton_chops.json +9b2fa3d0a64e63a92eee674992bf2cb832e0cb03 assets/farmersdelight/models/item/mutton_wrap.json +cec3a2e5a114d876a21f4be6a65c9e87a3259441 assets/farmersdelight/models/item/netherite_knife.json +b0ef7784e4c3dc2ea1d66b3e81cbf592bb4a4722 assets/farmersdelight/models/item/nether_salad.json +7a025a63ece7dcb7e26c482c172d55bc5f837e9d assets/farmersdelight/models/item/noodle_soup.json +8238d120d6fb4abb3e3fc1c6a3a1e4e7ae6b54d9 assets/farmersdelight/models/item/onion.json +719de2e57e084b100323aae588e7cb4c8753378c assets/farmersdelight/models/item/onion_soup.json +396cd864adc7fbdb4c80ad81cc883ce2d975ae1c assets/farmersdelight/models/item/orange_canvas_sign.json +a8c85cf3bfcd9253aeb47b6d644d48ffb3aada2c assets/farmersdelight/models/item/orange_hanging_canvas_sign.json +921e90b74177f0ac79cf38b45f6d7b63edcb1ca3 assets/farmersdelight/models/item/pasta_with_meatballs.json +5c3f7c116c79005dfe7e0849035113605da69e0d assets/farmersdelight/models/item/pasta_with_mutton_chop.json +69d6ecf35c18fa4dc95a310dbc8ef1884b17313a assets/farmersdelight/models/item/pie_crust.json +810e3872fd42a96f9b3b0f63ff3706e57a6d9cdf assets/farmersdelight/models/item/pink_canvas_sign.json +5ba1c9f67fa35c404f397071208c6d6868297281 assets/farmersdelight/models/item/pink_hanging_canvas_sign.json +2e4db83eacf20bc99113960e1257b4120d6cd35f assets/farmersdelight/models/item/pumpkin_pie_slice.json +74fafba2f812b545a7a9d040eb1f81555a1945c7 assets/farmersdelight/models/item/pumpkin_slice.json +b69b0a3497b81b2046748f1339af526a8920a1f1 assets/farmersdelight/models/item/pumpkin_soup.json +56dbbbdcb21b258b8a94c6b9c8c7efb31eb689a4 assets/farmersdelight/models/item/purple_canvas_sign.json +bc495aedc79706c0e608d0ac20271edba839c10d assets/farmersdelight/models/item/purple_hanging_canvas_sign.json +942f2ab7e0eb2906c300dfe71b6bf00e3a6befda assets/farmersdelight/models/item/ratatouille.json +1443b93d0569eb4fbc81a5bedaf867061a415524 assets/farmersdelight/models/item/raw_pasta.json +29b78b7f448aa2066937a817113308ce4d4b3d47 assets/farmersdelight/models/item/red_canvas_sign.json +31ea5624a613c42849af5d7147e3289a8521f99d assets/farmersdelight/models/item/red_hanging_canvas_sign.json +dcce1bd48fadd0842ec30d3f97f6fd054ca1ee15 assets/farmersdelight/models/item/red_mushroom_colony.json +bb975bb4dafb2afc9fe854434e94557faf841b2d assets/farmersdelight/models/item/rice.json +e757f56f1f494b15e0fb40ebfc9cc8a12af3256f assets/farmersdelight/models/item/rice_panicle.json +63e2894acae33e9912e85c0e9c941a7c7a3cc6f3 assets/farmersdelight/models/item/rice_roll_medley_block.json +2d14bba24f1b4ebc7e22b71164934a653a1ae11e assets/farmersdelight/models/item/roasted_mutton_chops.json +61977acbfe4a439f360e42bff6f2d27620734f9d assets/farmersdelight/models/item/roast_chicken.json +98dd366831303816384882e4aa1a202ad544afc3 assets/farmersdelight/models/item/roast_chicken_block.json +b15a223c8c507c4e37589d6d8d04ab406e58c660 assets/farmersdelight/models/item/rope.json +fc557dc149fd5dad772bb096cffe465d6352ffb7 assets/farmersdelight/models/item/rotten_tomato.json +805a255189bc6723f392a197ce88c78804365e8f assets/farmersdelight/models/item/safety_net.json +df9fcba774634b5fd6df69ed914ad983a954fcd5 assets/farmersdelight/models/item/salmon_roll.json +5a4804df4b08628ad1a7c5848d34046210406230 assets/farmersdelight/models/item/salmon_slice.json +ce514f125e3b8c84e0e03397b686ef11adaa4901 assets/farmersdelight/models/item/sandy_shrub.json +fae467eaced9bfe275f42a92235a49d3cea40d2f assets/farmersdelight/models/item/shepherds_pie.json +d9673de312d6419827b6822485821cdf39f2481e assets/farmersdelight/models/item/shepherds_pie_block.json +c7b9c428da59e499e63fc63a6dffd18954540b2d assets/farmersdelight/models/item/smoked_ham.json +90043b128322c6889a624d2711c73cdca78b3091 assets/farmersdelight/models/item/squid_ink_pasta.json +3495a87a87f0ef87068aa5083b1f224e5721baab assets/farmersdelight/models/item/steak_and_potatoes.json +b35701a977b869c74a825c10c9d352e9550af711 assets/farmersdelight/models/item/straw.json +bb7a680a396b98c468a2bb81e1822f7a6c8d6a47 assets/farmersdelight/models/item/stuffed_potato.json +870ea003d41702209ef68372c54b35b23f7678a2 assets/farmersdelight/models/item/stuffed_pumpkin.json +47c5bf597dd60bee20b7c202414903e80deaffb9 assets/farmersdelight/models/item/stuffed_pumpkin_block.json +852ff7ab1dfb6f27e4ad9b883b080bc8961c2d9e assets/farmersdelight/models/item/sweet_berry_cheesecake.json +74eb84ea702c4f6cef3870f128a12c2a9b41a227 assets/farmersdelight/models/item/sweet_berry_cheesecake_slice.json +07c3ba71e6b0815a62ff5ef98fd3f96d7a239351 assets/farmersdelight/models/item/sweet_berry_cookie.json +3db16d1b3f4f637b69edaa13ff022640351b88b2 assets/farmersdelight/models/item/tomato.json +866d0fa2336c2e085cce9707e9e2e0a153be791b assets/farmersdelight/models/item/tomato_sauce.json +12a5748e427e3e6f6472784f73b0635e0ca3662a assets/farmersdelight/models/item/tomato_seeds.json +4b8ac882b0d2da18a50dce84a3733d1d8b6c3dbc assets/farmersdelight/models/item/tree_bark.json +4a52d396e47fea251781cb81682b1165c08ee4bf assets/farmersdelight/models/item/vegetable_noodles.json +9ff3ce1e41f509694a0283523c223fcd162f0327 assets/farmersdelight/models/item/vegetable_soup.json +a634b899a40afb954687cb05b4d92420e1584fff assets/farmersdelight/models/item/wheat_dough.json +8f5b480ffffcee4b8bb2999dff640e692f323e2f assets/farmersdelight/models/item/white_canvas_sign.json +2adddb7cb6fa2b4b3a4c52f54c13e10addd76e6f assets/farmersdelight/models/item/white_hanging_canvas_sign.json +cfd08c1aabe6c928432873b4e65f4cae588295e0 assets/farmersdelight/models/item/wild_beetroots.json +e69be57b3c82877a1b206cc3939611e51fdb1f58 assets/farmersdelight/models/item/wild_cabbages.json +1af9a8b0161bcf4c736811a1992169cbe24e97c5 assets/farmersdelight/models/item/wild_carrots.json +fdb1712097f483c988f1772c4e2d5acb7ab5df5c assets/farmersdelight/models/item/wild_onions.json +a6714943bd149e3f8d5ceec7360c97c2d73f58e0 assets/farmersdelight/models/item/wild_potatoes.json +bbb0d8ddc79bea8017820879d8de85615bdb335a assets/farmersdelight/models/item/wild_rice.json +a411b17beb9b8789122f746d47803b36e8282618 assets/farmersdelight/models/item/wild_tomatoes.json +667a990f59dcf205ffb4fecc0f7667dc4383e8bf assets/farmersdelight/models/item/yellow_canvas_sign.json +e21c56208bb57a47cd68b87c9ce04f0b0851becb assets/farmersdelight/models/item/yellow_hanging_canvas_sign.json diff --git a/src/generated/resources/.cache/e0d3d0b8d9c807675613821fa865a35f707cd83f b/src/generated/resources/.cache/e0d3d0b8d9c807675613821fa865a35f707cd83f deleted file mode 100644 index 02f999972..000000000 --- a/src/generated/resources/.cache/e0d3d0b8d9c807675613821fa865a35f707cd83f +++ /dev/null @@ -1,3 +0,0 @@ -// 1.21.1 2026-05-05T19:36:30.0915409 Data Maps -bd57988f73d8086c447f17df94b7d9ee4d152afc data/neoforge/data_maps/item/compostables.json -a0610df0faa29451991157d500c85187489ab17f data/neoforge/data_maps/item/furnace_fuels.json diff --git a/src/generated/resources/.cache/e5c5eb35b4ba40351ecb7d9f04c3527f2f5779b0 b/src/generated/resources/.cache/e5c5eb35b4ba40351ecb7d9f04c3527f2f5779b0 deleted file mode 100644 index ae0eff601..000000000 --- a/src/generated/resources/.cache/e5c5eb35b4ba40351ecb7d9f04c3527f2f5779b0 +++ /dev/null @@ -1,22 +0,0 @@ -// 1.21.1 2026-04-04T20:31:43.5250688 Advancements -1080d54473e32dfd6e807c9d402ea3efe1b4c664 data/farmersdelight/advancement/main/craft_knife.json -f1ea0849c11fff7d188e90c4a1e606f774d98fb2 data/farmersdelight/advancement/main/eat_nourishing_food.json -38af8c2f8250d74922b4b414b4211b9e10afe891 data/farmersdelight/advancement/main/get_fd_seed.json -d44b8060f0dd89fdc8caa7767e9b916d1fd10891 data/farmersdelight/advancement/main/get_ham.json -90f26b9894150afc19be3210ec6597a8cf86909d data/farmersdelight/advancement/main/get_mushroom_colony.json -4c91acc21e522a1ee4736f832f582fb3f129589b data/farmersdelight/advancement/main/get_rich_soil.json -394de1a5220e33cee1f1a7646c11dd396ab379a5 data/farmersdelight/advancement/main/harvest_ropelogged_tomato.json -0059170e586f97d5b3812397416e296d282c6fea data/farmersdelight/advancement/main/harvest_straw.json -421ee229a18f3d01d67352b28bd7dfa3fd782845 data/farmersdelight/advancement/main/hit_raider_with_rotten_tomato.json -3a4d09156e413528c9ce99698c630ea1eb111e64 data/farmersdelight/advancement/main/master_chef.json -2371fa8dd36649ce6617c125c49ffca90f1828a4 data/farmersdelight/advancement/main/obtain_netherite_knife.json -112c316a3fee17241b83e74e03b04721a9dac5c6 data/farmersdelight/advancement/main/place_campfire.json -0e75b1af0f8b20df63d7c289cf7ca0551ae28553 data/farmersdelight/advancement/main/place_cooking_pot.json -46a691e846f1d036c409aaae44733a3f0c145678 data/farmersdelight/advancement/main/place_feast.json -fa49d4f380edab60c44570931dabc0d71d6e7a0d data/farmersdelight/advancement/main/place_organic_compost.json -a6033c4b42f0874547ab0e149e17fbf37342ee8a data/farmersdelight/advancement/main/place_skillet.json -4fb1b3c7ea7cb900eef6b7ef45eb699f4fdb2826 data/farmersdelight/advancement/main/plant_all_crops.json -fb2c11b5ab453ffd97d0c12d622c0ac898736cd7 data/farmersdelight/advancement/main/plant_rice.json -410e578e52ab82ca44b301b83b8e21a274d463b6 data/farmersdelight/advancement/main/root.json -f82e6726a15f88a1051c8d8c45b332a33404a6d5 data/farmersdelight/advancement/main/use_cutting_board.json -42469dd1986a5907f2718a54cbc41be3e863435c data/farmersdelight/advancement/main/use_skillet.json diff --git a/src/generated/resources/.cache/eb988f5004aa6ab76b05474d295e626a254364e4 b/src/generated/resources/.cache/eb988f5004aa6ab76b05474d295e626a254364e4 deleted file mode 100644 index aca6caeb1..000000000 --- a/src/generated/resources/.cache/eb988f5004aa6ab76b05474d295e626a254364e4 +++ /dev/null @@ -1,243 +0,0 @@ -// 1.21.1 2026-03-25T01:14:08.5506294 Block States: farmersdelight -d4d9057afde725ea2a48206d8c1ea6eee4ec1c24 assets/farmersdelight/blockstates/acacia_cabinet.json -c1a643b06507467b350b8eedb4cc05f93d71abb2 assets/farmersdelight/blockstates/apple_pie.json -9b32f44318d93a46cd087e21d1834a77d2b14fa7 assets/farmersdelight/blockstates/bamboo_basket.json -5cf28a36e15368244462670289f57eb16fa0a086 assets/farmersdelight/blockstates/bamboo_cabinet.json -12936227789a93a5f57fe04f99a7697b9d47121b assets/farmersdelight/blockstates/beetroot_crate.json -a9fe3db0d209aa7e3dd328b32ebc776e0b8e998d assets/farmersdelight/blockstates/birch_cabinet.json -8ee2f7c922e1e098812e0bd0cc5c7633f5632216 assets/farmersdelight/blockstates/black_canvas_sign.json -8ee2f7c922e1e098812e0bd0cc5c7633f5632216 assets/farmersdelight/blockstates/black_canvas_wall_sign.json -8ee2f7c922e1e098812e0bd0cc5c7633f5632216 assets/farmersdelight/blockstates/black_hanging_canvas_sign.json -8ee2f7c922e1e098812e0bd0cc5c7633f5632216 assets/farmersdelight/blockstates/black_wall_hanging_canvas_sign.json -8ee2f7c922e1e098812e0bd0cc5c7633f5632216 assets/farmersdelight/blockstates/blue_canvas_sign.json -8ee2f7c922e1e098812e0bd0cc5c7633f5632216 assets/farmersdelight/blockstates/blue_canvas_wall_sign.json -8ee2f7c922e1e098812e0bd0cc5c7633f5632216 assets/farmersdelight/blockstates/blue_hanging_canvas_sign.json -8ee2f7c922e1e098812e0bd0cc5c7633f5632216 assets/farmersdelight/blockstates/blue_wall_hanging_canvas_sign.json -8ee2f7c922e1e098812e0bd0cc5c7633f5632216 assets/farmersdelight/blockstates/brown_canvas_sign.json -8ee2f7c922e1e098812e0bd0cc5c7633f5632216 assets/farmersdelight/blockstates/brown_canvas_wall_sign.json -8ee2f7c922e1e098812e0bd0cc5c7633f5632216 assets/farmersdelight/blockstates/brown_hanging_canvas_sign.json -197de96806339c6bd5e99d8da9156c746b530128 assets/farmersdelight/blockstates/brown_mushroom_colony.json -8ee2f7c922e1e098812e0bd0cc5c7633f5632216 assets/farmersdelight/blockstates/brown_wall_hanging_canvas_sign.json -07e7cbfda72043537fb5be1765cfa8864c17a205 assets/farmersdelight/blockstates/budding_tomatoes.json -0e2dcbbb710b5aac3929ecbecc1e158abe456087 assets/farmersdelight/blockstates/cabbages.json -b95ef5c1d0b1538ac6b6c9c538760d4106ac18ca assets/farmersdelight/blockstates/cabbage_crate.json -c24712bba0c0bf4d82e5c4d10366e1c1bf6b8ef2 assets/farmersdelight/blockstates/canvas_rug.json -8ee2f7c922e1e098812e0bd0cc5c7633f5632216 assets/farmersdelight/blockstates/canvas_sign.json -8ee2f7c922e1e098812e0bd0cc5c7633f5632216 assets/farmersdelight/blockstates/canvas_wall_sign.json -c0f89cb303eb1a79be5959b3af35f486786bbfad assets/farmersdelight/blockstates/carrot_crate.json -8426c4e5f1684aaf8be4d78082e548dacc3af5e1 assets/farmersdelight/blockstates/cherry_cabinet.json -47ee340614aea91969545b1f55cb9ef4a6052b52 assets/farmersdelight/blockstates/chocolate_pie.json -6225b34d22e652269d4040ba5e3b5caf54512fce assets/farmersdelight/blockstates/cooking_pot.json -c04b606f243c989a5ef6718961134ccf92fd1323 assets/farmersdelight/blockstates/crimson_cabinet.json -f2cdfdf57f84b5e538ef28b793361da993bcc7d3 assets/farmersdelight/blockstates/cutting_board.json -8ee2f7c922e1e098812e0bd0cc5c7633f5632216 assets/farmersdelight/blockstates/cyan_canvas_sign.json -8ee2f7c922e1e098812e0bd0cc5c7633f5632216 assets/farmersdelight/blockstates/cyan_canvas_wall_sign.json -8ee2f7c922e1e098812e0bd0cc5c7633f5632216 assets/farmersdelight/blockstates/cyan_hanging_canvas_sign.json -8ee2f7c922e1e098812e0bd0cc5c7633f5632216 assets/farmersdelight/blockstates/cyan_wall_hanging_canvas_sign.json -7fe5bdcd3dab8725b3f9457657d11c490f9e4750 assets/farmersdelight/blockstates/dark_oak_cabinet.json -55c4c48f207c7ad958f5d591c207847ab52b311d assets/farmersdelight/blockstates/full_tatami_mat.json -a7fe5c7b4401d355ecbe19728198637810bebdd1 assets/farmersdelight/blockstates/gleaming_salad_block.json -8ee2f7c922e1e098812e0bd0cc5c7633f5632216 assets/farmersdelight/blockstates/gray_canvas_sign.json -8ee2f7c922e1e098812e0bd0cc5c7633f5632216 assets/farmersdelight/blockstates/gray_canvas_wall_sign.json -8ee2f7c922e1e098812e0bd0cc5c7633f5632216 assets/farmersdelight/blockstates/gray_hanging_canvas_sign.json -8ee2f7c922e1e098812e0bd0cc5c7633f5632216 assets/farmersdelight/blockstates/gray_wall_hanging_canvas_sign.json -8ee2f7c922e1e098812e0bd0cc5c7633f5632216 assets/farmersdelight/blockstates/green_canvas_sign.json -8ee2f7c922e1e098812e0bd0cc5c7633f5632216 assets/farmersdelight/blockstates/green_canvas_wall_sign.json -8ee2f7c922e1e098812e0bd0cc5c7633f5632216 assets/farmersdelight/blockstates/green_hanging_canvas_sign.json -8ee2f7c922e1e098812e0bd0cc5c7633f5632216 assets/farmersdelight/blockstates/green_wall_hanging_canvas_sign.json -5c0ee990cd3c994d79b0b45aab2af9dfa67b18e7 assets/farmersdelight/blockstates/half_tatami_mat.json -8ee2f7c922e1e098812e0bd0cc5c7633f5632216 assets/farmersdelight/blockstates/hanging_canvas_sign.json -a6d3d3adf7b588d6c0e7dfa1db78a6e678a0e752 assets/farmersdelight/blockstates/honey_glazed_ham_block.json -278ecbe852ffc3904b2a55b24a7b5e0d1220807a assets/farmersdelight/blockstates/jungle_cabinet.json -8ee2f7c922e1e098812e0bd0cc5c7633f5632216 assets/farmersdelight/blockstates/light_blue_canvas_sign.json -8ee2f7c922e1e098812e0bd0cc5c7633f5632216 assets/farmersdelight/blockstates/light_blue_canvas_wall_sign.json -8ee2f7c922e1e098812e0bd0cc5c7633f5632216 assets/farmersdelight/blockstates/light_blue_hanging_canvas_sign.json -8ee2f7c922e1e098812e0bd0cc5c7633f5632216 assets/farmersdelight/blockstates/light_blue_wall_hanging_canvas_sign.json -8ee2f7c922e1e098812e0bd0cc5c7633f5632216 assets/farmersdelight/blockstates/light_gray_canvas_sign.json -8ee2f7c922e1e098812e0bd0cc5c7633f5632216 assets/farmersdelight/blockstates/light_gray_canvas_wall_sign.json -8ee2f7c922e1e098812e0bd0cc5c7633f5632216 assets/farmersdelight/blockstates/light_gray_hanging_canvas_sign.json -8ee2f7c922e1e098812e0bd0cc5c7633f5632216 assets/farmersdelight/blockstates/light_gray_wall_hanging_canvas_sign.json -8ee2f7c922e1e098812e0bd0cc5c7633f5632216 assets/farmersdelight/blockstates/lime_canvas_sign.json -8ee2f7c922e1e098812e0bd0cc5c7633f5632216 assets/farmersdelight/blockstates/lime_canvas_wall_sign.json -8ee2f7c922e1e098812e0bd0cc5c7633f5632216 assets/farmersdelight/blockstates/lime_hanging_canvas_sign.json -8ee2f7c922e1e098812e0bd0cc5c7633f5632216 assets/farmersdelight/blockstates/lime_wall_hanging_canvas_sign.json -8ee2f7c922e1e098812e0bd0cc5c7633f5632216 assets/farmersdelight/blockstates/magenta_canvas_sign.json -8ee2f7c922e1e098812e0bd0cc5c7633f5632216 assets/farmersdelight/blockstates/magenta_canvas_wall_sign.json -8ee2f7c922e1e098812e0bd0cc5c7633f5632216 assets/farmersdelight/blockstates/magenta_hanging_canvas_sign.json -8ee2f7c922e1e098812e0bd0cc5c7633f5632216 assets/farmersdelight/blockstates/magenta_wall_hanging_canvas_sign.json -83d4e1f74cec4b0091e4f6104544a2dd09542ab3 assets/farmersdelight/blockstates/mangrove_cabinet.json -934dee95295c21888f9873c7317c46f8bae48579 assets/farmersdelight/blockstates/oak_cabinet.json -f81af0a46763e17ef99dcdee35610540af574672 assets/farmersdelight/blockstates/onions.json -860f0d03ca8d6571d3d1182978a2b28d878ae143 assets/farmersdelight/blockstates/onion_crate.json -8ee2f7c922e1e098812e0bd0cc5c7633f5632216 assets/farmersdelight/blockstates/orange_canvas_sign.json -8ee2f7c922e1e098812e0bd0cc5c7633f5632216 assets/farmersdelight/blockstates/orange_canvas_wall_sign.json -8ee2f7c922e1e098812e0bd0cc5c7633f5632216 assets/farmersdelight/blockstates/orange_hanging_canvas_sign.json -8ee2f7c922e1e098812e0bd0cc5c7633f5632216 assets/farmersdelight/blockstates/orange_wall_hanging_canvas_sign.json -5eedefd9f6fba07ef77badbcf46404cc2abc0b1b assets/farmersdelight/blockstates/organic_compost.json -8ee2f7c922e1e098812e0bd0cc5c7633f5632216 assets/farmersdelight/blockstates/pink_canvas_sign.json -8ee2f7c922e1e098812e0bd0cc5c7633f5632216 assets/farmersdelight/blockstates/pink_canvas_wall_sign.json -8ee2f7c922e1e098812e0bd0cc5c7633f5632216 assets/farmersdelight/blockstates/pink_hanging_canvas_sign.json -8ee2f7c922e1e098812e0bd0cc5c7633f5632216 assets/farmersdelight/blockstates/pink_wall_hanging_canvas_sign.json -0568fd1eff87eca71788bbbac4fbfdf393586f57 assets/farmersdelight/blockstates/potato_crate.json -625c22cdf0f5d263f6652f0800b4e5bc33e49283 assets/farmersdelight/blockstates/pumpkin_pie.json -8ee2f7c922e1e098812e0bd0cc5c7633f5632216 assets/farmersdelight/blockstates/purple_canvas_sign.json -8ee2f7c922e1e098812e0bd0cc5c7633f5632216 assets/farmersdelight/blockstates/purple_canvas_wall_sign.json -8ee2f7c922e1e098812e0bd0cc5c7633f5632216 assets/farmersdelight/blockstates/purple_hanging_canvas_sign.json -8ee2f7c922e1e098812e0bd0cc5c7633f5632216 assets/farmersdelight/blockstates/purple_wall_hanging_canvas_sign.json -8ee2f7c922e1e098812e0bd0cc5c7633f5632216 assets/farmersdelight/blockstates/red_canvas_sign.json -8ee2f7c922e1e098812e0bd0cc5c7633f5632216 assets/farmersdelight/blockstates/red_canvas_wall_sign.json -8ee2f7c922e1e098812e0bd0cc5c7633f5632216 assets/farmersdelight/blockstates/red_hanging_canvas_sign.json -0c61048a65e6b8999e03986101f35fda3a088574 assets/farmersdelight/blockstates/red_mushroom_colony.json -8ee2f7c922e1e098812e0bd0cc5c7633f5632216 assets/farmersdelight/blockstates/red_wall_hanging_canvas_sign.json -e178501982b618876daf01ff44ac5947c7bf9888 assets/farmersdelight/blockstates/rice.json -d0b942f2e9c9036277e4cb89a70a56877df0e678 assets/farmersdelight/blockstates/rice_bag.json -980cc829202fcd8649768dd586ec546eb98ba757 assets/farmersdelight/blockstates/rice_bale.json -52b8c058185c61469e179156c24cbdda195d0d14 assets/farmersdelight/blockstates/rice_panicles.json -08c41011732ed1dcb0704d62f122168ed52f6278 assets/farmersdelight/blockstates/rice_roll_medley_block.json -ee9526c2fe9ef142e74d2f52b3ba25dd7f5d55c4 assets/farmersdelight/blockstates/rich_soil.json -8554219ee8e40471f8ac0d2b2f1f16227a6b636c assets/farmersdelight/blockstates/rich_soil_farmland.json -4611d78590f032e316656f841f821883fe3c2430 assets/farmersdelight/blockstates/roast_chicken_block.json -50b80e7e84e50cb4ffd96d5ac84284668ffb27ee assets/farmersdelight/blockstates/rope.json -0e7f283cae48ae7368e8daeb064023d9cddc2521 assets/farmersdelight/blockstates/rope_fence.json -f1073da24a6366a1ad65a90001a45311a9e6f3ee assets/farmersdelight/blockstates/rope_fence_gate.json -61339c185ed423cf1b33dfd7d540977ab83a2a2a assets/farmersdelight/blockstates/safety_net.json -487d56bbfa59470e8eca28982c05791be4791ed2 assets/farmersdelight/blockstates/sandy_shrub.json -910183f56aa0fcbae9c24bf911ab6d1b64fa1b3d assets/farmersdelight/blockstates/shepherds_pie_block.json -77ecf0475e5f62746049e12aae9f948da8ed286f assets/farmersdelight/blockstates/skillet.json -16597c0101a4c2ce503d003edcfaa0873691d60b assets/farmersdelight/blockstates/spruce_cabinet.json -653635b0425a7ff2454da971a8560c2c2bde97cb assets/farmersdelight/blockstates/stove.json -e275dcdaf2a65932201b532fc34d083c41c4d0a0 assets/farmersdelight/blockstates/straw_bale.json -bdb7a47a0e248d9f67be404f44d5a97676cd582f assets/farmersdelight/blockstates/stuffed_pumpkin_block.json -27b03cbc175283c7940eb6fffc11454aac15f156 assets/farmersdelight/blockstates/sweet_berry_cheesecake.json -19e8d4cb9ce19b5ea6d59ef0a1c0e237c7f6f39b assets/farmersdelight/blockstates/tatami.json -e31c3dcf1a5788a832ce96d089e208fca72f4dae assets/farmersdelight/blockstates/tomatoes.json -8c6f44a480e62fb6b1983d39b96e761615f808e7 assets/farmersdelight/blockstates/tomatoes_on_rope.json -0666ee92b7657919e5167bb5da94d890eb97661c assets/farmersdelight/blockstates/tomato_crate.json -8ee2f7c922e1e098812e0bd0cc5c7633f5632216 assets/farmersdelight/blockstates/wall_hanging_canvas_sign.json -698a33c1632c8b9e29f528a6692800b9670b96b5 assets/farmersdelight/blockstates/warped_cabinet.json -8ee2f7c922e1e098812e0bd0cc5c7633f5632216 assets/farmersdelight/blockstates/white_canvas_sign.json -8ee2f7c922e1e098812e0bd0cc5c7633f5632216 assets/farmersdelight/blockstates/white_canvas_wall_sign.json -8ee2f7c922e1e098812e0bd0cc5c7633f5632216 assets/farmersdelight/blockstates/white_hanging_canvas_sign.json -8ee2f7c922e1e098812e0bd0cc5c7633f5632216 assets/farmersdelight/blockstates/white_wall_hanging_canvas_sign.json -135b21938512a43aa959901b863a16625d1189c4 assets/farmersdelight/blockstates/wild_beetroots.json -873dab9a61f37d91fa897bcb1a87ba948bb954a6 assets/farmersdelight/blockstates/wild_cabbages.json -3197896b35b8ed1e5ffa5056cae7cf87658588c2 assets/farmersdelight/blockstates/wild_carrots.json -593bef2941f2fa68f0e5be3694d97ad829c8e202 assets/farmersdelight/blockstates/wild_onions.json -e77532d8756f00cf2a82c90255d34c1ac17c152a assets/farmersdelight/blockstates/wild_potatoes.json -4712db9ad29901ea4054995d4d3005c7fc1010ef assets/farmersdelight/blockstates/wild_rice.json -09675b11ce997c535691d07bd9629de6f68ecf20 assets/farmersdelight/blockstates/wild_tomatoes.json -d053948aee7876cb64205c6c5bffaeb66c947899 assets/farmersdelight/blockstates/wooden_basket.json -8ee2f7c922e1e098812e0bd0cc5c7633f5632216 assets/farmersdelight/blockstates/yellow_canvas_sign.json -8ee2f7c922e1e098812e0bd0cc5c7633f5632216 assets/farmersdelight/blockstates/yellow_canvas_wall_sign.json -8ee2f7c922e1e098812e0bd0cc5c7633f5632216 assets/farmersdelight/blockstates/yellow_hanging_canvas_sign.json -8ee2f7c922e1e098812e0bd0cc5c7633f5632216 assets/farmersdelight/blockstates/yellow_wall_hanging_canvas_sign.json -6ab3a61b72239b7a42e7e2c9bfd5354909699182 assets/farmersdelight/models/block/acacia_cabinet.json -0d0f0dbf5922f4452c61f0f3a653dfcbd17b543e assets/farmersdelight/models/block/acacia_cabinet_open.json -442f56f161fe6bbfd4ed3c5fb037e441dd6f059c assets/farmersdelight/models/block/apple_pie.json -76eeb4fac950c51cbdaba01e6da2a2d02ca38051 assets/farmersdelight/models/block/apple_pie_slice1.json -c266c6c9f6be4f5532d480d26e86c60535e9b7bb assets/farmersdelight/models/block/apple_pie_slice2.json -711cb02140d1ed42c797168e490393398918b79d assets/farmersdelight/models/block/apple_pie_slice3.json -97cbc2e167d1e9c87c03880de1b546ea23c9539b assets/farmersdelight/models/block/bamboo_basket.json -155954b90f601fdbd1e26370216b225470836b6b assets/farmersdelight/models/block/bamboo_cabinet.json -00055b1fe956f199672c50c0be67e98d061b68c5 assets/farmersdelight/models/block/bamboo_cabinet_open.json -51a00fe2c6d2d5d68a2a3de8df2b77983b121e50 assets/farmersdelight/models/block/beetroot_crate.json -2a06fb5184f222f8b47497d39e52ebdc3b404b14 assets/farmersdelight/models/block/birch_cabinet.json -18ca5ea9dde353677327341ba8533a44f142d25b assets/farmersdelight/models/block/birch_cabinet_open.json -1d491f18383da274f53a49570065d5c85810b7ba assets/farmersdelight/models/block/brown_mushroom_colony_stage0.json -8f0aa05969e4e8c02047b238355c4707eefd711c assets/farmersdelight/models/block/brown_mushroom_colony_stage1.json -656c64b0c5e96c989c631194d870f809d248bf4e assets/farmersdelight/models/block/brown_mushroom_colony_stage2.json -0aaec25a68c24f86f69a2eb0d7d25aa650bfe35c assets/farmersdelight/models/block/brown_mushroom_colony_stage3.json -5348211b73dff4a5892f5a16bbb5cec470e01a4e assets/farmersdelight/models/block/budding_tomatoes_stage0.json -1950c3c400211d9c5dc067d5ccb385c5c1e728d4 assets/farmersdelight/models/block/budding_tomatoes_stage1.json -e238b017129442e2ae0ee8017b2636555f6119fb assets/farmersdelight/models/block/budding_tomatoes_stage2.json -4cacfa341e4309b6b50478000151c57242488315 assets/farmersdelight/models/block/budding_tomatoes_stage3.json -6c9a50282afaa748ba5e4dc3bfb6cd028e2a9110 assets/farmersdelight/models/block/cabbages_stage0.json -acd1381d42b69eb08729f8a2929595643ad91873 assets/farmersdelight/models/block/cabbages_stage1.json -975e77a424145d562b892f8fb8569eba9d3a21c2 assets/farmersdelight/models/block/cabbages_stage2.json -31f7b3289155fecd8cf511a1414200003a77ec1b assets/farmersdelight/models/block/cabbages_stage3.json -8f982f7a83d36067f3daa408d651133294e352e9 assets/farmersdelight/models/block/cabbages_stage4.json -819557f2c7e01a7e4ac8569ca632371f2bd1f629 assets/farmersdelight/models/block/cabbages_stage5.json -faa878060ceaa6063d33cdb6cb6c3f699aa58ed9 assets/farmersdelight/models/block/cabbages_stage6.json -8aad746e663cf897721b3a72ef46d6943e1edf0e assets/farmersdelight/models/block/cabbages_stage7.json -4dcde84c4be5ad47c5ef754946b498e43799bc27 assets/farmersdelight/models/block/cabbage_crate.json -210e68f641ec7e0ba589396d3fcc2f8773cf2110 assets/farmersdelight/models/block/carrot_crate.json -4939345b9e8654490481472d981b31361ee8b0b2 assets/farmersdelight/models/block/cherry_cabinet.json -894c82fbaaee0511394ffee9e991c333187c9d42 assets/farmersdelight/models/block/cherry_cabinet_open.json -f0d2b689fc26a5d35fce396f1d6f48fc385dc44b assets/farmersdelight/models/block/crimson_cabinet.json -3f118e753503eba3a35fa0642fefa7a55d1a05ab assets/farmersdelight/models/block/crimson_cabinet_open.json -a2cb3a5bd4cdf08aae10c81d0585e002d2aa494c assets/farmersdelight/models/block/dark_oak_cabinet.json -1ef17903981c3677bc0dd711ae00864003f5b52b assets/farmersdelight/models/block/dark_oak_cabinet_open.json -aae31a595248c85770a2e62522f055d16abff8f5 assets/farmersdelight/models/block/jungle_cabinet.json -7651f37bd6095c044775574d02ee5049e8902cdc assets/farmersdelight/models/block/jungle_cabinet_open.json -8f42cfa3b2ef5e352dbf563caa68df42e7449447 assets/farmersdelight/models/block/mangrove_cabinet.json -2d45fd0bd71255d75ae5ef5e7dbd46c520e32806 assets/farmersdelight/models/block/mangrove_cabinet_open.json -9f642c986c54df8c0d77b13a102df03a96ccdc20 assets/farmersdelight/models/block/oak_cabinet.json -d2203f0d2411c26fd1020e183a18ec673251e8e5 assets/farmersdelight/models/block/oak_cabinet_open.json -e27c0d455a04c49249022c696028b9c58459cc60 assets/farmersdelight/models/block/onions_stage0.json -b28744d36508e1d5d6deb7c94e68f188bdfcd68b assets/farmersdelight/models/block/onions_stage1.json -f5c7b74e81b0a265515507c490971e2df772f1f1 assets/farmersdelight/models/block/onions_stage2.json -a64ec960f3d5575f8a2ce4daf4c36239c4f39f81 assets/farmersdelight/models/block/onions_stage3.json -c44ae5cec8d0595293a80824a8b013dee710be86 assets/farmersdelight/models/block/onion_crate.json -78d1def19336a05151ff87e48b4d917bbdaac9b2 assets/farmersdelight/models/block/organic_compost_stage0.json -ec4ca27f8c944993841015c79550c8bc2004a774 assets/farmersdelight/models/block/organic_compost_stage1.json -b47635a33020e3bc72553d5b8d5333de319ba660 assets/farmersdelight/models/block/organic_compost_stage2.json -3b799a62220cd8f9fc5ed09b5ff5926de6a408a8 assets/farmersdelight/models/block/organic_compost_stage3.json -5c4b76209d4fd845774d983b573024b52fbf3f57 assets/farmersdelight/models/block/potato_crate.json -83d3936cc1340a03daacedae1d0b54726af8ea07 assets/farmersdelight/models/block/pumpkin_pie.json -c9163a8485eeecfe8c461b2ca923972258f90475 assets/farmersdelight/models/block/pumpkin_pie_slice1.json -24208268e7459a3c8719510dbbf8aa54700f7fe3 assets/farmersdelight/models/block/pumpkin_pie_slice2.json -cbced5c6d939098c0b2e3551fe31240ebcf9dea3 assets/farmersdelight/models/block/pumpkin_pie_slice3.json -8820611c3fffb261b829c9c04c454a61a60a78c0 assets/farmersdelight/models/block/red_mushroom_colony_stage0.json -0a360060dde0a6ebe4b76b7c7edae2062888c795 assets/farmersdelight/models/block/red_mushroom_colony_stage1.json -df3d55a99f5a94d0acc79a7d8ce9cafef5e5fdf8 assets/farmersdelight/models/block/red_mushroom_colony_stage2.json -4ce06178ae6c31003840fb48740d232916f3cb00 assets/farmersdelight/models/block/red_mushroom_colony_stage3.json -13f0134669353f4926ecd34c081b4eec185a5563 assets/farmersdelight/models/block/rice_bag.json -88de555887a69f71a77256e39155e5f076731331 assets/farmersdelight/models/block/rice_bale.json -9070be2b1f6b47e478c73ed10d2bbee906e0e8c0 assets/farmersdelight/models/block/rice_panicles_stage0.json -2a0ca5276a239499661ca63ec5310ae2e70e1b7f assets/farmersdelight/models/block/rice_panicles_stage1.json -6df16828196b34b6be23c1c4b35f2c809f7bcbbd assets/farmersdelight/models/block/rice_panicles_stage2.json -57c4f896a17513d3bb1017c8d64b410d6454edc5 assets/farmersdelight/models/block/rice_panicles_stage3.json -ffaf62f2dcad14511b2f52497c69cf0436f69754 assets/farmersdelight/models/block/rice_stage0.json -d4ad28abe2322cfb58a071555376f3e8a1e0f58d assets/farmersdelight/models/block/rice_stage1.json -9284c022c41149c45d1c449f8c6e051e7f1c23c8 assets/farmersdelight/models/block/rice_stage2.json -d91b5b0be5ad98f912b9beeddc443401bf328914 assets/farmersdelight/models/block/rice_stage3.json -3084c1f6dab7fdcde3d687afe05a2d6efa6ff9cd assets/farmersdelight/models/block/rice_supporting.json -e32f59a6806c497071eda244734ee05a4c67429a assets/farmersdelight/models/block/rich_soil.json -edceda6d919789455e6add4d2b63ea150ef3a26f assets/farmersdelight/models/block/rich_soil_farmland.json -3c5fd53e4ebbe1d7060a2ea6491236c38739c991 assets/farmersdelight/models/block/rich_soil_farmland_moist.json -0aa9d5b543da7c84b7efc90848167ec16a0eb8bc assets/farmersdelight/models/block/sandy_shrub.json -0c4920dd449120a0c9615f31f9ed2d478c9ac5c2 assets/farmersdelight/models/block/spruce_cabinet.json -bee1fa8b8cfae229b920578100130bf29545b8c4 assets/farmersdelight/models/block/spruce_cabinet_open.json -35887d2cfc65ae1c39d38f2f39b7d06fddb66e6c assets/farmersdelight/models/block/stove.json -3546e13bda0952bbf34366087aab27b5822bd1fb assets/farmersdelight/models/block/stove_on.json -f837eb2172d2e9c93511715b8ad99eefea0f1306 assets/farmersdelight/models/block/straw_bale.json -a38791dde4f9a0a964579cacaa579a3d21045b09 assets/farmersdelight/models/block/straw_bale_horizontal.json -b1cf4e84aa3f2a4d7c71d88232f49412f21218c5 assets/farmersdelight/models/block/sweet_berry_cheesecake.json -229da3f5d478b6dab1886871bcb8fb7fc1490858 assets/farmersdelight/models/block/sweet_berry_cheesecake_slice1.json -e9578bde598d70bfb430fa4bffd4df0f8016500d assets/farmersdelight/models/block/sweet_berry_cheesecake_slice2.json -f5273735a81c1055366c346a41c0368d38955e26 assets/farmersdelight/models/block/sweet_berry_cheesecake_slice3.json -73293b6f6be6379d499556364dc3ecf0b0e8815d assets/farmersdelight/models/block/tatami_half.json -9e64168021b1042479b7c82e6b47bf62ab761b9a assets/farmersdelight/models/block/tomatoes_old_stage0.json -13fe7e37f4f81b1bddfa6ac95f7090e62d241654 assets/farmersdelight/models/block/tomatoes_old_stage1.json -96b216516789582a282ae4ac6faa4c0c28f88cc7 assets/farmersdelight/models/block/tomatoes_old_stage2.json -13161d03535d730d178b7cee628ca4e4e51aa895 assets/farmersdelight/models/block/tomatoes_old_stage3.json -3018ed1ad4fd2f2144783c3979b19e7a0534f325 assets/farmersdelight/models/block/tomatoes_on_rope_stage0.json -822c93744c923306b8530e2a35374fedb6b3778a assets/farmersdelight/models/block/tomatoes_on_rope_stage1.json -df2af79a3d78a01fdc68e740bc9aa5a75c2d7e46 assets/farmersdelight/models/block/tomatoes_on_rope_stage2.json -8e92c913f7fad762a6fda030f26316ab63204ab1 assets/farmersdelight/models/block/tomatoes_on_rope_stage3.json -beccd6cadce8e1566f9f380f66c144145c8394c5 assets/farmersdelight/models/block/tomatoes_stage0.json -fd064d1d9652546b4e68439eb4411848c8568336 assets/farmersdelight/models/block/tomatoes_stage1.json -0aaab9d9fe1e32cfb64d2369c33bc3efe1c707c5 assets/farmersdelight/models/block/tomatoes_stage2.json -2dee9329f125b5e9827f4ab040ad86ac70d6018c assets/farmersdelight/models/block/tomatoes_stage3.json -16a3aff2e9db72922a9f927a7226cd7c6f087e5e assets/farmersdelight/models/block/tomato_crate.json -6446b367173a02332113194898e86426cedbb9dc assets/farmersdelight/models/block/warped_cabinet.json -f68ef3c4f9a9a03980b6853c8b9cbe6a9faad24d assets/farmersdelight/models/block/warped_cabinet_open.json -ff59a1421e41e5b2f17a8135248c91a6a56ccad7 assets/farmersdelight/models/block/wild_beetroots.json -d9420c8ad5f5a018a497594400e6fbd7d1a54b43 assets/farmersdelight/models/block/wild_cabbages.json -438c31396d7d24944def99f6e205c57c25e02a96 assets/farmersdelight/models/block/wild_carrots.json -da4724d8d5cb641cd5e6463f7bcba5ed00149780 assets/farmersdelight/models/block/wild_onions.json -e955b3ffd9eb52df9b3b9a537779d6de4729cc96 assets/farmersdelight/models/block/wild_potatoes.json -26edf462ea1f9dea2954967e62b00bfd6ad75f36 assets/farmersdelight/models/block/wild_rice_bottom.json -ee82f8d3eeed08c6faef2ced554970b3c5f770e7 assets/farmersdelight/models/block/wild_rice_top.json -e8700437f29df8d09c712eb0925351255c43c4f4 assets/farmersdelight/models/block/wild_tomatoes.json -28c38e5f414a3102ceada0ef0fb12f7cf13414d7 assets/farmersdelight/models/block/wooden_basket.json diff --git a/src/generated/resources/assets/farmersdelight/blockstates/black_canvas_sign.json b/src/generated/resources/assets/farmersdelight/blockstates/black_canvas_sign.json index 3e0339710..e34d5001e 100644 --- a/src/generated/resources/assets/farmersdelight/blockstates/black_canvas_sign.json +++ b/src/generated/resources/assets/farmersdelight/blockstates/black_canvas_sign.json @@ -1,7 +1,64 @@ { "variants": { - "": { - "model": "farmersdelight:block/canvas_sign" + "rotation=0": { + "model": "farmersdelight:block/black_canvas_sign_rot_0" + }, + "rotation=1": { + "model": "farmersdelight:block/black_canvas_sign_rot_1" + }, + "rotation=10": { + "model": "farmersdelight:block/black_canvas_sign_rot_2", + "y": 180 + }, + "rotation=11": { + "model": "farmersdelight:block/black_canvas_sign_rot_3", + "y": 180 + }, + "rotation=12": { + "model": "farmersdelight:block/black_canvas_sign_rot_0", + "y": 270 + }, + "rotation=13": { + "model": "farmersdelight:block/black_canvas_sign_rot_1", + "y": 270 + }, + "rotation=14": { + "model": "farmersdelight:block/black_canvas_sign_rot_2", + "y": 270 + }, + "rotation=15": { + "model": "farmersdelight:block/black_canvas_sign_rot_3", + "y": 270 + }, + "rotation=2": { + "model": "farmersdelight:block/black_canvas_sign_rot_2" + }, + "rotation=3": { + "model": "farmersdelight:block/black_canvas_sign_rot_3" + }, + "rotation=4": { + "model": "farmersdelight:block/black_canvas_sign_rot_0", + "y": 90 + }, + "rotation=5": { + "model": "farmersdelight:block/black_canvas_sign_rot_1", + "y": 90 + }, + "rotation=6": { + "model": "farmersdelight:block/black_canvas_sign_rot_2", + "y": 90 + }, + "rotation=7": { + "model": "farmersdelight:block/black_canvas_sign_rot_3", + "y": 90 + }, + "rotation=8": { + "model": "farmersdelight:block/black_canvas_sign_rot_0", + "y": 180 + }, + "rotation=9": { + "model": "farmersdelight:block/black_canvas_sign_rot_1", + "y": 180 } } } \ No newline at end of file diff --git a/src/generated/resources/assets/farmersdelight/blockstates/black_canvas_wall_sign.json b/src/generated/resources/assets/farmersdelight/blockstates/black_canvas_wall_sign.json index 3e0339710..f9c6cf630 100644 --- a/src/generated/resources/assets/farmersdelight/blockstates/black_canvas_wall_sign.json +++ b/src/generated/resources/assets/farmersdelight/blockstates/black_canvas_wall_sign.json @@ -1,7 +1,19 @@ { "variants": { - "": { - "model": "farmersdelight:block/canvas_sign" + "facing=east": { + "model": "farmersdelight:block/black_canvas_wall_sign", + "y": 270 + }, + "facing=north": { + "model": "farmersdelight:block/black_canvas_wall_sign", + "y": 180 + }, + "facing=south": { + "model": "farmersdelight:block/black_canvas_wall_sign" + }, + "facing=west": { + "model": "farmersdelight:block/black_canvas_wall_sign", + "y": 90 } } } \ No newline at end of file diff --git a/src/generated/resources/assets/farmersdelight/blockstates/black_hanging_canvas_sign.json b/src/generated/resources/assets/farmersdelight/blockstates/black_hanging_canvas_sign.json index 3e0339710..11ea141c3 100644 --- a/src/generated/resources/assets/farmersdelight/blockstates/black_hanging_canvas_sign.json +++ b/src/generated/resources/assets/farmersdelight/blockstates/black_hanging_canvas_sign.json @@ -1,7 +1,124 @@ { "variants": { - "": { - "model": "farmersdelight:block/canvas_sign" + "attached=false,rotation=0": { + "model": "farmersdelight:block/black_hanging_canvas_sign_rot_0" + }, + "attached=false,rotation=1": { + "model": "farmersdelight:block/black_hanging_canvas_sign_rot_1" + }, + "attached=false,rotation=10": { + "model": "farmersdelight:block/black_hanging_canvas_sign_rot_2", + "y": 180 + }, + "attached=false,rotation=11": { + "model": "farmersdelight:block/black_hanging_canvas_sign_rot_3", + "y": 180 + }, + "attached=false,rotation=12": { + "model": "farmersdelight:block/black_hanging_canvas_sign_rot_0", + "y": 270 + }, + "attached=false,rotation=13": { + "model": "farmersdelight:block/black_hanging_canvas_sign_rot_1", + "y": 270 + }, + "attached=false,rotation=14": { + "model": "farmersdelight:block/black_hanging_canvas_sign_rot_2", + "y": 270 + }, + "attached=false,rotation=15": { + "model": "farmersdelight:block/black_hanging_canvas_sign_rot_3", + "y": 270 + }, + "attached=false,rotation=2": { + "model": "farmersdelight:block/black_hanging_canvas_sign_rot_2" + }, + "attached=false,rotation=3": { + "model": "farmersdelight:block/black_hanging_canvas_sign_rot_3" + }, + "attached=false,rotation=4": { + "model": "farmersdelight:block/black_hanging_canvas_sign_rot_0", + "y": 90 + }, + "attached=false,rotation=5": { + "model": "farmersdelight:block/black_hanging_canvas_sign_rot_1", + "y": 90 + }, + "attached=false,rotation=6": { + "model": "farmersdelight:block/black_hanging_canvas_sign_rot_2", + "y": 90 + }, + "attached=false,rotation=7": { + "model": "farmersdelight:block/black_hanging_canvas_sign_rot_3", + "y": 90 + }, + "attached=false,rotation=8": { + "model": "farmersdelight:block/black_hanging_canvas_sign_rot_0", + "y": 180 + }, + "attached=false,rotation=9": { + "model": "farmersdelight:block/black_hanging_canvas_sign_rot_1", + "y": 180 + }, + "attached=true,rotation=0": { + "model": "farmersdelight:block/black_hanging_canvas_sign_attached_rot_0" + }, + "attached=true,rotation=1": { + "model": "farmersdelight:block/black_hanging_canvas_sign_attached_rot_1" + }, + "attached=true,rotation=10": { + "model": "farmersdelight:block/black_hanging_canvas_sign_attached_rot_2", + "y": 180 + }, + "attached=true,rotation=11": { + "model": "farmersdelight:block/black_hanging_canvas_sign_attached_rot_3", + "y": 180 + }, + "attached=true,rotation=12": { + "model": "farmersdelight:block/black_hanging_canvas_sign_attached_rot_0", + "y": 270 + }, + "attached=true,rotation=13": { + "model": "farmersdelight:block/black_hanging_canvas_sign_attached_rot_1", + "y": 270 + }, + "attached=true,rotation=14": { + "model": "farmersdelight:block/black_hanging_canvas_sign_attached_rot_2", + "y": 270 + }, + "attached=true,rotation=15": { + "model": "farmersdelight:block/black_hanging_canvas_sign_attached_rot_3", + "y": 270 + }, + "attached=true,rotation=2": { + "model": "farmersdelight:block/black_hanging_canvas_sign_attached_rot_2" + }, + "attached=true,rotation=3": { + "model": "farmersdelight:block/black_hanging_canvas_sign_attached_rot_3" + }, + "attached=true,rotation=4": { + "model": "farmersdelight:block/black_hanging_canvas_sign_attached_rot_0", + "y": 90 + }, + "attached=true,rotation=5": { + "model": "farmersdelight:block/black_hanging_canvas_sign_attached_rot_1", + "y": 90 + }, + "attached=true,rotation=6": { + "model": "farmersdelight:block/black_hanging_canvas_sign_attached_rot_2", + "y": 90 + }, + "attached=true,rotation=7": { + "model": "farmersdelight:block/black_hanging_canvas_sign_attached_rot_3", + "y": 90 + }, + "attached=true,rotation=8": { + "model": "farmersdelight:block/black_hanging_canvas_sign_attached_rot_0", + "y": 180 + }, + "attached=true,rotation=9": { + "model": "farmersdelight:block/black_hanging_canvas_sign_attached_rot_1", + "y": 180 } } } \ No newline at end of file diff --git a/src/generated/resources/assets/farmersdelight/blockstates/black_wall_hanging_canvas_sign.json b/src/generated/resources/assets/farmersdelight/blockstates/black_wall_hanging_canvas_sign.json index 3e0339710..890d5ee30 100644 --- a/src/generated/resources/assets/farmersdelight/blockstates/black_wall_hanging_canvas_sign.json +++ b/src/generated/resources/assets/farmersdelight/blockstates/black_wall_hanging_canvas_sign.json @@ -1,7 +1,19 @@ { "variants": { - "": { - "model": "farmersdelight:block/canvas_sign" + "facing=east": { + "model": "farmersdelight:block/black_wall_hanging_canvas_sign", + "y": 270 + }, + "facing=north": { + "model": "farmersdelight:block/black_wall_hanging_canvas_sign", + "y": 180 + }, + "facing=south": { + "model": "farmersdelight:block/black_wall_hanging_canvas_sign" + }, + "facing=west": { + "model": "farmersdelight:block/black_wall_hanging_canvas_sign", + "y": 90 } } } \ No newline at end of file diff --git a/src/generated/resources/assets/farmersdelight/blockstates/blue_canvas_sign.json b/src/generated/resources/assets/farmersdelight/blockstates/blue_canvas_sign.json index 3e0339710..bf1756a1d 100644 --- a/src/generated/resources/assets/farmersdelight/blockstates/blue_canvas_sign.json +++ b/src/generated/resources/assets/farmersdelight/blockstates/blue_canvas_sign.json @@ -1,7 +1,64 @@ { "variants": { - "": { - "model": "farmersdelight:block/canvas_sign" + "rotation=0": { + "model": "farmersdelight:block/blue_canvas_sign_rot_0" + }, + "rotation=1": { + "model": "farmersdelight:block/blue_canvas_sign_rot_1" + }, + "rotation=10": { + "model": "farmersdelight:block/blue_canvas_sign_rot_2", + "y": 180 + }, + "rotation=11": { + "model": "farmersdelight:block/blue_canvas_sign_rot_3", + "y": 180 + }, + "rotation=12": { + "model": "farmersdelight:block/blue_canvas_sign_rot_0", + "y": 270 + }, + "rotation=13": { + "model": "farmersdelight:block/blue_canvas_sign_rot_1", + "y": 270 + }, + "rotation=14": { + "model": "farmersdelight:block/blue_canvas_sign_rot_2", + "y": 270 + }, + "rotation=15": { + "model": "farmersdelight:block/blue_canvas_sign_rot_3", + "y": 270 + }, + "rotation=2": { + "model": "farmersdelight:block/blue_canvas_sign_rot_2" + }, + "rotation=3": { + "model": "farmersdelight:block/blue_canvas_sign_rot_3" + }, + "rotation=4": { + "model": "farmersdelight:block/blue_canvas_sign_rot_0", + "y": 90 + }, + "rotation=5": { + "model": "farmersdelight:block/blue_canvas_sign_rot_1", + "y": 90 + }, + "rotation=6": { + "model": "farmersdelight:block/blue_canvas_sign_rot_2", + "y": 90 + }, + "rotation=7": { + "model": "farmersdelight:block/blue_canvas_sign_rot_3", + "y": 90 + }, + "rotation=8": { + "model": "farmersdelight:block/blue_canvas_sign_rot_0", + "y": 180 + }, + "rotation=9": { + "model": "farmersdelight:block/blue_canvas_sign_rot_1", + "y": 180 } } } \ No newline at end of file diff --git a/src/generated/resources/assets/farmersdelight/blockstates/blue_canvas_wall_sign.json b/src/generated/resources/assets/farmersdelight/blockstates/blue_canvas_wall_sign.json index 3e0339710..761020538 100644 --- a/src/generated/resources/assets/farmersdelight/blockstates/blue_canvas_wall_sign.json +++ b/src/generated/resources/assets/farmersdelight/blockstates/blue_canvas_wall_sign.json @@ -1,7 +1,19 @@ { "variants": { - "": { - "model": "farmersdelight:block/canvas_sign" + "facing=east": { + "model": "farmersdelight:block/blue_canvas_wall_sign", + "y": 270 + }, + "facing=north": { + "model": "farmersdelight:block/blue_canvas_wall_sign", + "y": 180 + }, + "facing=south": { + "model": "farmersdelight:block/blue_canvas_wall_sign" + }, + "facing=west": { + "model": "farmersdelight:block/blue_canvas_wall_sign", + "y": 90 } } } \ No newline at end of file diff --git a/src/generated/resources/assets/farmersdelight/blockstates/blue_hanging_canvas_sign.json b/src/generated/resources/assets/farmersdelight/blockstates/blue_hanging_canvas_sign.json index 3e0339710..b5f8f35fe 100644 --- a/src/generated/resources/assets/farmersdelight/blockstates/blue_hanging_canvas_sign.json +++ b/src/generated/resources/assets/farmersdelight/blockstates/blue_hanging_canvas_sign.json @@ -1,7 +1,124 @@ { "variants": { - "": { - "model": "farmersdelight:block/canvas_sign" + "attached=false,rotation=0": { + "model": "farmersdelight:block/blue_hanging_canvas_sign_rot_0" + }, + "attached=false,rotation=1": { + "model": "farmersdelight:block/blue_hanging_canvas_sign_rot_1" + }, + "attached=false,rotation=10": { + "model": "farmersdelight:block/blue_hanging_canvas_sign_rot_2", + "y": 180 + }, + "attached=false,rotation=11": { + "model": "farmersdelight:block/blue_hanging_canvas_sign_rot_3", + "y": 180 + }, + "attached=false,rotation=12": { + "model": "farmersdelight:block/blue_hanging_canvas_sign_rot_0", + "y": 270 + }, + "attached=false,rotation=13": { + "model": "farmersdelight:block/blue_hanging_canvas_sign_rot_1", + "y": 270 + }, + "attached=false,rotation=14": { + "model": "farmersdelight:block/blue_hanging_canvas_sign_rot_2", + "y": 270 + }, + "attached=false,rotation=15": { + "model": "farmersdelight:block/blue_hanging_canvas_sign_rot_3", + "y": 270 + }, + "attached=false,rotation=2": { + "model": "farmersdelight:block/blue_hanging_canvas_sign_rot_2" + }, + "attached=false,rotation=3": { + "model": "farmersdelight:block/blue_hanging_canvas_sign_rot_3" + }, + "attached=false,rotation=4": { + "model": "farmersdelight:block/blue_hanging_canvas_sign_rot_0", + "y": 90 + }, + "attached=false,rotation=5": { + "model": "farmersdelight:block/blue_hanging_canvas_sign_rot_1", + "y": 90 + }, + "attached=false,rotation=6": { + "model": "farmersdelight:block/blue_hanging_canvas_sign_rot_2", + "y": 90 + }, + "attached=false,rotation=7": { + "model": "farmersdelight:block/blue_hanging_canvas_sign_rot_3", + "y": 90 + }, + "attached=false,rotation=8": { + "model": "farmersdelight:block/blue_hanging_canvas_sign_rot_0", + "y": 180 + }, + "attached=false,rotation=9": { + "model": "farmersdelight:block/blue_hanging_canvas_sign_rot_1", + "y": 180 + }, + "attached=true,rotation=0": { + "model": "farmersdelight:block/blue_hanging_canvas_sign_attached_rot_0" + }, + "attached=true,rotation=1": { + "model": "farmersdelight:block/blue_hanging_canvas_sign_attached_rot_1" + }, + "attached=true,rotation=10": { + "model": "farmersdelight:block/blue_hanging_canvas_sign_attached_rot_2", + "y": 180 + }, + "attached=true,rotation=11": { + "model": "farmersdelight:block/blue_hanging_canvas_sign_attached_rot_3", + "y": 180 + }, + "attached=true,rotation=12": { + "model": "farmersdelight:block/blue_hanging_canvas_sign_attached_rot_0", + "y": 270 + }, + "attached=true,rotation=13": { + "model": "farmersdelight:block/blue_hanging_canvas_sign_attached_rot_1", + "y": 270 + }, + "attached=true,rotation=14": { + "model": "farmersdelight:block/blue_hanging_canvas_sign_attached_rot_2", + "y": 270 + }, + "attached=true,rotation=15": { + "model": "farmersdelight:block/blue_hanging_canvas_sign_attached_rot_3", + "y": 270 + }, + "attached=true,rotation=2": { + "model": "farmersdelight:block/blue_hanging_canvas_sign_attached_rot_2" + }, + "attached=true,rotation=3": { + "model": "farmersdelight:block/blue_hanging_canvas_sign_attached_rot_3" + }, + "attached=true,rotation=4": { + "model": "farmersdelight:block/blue_hanging_canvas_sign_attached_rot_0", + "y": 90 + }, + "attached=true,rotation=5": { + "model": "farmersdelight:block/blue_hanging_canvas_sign_attached_rot_1", + "y": 90 + }, + "attached=true,rotation=6": { + "model": "farmersdelight:block/blue_hanging_canvas_sign_attached_rot_2", + "y": 90 + }, + "attached=true,rotation=7": { + "model": "farmersdelight:block/blue_hanging_canvas_sign_attached_rot_3", + "y": 90 + }, + "attached=true,rotation=8": { + "model": "farmersdelight:block/blue_hanging_canvas_sign_attached_rot_0", + "y": 180 + }, + "attached=true,rotation=9": { + "model": "farmersdelight:block/blue_hanging_canvas_sign_attached_rot_1", + "y": 180 } } } \ No newline at end of file diff --git a/src/generated/resources/assets/farmersdelight/blockstates/blue_wall_hanging_canvas_sign.json b/src/generated/resources/assets/farmersdelight/blockstates/blue_wall_hanging_canvas_sign.json index 3e0339710..37ce68bd7 100644 --- a/src/generated/resources/assets/farmersdelight/blockstates/blue_wall_hanging_canvas_sign.json +++ b/src/generated/resources/assets/farmersdelight/blockstates/blue_wall_hanging_canvas_sign.json @@ -1,7 +1,19 @@ { "variants": { - "": { - "model": "farmersdelight:block/canvas_sign" + "facing=east": { + "model": "farmersdelight:block/blue_wall_hanging_canvas_sign", + "y": 270 + }, + "facing=north": { + "model": "farmersdelight:block/blue_wall_hanging_canvas_sign", + "y": 180 + }, + "facing=south": { + "model": "farmersdelight:block/blue_wall_hanging_canvas_sign" + }, + "facing=west": { + "model": "farmersdelight:block/blue_wall_hanging_canvas_sign", + "y": 90 } } } \ No newline at end of file diff --git a/src/generated/resources/assets/farmersdelight/blockstates/brown_canvas_sign.json b/src/generated/resources/assets/farmersdelight/blockstates/brown_canvas_sign.json index 3e0339710..2758d1115 100644 --- a/src/generated/resources/assets/farmersdelight/blockstates/brown_canvas_sign.json +++ b/src/generated/resources/assets/farmersdelight/blockstates/brown_canvas_sign.json @@ -1,7 +1,64 @@ { "variants": { - "": { - "model": "farmersdelight:block/canvas_sign" + "rotation=0": { + "model": "farmersdelight:block/brown_canvas_sign_rot_0" + }, + "rotation=1": { + "model": "farmersdelight:block/brown_canvas_sign_rot_1" + }, + "rotation=10": { + "model": "farmersdelight:block/brown_canvas_sign_rot_2", + "y": 180 + }, + "rotation=11": { + "model": "farmersdelight:block/brown_canvas_sign_rot_3", + "y": 180 + }, + "rotation=12": { + "model": "farmersdelight:block/brown_canvas_sign_rot_0", + "y": 270 + }, + "rotation=13": { + "model": "farmersdelight:block/brown_canvas_sign_rot_1", + "y": 270 + }, + "rotation=14": { + "model": "farmersdelight:block/brown_canvas_sign_rot_2", + "y": 270 + }, + "rotation=15": { + "model": "farmersdelight:block/brown_canvas_sign_rot_3", + "y": 270 + }, + "rotation=2": { + "model": "farmersdelight:block/brown_canvas_sign_rot_2" + }, + "rotation=3": { + "model": "farmersdelight:block/brown_canvas_sign_rot_3" + }, + "rotation=4": { + "model": "farmersdelight:block/brown_canvas_sign_rot_0", + "y": 90 + }, + "rotation=5": { + "model": "farmersdelight:block/brown_canvas_sign_rot_1", + "y": 90 + }, + "rotation=6": { + "model": "farmersdelight:block/brown_canvas_sign_rot_2", + "y": 90 + }, + "rotation=7": { + "model": "farmersdelight:block/brown_canvas_sign_rot_3", + "y": 90 + }, + "rotation=8": { + "model": "farmersdelight:block/brown_canvas_sign_rot_0", + "y": 180 + }, + "rotation=9": { + "model": "farmersdelight:block/brown_canvas_sign_rot_1", + "y": 180 } } } \ No newline at end of file diff --git a/src/generated/resources/assets/farmersdelight/blockstates/brown_canvas_wall_sign.json b/src/generated/resources/assets/farmersdelight/blockstates/brown_canvas_wall_sign.json index 3e0339710..5cf7c16e1 100644 --- a/src/generated/resources/assets/farmersdelight/blockstates/brown_canvas_wall_sign.json +++ b/src/generated/resources/assets/farmersdelight/blockstates/brown_canvas_wall_sign.json @@ -1,7 +1,19 @@ { "variants": { - "": { - "model": "farmersdelight:block/canvas_sign" + "facing=east": { + "model": "farmersdelight:block/brown_canvas_wall_sign", + "y": 270 + }, + "facing=north": { + "model": "farmersdelight:block/brown_canvas_wall_sign", + "y": 180 + }, + "facing=south": { + "model": "farmersdelight:block/brown_canvas_wall_sign" + }, + "facing=west": { + "model": "farmersdelight:block/brown_canvas_wall_sign", + "y": 90 } } } \ No newline at end of file diff --git a/src/generated/resources/assets/farmersdelight/blockstates/brown_hanging_canvas_sign.json b/src/generated/resources/assets/farmersdelight/blockstates/brown_hanging_canvas_sign.json index 3e0339710..70fcc9f4b 100644 --- a/src/generated/resources/assets/farmersdelight/blockstates/brown_hanging_canvas_sign.json +++ b/src/generated/resources/assets/farmersdelight/blockstates/brown_hanging_canvas_sign.json @@ -1,7 +1,124 @@ { "variants": { - "": { - "model": "farmersdelight:block/canvas_sign" + "attached=false,rotation=0": { + "model": "farmersdelight:block/brown_hanging_canvas_sign_rot_0" + }, + "attached=false,rotation=1": { + "model": "farmersdelight:block/brown_hanging_canvas_sign_rot_1" + }, + "attached=false,rotation=10": { + "model": "farmersdelight:block/brown_hanging_canvas_sign_rot_2", + "y": 180 + }, + "attached=false,rotation=11": { + "model": "farmersdelight:block/brown_hanging_canvas_sign_rot_3", + "y": 180 + }, + "attached=false,rotation=12": { + "model": "farmersdelight:block/brown_hanging_canvas_sign_rot_0", + "y": 270 + }, + "attached=false,rotation=13": { + "model": "farmersdelight:block/brown_hanging_canvas_sign_rot_1", + "y": 270 + }, + "attached=false,rotation=14": { + "model": "farmersdelight:block/brown_hanging_canvas_sign_rot_2", + "y": 270 + }, + "attached=false,rotation=15": { + "model": "farmersdelight:block/brown_hanging_canvas_sign_rot_3", + "y": 270 + }, + "attached=false,rotation=2": { + "model": "farmersdelight:block/brown_hanging_canvas_sign_rot_2" + }, + "attached=false,rotation=3": { + "model": "farmersdelight:block/brown_hanging_canvas_sign_rot_3" + }, + "attached=false,rotation=4": { + "model": "farmersdelight:block/brown_hanging_canvas_sign_rot_0", + "y": 90 + }, + "attached=false,rotation=5": { + "model": "farmersdelight:block/brown_hanging_canvas_sign_rot_1", + "y": 90 + }, + "attached=false,rotation=6": { + "model": "farmersdelight:block/brown_hanging_canvas_sign_rot_2", + "y": 90 + }, + "attached=false,rotation=7": { + "model": "farmersdelight:block/brown_hanging_canvas_sign_rot_3", + "y": 90 + }, + "attached=false,rotation=8": { + "model": "farmersdelight:block/brown_hanging_canvas_sign_rot_0", + "y": 180 + }, + "attached=false,rotation=9": { + "model": "farmersdelight:block/brown_hanging_canvas_sign_rot_1", + "y": 180 + }, + "attached=true,rotation=0": { + "model": "farmersdelight:block/brown_hanging_canvas_sign_attached_rot_0" + }, + "attached=true,rotation=1": { + "model": "farmersdelight:block/brown_hanging_canvas_sign_attached_rot_1" + }, + "attached=true,rotation=10": { + "model": "farmersdelight:block/brown_hanging_canvas_sign_attached_rot_2", + "y": 180 + }, + "attached=true,rotation=11": { + "model": "farmersdelight:block/brown_hanging_canvas_sign_attached_rot_3", + "y": 180 + }, + "attached=true,rotation=12": { + "model": "farmersdelight:block/brown_hanging_canvas_sign_attached_rot_0", + "y": 270 + }, + "attached=true,rotation=13": { + "model": "farmersdelight:block/brown_hanging_canvas_sign_attached_rot_1", + "y": 270 + }, + "attached=true,rotation=14": { + "model": "farmersdelight:block/brown_hanging_canvas_sign_attached_rot_2", + "y": 270 + }, + "attached=true,rotation=15": { + "model": "farmersdelight:block/brown_hanging_canvas_sign_attached_rot_3", + "y": 270 + }, + "attached=true,rotation=2": { + "model": "farmersdelight:block/brown_hanging_canvas_sign_attached_rot_2" + }, + "attached=true,rotation=3": { + "model": "farmersdelight:block/brown_hanging_canvas_sign_attached_rot_3" + }, + "attached=true,rotation=4": { + "model": "farmersdelight:block/brown_hanging_canvas_sign_attached_rot_0", + "y": 90 + }, + "attached=true,rotation=5": { + "model": "farmersdelight:block/brown_hanging_canvas_sign_attached_rot_1", + "y": 90 + }, + "attached=true,rotation=6": { + "model": "farmersdelight:block/brown_hanging_canvas_sign_attached_rot_2", + "y": 90 + }, + "attached=true,rotation=7": { + "model": "farmersdelight:block/brown_hanging_canvas_sign_attached_rot_3", + "y": 90 + }, + "attached=true,rotation=8": { + "model": "farmersdelight:block/brown_hanging_canvas_sign_attached_rot_0", + "y": 180 + }, + "attached=true,rotation=9": { + "model": "farmersdelight:block/brown_hanging_canvas_sign_attached_rot_1", + "y": 180 } } } \ No newline at end of file diff --git a/src/generated/resources/assets/farmersdelight/blockstates/brown_wall_hanging_canvas_sign.json b/src/generated/resources/assets/farmersdelight/blockstates/brown_wall_hanging_canvas_sign.json index 3e0339710..7c907b570 100644 --- a/src/generated/resources/assets/farmersdelight/blockstates/brown_wall_hanging_canvas_sign.json +++ b/src/generated/resources/assets/farmersdelight/blockstates/brown_wall_hanging_canvas_sign.json @@ -1,7 +1,19 @@ { "variants": { - "": { - "model": "farmersdelight:block/canvas_sign" + "facing=east": { + "model": "farmersdelight:block/brown_wall_hanging_canvas_sign", + "y": 270 + }, + "facing=north": { + "model": "farmersdelight:block/brown_wall_hanging_canvas_sign", + "y": 180 + }, + "facing=south": { + "model": "farmersdelight:block/brown_wall_hanging_canvas_sign" + }, + "facing=west": { + "model": "farmersdelight:block/brown_wall_hanging_canvas_sign", + "y": 90 } } } \ No newline at end of file diff --git a/src/generated/resources/assets/farmersdelight/blockstates/canvas_sign.json b/src/generated/resources/assets/farmersdelight/blockstates/canvas_sign.json index 3e0339710..06e9a0396 100644 --- a/src/generated/resources/assets/farmersdelight/blockstates/canvas_sign.json +++ b/src/generated/resources/assets/farmersdelight/blockstates/canvas_sign.json @@ -1,7 +1,64 @@ { "variants": { - "": { - "model": "farmersdelight:block/canvas_sign" + "rotation=0": { + "model": "farmersdelight:block/canvas_sign_rot_0" + }, + "rotation=1": { + "model": "farmersdelight:block/canvas_sign_rot_1" + }, + "rotation=10": { + "model": "farmersdelight:block/canvas_sign_rot_2", + "y": 180 + }, + "rotation=11": { + "model": "farmersdelight:block/canvas_sign_rot_3", + "y": 180 + }, + "rotation=12": { + "model": "farmersdelight:block/canvas_sign_rot_0", + "y": 270 + }, + "rotation=13": { + "model": "farmersdelight:block/canvas_sign_rot_1", + "y": 270 + }, + "rotation=14": { + "model": "farmersdelight:block/canvas_sign_rot_2", + "y": 270 + }, + "rotation=15": { + "model": "farmersdelight:block/canvas_sign_rot_3", + "y": 270 + }, + "rotation=2": { + "model": "farmersdelight:block/canvas_sign_rot_2" + }, + "rotation=3": { + "model": "farmersdelight:block/canvas_sign_rot_3" + }, + "rotation=4": { + "model": "farmersdelight:block/canvas_sign_rot_0", + "y": 90 + }, + "rotation=5": { + "model": "farmersdelight:block/canvas_sign_rot_1", + "y": 90 + }, + "rotation=6": { + "model": "farmersdelight:block/canvas_sign_rot_2", + "y": 90 + }, + "rotation=7": { + "model": "farmersdelight:block/canvas_sign_rot_3", + "y": 90 + }, + "rotation=8": { + "model": "farmersdelight:block/canvas_sign_rot_0", + "y": 180 + }, + "rotation=9": { + "model": "farmersdelight:block/canvas_sign_rot_1", + "y": 180 } } } \ No newline at end of file diff --git a/src/generated/resources/assets/farmersdelight/blockstates/canvas_wall_sign.json b/src/generated/resources/assets/farmersdelight/blockstates/canvas_wall_sign.json index 3e0339710..2f4a15f12 100644 --- a/src/generated/resources/assets/farmersdelight/blockstates/canvas_wall_sign.json +++ b/src/generated/resources/assets/farmersdelight/blockstates/canvas_wall_sign.json @@ -1,7 +1,19 @@ { "variants": { - "": { - "model": "farmersdelight:block/canvas_sign" + "facing=east": { + "model": "farmersdelight:block/canvas_wall_sign", + "y": 270 + }, + "facing=north": { + "model": "farmersdelight:block/canvas_wall_sign", + "y": 180 + }, + "facing=south": { + "model": "farmersdelight:block/canvas_wall_sign" + }, + "facing=west": { + "model": "farmersdelight:block/canvas_wall_sign", + "y": 90 } } } \ No newline at end of file diff --git a/src/generated/resources/assets/farmersdelight/blockstates/cyan_canvas_sign.json b/src/generated/resources/assets/farmersdelight/blockstates/cyan_canvas_sign.json index 3e0339710..dc9708a14 100644 --- a/src/generated/resources/assets/farmersdelight/blockstates/cyan_canvas_sign.json +++ b/src/generated/resources/assets/farmersdelight/blockstates/cyan_canvas_sign.json @@ -1,7 +1,64 @@ { "variants": { - "": { - "model": "farmersdelight:block/canvas_sign" + "rotation=0": { + "model": "farmersdelight:block/cyan_canvas_sign_rot_0" + }, + "rotation=1": { + "model": "farmersdelight:block/cyan_canvas_sign_rot_1" + }, + "rotation=10": { + "model": "farmersdelight:block/cyan_canvas_sign_rot_2", + "y": 180 + }, + "rotation=11": { + "model": "farmersdelight:block/cyan_canvas_sign_rot_3", + "y": 180 + }, + "rotation=12": { + "model": "farmersdelight:block/cyan_canvas_sign_rot_0", + "y": 270 + }, + "rotation=13": { + "model": "farmersdelight:block/cyan_canvas_sign_rot_1", + "y": 270 + }, + "rotation=14": { + "model": "farmersdelight:block/cyan_canvas_sign_rot_2", + "y": 270 + }, + "rotation=15": { + "model": "farmersdelight:block/cyan_canvas_sign_rot_3", + "y": 270 + }, + "rotation=2": { + "model": "farmersdelight:block/cyan_canvas_sign_rot_2" + }, + "rotation=3": { + "model": "farmersdelight:block/cyan_canvas_sign_rot_3" + }, + "rotation=4": { + "model": "farmersdelight:block/cyan_canvas_sign_rot_0", + "y": 90 + }, + "rotation=5": { + "model": "farmersdelight:block/cyan_canvas_sign_rot_1", + "y": 90 + }, + "rotation=6": { + "model": "farmersdelight:block/cyan_canvas_sign_rot_2", + "y": 90 + }, + "rotation=7": { + "model": "farmersdelight:block/cyan_canvas_sign_rot_3", + "y": 90 + }, + "rotation=8": { + "model": "farmersdelight:block/cyan_canvas_sign_rot_0", + "y": 180 + }, + "rotation=9": { + "model": "farmersdelight:block/cyan_canvas_sign_rot_1", + "y": 180 } } } \ No newline at end of file diff --git a/src/generated/resources/assets/farmersdelight/blockstates/cyan_canvas_wall_sign.json b/src/generated/resources/assets/farmersdelight/blockstates/cyan_canvas_wall_sign.json index 3e0339710..5ba0760f3 100644 --- a/src/generated/resources/assets/farmersdelight/blockstates/cyan_canvas_wall_sign.json +++ b/src/generated/resources/assets/farmersdelight/blockstates/cyan_canvas_wall_sign.json @@ -1,7 +1,19 @@ { "variants": { - "": { - "model": "farmersdelight:block/canvas_sign" + "facing=east": { + "model": "farmersdelight:block/cyan_canvas_wall_sign", + "y": 270 + }, + "facing=north": { + "model": "farmersdelight:block/cyan_canvas_wall_sign", + "y": 180 + }, + "facing=south": { + "model": "farmersdelight:block/cyan_canvas_wall_sign" + }, + "facing=west": { + "model": "farmersdelight:block/cyan_canvas_wall_sign", + "y": 90 } } } \ No newline at end of file diff --git a/src/generated/resources/assets/farmersdelight/blockstates/cyan_hanging_canvas_sign.json b/src/generated/resources/assets/farmersdelight/blockstates/cyan_hanging_canvas_sign.json index 3e0339710..ecc984d68 100644 --- a/src/generated/resources/assets/farmersdelight/blockstates/cyan_hanging_canvas_sign.json +++ b/src/generated/resources/assets/farmersdelight/blockstates/cyan_hanging_canvas_sign.json @@ -1,7 +1,124 @@ { "variants": { - "": { - "model": "farmersdelight:block/canvas_sign" + "attached=false,rotation=0": { + "model": "farmersdelight:block/cyan_hanging_canvas_sign_rot_0" + }, + "attached=false,rotation=1": { + "model": "farmersdelight:block/cyan_hanging_canvas_sign_rot_1" + }, + "attached=false,rotation=10": { + "model": "farmersdelight:block/cyan_hanging_canvas_sign_rot_2", + "y": 180 + }, + "attached=false,rotation=11": { + "model": "farmersdelight:block/cyan_hanging_canvas_sign_rot_3", + "y": 180 + }, + "attached=false,rotation=12": { + "model": "farmersdelight:block/cyan_hanging_canvas_sign_rot_0", + "y": 270 + }, + "attached=false,rotation=13": { + "model": "farmersdelight:block/cyan_hanging_canvas_sign_rot_1", + "y": 270 + }, + "attached=false,rotation=14": { + "model": "farmersdelight:block/cyan_hanging_canvas_sign_rot_2", + "y": 270 + }, + "attached=false,rotation=15": { + "model": "farmersdelight:block/cyan_hanging_canvas_sign_rot_3", + "y": 270 + }, + "attached=false,rotation=2": { + "model": "farmersdelight:block/cyan_hanging_canvas_sign_rot_2" + }, + "attached=false,rotation=3": { + "model": "farmersdelight:block/cyan_hanging_canvas_sign_rot_3" + }, + "attached=false,rotation=4": { + "model": "farmersdelight:block/cyan_hanging_canvas_sign_rot_0", + "y": 90 + }, + "attached=false,rotation=5": { + "model": "farmersdelight:block/cyan_hanging_canvas_sign_rot_1", + "y": 90 + }, + "attached=false,rotation=6": { + "model": "farmersdelight:block/cyan_hanging_canvas_sign_rot_2", + "y": 90 + }, + "attached=false,rotation=7": { + "model": "farmersdelight:block/cyan_hanging_canvas_sign_rot_3", + "y": 90 + }, + "attached=false,rotation=8": { + "model": "farmersdelight:block/cyan_hanging_canvas_sign_rot_0", + "y": 180 + }, + "attached=false,rotation=9": { + "model": "farmersdelight:block/cyan_hanging_canvas_sign_rot_1", + "y": 180 + }, + "attached=true,rotation=0": { + "model": "farmersdelight:block/cyan_hanging_canvas_sign_attached_rot_0" + }, + "attached=true,rotation=1": { + "model": "farmersdelight:block/cyan_hanging_canvas_sign_attached_rot_1" + }, + "attached=true,rotation=10": { + "model": "farmersdelight:block/cyan_hanging_canvas_sign_attached_rot_2", + "y": 180 + }, + "attached=true,rotation=11": { + "model": "farmersdelight:block/cyan_hanging_canvas_sign_attached_rot_3", + "y": 180 + }, + "attached=true,rotation=12": { + "model": "farmersdelight:block/cyan_hanging_canvas_sign_attached_rot_0", + "y": 270 + }, + "attached=true,rotation=13": { + "model": "farmersdelight:block/cyan_hanging_canvas_sign_attached_rot_1", + "y": 270 + }, + "attached=true,rotation=14": { + "model": "farmersdelight:block/cyan_hanging_canvas_sign_attached_rot_2", + "y": 270 + }, + "attached=true,rotation=15": { + "model": "farmersdelight:block/cyan_hanging_canvas_sign_attached_rot_3", + "y": 270 + }, + "attached=true,rotation=2": { + "model": "farmersdelight:block/cyan_hanging_canvas_sign_attached_rot_2" + }, + "attached=true,rotation=3": { + "model": "farmersdelight:block/cyan_hanging_canvas_sign_attached_rot_3" + }, + "attached=true,rotation=4": { + "model": "farmersdelight:block/cyan_hanging_canvas_sign_attached_rot_0", + "y": 90 + }, + "attached=true,rotation=5": { + "model": "farmersdelight:block/cyan_hanging_canvas_sign_attached_rot_1", + "y": 90 + }, + "attached=true,rotation=6": { + "model": "farmersdelight:block/cyan_hanging_canvas_sign_attached_rot_2", + "y": 90 + }, + "attached=true,rotation=7": { + "model": "farmersdelight:block/cyan_hanging_canvas_sign_attached_rot_3", + "y": 90 + }, + "attached=true,rotation=8": { + "model": "farmersdelight:block/cyan_hanging_canvas_sign_attached_rot_0", + "y": 180 + }, + "attached=true,rotation=9": { + "model": "farmersdelight:block/cyan_hanging_canvas_sign_attached_rot_1", + "y": 180 } } } \ No newline at end of file diff --git a/src/generated/resources/assets/farmersdelight/blockstates/cyan_wall_hanging_canvas_sign.json b/src/generated/resources/assets/farmersdelight/blockstates/cyan_wall_hanging_canvas_sign.json index 3e0339710..b3321aa70 100644 --- a/src/generated/resources/assets/farmersdelight/blockstates/cyan_wall_hanging_canvas_sign.json +++ b/src/generated/resources/assets/farmersdelight/blockstates/cyan_wall_hanging_canvas_sign.json @@ -1,7 +1,19 @@ { "variants": { - "": { - "model": "farmersdelight:block/canvas_sign" + "facing=east": { + "model": "farmersdelight:block/cyan_wall_hanging_canvas_sign", + "y": 270 + }, + "facing=north": { + "model": "farmersdelight:block/cyan_wall_hanging_canvas_sign", + "y": 180 + }, + "facing=south": { + "model": "farmersdelight:block/cyan_wall_hanging_canvas_sign" + }, + "facing=west": { + "model": "farmersdelight:block/cyan_wall_hanging_canvas_sign", + "y": 90 } } } \ No newline at end of file diff --git a/src/generated/resources/assets/farmersdelight/blockstates/gray_canvas_sign.json b/src/generated/resources/assets/farmersdelight/blockstates/gray_canvas_sign.json index 3e0339710..17cc23f4f 100644 --- a/src/generated/resources/assets/farmersdelight/blockstates/gray_canvas_sign.json +++ b/src/generated/resources/assets/farmersdelight/blockstates/gray_canvas_sign.json @@ -1,7 +1,64 @@ { "variants": { - "": { - "model": "farmersdelight:block/canvas_sign" + "rotation=0": { + "model": "farmersdelight:block/gray_canvas_sign_rot_0" + }, + "rotation=1": { + "model": "farmersdelight:block/gray_canvas_sign_rot_1" + }, + "rotation=10": { + "model": "farmersdelight:block/gray_canvas_sign_rot_2", + "y": 180 + }, + "rotation=11": { + "model": "farmersdelight:block/gray_canvas_sign_rot_3", + "y": 180 + }, + "rotation=12": { + "model": "farmersdelight:block/gray_canvas_sign_rot_0", + "y": 270 + }, + "rotation=13": { + "model": "farmersdelight:block/gray_canvas_sign_rot_1", + "y": 270 + }, + "rotation=14": { + "model": "farmersdelight:block/gray_canvas_sign_rot_2", + "y": 270 + }, + "rotation=15": { + "model": "farmersdelight:block/gray_canvas_sign_rot_3", + "y": 270 + }, + "rotation=2": { + "model": "farmersdelight:block/gray_canvas_sign_rot_2" + }, + "rotation=3": { + "model": "farmersdelight:block/gray_canvas_sign_rot_3" + }, + "rotation=4": { + "model": "farmersdelight:block/gray_canvas_sign_rot_0", + "y": 90 + }, + "rotation=5": { + "model": "farmersdelight:block/gray_canvas_sign_rot_1", + "y": 90 + }, + "rotation=6": { + "model": "farmersdelight:block/gray_canvas_sign_rot_2", + "y": 90 + }, + "rotation=7": { + "model": "farmersdelight:block/gray_canvas_sign_rot_3", + "y": 90 + }, + "rotation=8": { + "model": "farmersdelight:block/gray_canvas_sign_rot_0", + "y": 180 + }, + "rotation=9": { + "model": "farmersdelight:block/gray_canvas_sign_rot_1", + "y": 180 } } } \ No newline at end of file diff --git a/src/generated/resources/assets/farmersdelight/blockstates/gray_canvas_wall_sign.json b/src/generated/resources/assets/farmersdelight/blockstates/gray_canvas_wall_sign.json index 3e0339710..e24004c3d 100644 --- a/src/generated/resources/assets/farmersdelight/blockstates/gray_canvas_wall_sign.json +++ b/src/generated/resources/assets/farmersdelight/blockstates/gray_canvas_wall_sign.json @@ -1,7 +1,19 @@ { "variants": { - "": { - "model": "farmersdelight:block/canvas_sign" + "facing=east": { + "model": "farmersdelight:block/gray_canvas_wall_sign", + "y": 270 + }, + "facing=north": { + "model": "farmersdelight:block/gray_canvas_wall_sign", + "y": 180 + }, + "facing=south": { + "model": "farmersdelight:block/gray_canvas_wall_sign" + }, + "facing=west": { + "model": "farmersdelight:block/gray_canvas_wall_sign", + "y": 90 } } } \ No newline at end of file diff --git a/src/generated/resources/assets/farmersdelight/blockstates/gray_hanging_canvas_sign.json b/src/generated/resources/assets/farmersdelight/blockstates/gray_hanging_canvas_sign.json index 3e0339710..5ed37655e 100644 --- a/src/generated/resources/assets/farmersdelight/blockstates/gray_hanging_canvas_sign.json +++ b/src/generated/resources/assets/farmersdelight/blockstates/gray_hanging_canvas_sign.json @@ -1,7 +1,124 @@ { "variants": { - "": { - "model": "farmersdelight:block/canvas_sign" + "attached=false,rotation=0": { + "model": "farmersdelight:block/gray_hanging_canvas_sign_rot_0" + }, + "attached=false,rotation=1": { + "model": "farmersdelight:block/gray_hanging_canvas_sign_rot_1" + }, + "attached=false,rotation=10": { + "model": "farmersdelight:block/gray_hanging_canvas_sign_rot_2", + "y": 180 + }, + "attached=false,rotation=11": { + "model": "farmersdelight:block/gray_hanging_canvas_sign_rot_3", + "y": 180 + }, + "attached=false,rotation=12": { + "model": "farmersdelight:block/gray_hanging_canvas_sign_rot_0", + "y": 270 + }, + "attached=false,rotation=13": { + "model": "farmersdelight:block/gray_hanging_canvas_sign_rot_1", + "y": 270 + }, + "attached=false,rotation=14": { + "model": "farmersdelight:block/gray_hanging_canvas_sign_rot_2", + "y": 270 + }, + "attached=false,rotation=15": { + "model": "farmersdelight:block/gray_hanging_canvas_sign_rot_3", + "y": 270 + }, + "attached=false,rotation=2": { + "model": "farmersdelight:block/gray_hanging_canvas_sign_rot_2" + }, + "attached=false,rotation=3": { + "model": "farmersdelight:block/gray_hanging_canvas_sign_rot_3" + }, + "attached=false,rotation=4": { + "model": "farmersdelight:block/gray_hanging_canvas_sign_rot_0", + "y": 90 + }, + "attached=false,rotation=5": { + "model": "farmersdelight:block/gray_hanging_canvas_sign_rot_1", + "y": 90 + }, + "attached=false,rotation=6": { + "model": "farmersdelight:block/gray_hanging_canvas_sign_rot_2", + "y": 90 + }, + "attached=false,rotation=7": { + "model": "farmersdelight:block/gray_hanging_canvas_sign_rot_3", + "y": 90 + }, + "attached=false,rotation=8": { + "model": "farmersdelight:block/gray_hanging_canvas_sign_rot_0", + "y": 180 + }, + "attached=false,rotation=9": { + "model": "farmersdelight:block/gray_hanging_canvas_sign_rot_1", + "y": 180 + }, + "attached=true,rotation=0": { + "model": "farmersdelight:block/gray_hanging_canvas_sign_attached_rot_0" + }, + "attached=true,rotation=1": { + "model": "farmersdelight:block/gray_hanging_canvas_sign_attached_rot_1" + }, + "attached=true,rotation=10": { + "model": "farmersdelight:block/gray_hanging_canvas_sign_attached_rot_2", + "y": 180 + }, + "attached=true,rotation=11": { + "model": "farmersdelight:block/gray_hanging_canvas_sign_attached_rot_3", + "y": 180 + }, + "attached=true,rotation=12": { + "model": "farmersdelight:block/gray_hanging_canvas_sign_attached_rot_0", + "y": 270 + }, + "attached=true,rotation=13": { + "model": "farmersdelight:block/gray_hanging_canvas_sign_attached_rot_1", + "y": 270 + }, + "attached=true,rotation=14": { + "model": "farmersdelight:block/gray_hanging_canvas_sign_attached_rot_2", + "y": 270 + }, + "attached=true,rotation=15": { + "model": "farmersdelight:block/gray_hanging_canvas_sign_attached_rot_3", + "y": 270 + }, + "attached=true,rotation=2": { + "model": "farmersdelight:block/gray_hanging_canvas_sign_attached_rot_2" + }, + "attached=true,rotation=3": { + "model": "farmersdelight:block/gray_hanging_canvas_sign_attached_rot_3" + }, + "attached=true,rotation=4": { + "model": "farmersdelight:block/gray_hanging_canvas_sign_attached_rot_0", + "y": 90 + }, + "attached=true,rotation=5": { + "model": "farmersdelight:block/gray_hanging_canvas_sign_attached_rot_1", + "y": 90 + }, + "attached=true,rotation=6": { + "model": "farmersdelight:block/gray_hanging_canvas_sign_attached_rot_2", + "y": 90 + }, + "attached=true,rotation=7": { + "model": "farmersdelight:block/gray_hanging_canvas_sign_attached_rot_3", + "y": 90 + }, + "attached=true,rotation=8": { + "model": "farmersdelight:block/gray_hanging_canvas_sign_attached_rot_0", + "y": 180 + }, + "attached=true,rotation=9": { + "model": "farmersdelight:block/gray_hanging_canvas_sign_attached_rot_1", + "y": 180 } } } \ No newline at end of file diff --git a/src/generated/resources/assets/farmersdelight/blockstates/gray_wall_hanging_canvas_sign.json b/src/generated/resources/assets/farmersdelight/blockstates/gray_wall_hanging_canvas_sign.json index 3e0339710..37041a25c 100644 --- a/src/generated/resources/assets/farmersdelight/blockstates/gray_wall_hanging_canvas_sign.json +++ b/src/generated/resources/assets/farmersdelight/blockstates/gray_wall_hanging_canvas_sign.json @@ -1,7 +1,19 @@ { "variants": { - "": { - "model": "farmersdelight:block/canvas_sign" + "facing=east": { + "model": "farmersdelight:block/gray_wall_hanging_canvas_sign", + "y": 270 + }, + "facing=north": { + "model": "farmersdelight:block/gray_wall_hanging_canvas_sign", + "y": 180 + }, + "facing=south": { + "model": "farmersdelight:block/gray_wall_hanging_canvas_sign" + }, + "facing=west": { + "model": "farmersdelight:block/gray_wall_hanging_canvas_sign", + "y": 90 } } } \ No newline at end of file diff --git a/src/generated/resources/assets/farmersdelight/blockstates/green_canvas_sign.json b/src/generated/resources/assets/farmersdelight/blockstates/green_canvas_sign.json index 3e0339710..654f7fc8f 100644 --- a/src/generated/resources/assets/farmersdelight/blockstates/green_canvas_sign.json +++ b/src/generated/resources/assets/farmersdelight/blockstates/green_canvas_sign.json @@ -1,7 +1,64 @@ { "variants": { - "": { - "model": "farmersdelight:block/canvas_sign" + "rotation=0": { + "model": "farmersdelight:block/green_canvas_sign_rot_0" + }, + "rotation=1": { + "model": "farmersdelight:block/green_canvas_sign_rot_1" + }, + "rotation=10": { + "model": "farmersdelight:block/green_canvas_sign_rot_2", + "y": 180 + }, + "rotation=11": { + "model": "farmersdelight:block/green_canvas_sign_rot_3", + "y": 180 + }, + "rotation=12": { + "model": "farmersdelight:block/green_canvas_sign_rot_0", + "y": 270 + }, + "rotation=13": { + "model": "farmersdelight:block/green_canvas_sign_rot_1", + "y": 270 + }, + "rotation=14": { + "model": "farmersdelight:block/green_canvas_sign_rot_2", + "y": 270 + }, + "rotation=15": { + "model": "farmersdelight:block/green_canvas_sign_rot_3", + "y": 270 + }, + "rotation=2": { + "model": "farmersdelight:block/green_canvas_sign_rot_2" + }, + "rotation=3": { + "model": "farmersdelight:block/green_canvas_sign_rot_3" + }, + "rotation=4": { + "model": "farmersdelight:block/green_canvas_sign_rot_0", + "y": 90 + }, + "rotation=5": { + "model": "farmersdelight:block/green_canvas_sign_rot_1", + "y": 90 + }, + "rotation=6": { + "model": "farmersdelight:block/green_canvas_sign_rot_2", + "y": 90 + }, + "rotation=7": { + "model": "farmersdelight:block/green_canvas_sign_rot_3", + "y": 90 + }, + "rotation=8": { + "model": "farmersdelight:block/green_canvas_sign_rot_0", + "y": 180 + }, + "rotation=9": { + "model": "farmersdelight:block/green_canvas_sign_rot_1", + "y": 180 } } } \ No newline at end of file diff --git a/src/generated/resources/assets/farmersdelight/blockstates/green_canvas_wall_sign.json b/src/generated/resources/assets/farmersdelight/blockstates/green_canvas_wall_sign.json index 3e0339710..cbb11557b 100644 --- a/src/generated/resources/assets/farmersdelight/blockstates/green_canvas_wall_sign.json +++ b/src/generated/resources/assets/farmersdelight/blockstates/green_canvas_wall_sign.json @@ -1,7 +1,19 @@ { "variants": { - "": { - "model": "farmersdelight:block/canvas_sign" + "facing=east": { + "model": "farmersdelight:block/green_canvas_wall_sign", + "y": 270 + }, + "facing=north": { + "model": "farmersdelight:block/green_canvas_wall_sign", + "y": 180 + }, + "facing=south": { + "model": "farmersdelight:block/green_canvas_wall_sign" + }, + "facing=west": { + "model": "farmersdelight:block/green_canvas_wall_sign", + "y": 90 } } } \ No newline at end of file diff --git a/src/generated/resources/assets/farmersdelight/blockstates/green_hanging_canvas_sign.json b/src/generated/resources/assets/farmersdelight/blockstates/green_hanging_canvas_sign.json index 3e0339710..f5b43999e 100644 --- a/src/generated/resources/assets/farmersdelight/blockstates/green_hanging_canvas_sign.json +++ b/src/generated/resources/assets/farmersdelight/blockstates/green_hanging_canvas_sign.json @@ -1,7 +1,124 @@ { "variants": { - "": { - "model": "farmersdelight:block/canvas_sign" + "attached=false,rotation=0": { + "model": "farmersdelight:block/green_hanging_canvas_sign_rot_0" + }, + "attached=false,rotation=1": { + "model": "farmersdelight:block/green_hanging_canvas_sign_rot_1" + }, + "attached=false,rotation=10": { + "model": "farmersdelight:block/green_hanging_canvas_sign_rot_2", + "y": 180 + }, + "attached=false,rotation=11": { + "model": "farmersdelight:block/green_hanging_canvas_sign_rot_3", + "y": 180 + }, + "attached=false,rotation=12": { + "model": "farmersdelight:block/green_hanging_canvas_sign_rot_0", + "y": 270 + }, + "attached=false,rotation=13": { + "model": "farmersdelight:block/green_hanging_canvas_sign_rot_1", + "y": 270 + }, + "attached=false,rotation=14": { + "model": "farmersdelight:block/green_hanging_canvas_sign_rot_2", + "y": 270 + }, + "attached=false,rotation=15": { + "model": "farmersdelight:block/green_hanging_canvas_sign_rot_3", + "y": 270 + }, + "attached=false,rotation=2": { + "model": "farmersdelight:block/green_hanging_canvas_sign_rot_2" + }, + "attached=false,rotation=3": { + "model": "farmersdelight:block/green_hanging_canvas_sign_rot_3" + }, + "attached=false,rotation=4": { + "model": "farmersdelight:block/green_hanging_canvas_sign_rot_0", + "y": 90 + }, + "attached=false,rotation=5": { + "model": "farmersdelight:block/green_hanging_canvas_sign_rot_1", + "y": 90 + }, + "attached=false,rotation=6": { + "model": "farmersdelight:block/green_hanging_canvas_sign_rot_2", + "y": 90 + }, + "attached=false,rotation=7": { + "model": "farmersdelight:block/green_hanging_canvas_sign_rot_3", + "y": 90 + }, + "attached=false,rotation=8": { + "model": "farmersdelight:block/green_hanging_canvas_sign_rot_0", + "y": 180 + }, + "attached=false,rotation=9": { + "model": "farmersdelight:block/green_hanging_canvas_sign_rot_1", + "y": 180 + }, + "attached=true,rotation=0": { + "model": "farmersdelight:block/green_hanging_canvas_sign_attached_rot_0" + }, + "attached=true,rotation=1": { + "model": "farmersdelight:block/green_hanging_canvas_sign_attached_rot_1" + }, + "attached=true,rotation=10": { + "model": "farmersdelight:block/green_hanging_canvas_sign_attached_rot_2", + "y": 180 + }, + "attached=true,rotation=11": { + "model": "farmersdelight:block/green_hanging_canvas_sign_attached_rot_3", + "y": 180 + }, + "attached=true,rotation=12": { + "model": "farmersdelight:block/green_hanging_canvas_sign_attached_rot_0", + "y": 270 + }, + "attached=true,rotation=13": { + "model": "farmersdelight:block/green_hanging_canvas_sign_attached_rot_1", + "y": 270 + }, + "attached=true,rotation=14": { + "model": "farmersdelight:block/green_hanging_canvas_sign_attached_rot_2", + "y": 270 + }, + "attached=true,rotation=15": { + "model": "farmersdelight:block/green_hanging_canvas_sign_attached_rot_3", + "y": 270 + }, + "attached=true,rotation=2": { + "model": "farmersdelight:block/green_hanging_canvas_sign_attached_rot_2" + }, + "attached=true,rotation=3": { + "model": "farmersdelight:block/green_hanging_canvas_sign_attached_rot_3" + }, + "attached=true,rotation=4": { + "model": "farmersdelight:block/green_hanging_canvas_sign_attached_rot_0", + "y": 90 + }, + "attached=true,rotation=5": { + "model": "farmersdelight:block/green_hanging_canvas_sign_attached_rot_1", + "y": 90 + }, + "attached=true,rotation=6": { + "model": "farmersdelight:block/green_hanging_canvas_sign_attached_rot_2", + "y": 90 + }, + "attached=true,rotation=7": { + "model": "farmersdelight:block/green_hanging_canvas_sign_attached_rot_3", + "y": 90 + }, + "attached=true,rotation=8": { + "model": "farmersdelight:block/green_hanging_canvas_sign_attached_rot_0", + "y": 180 + }, + "attached=true,rotation=9": { + "model": "farmersdelight:block/green_hanging_canvas_sign_attached_rot_1", + "y": 180 } } } \ No newline at end of file diff --git a/src/generated/resources/assets/farmersdelight/blockstates/green_wall_hanging_canvas_sign.json b/src/generated/resources/assets/farmersdelight/blockstates/green_wall_hanging_canvas_sign.json index 3e0339710..c18b7e50d 100644 --- a/src/generated/resources/assets/farmersdelight/blockstates/green_wall_hanging_canvas_sign.json +++ b/src/generated/resources/assets/farmersdelight/blockstates/green_wall_hanging_canvas_sign.json @@ -1,7 +1,19 @@ { "variants": { - "": { - "model": "farmersdelight:block/canvas_sign" + "facing=east": { + "model": "farmersdelight:block/green_wall_hanging_canvas_sign", + "y": 270 + }, + "facing=north": { + "model": "farmersdelight:block/green_wall_hanging_canvas_sign", + "y": 180 + }, + "facing=south": { + "model": "farmersdelight:block/green_wall_hanging_canvas_sign" + }, + "facing=west": { + "model": "farmersdelight:block/green_wall_hanging_canvas_sign", + "y": 90 } } } \ No newline at end of file diff --git a/src/generated/resources/assets/farmersdelight/blockstates/hanging_canvas_sign.json b/src/generated/resources/assets/farmersdelight/blockstates/hanging_canvas_sign.json index 3e0339710..1481a288b 100644 --- a/src/generated/resources/assets/farmersdelight/blockstates/hanging_canvas_sign.json +++ b/src/generated/resources/assets/farmersdelight/blockstates/hanging_canvas_sign.json @@ -1,7 +1,124 @@ { "variants": { - "": { - "model": "farmersdelight:block/canvas_sign" + "attached=false,rotation=0": { + "model": "farmersdelight:block/hanging_canvas_sign_rot_0" + }, + "attached=false,rotation=1": { + "model": "farmersdelight:block/hanging_canvas_sign_rot_1" + }, + "attached=false,rotation=10": { + "model": "farmersdelight:block/hanging_canvas_sign_rot_2", + "y": 180 + }, + "attached=false,rotation=11": { + "model": "farmersdelight:block/hanging_canvas_sign_rot_3", + "y": 180 + }, + "attached=false,rotation=12": { + "model": "farmersdelight:block/hanging_canvas_sign_rot_0", + "y": 270 + }, + "attached=false,rotation=13": { + "model": "farmersdelight:block/hanging_canvas_sign_rot_1", + "y": 270 + }, + "attached=false,rotation=14": { + "model": "farmersdelight:block/hanging_canvas_sign_rot_2", + "y": 270 + }, + "attached=false,rotation=15": { + "model": "farmersdelight:block/hanging_canvas_sign_rot_3", + "y": 270 + }, + "attached=false,rotation=2": { + "model": "farmersdelight:block/hanging_canvas_sign_rot_2" + }, + "attached=false,rotation=3": { + "model": "farmersdelight:block/hanging_canvas_sign_rot_3" + }, + "attached=false,rotation=4": { + "model": "farmersdelight:block/hanging_canvas_sign_rot_0", + "y": 90 + }, + "attached=false,rotation=5": { + "model": "farmersdelight:block/hanging_canvas_sign_rot_1", + "y": 90 + }, + "attached=false,rotation=6": { + "model": "farmersdelight:block/hanging_canvas_sign_rot_2", + "y": 90 + }, + "attached=false,rotation=7": { + "model": "farmersdelight:block/hanging_canvas_sign_rot_3", + "y": 90 + }, + "attached=false,rotation=8": { + "model": "farmersdelight:block/hanging_canvas_sign_rot_0", + "y": 180 + }, + "attached=false,rotation=9": { + "model": "farmersdelight:block/hanging_canvas_sign_rot_1", + "y": 180 + }, + "attached=true,rotation=0": { + "model": "farmersdelight:block/hanging_canvas_sign_attached_rot_0" + }, + "attached=true,rotation=1": { + "model": "farmersdelight:block/hanging_canvas_sign_attached_rot_1" + }, + "attached=true,rotation=10": { + "model": "farmersdelight:block/hanging_canvas_sign_attached_rot_2", + "y": 180 + }, + "attached=true,rotation=11": { + "model": "farmersdelight:block/hanging_canvas_sign_attached_rot_3", + "y": 180 + }, + "attached=true,rotation=12": { + "model": "farmersdelight:block/hanging_canvas_sign_attached_rot_0", + "y": 270 + }, + "attached=true,rotation=13": { + "model": "farmersdelight:block/hanging_canvas_sign_attached_rot_1", + "y": 270 + }, + "attached=true,rotation=14": { + "model": "farmersdelight:block/hanging_canvas_sign_attached_rot_2", + "y": 270 + }, + "attached=true,rotation=15": { + "model": "farmersdelight:block/hanging_canvas_sign_attached_rot_3", + "y": 270 + }, + "attached=true,rotation=2": { + "model": "farmersdelight:block/hanging_canvas_sign_attached_rot_2" + }, + "attached=true,rotation=3": { + "model": "farmersdelight:block/hanging_canvas_sign_attached_rot_3" + }, + "attached=true,rotation=4": { + "model": "farmersdelight:block/hanging_canvas_sign_attached_rot_0", + "y": 90 + }, + "attached=true,rotation=5": { + "model": "farmersdelight:block/hanging_canvas_sign_attached_rot_1", + "y": 90 + }, + "attached=true,rotation=6": { + "model": "farmersdelight:block/hanging_canvas_sign_attached_rot_2", + "y": 90 + }, + "attached=true,rotation=7": { + "model": "farmersdelight:block/hanging_canvas_sign_attached_rot_3", + "y": 90 + }, + "attached=true,rotation=8": { + "model": "farmersdelight:block/hanging_canvas_sign_attached_rot_0", + "y": 180 + }, + "attached=true,rotation=9": { + "model": "farmersdelight:block/hanging_canvas_sign_attached_rot_1", + "y": 180 } } } \ No newline at end of file diff --git a/src/generated/resources/assets/farmersdelight/blockstates/light_blue_canvas_sign.json b/src/generated/resources/assets/farmersdelight/blockstates/light_blue_canvas_sign.json index 3e0339710..97c48e807 100644 --- a/src/generated/resources/assets/farmersdelight/blockstates/light_blue_canvas_sign.json +++ b/src/generated/resources/assets/farmersdelight/blockstates/light_blue_canvas_sign.json @@ -1,7 +1,64 @@ { "variants": { - "": { - "model": "farmersdelight:block/canvas_sign" + "rotation=0": { + "model": "farmersdelight:block/light_blue_canvas_sign_rot_0" + }, + "rotation=1": { + "model": "farmersdelight:block/light_blue_canvas_sign_rot_1" + }, + "rotation=10": { + "model": "farmersdelight:block/light_blue_canvas_sign_rot_2", + "y": 180 + }, + "rotation=11": { + "model": "farmersdelight:block/light_blue_canvas_sign_rot_3", + "y": 180 + }, + "rotation=12": { + "model": "farmersdelight:block/light_blue_canvas_sign_rot_0", + "y": 270 + }, + "rotation=13": { + "model": "farmersdelight:block/light_blue_canvas_sign_rot_1", + "y": 270 + }, + "rotation=14": { + "model": "farmersdelight:block/light_blue_canvas_sign_rot_2", + "y": 270 + }, + "rotation=15": { + "model": "farmersdelight:block/light_blue_canvas_sign_rot_3", + "y": 270 + }, + "rotation=2": { + "model": "farmersdelight:block/light_blue_canvas_sign_rot_2" + }, + "rotation=3": { + "model": "farmersdelight:block/light_blue_canvas_sign_rot_3" + }, + "rotation=4": { + "model": "farmersdelight:block/light_blue_canvas_sign_rot_0", + "y": 90 + }, + "rotation=5": { + "model": "farmersdelight:block/light_blue_canvas_sign_rot_1", + "y": 90 + }, + "rotation=6": { + "model": "farmersdelight:block/light_blue_canvas_sign_rot_2", + "y": 90 + }, + "rotation=7": { + "model": "farmersdelight:block/light_blue_canvas_sign_rot_3", + "y": 90 + }, + "rotation=8": { + "model": "farmersdelight:block/light_blue_canvas_sign_rot_0", + "y": 180 + }, + "rotation=9": { + "model": "farmersdelight:block/light_blue_canvas_sign_rot_1", + "y": 180 } } } \ No newline at end of file diff --git a/src/generated/resources/assets/farmersdelight/blockstates/light_blue_canvas_wall_sign.json b/src/generated/resources/assets/farmersdelight/blockstates/light_blue_canvas_wall_sign.json index 3e0339710..766794baf 100644 --- a/src/generated/resources/assets/farmersdelight/blockstates/light_blue_canvas_wall_sign.json +++ b/src/generated/resources/assets/farmersdelight/blockstates/light_blue_canvas_wall_sign.json @@ -1,7 +1,19 @@ { "variants": { - "": { - "model": "farmersdelight:block/canvas_sign" + "facing=east": { + "model": "farmersdelight:block/light_blue_canvas_wall_sign", + "y": 270 + }, + "facing=north": { + "model": "farmersdelight:block/light_blue_canvas_wall_sign", + "y": 180 + }, + "facing=south": { + "model": "farmersdelight:block/light_blue_canvas_wall_sign" + }, + "facing=west": { + "model": "farmersdelight:block/light_blue_canvas_wall_sign", + "y": 90 } } } \ No newline at end of file diff --git a/src/generated/resources/assets/farmersdelight/blockstates/light_blue_hanging_canvas_sign.json b/src/generated/resources/assets/farmersdelight/blockstates/light_blue_hanging_canvas_sign.json index 3e0339710..9e16d7c66 100644 --- a/src/generated/resources/assets/farmersdelight/blockstates/light_blue_hanging_canvas_sign.json +++ b/src/generated/resources/assets/farmersdelight/blockstates/light_blue_hanging_canvas_sign.json @@ -1,7 +1,124 @@ { "variants": { - "": { - "model": "farmersdelight:block/canvas_sign" + "attached=false,rotation=0": { + "model": "farmersdelight:block/light_blue_hanging_canvas_sign_rot_0" + }, + "attached=false,rotation=1": { + "model": "farmersdelight:block/light_blue_hanging_canvas_sign_rot_1" + }, + "attached=false,rotation=10": { + "model": "farmersdelight:block/light_blue_hanging_canvas_sign_rot_2", + "y": 180 + }, + "attached=false,rotation=11": { + "model": "farmersdelight:block/light_blue_hanging_canvas_sign_rot_3", + "y": 180 + }, + "attached=false,rotation=12": { + "model": "farmersdelight:block/light_blue_hanging_canvas_sign_rot_0", + "y": 270 + }, + "attached=false,rotation=13": { + "model": "farmersdelight:block/light_blue_hanging_canvas_sign_rot_1", + "y": 270 + }, + "attached=false,rotation=14": { + "model": "farmersdelight:block/light_blue_hanging_canvas_sign_rot_2", + "y": 270 + }, + "attached=false,rotation=15": { + "model": "farmersdelight:block/light_blue_hanging_canvas_sign_rot_3", + "y": 270 + }, + "attached=false,rotation=2": { + "model": "farmersdelight:block/light_blue_hanging_canvas_sign_rot_2" + }, + "attached=false,rotation=3": { + "model": "farmersdelight:block/light_blue_hanging_canvas_sign_rot_3" + }, + "attached=false,rotation=4": { + "model": "farmersdelight:block/light_blue_hanging_canvas_sign_rot_0", + "y": 90 + }, + "attached=false,rotation=5": { + "model": "farmersdelight:block/light_blue_hanging_canvas_sign_rot_1", + "y": 90 + }, + "attached=false,rotation=6": { + "model": "farmersdelight:block/light_blue_hanging_canvas_sign_rot_2", + "y": 90 + }, + "attached=false,rotation=7": { + "model": "farmersdelight:block/light_blue_hanging_canvas_sign_rot_3", + "y": 90 + }, + "attached=false,rotation=8": { + "model": "farmersdelight:block/light_blue_hanging_canvas_sign_rot_0", + "y": 180 + }, + "attached=false,rotation=9": { + "model": "farmersdelight:block/light_blue_hanging_canvas_sign_rot_1", + "y": 180 + }, + "attached=true,rotation=0": { + "model": "farmersdelight:block/light_blue_hanging_canvas_sign_attached_rot_0" + }, + "attached=true,rotation=1": { + "model": "farmersdelight:block/light_blue_hanging_canvas_sign_attached_rot_1" + }, + "attached=true,rotation=10": { + "model": "farmersdelight:block/light_blue_hanging_canvas_sign_attached_rot_2", + "y": 180 + }, + "attached=true,rotation=11": { + "model": "farmersdelight:block/light_blue_hanging_canvas_sign_attached_rot_3", + "y": 180 + }, + "attached=true,rotation=12": { + "model": "farmersdelight:block/light_blue_hanging_canvas_sign_attached_rot_0", + "y": 270 + }, + "attached=true,rotation=13": { + "model": "farmersdelight:block/light_blue_hanging_canvas_sign_attached_rot_1", + "y": 270 + }, + "attached=true,rotation=14": { + "model": "farmersdelight:block/light_blue_hanging_canvas_sign_attached_rot_2", + "y": 270 + }, + "attached=true,rotation=15": { + "model": "farmersdelight:block/light_blue_hanging_canvas_sign_attached_rot_3", + "y": 270 + }, + "attached=true,rotation=2": { + "model": "farmersdelight:block/light_blue_hanging_canvas_sign_attached_rot_2" + }, + "attached=true,rotation=3": { + "model": "farmersdelight:block/light_blue_hanging_canvas_sign_attached_rot_3" + }, + "attached=true,rotation=4": { + "model": "farmersdelight:block/light_blue_hanging_canvas_sign_attached_rot_0", + "y": 90 + }, + "attached=true,rotation=5": { + "model": "farmersdelight:block/light_blue_hanging_canvas_sign_attached_rot_1", + "y": 90 + }, + "attached=true,rotation=6": { + "model": "farmersdelight:block/light_blue_hanging_canvas_sign_attached_rot_2", + "y": 90 + }, + "attached=true,rotation=7": { + "model": "farmersdelight:block/light_blue_hanging_canvas_sign_attached_rot_3", + "y": 90 + }, + "attached=true,rotation=8": { + "model": "farmersdelight:block/light_blue_hanging_canvas_sign_attached_rot_0", + "y": 180 + }, + "attached=true,rotation=9": { + "model": "farmersdelight:block/light_blue_hanging_canvas_sign_attached_rot_1", + "y": 180 } } } \ No newline at end of file diff --git a/src/generated/resources/assets/farmersdelight/blockstates/light_blue_wall_hanging_canvas_sign.json b/src/generated/resources/assets/farmersdelight/blockstates/light_blue_wall_hanging_canvas_sign.json index 3e0339710..3aa17f6e2 100644 --- a/src/generated/resources/assets/farmersdelight/blockstates/light_blue_wall_hanging_canvas_sign.json +++ b/src/generated/resources/assets/farmersdelight/blockstates/light_blue_wall_hanging_canvas_sign.json @@ -1,7 +1,19 @@ { "variants": { - "": { - "model": "farmersdelight:block/canvas_sign" + "facing=east": { + "model": "farmersdelight:block/light_blue_wall_hanging_canvas_sign", + "y": 270 + }, + "facing=north": { + "model": "farmersdelight:block/light_blue_wall_hanging_canvas_sign", + "y": 180 + }, + "facing=south": { + "model": "farmersdelight:block/light_blue_wall_hanging_canvas_sign" + }, + "facing=west": { + "model": "farmersdelight:block/light_blue_wall_hanging_canvas_sign", + "y": 90 } } } \ No newline at end of file diff --git a/src/generated/resources/assets/farmersdelight/blockstates/light_gray_canvas_sign.json b/src/generated/resources/assets/farmersdelight/blockstates/light_gray_canvas_sign.json index 3e0339710..280b544b2 100644 --- a/src/generated/resources/assets/farmersdelight/blockstates/light_gray_canvas_sign.json +++ b/src/generated/resources/assets/farmersdelight/blockstates/light_gray_canvas_sign.json @@ -1,7 +1,64 @@ { "variants": { - "": { - "model": "farmersdelight:block/canvas_sign" + "rotation=0": { + "model": "farmersdelight:block/light_gray_canvas_sign_rot_0" + }, + "rotation=1": { + "model": "farmersdelight:block/light_gray_canvas_sign_rot_1" + }, + "rotation=10": { + "model": "farmersdelight:block/light_gray_canvas_sign_rot_2", + "y": 180 + }, + "rotation=11": { + "model": "farmersdelight:block/light_gray_canvas_sign_rot_3", + "y": 180 + }, + "rotation=12": { + "model": "farmersdelight:block/light_gray_canvas_sign_rot_0", + "y": 270 + }, + "rotation=13": { + "model": "farmersdelight:block/light_gray_canvas_sign_rot_1", + "y": 270 + }, + "rotation=14": { + "model": "farmersdelight:block/light_gray_canvas_sign_rot_2", + "y": 270 + }, + "rotation=15": { + "model": "farmersdelight:block/light_gray_canvas_sign_rot_3", + "y": 270 + }, + "rotation=2": { + "model": "farmersdelight:block/light_gray_canvas_sign_rot_2" + }, + "rotation=3": { + "model": "farmersdelight:block/light_gray_canvas_sign_rot_3" + }, + "rotation=4": { + "model": "farmersdelight:block/light_gray_canvas_sign_rot_0", + "y": 90 + }, + "rotation=5": { + "model": "farmersdelight:block/light_gray_canvas_sign_rot_1", + "y": 90 + }, + "rotation=6": { + "model": "farmersdelight:block/light_gray_canvas_sign_rot_2", + "y": 90 + }, + "rotation=7": { + "model": "farmersdelight:block/light_gray_canvas_sign_rot_3", + "y": 90 + }, + "rotation=8": { + "model": "farmersdelight:block/light_gray_canvas_sign_rot_0", + "y": 180 + }, + "rotation=9": { + "model": "farmersdelight:block/light_gray_canvas_sign_rot_1", + "y": 180 } } } \ No newline at end of file diff --git a/src/generated/resources/assets/farmersdelight/blockstates/light_gray_canvas_wall_sign.json b/src/generated/resources/assets/farmersdelight/blockstates/light_gray_canvas_wall_sign.json index 3e0339710..bb96fd1d1 100644 --- a/src/generated/resources/assets/farmersdelight/blockstates/light_gray_canvas_wall_sign.json +++ b/src/generated/resources/assets/farmersdelight/blockstates/light_gray_canvas_wall_sign.json @@ -1,7 +1,19 @@ { "variants": { - "": { - "model": "farmersdelight:block/canvas_sign" + "facing=east": { + "model": "farmersdelight:block/light_gray_canvas_wall_sign", + "y": 270 + }, + "facing=north": { + "model": "farmersdelight:block/light_gray_canvas_wall_sign", + "y": 180 + }, + "facing=south": { + "model": "farmersdelight:block/light_gray_canvas_wall_sign" + }, + "facing=west": { + "model": "farmersdelight:block/light_gray_canvas_wall_sign", + "y": 90 } } } \ No newline at end of file diff --git a/src/generated/resources/assets/farmersdelight/blockstates/light_gray_hanging_canvas_sign.json b/src/generated/resources/assets/farmersdelight/blockstates/light_gray_hanging_canvas_sign.json index 3e0339710..955324ff2 100644 --- a/src/generated/resources/assets/farmersdelight/blockstates/light_gray_hanging_canvas_sign.json +++ b/src/generated/resources/assets/farmersdelight/blockstates/light_gray_hanging_canvas_sign.json @@ -1,7 +1,124 @@ { "variants": { - "": { - "model": "farmersdelight:block/canvas_sign" + "attached=false,rotation=0": { + "model": "farmersdelight:block/light_gray_hanging_canvas_sign_rot_0" + }, + "attached=false,rotation=1": { + "model": "farmersdelight:block/light_gray_hanging_canvas_sign_rot_1" + }, + "attached=false,rotation=10": { + "model": "farmersdelight:block/light_gray_hanging_canvas_sign_rot_2", + "y": 180 + }, + "attached=false,rotation=11": { + "model": "farmersdelight:block/light_gray_hanging_canvas_sign_rot_3", + "y": 180 + }, + "attached=false,rotation=12": { + "model": "farmersdelight:block/light_gray_hanging_canvas_sign_rot_0", + "y": 270 + }, + "attached=false,rotation=13": { + "model": "farmersdelight:block/light_gray_hanging_canvas_sign_rot_1", + "y": 270 + }, + "attached=false,rotation=14": { + "model": "farmersdelight:block/light_gray_hanging_canvas_sign_rot_2", + "y": 270 + }, + "attached=false,rotation=15": { + "model": "farmersdelight:block/light_gray_hanging_canvas_sign_rot_3", + "y": 270 + }, + "attached=false,rotation=2": { + "model": "farmersdelight:block/light_gray_hanging_canvas_sign_rot_2" + }, + "attached=false,rotation=3": { + "model": "farmersdelight:block/light_gray_hanging_canvas_sign_rot_3" + }, + "attached=false,rotation=4": { + "model": "farmersdelight:block/light_gray_hanging_canvas_sign_rot_0", + "y": 90 + }, + "attached=false,rotation=5": { + "model": "farmersdelight:block/light_gray_hanging_canvas_sign_rot_1", + "y": 90 + }, + "attached=false,rotation=6": { + "model": "farmersdelight:block/light_gray_hanging_canvas_sign_rot_2", + "y": 90 + }, + "attached=false,rotation=7": { + "model": "farmersdelight:block/light_gray_hanging_canvas_sign_rot_3", + "y": 90 + }, + "attached=false,rotation=8": { + "model": "farmersdelight:block/light_gray_hanging_canvas_sign_rot_0", + "y": 180 + }, + "attached=false,rotation=9": { + "model": "farmersdelight:block/light_gray_hanging_canvas_sign_rot_1", + "y": 180 + }, + "attached=true,rotation=0": { + "model": "farmersdelight:block/light_gray_hanging_canvas_sign_attached_rot_0" + }, + "attached=true,rotation=1": { + "model": "farmersdelight:block/light_gray_hanging_canvas_sign_attached_rot_1" + }, + "attached=true,rotation=10": { + "model": "farmersdelight:block/light_gray_hanging_canvas_sign_attached_rot_2", + "y": 180 + }, + "attached=true,rotation=11": { + "model": "farmersdelight:block/light_gray_hanging_canvas_sign_attached_rot_3", + "y": 180 + }, + "attached=true,rotation=12": { + "model": "farmersdelight:block/light_gray_hanging_canvas_sign_attached_rot_0", + "y": 270 + }, + "attached=true,rotation=13": { + "model": "farmersdelight:block/light_gray_hanging_canvas_sign_attached_rot_1", + "y": 270 + }, + "attached=true,rotation=14": { + "model": "farmersdelight:block/light_gray_hanging_canvas_sign_attached_rot_2", + "y": 270 + }, + "attached=true,rotation=15": { + "model": "farmersdelight:block/light_gray_hanging_canvas_sign_attached_rot_3", + "y": 270 + }, + "attached=true,rotation=2": { + "model": "farmersdelight:block/light_gray_hanging_canvas_sign_attached_rot_2" + }, + "attached=true,rotation=3": { + "model": "farmersdelight:block/light_gray_hanging_canvas_sign_attached_rot_3" + }, + "attached=true,rotation=4": { + "model": "farmersdelight:block/light_gray_hanging_canvas_sign_attached_rot_0", + "y": 90 + }, + "attached=true,rotation=5": { + "model": "farmersdelight:block/light_gray_hanging_canvas_sign_attached_rot_1", + "y": 90 + }, + "attached=true,rotation=6": { + "model": "farmersdelight:block/light_gray_hanging_canvas_sign_attached_rot_2", + "y": 90 + }, + "attached=true,rotation=7": { + "model": "farmersdelight:block/light_gray_hanging_canvas_sign_attached_rot_3", + "y": 90 + }, + "attached=true,rotation=8": { + "model": "farmersdelight:block/light_gray_hanging_canvas_sign_attached_rot_0", + "y": 180 + }, + "attached=true,rotation=9": { + "model": "farmersdelight:block/light_gray_hanging_canvas_sign_attached_rot_1", + "y": 180 } } } \ No newline at end of file diff --git a/src/generated/resources/assets/farmersdelight/blockstates/light_gray_wall_hanging_canvas_sign.json b/src/generated/resources/assets/farmersdelight/blockstates/light_gray_wall_hanging_canvas_sign.json index 3e0339710..bab26b597 100644 --- a/src/generated/resources/assets/farmersdelight/blockstates/light_gray_wall_hanging_canvas_sign.json +++ b/src/generated/resources/assets/farmersdelight/blockstates/light_gray_wall_hanging_canvas_sign.json @@ -1,7 +1,19 @@ { "variants": { - "": { - "model": "farmersdelight:block/canvas_sign" + "facing=east": { + "model": "farmersdelight:block/light_gray_wall_hanging_canvas_sign", + "y": 270 + }, + "facing=north": { + "model": "farmersdelight:block/light_gray_wall_hanging_canvas_sign", + "y": 180 + }, + "facing=south": { + "model": "farmersdelight:block/light_gray_wall_hanging_canvas_sign" + }, + "facing=west": { + "model": "farmersdelight:block/light_gray_wall_hanging_canvas_sign", + "y": 90 } } } \ No newline at end of file diff --git a/src/generated/resources/assets/farmersdelight/blockstates/lime_canvas_sign.json b/src/generated/resources/assets/farmersdelight/blockstates/lime_canvas_sign.json index 3e0339710..b495b7970 100644 --- a/src/generated/resources/assets/farmersdelight/blockstates/lime_canvas_sign.json +++ b/src/generated/resources/assets/farmersdelight/blockstates/lime_canvas_sign.json @@ -1,7 +1,64 @@ { "variants": { - "": { - "model": "farmersdelight:block/canvas_sign" + "rotation=0": { + "model": "farmersdelight:block/lime_canvas_sign_rot_0" + }, + "rotation=1": { + "model": "farmersdelight:block/lime_canvas_sign_rot_1" + }, + "rotation=10": { + "model": "farmersdelight:block/lime_canvas_sign_rot_2", + "y": 180 + }, + "rotation=11": { + "model": "farmersdelight:block/lime_canvas_sign_rot_3", + "y": 180 + }, + "rotation=12": { + "model": "farmersdelight:block/lime_canvas_sign_rot_0", + "y": 270 + }, + "rotation=13": { + "model": "farmersdelight:block/lime_canvas_sign_rot_1", + "y": 270 + }, + "rotation=14": { + "model": "farmersdelight:block/lime_canvas_sign_rot_2", + "y": 270 + }, + "rotation=15": { + "model": "farmersdelight:block/lime_canvas_sign_rot_3", + "y": 270 + }, + "rotation=2": { + "model": "farmersdelight:block/lime_canvas_sign_rot_2" + }, + "rotation=3": { + "model": "farmersdelight:block/lime_canvas_sign_rot_3" + }, + "rotation=4": { + "model": "farmersdelight:block/lime_canvas_sign_rot_0", + "y": 90 + }, + "rotation=5": { + "model": "farmersdelight:block/lime_canvas_sign_rot_1", + "y": 90 + }, + "rotation=6": { + "model": "farmersdelight:block/lime_canvas_sign_rot_2", + "y": 90 + }, + "rotation=7": { + "model": "farmersdelight:block/lime_canvas_sign_rot_3", + "y": 90 + }, + "rotation=8": { + "model": "farmersdelight:block/lime_canvas_sign_rot_0", + "y": 180 + }, + "rotation=9": { + "model": "farmersdelight:block/lime_canvas_sign_rot_1", + "y": 180 } } } \ No newline at end of file diff --git a/src/generated/resources/assets/farmersdelight/blockstates/lime_canvas_wall_sign.json b/src/generated/resources/assets/farmersdelight/blockstates/lime_canvas_wall_sign.json index 3e0339710..60d6a58cc 100644 --- a/src/generated/resources/assets/farmersdelight/blockstates/lime_canvas_wall_sign.json +++ b/src/generated/resources/assets/farmersdelight/blockstates/lime_canvas_wall_sign.json @@ -1,7 +1,19 @@ { "variants": { - "": { - "model": "farmersdelight:block/canvas_sign" + "facing=east": { + "model": "farmersdelight:block/lime_canvas_wall_sign", + "y": 270 + }, + "facing=north": { + "model": "farmersdelight:block/lime_canvas_wall_sign", + "y": 180 + }, + "facing=south": { + "model": "farmersdelight:block/lime_canvas_wall_sign" + }, + "facing=west": { + "model": "farmersdelight:block/lime_canvas_wall_sign", + "y": 90 } } } \ No newline at end of file diff --git a/src/generated/resources/assets/farmersdelight/blockstates/lime_hanging_canvas_sign.json b/src/generated/resources/assets/farmersdelight/blockstates/lime_hanging_canvas_sign.json index 3e0339710..aec4a4bc0 100644 --- a/src/generated/resources/assets/farmersdelight/blockstates/lime_hanging_canvas_sign.json +++ b/src/generated/resources/assets/farmersdelight/blockstates/lime_hanging_canvas_sign.json @@ -1,7 +1,124 @@ { "variants": { - "": { - "model": "farmersdelight:block/canvas_sign" + "attached=false,rotation=0": { + "model": "farmersdelight:block/lime_hanging_canvas_sign_rot_0" + }, + "attached=false,rotation=1": { + "model": "farmersdelight:block/lime_hanging_canvas_sign_rot_1" + }, + "attached=false,rotation=10": { + "model": "farmersdelight:block/lime_hanging_canvas_sign_rot_2", + "y": 180 + }, + "attached=false,rotation=11": { + "model": "farmersdelight:block/lime_hanging_canvas_sign_rot_3", + "y": 180 + }, + "attached=false,rotation=12": { + "model": "farmersdelight:block/lime_hanging_canvas_sign_rot_0", + "y": 270 + }, + "attached=false,rotation=13": { + "model": "farmersdelight:block/lime_hanging_canvas_sign_rot_1", + "y": 270 + }, + "attached=false,rotation=14": { + "model": "farmersdelight:block/lime_hanging_canvas_sign_rot_2", + "y": 270 + }, + "attached=false,rotation=15": { + "model": "farmersdelight:block/lime_hanging_canvas_sign_rot_3", + "y": 270 + }, + "attached=false,rotation=2": { + "model": "farmersdelight:block/lime_hanging_canvas_sign_rot_2" + }, + "attached=false,rotation=3": { + "model": "farmersdelight:block/lime_hanging_canvas_sign_rot_3" + }, + "attached=false,rotation=4": { + "model": "farmersdelight:block/lime_hanging_canvas_sign_rot_0", + "y": 90 + }, + "attached=false,rotation=5": { + "model": "farmersdelight:block/lime_hanging_canvas_sign_rot_1", + "y": 90 + }, + "attached=false,rotation=6": { + "model": "farmersdelight:block/lime_hanging_canvas_sign_rot_2", + "y": 90 + }, + "attached=false,rotation=7": { + "model": "farmersdelight:block/lime_hanging_canvas_sign_rot_3", + "y": 90 + }, + "attached=false,rotation=8": { + "model": "farmersdelight:block/lime_hanging_canvas_sign_rot_0", + "y": 180 + }, + "attached=false,rotation=9": { + "model": "farmersdelight:block/lime_hanging_canvas_sign_rot_1", + "y": 180 + }, + "attached=true,rotation=0": { + "model": "farmersdelight:block/lime_hanging_canvas_sign_attached_rot_0" + }, + "attached=true,rotation=1": { + "model": "farmersdelight:block/lime_hanging_canvas_sign_attached_rot_1" + }, + "attached=true,rotation=10": { + "model": "farmersdelight:block/lime_hanging_canvas_sign_attached_rot_2", + "y": 180 + }, + "attached=true,rotation=11": { + "model": "farmersdelight:block/lime_hanging_canvas_sign_attached_rot_3", + "y": 180 + }, + "attached=true,rotation=12": { + "model": "farmersdelight:block/lime_hanging_canvas_sign_attached_rot_0", + "y": 270 + }, + "attached=true,rotation=13": { + "model": "farmersdelight:block/lime_hanging_canvas_sign_attached_rot_1", + "y": 270 + }, + "attached=true,rotation=14": { + "model": "farmersdelight:block/lime_hanging_canvas_sign_attached_rot_2", + "y": 270 + }, + "attached=true,rotation=15": { + "model": "farmersdelight:block/lime_hanging_canvas_sign_attached_rot_3", + "y": 270 + }, + "attached=true,rotation=2": { + "model": "farmersdelight:block/lime_hanging_canvas_sign_attached_rot_2" + }, + "attached=true,rotation=3": { + "model": "farmersdelight:block/lime_hanging_canvas_sign_attached_rot_3" + }, + "attached=true,rotation=4": { + "model": "farmersdelight:block/lime_hanging_canvas_sign_attached_rot_0", + "y": 90 + }, + "attached=true,rotation=5": { + "model": "farmersdelight:block/lime_hanging_canvas_sign_attached_rot_1", + "y": 90 + }, + "attached=true,rotation=6": { + "model": "farmersdelight:block/lime_hanging_canvas_sign_attached_rot_2", + "y": 90 + }, + "attached=true,rotation=7": { + "model": "farmersdelight:block/lime_hanging_canvas_sign_attached_rot_3", + "y": 90 + }, + "attached=true,rotation=8": { + "model": "farmersdelight:block/lime_hanging_canvas_sign_attached_rot_0", + "y": 180 + }, + "attached=true,rotation=9": { + "model": "farmersdelight:block/lime_hanging_canvas_sign_attached_rot_1", + "y": 180 } } } \ No newline at end of file diff --git a/src/generated/resources/assets/farmersdelight/blockstates/lime_wall_hanging_canvas_sign.json b/src/generated/resources/assets/farmersdelight/blockstates/lime_wall_hanging_canvas_sign.json index 3e0339710..fe3d18732 100644 --- a/src/generated/resources/assets/farmersdelight/blockstates/lime_wall_hanging_canvas_sign.json +++ b/src/generated/resources/assets/farmersdelight/blockstates/lime_wall_hanging_canvas_sign.json @@ -1,7 +1,19 @@ { "variants": { - "": { - "model": "farmersdelight:block/canvas_sign" + "facing=east": { + "model": "farmersdelight:block/lime_wall_hanging_canvas_sign", + "y": 270 + }, + "facing=north": { + "model": "farmersdelight:block/lime_wall_hanging_canvas_sign", + "y": 180 + }, + "facing=south": { + "model": "farmersdelight:block/lime_wall_hanging_canvas_sign" + }, + "facing=west": { + "model": "farmersdelight:block/lime_wall_hanging_canvas_sign", + "y": 90 } } } \ No newline at end of file diff --git a/src/generated/resources/assets/farmersdelight/blockstates/magenta_canvas_sign.json b/src/generated/resources/assets/farmersdelight/blockstates/magenta_canvas_sign.json index 3e0339710..63b27b57e 100644 --- a/src/generated/resources/assets/farmersdelight/blockstates/magenta_canvas_sign.json +++ b/src/generated/resources/assets/farmersdelight/blockstates/magenta_canvas_sign.json @@ -1,7 +1,64 @@ { "variants": { - "": { - "model": "farmersdelight:block/canvas_sign" + "rotation=0": { + "model": "farmersdelight:block/magenta_canvas_sign_rot_0" + }, + "rotation=1": { + "model": "farmersdelight:block/magenta_canvas_sign_rot_1" + }, + "rotation=10": { + "model": "farmersdelight:block/magenta_canvas_sign_rot_2", + "y": 180 + }, + "rotation=11": { + "model": "farmersdelight:block/magenta_canvas_sign_rot_3", + "y": 180 + }, + "rotation=12": { + "model": "farmersdelight:block/magenta_canvas_sign_rot_0", + "y": 270 + }, + "rotation=13": { + "model": "farmersdelight:block/magenta_canvas_sign_rot_1", + "y": 270 + }, + "rotation=14": { + "model": "farmersdelight:block/magenta_canvas_sign_rot_2", + "y": 270 + }, + "rotation=15": { + "model": "farmersdelight:block/magenta_canvas_sign_rot_3", + "y": 270 + }, + "rotation=2": { + "model": "farmersdelight:block/magenta_canvas_sign_rot_2" + }, + "rotation=3": { + "model": "farmersdelight:block/magenta_canvas_sign_rot_3" + }, + "rotation=4": { + "model": "farmersdelight:block/magenta_canvas_sign_rot_0", + "y": 90 + }, + "rotation=5": { + "model": "farmersdelight:block/magenta_canvas_sign_rot_1", + "y": 90 + }, + "rotation=6": { + "model": "farmersdelight:block/magenta_canvas_sign_rot_2", + "y": 90 + }, + "rotation=7": { + "model": "farmersdelight:block/magenta_canvas_sign_rot_3", + "y": 90 + }, + "rotation=8": { + "model": "farmersdelight:block/magenta_canvas_sign_rot_0", + "y": 180 + }, + "rotation=9": { + "model": "farmersdelight:block/magenta_canvas_sign_rot_1", + "y": 180 } } } \ No newline at end of file diff --git a/src/generated/resources/assets/farmersdelight/blockstates/magenta_canvas_wall_sign.json b/src/generated/resources/assets/farmersdelight/blockstates/magenta_canvas_wall_sign.json index 3e0339710..d6467dd0a 100644 --- a/src/generated/resources/assets/farmersdelight/blockstates/magenta_canvas_wall_sign.json +++ b/src/generated/resources/assets/farmersdelight/blockstates/magenta_canvas_wall_sign.json @@ -1,7 +1,19 @@ { "variants": { - "": { - "model": "farmersdelight:block/canvas_sign" + "facing=east": { + "model": "farmersdelight:block/magenta_canvas_wall_sign", + "y": 270 + }, + "facing=north": { + "model": "farmersdelight:block/magenta_canvas_wall_sign", + "y": 180 + }, + "facing=south": { + "model": "farmersdelight:block/magenta_canvas_wall_sign" + }, + "facing=west": { + "model": "farmersdelight:block/magenta_canvas_wall_sign", + "y": 90 } } } \ No newline at end of file diff --git a/src/generated/resources/assets/farmersdelight/blockstates/magenta_hanging_canvas_sign.json b/src/generated/resources/assets/farmersdelight/blockstates/magenta_hanging_canvas_sign.json index 3e0339710..0be6ec447 100644 --- a/src/generated/resources/assets/farmersdelight/blockstates/magenta_hanging_canvas_sign.json +++ b/src/generated/resources/assets/farmersdelight/blockstates/magenta_hanging_canvas_sign.json @@ -1,7 +1,124 @@ { "variants": { - "": { - "model": "farmersdelight:block/canvas_sign" + "attached=false,rotation=0": { + "model": "farmersdelight:block/magenta_hanging_canvas_sign_rot_0" + }, + "attached=false,rotation=1": { + "model": "farmersdelight:block/magenta_hanging_canvas_sign_rot_1" + }, + "attached=false,rotation=10": { + "model": "farmersdelight:block/magenta_hanging_canvas_sign_rot_2", + "y": 180 + }, + "attached=false,rotation=11": { + "model": "farmersdelight:block/magenta_hanging_canvas_sign_rot_3", + "y": 180 + }, + "attached=false,rotation=12": { + "model": "farmersdelight:block/magenta_hanging_canvas_sign_rot_0", + "y": 270 + }, + "attached=false,rotation=13": { + "model": "farmersdelight:block/magenta_hanging_canvas_sign_rot_1", + "y": 270 + }, + "attached=false,rotation=14": { + "model": "farmersdelight:block/magenta_hanging_canvas_sign_rot_2", + "y": 270 + }, + "attached=false,rotation=15": { + "model": "farmersdelight:block/magenta_hanging_canvas_sign_rot_3", + "y": 270 + }, + "attached=false,rotation=2": { + "model": "farmersdelight:block/magenta_hanging_canvas_sign_rot_2" + }, + "attached=false,rotation=3": { + "model": "farmersdelight:block/magenta_hanging_canvas_sign_rot_3" + }, + "attached=false,rotation=4": { + "model": "farmersdelight:block/magenta_hanging_canvas_sign_rot_0", + "y": 90 + }, + "attached=false,rotation=5": { + "model": "farmersdelight:block/magenta_hanging_canvas_sign_rot_1", + "y": 90 + }, + "attached=false,rotation=6": { + "model": "farmersdelight:block/magenta_hanging_canvas_sign_rot_2", + "y": 90 + }, + "attached=false,rotation=7": { + "model": "farmersdelight:block/magenta_hanging_canvas_sign_rot_3", + "y": 90 + }, + "attached=false,rotation=8": { + "model": "farmersdelight:block/magenta_hanging_canvas_sign_rot_0", + "y": 180 + }, + "attached=false,rotation=9": { + "model": "farmersdelight:block/magenta_hanging_canvas_sign_rot_1", + "y": 180 + }, + "attached=true,rotation=0": { + "model": "farmersdelight:block/magenta_hanging_canvas_sign_attached_rot_0" + }, + "attached=true,rotation=1": { + "model": "farmersdelight:block/magenta_hanging_canvas_sign_attached_rot_1" + }, + "attached=true,rotation=10": { + "model": "farmersdelight:block/magenta_hanging_canvas_sign_attached_rot_2", + "y": 180 + }, + "attached=true,rotation=11": { + "model": "farmersdelight:block/magenta_hanging_canvas_sign_attached_rot_3", + "y": 180 + }, + "attached=true,rotation=12": { + "model": "farmersdelight:block/magenta_hanging_canvas_sign_attached_rot_0", + "y": 270 + }, + "attached=true,rotation=13": { + "model": "farmersdelight:block/magenta_hanging_canvas_sign_attached_rot_1", + "y": 270 + }, + "attached=true,rotation=14": { + "model": "farmersdelight:block/magenta_hanging_canvas_sign_attached_rot_2", + "y": 270 + }, + "attached=true,rotation=15": { + "model": "farmersdelight:block/magenta_hanging_canvas_sign_attached_rot_3", + "y": 270 + }, + "attached=true,rotation=2": { + "model": "farmersdelight:block/magenta_hanging_canvas_sign_attached_rot_2" + }, + "attached=true,rotation=3": { + "model": "farmersdelight:block/magenta_hanging_canvas_sign_attached_rot_3" + }, + "attached=true,rotation=4": { + "model": "farmersdelight:block/magenta_hanging_canvas_sign_attached_rot_0", + "y": 90 + }, + "attached=true,rotation=5": { + "model": "farmersdelight:block/magenta_hanging_canvas_sign_attached_rot_1", + "y": 90 + }, + "attached=true,rotation=6": { + "model": "farmersdelight:block/magenta_hanging_canvas_sign_attached_rot_2", + "y": 90 + }, + "attached=true,rotation=7": { + "model": "farmersdelight:block/magenta_hanging_canvas_sign_attached_rot_3", + "y": 90 + }, + "attached=true,rotation=8": { + "model": "farmersdelight:block/magenta_hanging_canvas_sign_attached_rot_0", + "y": 180 + }, + "attached=true,rotation=9": { + "model": "farmersdelight:block/magenta_hanging_canvas_sign_attached_rot_1", + "y": 180 } } } \ No newline at end of file diff --git a/src/generated/resources/assets/farmersdelight/blockstates/magenta_wall_hanging_canvas_sign.json b/src/generated/resources/assets/farmersdelight/blockstates/magenta_wall_hanging_canvas_sign.json index 3e0339710..0d4f91f58 100644 --- a/src/generated/resources/assets/farmersdelight/blockstates/magenta_wall_hanging_canvas_sign.json +++ b/src/generated/resources/assets/farmersdelight/blockstates/magenta_wall_hanging_canvas_sign.json @@ -1,7 +1,19 @@ { "variants": { - "": { - "model": "farmersdelight:block/canvas_sign" + "facing=east": { + "model": "farmersdelight:block/magenta_wall_hanging_canvas_sign", + "y": 270 + }, + "facing=north": { + "model": "farmersdelight:block/magenta_wall_hanging_canvas_sign", + "y": 180 + }, + "facing=south": { + "model": "farmersdelight:block/magenta_wall_hanging_canvas_sign" + }, + "facing=west": { + "model": "farmersdelight:block/magenta_wall_hanging_canvas_sign", + "y": 90 } } } \ No newline at end of file diff --git a/src/generated/resources/assets/farmersdelight/blockstates/orange_canvas_sign.json b/src/generated/resources/assets/farmersdelight/blockstates/orange_canvas_sign.json index 3e0339710..2beb8ef41 100644 --- a/src/generated/resources/assets/farmersdelight/blockstates/orange_canvas_sign.json +++ b/src/generated/resources/assets/farmersdelight/blockstates/orange_canvas_sign.json @@ -1,7 +1,64 @@ { "variants": { - "": { - "model": "farmersdelight:block/canvas_sign" + "rotation=0": { + "model": "farmersdelight:block/orange_canvas_sign_rot_0" + }, + "rotation=1": { + "model": "farmersdelight:block/orange_canvas_sign_rot_1" + }, + "rotation=10": { + "model": "farmersdelight:block/orange_canvas_sign_rot_2", + "y": 180 + }, + "rotation=11": { + "model": "farmersdelight:block/orange_canvas_sign_rot_3", + "y": 180 + }, + "rotation=12": { + "model": "farmersdelight:block/orange_canvas_sign_rot_0", + "y": 270 + }, + "rotation=13": { + "model": "farmersdelight:block/orange_canvas_sign_rot_1", + "y": 270 + }, + "rotation=14": { + "model": "farmersdelight:block/orange_canvas_sign_rot_2", + "y": 270 + }, + "rotation=15": { + "model": "farmersdelight:block/orange_canvas_sign_rot_3", + "y": 270 + }, + "rotation=2": { + "model": "farmersdelight:block/orange_canvas_sign_rot_2" + }, + "rotation=3": { + "model": "farmersdelight:block/orange_canvas_sign_rot_3" + }, + "rotation=4": { + "model": "farmersdelight:block/orange_canvas_sign_rot_0", + "y": 90 + }, + "rotation=5": { + "model": "farmersdelight:block/orange_canvas_sign_rot_1", + "y": 90 + }, + "rotation=6": { + "model": "farmersdelight:block/orange_canvas_sign_rot_2", + "y": 90 + }, + "rotation=7": { + "model": "farmersdelight:block/orange_canvas_sign_rot_3", + "y": 90 + }, + "rotation=8": { + "model": "farmersdelight:block/orange_canvas_sign_rot_0", + "y": 180 + }, + "rotation=9": { + "model": "farmersdelight:block/orange_canvas_sign_rot_1", + "y": 180 } } } \ No newline at end of file diff --git a/src/generated/resources/assets/farmersdelight/blockstates/orange_canvas_wall_sign.json b/src/generated/resources/assets/farmersdelight/blockstates/orange_canvas_wall_sign.json index 3e0339710..5e1896b68 100644 --- a/src/generated/resources/assets/farmersdelight/blockstates/orange_canvas_wall_sign.json +++ b/src/generated/resources/assets/farmersdelight/blockstates/orange_canvas_wall_sign.json @@ -1,7 +1,19 @@ { "variants": { - "": { - "model": "farmersdelight:block/canvas_sign" + "facing=east": { + "model": "farmersdelight:block/orange_canvas_wall_sign", + "y": 270 + }, + "facing=north": { + "model": "farmersdelight:block/orange_canvas_wall_sign", + "y": 180 + }, + "facing=south": { + "model": "farmersdelight:block/orange_canvas_wall_sign" + }, + "facing=west": { + "model": "farmersdelight:block/orange_canvas_wall_sign", + "y": 90 } } } \ No newline at end of file diff --git a/src/generated/resources/assets/farmersdelight/blockstates/orange_hanging_canvas_sign.json b/src/generated/resources/assets/farmersdelight/blockstates/orange_hanging_canvas_sign.json index 3e0339710..80b1d3b21 100644 --- a/src/generated/resources/assets/farmersdelight/blockstates/orange_hanging_canvas_sign.json +++ b/src/generated/resources/assets/farmersdelight/blockstates/orange_hanging_canvas_sign.json @@ -1,7 +1,124 @@ { "variants": { - "": { - "model": "farmersdelight:block/canvas_sign" + "attached=false,rotation=0": { + "model": "farmersdelight:block/orange_hanging_canvas_sign_rot_0" + }, + "attached=false,rotation=1": { + "model": "farmersdelight:block/orange_hanging_canvas_sign_rot_1" + }, + "attached=false,rotation=10": { + "model": "farmersdelight:block/orange_hanging_canvas_sign_rot_2", + "y": 180 + }, + "attached=false,rotation=11": { + "model": "farmersdelight:block/orange_hanging_canvas_sign_rot_3", + "y": 180 + }, + "attached=false,rotation=12": { + "model": "farmersdelight:block/orange_hanging_canvas_sign_rot_0", + "y": 270 + }, + "attached=false,rotation=13": { + "model": "farmersdelight:block/orange_hanging_canvas_sign_rot_1", + "y": 270 + }, + "attached=false,rotation=14": { + "model": "farmersdelight:block/orange_hanging_canvas_sign_rot_2", + "y": 270 + }, + "attached=false,rotation=15": { + "model": "farmersdelight:block/orange_hanging_canvas_sign_rot_3", + "y": 270 + }, + "attached=false,rotation=2": { + "model": "farmersdelight:block/orange_hanging_canvas_sign_rot_2" + }, + "attached=false,rotation=3": { + "model": "farmersdelight:block/orange_hanging_canvas_sign_rot_3" + }, + "attached=false,rotation=4": { + "model": "farmersdelight:block/orange_hanging_canvas_sign_rot_0", + "y": 90 + }, + "attached=false,rotation=5": { + "model": "farmersdelight:block/orange_hanging_canvas_sign_rot_1", + "y": 90 + }, + "attached=false,rotation=6": { + "model": "farmersdelight:block/orange_hanging_canvas_sign_rot_2", + "y": 90 + }, + "attached=false,rotation=7": { + "model": "farmersdelight:block/orange_hanging_canvas_sign_rot_3", + "y": 90 + }, + "attached=false,rotation=8": { + "model": "farmersdelight:block/orange_hanging_canvas_sign_rot_0", + "y": 180 + }, + "attached=false,rotation=9": { + "model": "farmersdelight:block/orange_hanging_canvas_sign_rot_1", + "y": 180 + }, + "attached=true,rotation=0": { + "model": "farmersdelight:block/orange_hanging_canvas_sign_attached_rot_0" + }, + "attached=true,rotation=1": { + "model": "farmersdelight:block/orange_hanging_canvas_sign_attached_rot_1" + }, + "attached=true,rotation=10": { + "model": "farmersdelight:block/orange_hanging_canvas_sign_attached_rot_2", + "y": 180 + }, + "attached=true,rotation=11": { + "model": "farmersdelight:block/orange_hanging_canvas_sign_attached_rot_3", + "y": 180 + }, + "attached=true,rotation=12": { + "model": "farmersdelight:block/orange_hanging_canvas_sign_attached_rot_0", + "y": 270 + }, + "attached=true,rotation=13": { + "model": "farmersdelight:block/orange_hanging_canvas_sign_attached_rot_1", + "y": 270 + }, + "attached=true,rotation=14": { + "model": "farmersdelight:block/orange_hanging_canvas_sign_attached_rot_2", + "y": 270 + }, + "attached=true,rotation=15": { + "model": "farmersdelight:block/orange_hanging_canvas_sign_attached_rot_3", + "y": 270 + }, + "attached=true,rotation=2": { + "model": "farmersdelight:block/orange_hanging_canvas_sign_attached_rot_2" + }, + "attached=true,rotation=3": { + "model": "farmersdelight:block/orange_hanging_canvas_sign_attached_rot_3" + }, + "attached=true,rotation=4": { + "model": "farmersdelight:block/orange_hanging_canvas_sign_attached_rot_0", + "y": 90 + }, + "attached=true,rotation=5": { + "model": "farmersdelight:block/orange_hanging_canvas_sign_attached_rot_1", + "y": 90 + }, + "attached=true,rotation=6": { + "model": "farmersdelight:block/orange_hanging_canvas_sign_attached_rot_2", + "y": 90 + }, + "attached=true,rotation=7": { + "model": "farmersdelight:block/orange_hanging_canvas_sign_attached_rot_3", + "y": 90 + }, + "attached=true,rotation=8": { + "model": "farmersdelight:block/orange_hanging_canvas_sign_attached_rot_0", + "y": 180 + }, + "attached=true,rotation=9": { + "model": "farmersdelight:block/orange_hanging_canvas_sign_attached_rot_1", + "y": 180 } } } \ No newline at end of file diff --git a/src/generated/resources/assets/farmersdelight/blockstates/orange_wall_hanging_canvas_sign.json b/src/generated/resources/assets/farmersdelight/blockstates/orange_wall_hanging_canvas_sign.json index 3e0339710..f230af47a 100644 --- a/src/generated/resources/assets/farmersdelight/blockstates/orange_wall_hanging_canvas_sign.json +++ b/src/generated/resources/assets/farmersdelight/blockstates/orange_wall_hanging_canvas_sign.json @@ -1,7 +1,19 @@ { "variants": { - "": { - "model": "farmersdelight:block/canvas_sign" + "facing=east": { + "model": "farmersdelight:block/orange_wall_hanging_canvas_sign", + "y": 270 + }, + "facing=north": { + "model": "farmersdelight:block/orange_wall_hanging_canvas_sign", + "y": 180 + }, + "facing=south": { + "model": "farmersdelight:block/orange_wall_hanging_canvas_sign" + }, + "facing=west": { + "model": "farmersdelight:block/orange_wall_hanging_canvas_sign", + "y": 90 } } } \ No newline at end of file diff --git a/src/generated/resources/assets/farmersdelight/blockstates/pink_canvas_sign.json b/src/generated/resources/assets/farmersdelight/blockstates/pink_canvas_sign.json index 3e0339710..09d14b03b 100644 --- a/src/generated/resources/assets/farmersdelight/blockstates/pink_canvas_sign.json +++ b/src/generated/resources/assets/farmersdelight/blockstates/pink_canvas_sign.json @@ -1,7 +1,64 @@ { "variants": { - "": { - "model": "farmersdelight:block/canvas_sign" + "rotation=0": { + "model": "farmersdelight:block/pink_canvas_sign_rot_0" + }, + "rotation=1": { + "model": "farmersdelight:block/pink_canvas_sign_rot_1" + }, + "rotation=10": { + "model": "farmersdelight:block/pink_canvas_sign_rot_2", + "y": 180 + }, + "rotation=11": { + "model": "farmersdelight:block/pink_canvas_sign_rot_3", + "y": 180 + }, + "rotation=12": { + "model": "farmersdelight:block/pink_canvas_sign_rot_0", + "y": 270 + }, + "rotation=13": { + "model": "farmersdelight:block/pink_canvas_sign_rot_1", + "y": 270 + }, + "rotation=14": { + "model": "farmersdelight:block/pink_canvas_sign_rot_2", + "y": 270 + }, + "rotation=15": { + "model": "farmersdelight:block/pink_canvas_sign_rot_3", + "y": 270 + }, + "rotation=2": { + "model": "farmersdelight:block/pink_canvas_sign_rot_2" + }, + "rotation=3": { + "model": "farmersdelight:block/pink_canvas_sign_rot_3" + }, + "rotation=4": { + "model": "farmersdelight:block/pink_canvas_sign_rot_0", + "y": 90 + }, + "rotation=5": { + "model": "farmersdelight:block/pink_canvas_sign_rot_1", + "y": 90 + }, + "rotation=6": { + "model": "farmersdelight:block/pink_canvas_sign_rot_2", + "y": 90 + }, + "rotation=7": { + "model": "farmersdelight:block/pink_canvas_sign_rot_3", + "y": 90 + }, + "rotation=8": { + "model": "farmersdelight:block/pink_canvas_sign_rot_0", + "y": 180 + }, + "rotation=9": { + "model": "farmersdelight:block/pink_canvas_sign_rot_1", + "y": 180 } } } \ No newline at end of file diff --git a/src/generated/resources/assets/farmersdelight/blockstates/pink_canvas_wall_sign.json b/src/generated/resources/assets/farmersdelight/blockstates/pink_canvas_wall_sign.json index 3e0339710..2a57b2229 100644 --- a/src/generated/resources/assets/farmersdelight/blockstates/pink_canvas_wall_sign.json +++ b/src/generated/resources/assets/farmersdelight/blockstates/pink_canvas_wall_sign.json @@ -1,7 +1,19 @@ { "variants": { - "": { - "model": "farmersdelight:block/canvas_sign" + "facing=east": { + "model": "farmersdelight:block/pink_canvas_wall_sign", + "y": 270 + }, + "facing=north": { + "model": "farmersdelight:block/pink_canvas_wall_sign", + "y": 180 + }, + "facing=south": { + "model": "farmersdelight:block/pink_canvas_wall_sign" + }, + "facing=west": { + "model": "farmersdelight:block/pink_canvas_wall_sign", + "y": 90 } } } \ No newline at end of file diff --git a/src/generated/resources/assets/farmersdelight/blockstates/pink_hanging_canvas_sign.json b/src/generated/resources/assets/farmersdelight/blockstates/pink_hanging_canvas_sign.json index 3e0339710..7e3bad5e0 100644 --- a/src/generated/resources/assets/farmersdelight/blockstates/pink_hanging_canvas_sign.json +++ b/src/generated/resources/assets/farmersdelight/blockstates/pink_hanging_canvas_sign.json @@ -1,7 +1,124 @@ { "variants": { - "": { - "model": "farmersdelight:block/canvas_sign" + "attached=false,rotation=0": { + "model": "farmersdelight:block/pink_hanging_canvas_sign_rot_0" + }, + "attached=false,rotation=1": { + "model": "farmersdelight:block/pink_hanging_canvas_sign_rot_1" + }, + "attached=false,rotation=10": { + "model": "farmersdelight:block/pink_hanging_canvas_sign_rot_2", + "y": 180 + }, + "attached=false,rotation=11": { + "model": "farmersdelight:block/pink_hanging_canvas_sign_rot_3", + "y": 180 + }, + "attached=false,rotation=12": { + "model": "farmersdelight:block/pink_hanging_canvas_sign_rot_0", + "y": 270 + }, + "attached=false,rotation=13": { + "model": "farmersdelight:block/pink_hanging_canvas_sign_rot_1", + "y": 270 + }, + "attached=false,rotation=14": { + "model": "farmersdelight:block/pink_hanging_canvas_sign_rot_2", + "y": 270 + }, + "attached=false,rotation=15": { + "model": "farmersdelight:block/pink_hanging_canvas_sign_rot_3", + "y": 270 + }, + "attached=false,rotation=2": { + "model": "farmersdelight:block/pink_hanging_canvas_sign_rot_2" + }, + "attached=false,rotation=3": { + "model": "farmersdelight:block/pink_hanging_canvas_sign_rot_3" + }, + "attached=false,rotation=4": { + "model": "farmersdelight:block/pink_hanging_canvas_sign_rot_0", + "y": 90 + }, + "attached=false,rotation=5": { + "model": "farmersdelight:block/pink_hanging_canvas_sign_rot_1", + "y": 90 + }, + "attached=false,rotation=6": { + "model": "farmersdelight:block/pink_hanging_canvas_sign_rot_2", + "y": 90 + }, + "attached=false,rotation=7": { + "model": "farmersdelight:block/pink_hanging_canvas_sign_rot_3", + "y": 90 + }, + "attached=false,rotation=8": { + "model": "farmersdelight:block/pink_hanging_canvas_sign_rot_0", + "y": 180 + }, + "attached=false,rotation=9": { + "model": "farmersdelight:block/pink_hanging_canvas_sign_rot_1", + "y": 180 + }, + "attached=true,rotation=0": { + "model": "farmersdelight:block/pink_hanging_canvas_sign_attached_rot_0" + }, + "attached=true,rotation=1": { + "model": "farmersdelight:block/pink_hanging_canvas_sign_attached_rot_1" + }, + "attached=true,rotation=10": { + "model": "farmersdelight:block/pink_hanging_canvas_sign_attached_rot_2", + "y": 180 + }, + "attached=true,rotation=11": { + "model": "farmersdelight:block/pink_hanging_canvas_sign_attached_rot_3", + "y": 180 + }, + "attached=true,rotation=12": { + "model": "farmersdelight:block/pink_hanging_canvas_sign_attached_rot_0", + "y": 270 + }, + "attached=true,rotation=13": { + "model": "farmersdelight:block/pink_hanging_canvas_sign_attached_rot_1", + "y": 270 + }, + "attached=true,rotation=14": { + "model": "farmersdelight:block/pink_hanging_canvas_sign_attached_rot_2", + "y": 270 + }, + "attached=true,rotation=15": { + "model": "farmersdelight:block/pink_hanging_canvas_sign_attached_rot_3", + "y": 270 + }, + "attached=true,rotation=2": { + "model": "farmersdelight:block/pink_hanging_canvas_sign_attached_rot_2" + }, + "attached=true,rotation=3": { + "model": "farmersdelight:block/pink_hanging_canvas_sign_attached_rot_3" + }, + "attached=true,rotation=4": { + "model": "farmersdelight:block/pink_hanging_canvas_sign_attached_rot_0", + "y": 90 + }, + "attached=true,rotation=5": { + "model": "farmersdelight:block/pink_hanging_canvas_sign_attached_rot_1", + "y": 90 + }, + "attached=true,rotation=6": { + "model": "farmersdelight:block/pink_hanging_canvas_sign_attached_rot_2", + "y": 90 + }, + "attached=true,rotation=7": { + "model": "farmersdelight:block/pink_hanging_canvas_sign_attached_rot_3", + "y": 90 + }, + "attached=true,rotation=8": { + "model": "farmersdelight:block/pink_hanging_canvas_sign_attached_rot_0", + "y": 180 + }, + "attached=true,rotation=9": { + "model": "farmersdelight:block/pink_hanging_canvas_sign_attached_rot_1", + "y": 180 } } } \ No newline at end of file diff --git a/src/generated/resources/assets/farmersdelight/blockstates/pink_wall_hanging_canvas_sign.json b/src/generated/resources/assets/farmersdelight/blockstates/pink_wall_hanging_canvas_sign.json index 3e0339710..d75dfe03e 100644 --- a/src/generated/resources/assets/farmersdelight/blockstates/pink_wall_hanging_canvas_sign.json +++ b/src/generated/resources/assets/farmersdelight/blockstates/pink_wall_hanging_canvas_sign.json @@ -1,7 +1,19 @@ { "variants": { - "": { - "model": "farmersdelight:block/canvas_sign" + "facing=east": { + "model": "farmersdelight:block/pink_wall_hanging_canvas_sign", + "y": 270 + }, + "facing=north": { + "model": "farmersdelight:block/pink_wall_hanging_canvas_sign", + "y": 180 + }, + "facing=south": { + "model": "farmersdelight:block/pink_wall_hanging_canvas_sign" + }, + "facing=west": { + "model": "farmersdelight:block/pink_wall_hanging_canvas_sign", + "y": 90 } } } \ No newline at end of file diff --git a/src/generated/resources/assets/farmersdelight/blockstates/purple_canvas_sign.json b/src/generated/resources/assets/farmersdelight/blockstates/purple_canvas_sign.json index 3e0339710..717be8e5a 100644 --- a/src/generated/resources/assets/farmersdelight/blockstates/purple_canvas_sign.json +++ b/src/generated/resources/assets/farmersdelight/blockstates/purple_canvas_sign.json @@ -1,7 +1,64 @@ { "variants": { - "": { - "model": "farmersdelight:block/canvas_sign" + "rotation=0": { + "model": "farmersdelight:block/purple_canvas_sign_rot_0" + }, + "rotation=1": { + "model": "farmersdelight:block/purple_canvas_sign_rot_1" + }, + "rotation=10": { + "model": "farmersdelight:block/purple_canvas_sign_rot_2", + "y": 180 + }, + "rotation=11": { + "model": "farmersdelight:block/purple_canvas_sign_rot_3", + "y": 180 + }, + "rotation=12": { + "model": "farmersdelight:block/purple_canvas_sign_rot_0", + "y": 270 + }, + "rotation=13": { + "model": "farmersdelight:block/purple_canvas_sign_rot_1", + "y": 270 + }, + "rotation=14": { + "model": "farmersdelight:block/purple_canvas_sign_rot_2", + "y": 270 + }, + "rotation=15": { + "model": "farmersdelight:block/purple_canvas_sign_rot_3", + "y": 270 + }, + "rotation=2": { + "model": "farmersdelight:block/purple_canvas_sign_rot_2" + }, + "rotation=3": { + "model": "farmersdelight:block/purple_canvas_sign_rot_3" + }, + "rotation=4": { + "model": "farmersdelight:block/purple_canvas_sign_rot_0", + "y": 90 + }, + "rotation=5": { + "model": "farmersdelight:block/purple_canvas_sign_rot_1", + "y": 90 + }, + "rotation=6": { + "model": "farmersdelight:block/purple_canvas_sign_rot_2", + "y": 90 + }, + "rotation=7": { + "model": "farmersdelight:block/purple_canvas_sign_rot_3", + "y": 90 + }, + "rotation=8": { + "model": "farmersdelight:block/purple_canvas_sign_rot_0", + "y": 180 + }, + "rotation=9": { + "model": "farmersdelight:block/purple_canvas_sign_rot_1", + "y": 180 } } } \ No newline at end of file diff --git a/src/generated/resources/assets/farmersdelight/blockstates/purple_canvas_wall_sign.json b/src/generated/resources/assets/farmersdelight/blockstates/purple_canvas_wall_sign.json index 3e0339710..bbbcc8e8f 100644 --- a/src/generated/resources/assets/farmersdelight/blockstates/purple_canvas_wall_sign.json +++ b/src/generated/resources/assets/farmersdelight/blockstates/purple_canvas_wall_sign.json @@ -1,7 +1,19 @@ { "variants": { - "": { - "model": "farmersdelight:block/canvas_sign" + "facing=east": { + "model": "farmersdelight:block/purple_canvas_wall_sign", + "y": 270 + }, + "facing=north": { + "model": "farmersdelight:block/purple_canvas_wall_sign", + "y": 180 + }, + "facing=south": { + "model": "farmersdelight:block/purple_canvas_wall_sign" + }, + "facing=west": { + "model": "farmersdelight:block/purple_canvas_wall_sign", + "y": 90 } } } \ No newline at end of file diff --git a/src/generated/resources/assets/farmersdelight/blockstates/purple_hanging_canvas_sign.json b/src/generated/resources/assets/farmersdelight/blockstates/purple_hanging_canvas_sign.json index 3e0339710..8ee3b5cbe 100644 --- a/src/generated/resources/assets/farmersdelight/blockstates/purple_hanging_canvas_sign.json +++ b/src/generated/resources/assets/farmersdelight/blockstates/purple_hanging_canvas_sign.json @@ -1,7 +1,124 @@ { "variants": { - "": { - "model": "farmersdelight:block/canvas_sign" + "attached=false,rotation=0": { + "model": "farmersdelight:block/purple_hanging_canvas_sign_rot_0" + }, + "attached=false,rotation=1": { + "model": "farmersdelight:block/purple_hanging_canvas_sign_rot_1" + }, + "attached=false,rotation=10": { + "model": "farmersdelight:block/purple_hanging_canvas_sign_rot_2", + "y": 180 + }, + "attached=false,rotation=11": { + "model": "farmersdelight:block/purple_hanging_canvas_sign_rot_3", + "y": 180 + }, + "attached=false,rotation=12": { + "model": "farmersdelight:block/purple_hanging_canvas_sign_rot_0", + "y": 270 + }, + "attached=false,rotation=13": { + "model": "farmersdelight:block/purple_hanging_canvas_sign_rot_1", + "y": 270 + }, + "attached=false,rotation=14": { + "model": "farmersdelight:block/purple_hanging_canvas_sign_rot_2", + "y": 270 + }, + "attached=false,rotation=15": { + "model": "farmersdelight:block/purple_hanging_canvas_sign_rot_3", + "y": 270 + }, + "attached=false,rotation=2": { + "model": "farmersdelight:block/purple_hanging_canvas_sign_rot_2" + }, + "attached=false,rotation=3": { + "model": "farmersdelight:block/purple_hanging_canvas_sign_rot_3" + }, + "attached=false,rotation=4": { + "model": "farmersdelight:block/purple_hanging_canvas_sign_rot_0", + "y": 90 + }, + "attached=false,rotation=5": { + "model": "farmersdelight:block/purple_hanging_canvas_sign_rot_1", + "y": 90 + }, + "attached=false,rotation=6": { + "model": "farmersdelight:block/purple_hanging_canvas_sign_rot_2", + "y": 90 + }, + "attached=false,rotation=7": { + "model": "farmersdelight:block/purple_hanging_canvas_sign_rot_3", + "y": 90 + }, + "attached=false,rotation=8": { + "model": "farmersdelight:block/purple_hanging_canvas_sign_rot_0", + "y": 180 + }, + "attached=false,rotation=9": { + "model": "farmersdelight:block/purple_hanging_canvas_sign_rot_1", + "y": 180 + }, + "attached=true,rotation=0": { + "model": "farmersdelight:block/purple_hanging_canvas_sign_attached_rot_0" + }, + "attached=true,rotation=1": { + "model": "farmersdelight:block/purple_hanging_canvas_sign_attached_rot_1" + }, + "attached=true,rotation=10": { + "model": "farmersdelight:block/purple_hanging_canvas_sign_attached_rot_2", + "y": 180 + }, + "attached=true,rotation=11": { + "model": "farmersdelight:block/purple_hanging_canvas_sign_attached_rot_3", + "y": 180 + }, + "attached=true,rotation=12": { + "model": "farmersdelight:block/purple_hanging_canvas_sign_attached_rot_0", + "y": 270 + }, + "attached=true,rotation=13": { + "model": "farmersdelight:block/purple_hanging_canvas_sign_attached_rot_1", + "y": 270 + }, + "attached=true,rotation=14": { + "model": "farmersdelight:block/purple_hanging_canvas_sign_attached_rot_2", + "y": 270 + }, + "attached=true,rotation=15": { + "model": "farmersdelight:block/purple_hanging_canvas_sign_attached_rot_3", + "y": 270 + }, + "attached=true,rotation=2": { + "model": "farmersdelight:block/purple_hanging_canvas_sign_attached_rot_2" + }, + "attached=true,rotation=3": { + "model": "farmersdelight:block/purple_hanging_canvas_sign_attached_rot_3" + }, + "attached=true,rotation=4": { + "model": "farmersdelight:block/purple_hanging_canvas_sign_attached_rot_0", + "y": 90 + }, + "attached=true,rotation=5": { + "model": "farmersdelight:block/purple_hanging_canvas_sign_attached_rot_1", + "y": 90 + }, + "attached=true,rotation=6": { + "model": "farmersdelight:block/purple_hanging_canvas_sign_attached_rot_2", + "y": 90 + }, + "attached=true,rotation=7": { + "model": "farmersdelight:block/purple_hanging_canvas_sign_attached_rot_3", + "y": 90 + }, + "attached=true,rotation=8": { + "model": "farmersdelight:block/purple_hanging_canvas_sign_attached_rot_0", + "y": 180 + }, + "attached=true,rotation=9": { + "model": "farmersdelight:block/purple_hanging_canvas_sign_attached_rot_1", + "y": 180 } } } \ No newline at end of file diff --git a/src/generated/resources/assets/farmersdelight/blockstates/purple_wall_hanging_canvas_sign.json b/src/generated/resources/assets/farmersdelight/blockstates/purple_wall_hanging_canvas_sign.json index 3e0339710..4b5c9bc35 100644 --- a/src/generated/resources/assets/farmersdelight/blockstates/purple_wall_hanging_canvas_sign.json +++ b/src/generated/resources/assets/farmersdelight/blockstates/purple_wall_hanging_canvas_sign.json @@ -1,7 +1,19 @@ { "variants": { - "": { - "model": "farmersdelight:block/canvas_sign" + "facing=east": { + "model": "farmersdelight:block/purple_wall_hanging_canvas_sign", + "y": 270 + }, + "facing=north": { + "model": "farmersdelight:block/purple_wall_hanging_canvas_sign", + "y": 180 + }, + "facing=south": { + "model": "farmersdelight:block/purple_wall_hanging_canvas_sign" + }, + "facing=west": { + "model": "farmersdelight:block/purple_wall_hanging_canvas_sign", + "y": 90 } } } \ No newline at end of file diff --git a/src/generated/resources/assets/farmersdelight/blockstates/red_canvas_sign.json b/src/generated/resources/assets/farmersdelight/blockstates/red_canvas_sign.json index 3e0339710..d2dacb0eb 100644 --- a/src/generated/resources/assets/farmersdelight/blockstates/red_canvas_sign.json +++ b/src/generated/resources/assets/farmersdelight/blockstates/red_canvas_sign.json @@ -1,7 +1,64 @@ { "variants": { - "": { - "model": "farmersdelight:block/canvas_sign" + "rotation=0": { + "model": "farmersdelight:block/red_canvas_sign_rot_0" + }, + "rotation=1": { + "model": "farmersdelight:block/red_canvas_sign_rot_1" + }, + "rotation=10": { + "model": "farmersdelight:block/red_canvas_sign_rot_2", + "y": 180 + }, + "rotation=11": { + "model": "farmersdelight:block/red_canvas_sign_rot_3", + "y": 180 + }, + "rotation=12": { + "model": "farmersdelight:block/red_canvas_sign_rot_0", + "y": 270 + }, + "rotation=13": { + "model": "farmersdelight:block/red_canvas_sign_rot_1", + "y": 270 + }, + "rotation=14": { + "model": "farmersdelight:block/red_canvas_sign_rot_2", + "y": 270 + }, + "rotation=15": { + "model": "farmersdelight:block/red_canvas_sign_rot_3", + "y": 270 + }, + "rotation=2": { + "model": "farmersdelight:block/red_canvas_sign_rot_2" + }, + "rotation=3": { + "model": "farmersdelight:block/red_canvas_sign_rot_3" + }, + "rotation=4": { + "model": "farmersdelight:block/red_canvas_sign_rot_0", + "y": 90 + }, + "rotation=5": { + "model": "farmersdelight:block/red_canvas_sign_rot_1", + "y": 90 + }, + "rotation=6": { + "model": "farmersdelight:block/red_canvas_sign_rot_2", + "y": 90 + }, + "rotation=7": { + "model": "farmersdelight:block/red_canvas_sign_rot_3", + "y": 90 + }, + "rotation=8": { + "model": "farmersdelight:block/red_canvas_sign_rot_0", + "y": 180 + }, + "rotation=9": { + "model": "farmersdelight:block/red_canvas_sign_rot_1", + "y": 180 } } } \ No newline at end of file diff --git a/src/generated/resources/assets/farmersdelight/blockstates/red_canvas_wall_sign.json b/src/generated/resources/assets/farmersdelight/blockstates/red_canvas_wall_sign.json index 3e0339710..6c75f9adc 100644 --- a/src/generated/resources/assets/farmersdelight/blockstates/red_canvas_wall_sign.json +++ b/src/generated/resources/assets/farmersdelight/blockstates/red_canvas_wall_sign.json @@ -1,7 +1,19 @@ { "variants": { - "": { - "model": "farmersdelight:block/canvas_sign" + "facing=east": { + "model": "farmersdelight:block/red_canvas_wall_sign", + "y": 270 + }, + "facing=north": { + "model": "farmersdelight:block/red_canvas_wall_sign", + "y": 180 + }, + "facing=south": { + "model": "farmersdelight:block/red_canvas_wall_sign" + }, + "facing=west": { + "model": "farmersdelight:block/red_canvas_wall_sign", + "y": 90 } } } \ No newline at end of file diff --git a/src/generated/resources/assets/farmersdelight/blockstates/red_hanging_canvas_sign.json b/src/generated/resources/assets/farmersdelight/blockstates/red_hanging_canvas_sign.json index 3e0339710..bb859ca45 100644 --- a/src/generated/resources/assets/farmersdelight/blockstates/red_hanging_canvas_sign.json +++ b/src/generated/resources/assets/farmersdelight/blockstates/red_hanging_canvas_sign.json @@ -1,7 +1,124 @@ { "variants": { - "": { - "model": "farmersdelight:block/canvas_sign" + "attached=false,rotation=0": { + "model": "farmersdelight:block/red_hanging_canvas_sign_rot_0" + }, + "attached=false,rotation=1": { + "model": "farmersdelight:block/red_hanging_canvas_sign_rot_1" + }, + "attached=false,rotation=10": { + "model": "farmersdelight:block/red_hanging_canvas_sign_rot_2", + "y": 180 + }, + "attached=false,rotation=11": { + "model": "farmersdelight:block/red_hanging_canvas_sign_rot_3", + "y": 180 + }, + "attached=false,rotation=12": { + "model": "farmersdelight:block/red_hanging_canvas_sign_rot_0", + "y": 270 + }, + "attached=false,rotation=13": { + "model": "farmersdelight:block/red_hanging_canvas_sign_rot_1", + "y": 270 + }, + "attached=false,rotation=14": { + "model": "farmersdelight:block/red_hanging_canvas_sign_rot_2", + "y": 270 + }, + "attached=false,rotation=15": { + "model": "farmersdelight:block/red_hanging_canvas_sign_rot_3", + "y": 270 + }, + "attached=false,rotation=2": { + "model": "farmersdelight:block/red_hanging_canvas_sign_rot_2" + }, + "attached=false,rotation=3": { + "model": "farmersdelight:block/red_hanging_canvas_sign_rot_3" + }, + "attached=false,rotation=4": { + "model": "farmersdelight:block/red_hanging_canvas_sign_rot_0", + "y": 90 + }, + "attached=false,rotation=5": { + "model": "farmersdelight:block/red_hanging_canvas_sign_rot_1", + "y": 90 + }, + "attached=false,rotation=6": { + "model": "farmersdelight:block/red_hanging_canvas_sign_rot_2", + "y": 90 + }, + "attached=false,rotation=7": { + "model": "farmersdelight:block/red_hanging_canvas_sign_rot_3", + "y": 90 + }, + "attached=false,rotation=8": { + "model": "farmersdelight:block/red_hanging_canvas_sign_rot_0", + "y": 180 + }, + "attached=false,rotation=9": { + "model": "farmersdelight:block/red_hanging_canvas_sign_rot_1", + "y": 180 + }, + "attached=true,rotation=0": { + "model": "farmersdelight:block/red_hanging_canvas_sign_attached_rot_0" + }, + "attached=true,rotation=1": { + "model": "farmersdelight:block/red_hanging_canvas_sign_attached_rot_1" + }, + "attached=true,rotation=10": { + "model": "farmersdelight:block/red_hanging_canvas_sign_attached_rot_2", + "y": 180 + }, + "attached=true,rotation=11": { + "model": "farmersdelight:block/red_hanging_canvas_sign_attached_rot_3", + "y": 180 + }, + "attached=true,rotation=12": { + "model": "farmersdelight:block/red_hanging_canvas_sign_attached_rot_0", + "y": 270 + }, + "attached=true,rotation=13": { + "model": "farmersdelight:block/red_hanging_canvas_sign_attached_rot_1", + "y": 270 + }, + "attached=true,rotation=14": { + "model": "farmersdelight:block/red_hanging_canvas_sign_attached_rot_2", + "y": 270 + }, + "attached=true,rotation=15": { + "model": "farmersdelight:block/red_hanging_canvas_sign_attached_rot_3", + "y": 270 + }, + "attached=true,rotation=2": { + "model": "farmersdelight:block/red_hanging_canvas_sign_attached_rot_2" + }, + "attached=true,rotation=3": { + "model": "farmersdelight:block/red_hanging_canvas_sign_attached_rot_3" + }, + "attached=true,rotation=4": { + "model": "farmersdelight:block/red_hanging_canvas_sign_attached_rot_0", + "y": 90 + }, + "attached=true,rotation=5": { + "model": "farmersdelight:block/red_hanging_canvas_sign_attached_rot_1", + "y": 90 + }, + "attached=true,rotation=6": { + "model": "farmersdelight:block/red_hanging_canvas_sign_attached_rot_2", + "y": 90 + }, + "attached=true,rotation=7": { + "model": "farmersdelight:block/red_hanging_canvas_sign_attached_rot_3", + "y": 90 + }, + "attached=true,rotation=8": { + "model": "farmersdelight:block/red_hanging_canvas_sign_attached_rot_0", + "y": 180 + }, + "attached=true,rotation=9": { + "model": "farmersdelight:block/red_hanging_canvas_sign_attached_rot_1", + "y": 180 } } } \ No newline at end of file diff --git a/src/generated/resources/assets/farmersdelight/blockstates/red_wall_hanging_canvas_sign.json b/src/generated/resources/assets/farmersdelight/blockstates/red_wall_hanging_canvas_sign.json index 3e0339710..6f03a0663 100644 --- a/src/generated/resources/assets/farmersdelight/blockstates/red_wall_hanging_canvas_sign.json +++ b/src/generated/resources/assets/farmersdelight/blockstates/red_wall_hanging_canvas_sign.json @@ -1,7 +1,19 @@ { "variants": { - "": { - "model": "farmersdelight:block/canvas_sign" + "facing=east": { + "model": "farmersdelight:block/red_wall_hanging_canvas_sign", + "y": 270 + }, + "facing=north": { + "model": "farmersdelight:block/red_wall_hanging_canvas_sign", + "y": 180 + }, + "facing=south": { + "model": "farmersdelight:block/red_wall_hanging_canvas_sign" + }, + "facing=west": { + "model": "farmersdelight:block/red_wall_hanging_canvas_sign", + "y": 90 } } } \ No newline at end of file diff --git a/src/generated/resources/assets/farmersdelight/blockstates/wall_hanging_canvas_sign.json b/src/generated/resources/assets/farmersdelight/blockstates/wall_hanging_canvas_sign.json index 3e0339710..896cec5ad 100644 --- a/src/generated/resources/assets/farmersdelight/blockstates/wall_hanging_canvas_sign.json +++ b/src/generated/resources/assets/farmersdelight/blockstates/wall_hanging_canvas_sign.json @@ -1,7 +1,19 @@ { "variants": { - "": { - "model": "farmersdelight:block/canvas_sign" + "facing=east": { + "model": "farmersdelight:block/wall_hanging_canvas_sign", + "y": 270 + }, + "facing=north": { + "model": "farmersdelight:block/wall_hanging_canvas_sign", + "y": 180 + }, + "facing=south": { + "model": "farmersdelight:block/wall_hanging_canvas_sign" + }, + "facing=west": { + "model": "farmersdelight:block/wall_hanging_canvas_sign", + "y": 90 } } } \ No newline at end of file diff --git a/src/generated/resources/assets/farmersdelight/blockstates/white_canvas_sign.json b/src/generated/resources/assets/farmersdelight/blockstates/white_canvas_sign.json index 3e0339710..b713a111f 100644 --- a/src/generated/resources/assets/farmersdelight/blockstates/white_canvas_sign.json +++ b/src/generated/resources/assets/farmersdelight/blockstates/white_canvas_sign.json @@ -1,7 +1,64 @@ { "variants": { - "": { - "model": "farmersdelight:block/canvas_sign" + "rotation=0": { + "model": "farmersdelight:block/white_canvas_sign_rot_0" + }, + "rotation=1": { + "model": "farmersdelight:block/white_canvas_sign_rot_1" + }, + "rotation=10": { + "model": "farmersdelight:block/white_canvas_sign_rot_2", + "y": 180 + }, + "rotation=11": { + "model": "farmersdelight:block/white_canvas_sign_rot_3", + "y": 180 + }, + "rotation=12": { + "model": "farmersdelight:block/white_canvas_sign_rot_0", + "y": 270 + }, + "rotation=13": { + "model": "farmersdelight:block/white_canvas_sign_rot_1", + "y": 270 + }, + "rotation=14": { + "model": "farmersdelight:block/white_canvas_sign_rot_2", + "y": 270 + }, + "rotation=15": { + "model": "farmersdelight:block/white_canvas_sign_rot_3", + "y": 270 + }, + "rotation=2": { + "model": "farmersdelight:block/white_canvas_sign_rot_2" + }, + "rotation=3": { + "model": "farmersdelight:block/white_canvas_sign_rot_3" + }, + "rotation=4": { + "model": "farmersdelight:block/white_canvas_sign_rot_0", + "y": 90 + }, + "rotation=5": { + "model": "farmersdelight:block/white_canvas_sign_rot_1", + "y": 90 + }, + "rotation=6": { + "model": "farmersdelight:block/white_canvas_sign_rot_2", + "y": 90 + }, + "rotation=7": { + "model": "farmersdelight:block/white_canvas_sign_rot_3", + "y": 90 + }, + "rotation=8": { + "model": "farmersdelight:block/white_canvas_sign_rot_0", + "y": 180 + }, + "rotation=9": { + "model": "farmersdelight:block/white_canvas_sign_rot_1", + "y": 180 } } } \ No newline at end of file diff --git a/src/generated/resources/assets/farmersdelight/blockstates/white_canvas_wall_sign.json b/src/generated/resources/assets/farmersdelight/blockstates/white_canvas_wall_sign.json index 3e0339710..4a10fa46f 100644 --- a/src/generated/resources/assets/farmersdelight/blockstates/white_canvas_wall_sign.json +++ b/src/generated/resources/assets/farmersdelight/blockstates/white_canvas_wall_sign.json @@ -1,7 +1,19 @@ { "variants": { - "": { - "model": "farmersdelight:block/canvas_sign" + "facing=east": { + "model": "farmersdelight:block/white_canvas_wall_sign", + "y": 270 + }, + "facing=north": { + "model": "farmersdelight:block/white_canvas_wall_sign", + "y": 180 + }, + "facing=south": { + "model": "farmersdelight:block/white_canvas_wall_sign" + }, + "facing=west": { + "model": "farmersdelight:block/white_canvas_wall_sign", + "y": 90 } } } \ No newline at end of file diff --git a/src/generated/resources/assets/farmersdelight/blockstates/white_hanging_canvas_sign.json b/src/generated/resources/assets/farmersdelight/blockstates/white_hanging_canvas_sign.json index 3e0339710..66dd8c253 100644 --- a/src/generated/resources/assets/farmersdelight/blockstates/white_hanging_canvas_sign.json +++ b/src/generated/resources/assets/farmersdelight/blockstates/white_hanging_canvas_sign.json @@ -1,7 +1,124 @@ { "variants": { - "": { - "model": "farmersdelight:block/canvas_sign" + "attached=false,rotation=0": { + "model": "farmersdelight:block/white_hanging_canvas_sign_rot_0" + }, + "attached=false,rotation=1": { + "model": "farmersdelight:block/white_hanging_canvas_sign_rot_1" + }, + "attached=false,rotation=10": { + "model": "farmersdelight:block/white_hanging_canvas_sign_rot_2", + "y": 180 + }, + "attached=false,rotation=11": { + "model": "farmersdelight:block/white_hanging_canvas_sign_rot_3", + "y": 180 + }, + "attached=false,rotation=12": { + "model": "farmersdelight:block/white_hanging_canvas_sign_rot_0", + "y": 270 + }, + "attached=false,rotation=13": { + "model": "farmersdelight:block/white_hanging_canvas_sign_rot_1", + "y": 270 + }, + "attached=false,rotation=14": { + "model": "farmersdelight:block/white_hanging_canvas_sign_rot_2", + "y": 270 + }, + "attached=false,rotation=15": { + "model": "farmersdelight:block/white_hanging_canvas_sign_rot_3", + "y": 270 + }, + "attached=false,rotation=2": { + "model": "farmersdelight:block/white_hanging_canvas_sign_rot_2" + }, + "attached=false,rotation=3": { + "model": "farmersdelight:block/white_hanging_canvas_sign_rot_3" + }, + "attached=false,rotation=4": { + "model": "farmersdelight:block/white_hanging_canvas_sign_rot_0", + "y": 90 + }, + "attached=false,rotation=5": { + "model": "farmersdelight:block/white_hanging_canvas_sign_rot_1", + "y": 90 + }, + "attached=false,rotation=6": { + "model": "farmersdelight:block/white_hanging_canvas_sign_rot_2", + "y": 90 + }, + "attached=false,rotation=7": { + "model": "farmersdelight:block/white_hanging_canvas_sign_rot_3", + "y": 90 + }, + "attached=false,rotation=8": { + "model": "farmersdelight:block/white_hanging_canvas_sign_rot_0", + "y": 180 + }, + "attached=false,rotation=9": { + "model": "farmersdelight:block/white_hanging_canvas_sign_rot_1", + "y": 180 + }, + "attached=true,rotation=0": { + "model": "farmersdelight:block/white_hanging_canvas_sign_attached_rot_0" + }, + "attached=true,rotation=1": { + "model": "farmersdelight:block/white_hanging_canvas_sign_attached_rot_1" + }, + "attached=true,rotation=10": { + "model": "farmersdelight:block/white_hanging_canvas_sign_attached_rot_2", + "y": 180 + }, + "attached=true,rotation=11": { + "model": "farmersdelight:block/white_hanging_canvas_sign_attached_rot_3", + "y": 180 + }, + "attached=true,rotation=12": { + "model": "farmersdelight:block/white_hanging_canvas_sign_attached_rot_0", + "y": 270 + }, + "attached=true,rotation=13": { + "model": "farmersdelight:block/white_hanging_canvas_sign_attached_rot_1", + "y": 270 + }, + "attached=true,rotation=14": { + "model": "farmersdelight:block/white_hanging_canvas_sign_attached_rot_2", + "y": 270 + }, + "attached=true,rotation=15": { + "model": "farmersdelight:block/white_hanging_canvas_sign_attached_rot_3", + "y": 270 + }, + "attached=true,rotation=2": { + "model": "farmersdelight:block/white_hanging_canvas_sign_attached_rot_2" + }, + "attached=true,rotation=3": { + "model": "farmersdelight:block/white_hanging_canvas_sign_attached_rot_3" + }, + "attached=true,rotation=4": { + "model": "farmersdelight:block/white_hanging_canvas_sign_attached_rot_0", + "y": 90 + }, + "attached=true,rotation=5": { + "model": "farmersdelight:block/white_hanging_canvas_sign_attached_rot_1", + "y": 90 + }, + "attached=true,rotation=6": { + "model": "farmersdelight:block/white_hanging_canvas_sign_attached_rot_2", + "y": 90 + }, + "attached=true,rotation=7": { + "model": "farmersdelight:block/white_hanging_canvas_sign_attached_rot_3", + "y": 90 + }, + "attached=true,rotation=8": { + "model": "farmersdelight:block/white_hanging_canvas_sign_attached_rot_0", + "y": 180 + }, + "attached=true,rotation=9": { + "model": "farmersdelight:block/white_hanging_canvas_sign_attached_rot_1", + "y": 180 } } } \ No newline at end of file diff --git a/src/generated/resources/assets/farmersdelight/blockstates/white_wall_hanging_canvas_sign.json b/src/generated/resources/assets/farmersdelight/blockstates/white_wall_hanging_canvas_sign.json index 3e0339710..8926cc871 100644 --- a/src/generated/resources/assets/farmersdelight/blockstates/white_wall_hanging_canvas_sign.json +++ b/src/generated/resources/assets/farmersdelight/blockstates/white_wall_hanging_canvas_sign.json @@ -1,7 +1,19 @@ { "variants": { - "": { - "model": "farmersdelight:block/canvas_sign" + "facing=east": { + "model": "farmersdelight:block/white_wall_hanging_canvas_sign", + "y": 270 + }, + "facing=north": { + "model": "farmersdelight:block/white_wall_hanging_canvas_sign", + "y": 180 + }, + "facing=south": { + "model": "farmersdelight:block/white_wall_hanging_canvas_sign" + }, + "facing=west": { + "model": "farmersdelight:block/white_wall_hanging_canvas_sign", + "y": 90 } } } \ No newline at end of file diff --git a/src/generated/resources/assets/farmersdelight/blockstates/yellow_canvas_sign.json b/src/generated/resources/assets/farmersdelight/blockstates/yellow_canvas_sign.json index 3e0339710..2a942edc2 100644 --- a/src/generated/resources/assets/farmersdelight/blockstates/yellow_canvas_sign.json +++ b/src/generated/resources/assets/farmersdelight/blockstates/yellow_canvas_sign.json @@ -1,7 +1,64 @@ { "variants": { - "": { - "model": "farmersdelight:block/canvas_sign" + "rotation=0": { + "model": "farmersdelight:block/yellow_canvas_sign_rot_0" + }, + "rotation=1": { + "model": "farmersdelight:block/yellow_canvas_sign_rot_1" + }, + "rotation=10": { + "model": "farmersdelight:block/yellow_canvas_sign_rot_2", + "y": 180 + }, + "rotation=11": { + "model": "farmersdelight:block/yellow_canvas_sign_rot_3", + "y": 180 + }, + "rotation=12": { + "model": "farmersdelight:block/yellow_canvas_sign_rot_0", + "y": 270 + }, + "rotation=13": { + "model": "farmersdelight:block/yellow_canvas_sign_rot_1", + "y": 270 + }, + "rotation=14": { + "model": "farmersdelight:block/yellow_canvas_sign_rot_2", + "y": 270 + }, + "rotation=15": { + "model": "farmersdelight:block/yellow_canvas_sign_rot_3", + "y": 270 + }, + "rotation=2": { + "model": "farmersdelight:block/yellow_canvas_sign_rot_2" + }, + "rotation=3": { + "model": "farmersdelight:block/yellow_canvas_sign_rot_3" + }, + "rotation=4": { + "model": "farmersdelight:block/yellow_canvas_sign_rot_0", + "y": 90 + }, + "rotation=5": { + "model": "farmersdelight:block/yellow_canvas_sign_rot_1", + "y": 90 + }, + "rotation=6": { + "model": "farmersdelight:block/yellow_canvas_sign_rot_2", + "y": 90 + }, + "rotation=7": { + "model": "farmersdelight:block/yellow_canvas_sign_rot_3", + "y": 90 + }, + "rotation=8": { + "model": "farmersdelight:block/yellow_canvas_sign_rot_0", + "y": 180 + }, + "rotation=9": { + "model": "farmersdelight:block/yellow_canvas_sign_rot_1", + "y": 180 } } } \ No newline at end of file diff --git a/src/generated/resources/assets/farmersdelight/blockstates/yellow_canvas_wall_sign.json b/src/generated/resources/assets/farmersdelight/blockstates/yellow_canvas_wall_sign.json index 3e0339710..46cdee3ff 100644 --- a/src/generated/resources/assets/farmersdelight/blockstates/yellow_canvas_wall_sign.json +++ b/src/generated/resources/assets/farmersdelight/blockstates/yellow_canvas_wall_sign.json @@ -1,7 +1,19 @@ { "variants": { - "": { - "model": "farmersdelight:block/canvas_sign" + "facing=east": { + "model": "farmersdelight:block/yellow_canvas_wall_sign", + "y": 270 + }, + "facing=north": { + "model": "farmersdelight:block/yellow_canvas_wall_sign", + "y": 180 + }, + "facing=south": { + "model": "farmersdelight:block/yellow_canvas_wall_sign" + }, + "facing=west": { + "model": "farmersdelight:block/yellow_canvas_wall_sign", + "y": 90 } } } \ No newline at end of file diff --git a/src/generated/resources/assets/farmersdelight/blockstates/yellow_hanging_canvas_sign.json b/src/generated/resources/assets/farmersdelight/blockstates/yellow_hanging_canvas_sign.json index 3e0339710..cb9bbc0f9 100644 --- a/src/generated/resources/assets/farmersdelight/blockstates/yellow_hanging_canvas_sign.json +++ b/src/generated/resources/assets/farmersdelight/blockstates/yellow_hanging_canvas_sign.json @@ -1,7 +1,124 @@ { "variants": { - "": { - "model": "farmersdelight:block/canvas_sign" + "attached=false,rotation=0": { + "model": "farmersdelight:block/yellow_hanging_canvas_sign_rot_0" + }, + "attached=false,rotation=1": { + "model": "farmersdelight:block/yellow_hanging_canvas_sign_rot_1" + }, + "attached=false,rotation=10": { + "model": "farmersdelight:block/yellow_hanging_canvas_sign_rot_2", + "y": 180 + }, + "attached=false,rotation=11": { + "model": "farmersdelight:block/yellow_hanging_canvas_sign_rot_3", + "y": 180 + }, + "attached=false,rotation=12": { + "model": "farmersdelight:block/yellow_hanging_canvas_sign_rot_0", + "y": 270 + }, + "attached=false,rotation=13": { + "model": "farmersdelight:block/yellow_hanging_canvas_sign_rot_1", + "y": 270 + }, + "attached=false,rotation=14": { + "model": "farmersdelight:block/yellow_hanging_canvas_sign_rot_2", + "y": 270 + }, + "attached=false,rotation=15": { + "model": "farmersdelight:block/yellow_hanging_canvas_sign_rot_3", + "y": 270 + }, + "attached=false,rotation=2": { + "model": "farmersdelight:block/yellow_hanging_canvas_sign_rot_2" + }, + "attached=false,rotation=3": { + "model": "farmersdelight:block/yellow_hanging_canvas_sign_rot_3" + }, + "attached=false,rotation=4": { + "model": "farmersdelight:block/yellow_hanging_canvas_sign_rot_0", + "y": 90 + }, + "attached=false,rotation=5": { + "model": "farmersdelight:block/yellow_hanging_canvas_sign_rot_1", + "y": 90 + }, + "attached=false,rotation=6": { + "model": "farmersdelight:block/yellow_hanging_canvas_sign_rot_2", + "y": 90 + }, + "attached=false,rotation=7": { + "model": "farmersdelight:block/yellow_hanging_canvas_sign_rot_3", + "y": 90 + }, + "attached=false,rotation=8": { + "model": "farmersdelight:block/yellow_hanging_canvas_sign_rot_0", + "y": 180 + }, + "attached=false,rotation=9": { + "model": "farmersdelight:block/yellow_hanging_canvas_sign_rot_1", + "y": 180 + }, + "attached=true,rotation=0": { + "model": "farmersdelight:block/yellow_hanging_canvas_sign_attached_rot_0" + }, + "attached=true,rotation=1": { + "model": "farmersdelight:block/yellow_hanging_canvas_sign_attached_rot_1" + }, + "attached=true,rotation=10": { + "model": "farmersdelight:block/yellow_hanging_canvas_sign_attached_rot_2", + "y": 180 + }, + "attached=true,rotation=11": { + "model": "farmersdelight:block/yellow_hanging_canvas_sign_attached_rot_3", + "y": 180 + }, + "attached=true,rotation=12": { + "model": "farmersdelight:block/yellow_hanging_canvas_sign_attached_rot_0", + "y": 270 + }, + "attached=true,rotation=13": { + "model": "farmersdelight:block/yellow_hanging_canvas_sign_attached_rot_1", + "y": 270 + }, + "attached=true,rotation=14": { + "model": "farmersdelight:block/yellow_hanging_canvas_sign_attached_rot_2", + "y": 270 + }, + "attached=true,rotation=15": { + "model": "farmersdelight:block/yellow_hanging_canvas_sign_attached_rot_3", + "y": 270 + }, + "attached=true,rotation=2": { + "model": "farmersdelight:block/yellow_hanging_canvas_sign_attached_rot_2" + }, + "attached=true,rotation=3": { + "model": "farmersdelight:block/yellow_hanging_canvas_sign_attached_rot_3" + }, + "attached=true,rotation=4": { + "model": "farmersdelight:block/yellow_hanging_canvas_sign_attached_rot_0", + "y": 90 + }, + "attached=true,rotation=5": { + "model": "farmersdelight:block/yellow_hanging_canvas_sign_attached_rot_1", + "y": 90 + }, + "attached=true,rotation=6": { + "model": "farmersdelight:block/yellow_hanging_canvas_sign_attached_rot_2", + "y": 90 + }, + "attached=true,rotation=7": { + "model": "farmersdelight:block/yellow_hanging_canvas_sign_attached_rot_3", + "y": 90 + }, + "attached=true,rotation=8": { + "model": "farmersdelight:block/yellow_hanging_canvas_sign_attached_rot_0", + "y": 180 + }, + "attached=true,rotation=9": { + "model": "farmersdelight:block/yellow_hanging_canvas_sign_attached_rot_1", + "y": 180 } } } \ No newline at end of file diff --git a/src/generated/resources/assets/farmersdelight/blockstates/yellow_wall_hanging_canvas_sign.json b/src/generated/resources/assets/farmersdelight/blockstates/yellow_wall_hanging_canvas_sign.json index 3e0339710..1a56ba30d 100644 --- a/src/generated/resources/assets/farmersdelight/blockstates/yellow_wall_hanging_canvas_sign.json +++ b/src/generated/resources/assets/farmersdelight/blockstates/yellow_wall_hanging_canvas_sign.json @@ -1,7 +1,19 @@ { "variants": { - "": { - "model": "farmersdelight:block/canvas_sign" + "facing=east": { + "model": "farmersdelight:block/yellow_wall_hanging_canvas_sign", + "y": 270 + }, + "facing=north": { + "model": "farmersdelight:block/yellow_wall_hanging_canvas_sign", + "y": 180 + }, + "facing=south": { + "model": "farmersdelight:block/yellow_wall_hanging_canvas_sign" + }, + "facing=west": { + "model": "farmersdelight:block/yellow_wall_hanging_canvas_sign", + "y": 90 } } } \ No newline at end of file diff --git a/src/generated/resources/assets/farmersdelight/items/acacia_cabinet.json b/src/generated/resources/assets/farmersdelight/items/acacia_cabinet.json new file mode 100644 index 000000000..d7e61ce08 --- /dev/null +++ b/src/generated/resources/assets/farmersdelight/items/acacia_cabinet.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "farmersdelight:block/acacia_cabinet" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/farmersdelight/items/apple_cider.json b/src/generated/resources/assets/farmersdelight/items/apple_cider.json new file mode 100644 index 000000000..a7f2b415e --- /dev/null +++ b/src/generated/resources/assets/farmersdelight/items/apple_cider.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "farmersdelight:item/apple_cider" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/farmersdelight/items/apple_pie.json b/src/generated/resources/assets/farmersdelight/items/apple_pie.json new file mode 100644 index 000000000..6f0a94c30 --- /dev/null +++ b/src/generated/resources/assets/farmersdelight/items/apple_pie.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "farmersdelight:item/apple_pie" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/farmersdelight/items/apple_pie_slice.json b/src/generated/resources/assets/farmersdelight/items/apple_pie_slice.json new file mode 100644 index 000000000..f782e45e2 --- /dev/null +++ b/src/generated/resources/assets/farmersdelight/items/apple_pie_slice.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "farmersdelight:item/apple_pie_slice" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/farmersdelight/items/bacon.json b/src/generated/resources/assets/farmersdelight/items/bacon.json new file mode 100644 index 000000000..dca724d0a --- /dev/null +++ b/src/generated/resources/assets/farmersdelight/items/bacon.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "farmersdelight:item/bacon" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/farmersdelight/items/bacon_and_eggs.json b/src/generated/resources/assets/farmersdelight/items/bacon_and_eggs.json new file mode 100644 index 000000000..58f0facca --- /dev/null +++ b/src/generated/resources/assets/farmersdelight/items/bacon_and_eggs.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "farmersdelight:item/bacon_and_eggs" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/farmersdelight/items/bacon_sandwich.json b/src/generated/resources/assets/farmersdelight/items/bacon_sandwich.json new file mode 100644 index 000000000..f287e3ac2 --- /dev/null +++ b/src/generated/resources/assets/farmersdelight/items/bacon_sandwich.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "farmersdelight:item/bacon_sandwich" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/farmersdelight/items/baked_cod_stew.json b/src/generated/resources/assets/farmersdelight/items/baked_cod_stew.json new file mode 100644 index 000000000..5c05a28fb --- /dev/null +++ b/src/generated/resources/assets/farmersdelight/items/baked_cod_stew.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "farmersdelight:item/baked_cod_stew" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/farmersdelight/items/bamboo_basket.json b/src/generated/resources/assets/farmersdelight/items/bamboo_basket.json new file mode 100644 index 000000000..80c78dfa8 --- /dev/null +++ b/src/generated/resources/assets/farmersdelight/items/bamboo_basket.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "farmersdelight:block/bamboo_basket" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/farmersdelight/items/bamboo_cabinet.json b/src/generated/resources/assets/farmersdelight/items/bamboo_cabinet.json new file mode 100644 index 000000000..da7c28651 --- /dev/null +++ b/src/generated/resources/assets/farmersdelight/items/bamboo_cabinet.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "farmersdelight:block/bamboo_cabinet" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/farmersdelight/items/barbecue_stick.json b/src/generated/resources/assets/farmersdelight/items/barbecue_stick.json new file mode 100644 index 000000000..51e9a085e --- /dev/null +++ b/src/generated/resources/assets/farmersdelight/items/barbecue_stick.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "farmersdelight:item/barbecue_stick" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/farmersdelight/items/beef_patty.json b/src/generated/resources/assets/farmersdelight/items/beef_patty.json new file mode 100644 index 000000000..6fab32d7e --- /dev/null +++ b/src/generated/resources/assets/farmersdelight/items/beef_patty.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "farmersdelight:item/beef_patty" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/farmersdelight/items/beef_stew.json b/src/generated/resources/assets/farmersdelight/items/beef_stew.json new file mode 100644 index 000000000..5552d0961 --- /dev/null +++ b/src/generated/resources/assets/farmersdelight/items/beef_stew.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "farmersdelight:item/beef_stew" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/farmersdelight/items/beetroot_crate.json b/src/generated/resources/assets/farmersdelight/items/beetroot_crate.json new file mode 100644 index 000000000..2c60f32f4 --- /dev/null +++ b/src/generated/resources/assets/farmersdelight/items/beetroot_crate.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "farmersdelight:block/beetroot_crate" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/farmersdelight/items/birch_cabinet.json b/src/generated/resources/assets/farmersdelight/items/birch_cabinet.json new file mode 100644 index 000000000..b6b6b4b2a --- /dev/null +++ b/src/generated/resources/assets/farmersdelight/items/birch_cabinet.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "farmersdelight:block/birch_cabinet" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/farmersdelight/items/black_canvas_sign.json b/src/generated/resources/assets/farmersdelight/items/black_canvas_sign.json new file mode 100644 index 000000000..e9367682f --- /dev/null +++ b/src/generated/resources/assets/farmersdelight/items/black_canvas_sign.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "farmersdelight:item/black_canvas_sign" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/farmersdelight/items/black_hanging_canvas_sign.json b/src/generated/resources/assets/farmersdelight/items/black_hanging_canvas_sign.json new file mode 100644 index 000000000..89190dd1c --- /dev/null +++ b/src/generated/resources/assets/farmersdelight/items/black_hanging_canvas_sign.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "farmersdelight:item/black_hanging_canvas_sign" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/farmersdelight/items/blue_canvas_sign.json b/src/generated/resources/assets/farmersdelight/items/blue_canvas_sign.json new file mode 100644 index 000000000..dd04ffcee --- /dev/null +++ b/src/generated/resources/assets/farmersdelight/items/blue_canvas_sign.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "farmersdelight:item/blue_canvas_sign" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/farmersdelight/items/blue_hanging_canvas_sign.json b/src/generated/resources/assets/farmersdelight/items/blue_hanging_canvas_sign.json new file mode 100644 index 000000000..c0c3ab7cd --- /dev/null +++ b/src/generated/resources/assets/farmersdelight/items/blue_hanging_canvas_sign.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "farmersdelight:item/blue_hanging_canvas_sign" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/farmersdelight/items/bone_broth.json b/src/generated/resources/assets/farmersdelight/items/bone_broth.json new file mode 100644 index 000000000..750ebbf32 --- /dev/null +++ b/src/generated/resources/assets/farmersdelight/items/bone_broth.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "farmersdelight:item/bone_broth" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/farmersdelight/items/brown_canvas_sign.json b/src/generated/resources/assets/farmersdelight/items/brown_canvas_sign.json new file mode 100644 index 000000000..611485280 --- /dev/null +++ b/src/generated/resources/assets/farmersdelight/items/brown_canvas_sign.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "farmersdelight:item/brown_canvas_sign" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/farmersdelight/items/brown_hanging_canvas_sign.json b/src/generated/resources/assets/farmersdelight/items/brown_hanging_canvas_sign.json new file mode 100644 index 000000000..0622e2425 --- /dev/null +++ b/src/generated/resources/assets/farmersdelight/items/brown_hanging_canvas_sign.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "farmersdelight:item/brown_hanging_canvas_sign" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/farmersdelight/items/brown_mushroom_colony.json b/src/generated/resources/assets/farmersdelight/items/brown_mushroom_colony.json new file mode 100644 index 000000000..3f3032c98 --- /dev/null +++ b/src/generated/resources/assets/farmersdelight/items/brown_mushroom_colony.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "farmersdelight:item/brown_mushroom_colony" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/farmersdelight/items/cabbage.json b/src/generated/resources/assets/farmersdelight/items/cabbage.json new file mode 100644 index 000000000..5ffe3bf4d --- /dev/null +++ b/src/generated/resources/assets/farmersdelight/items/cabbage.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "farmersdelight:item/cabbage" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/farmersdelight/items/cabbage_crate.json b/src/generated/resources/assets/farmersdelight/items/cabbage_crate.json new file mode 100644 index 000000000..65b2b9e35 --- /dev/null +++ b/src/generated/resources/assets/farmersdelight/items/cabbage_crate.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "farmersdelight:block/cabbage_crate" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/farmersdelight/items/cabbage_leaf.json b/src/generated/resources/assets/farmersdelight/items/cabbage_leaf.json new file mode 100644 index 000000000..87e3c8d60 --- /dev/null +++ b/src/generated/resources/assets/farmersdelight/items/cabbage_leaf.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "farmersdelight:item/cabbage_leaf" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/farmersdelight/items/cabbage_rolls.json b/src/generated/resources/assets/farmersdelight/items/cabbage_rolls.json new file mode 100644 index 000000000..3e61e4fc8 --- /dev/null +++ b/src/generated/resources/assets/farmersdelight/items/cabbage_rolls.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "farmersdelight:item/cabbage_rolls" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/farmersdelight/items/cabbage_seeds.json b/src/generated/resources/assets/farmersdelight/items/cabbage_seeds.json new file mode 100644 index 000000000..19e5894d1 --- /dev/null +++ b/src/generated/resources/assets/farmersdelight/items/cabbage_seeds.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "farmersdelight:item/cabbage_seeds" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/farmersdelight/items/cake_slice.json b/src/generated/resources/assets/farmersdelight/items/cake_slice.json new file mode 100644 index 000000000..4cb262a10 --- /dev/null +++ b/src/generated/resources/assets/farmersdelight/items/cake_slice.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "farmersdelight:item/cake_slice" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/farmersdelight/items/canvas.json b/src/generated/resources/assets/farmersdelight/items/canvas.json new file mode 100644 index 000000000..f1c87923f --- /dev/null +++ b/src/generated/resources/assets/farmersdelight/items/canvas.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "farmersdelight:item/canvas" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/farmersdelight/items/canvas_rug.json b/src/generated/resources/assets/farmersdelight/items/canvas_rug.json new file mode 100644 index 000000000..3c51b3fa5 --- /dev/null +++ b/src/generated/resources/assets/farmersdelight/items/canvas_rug.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "farmersdelight:block/canvas_rug" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/farmersdelight/items/canvas_sign.json b/src/generated/resources/assets/farmersdelight/items/canvas_sign.json new file mode 100644 index 000000000..5c64d2e7d --- /dev/null +++ b/src/generated/resources/assets/farmersdelight/items/canvas_sign.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "farmersdelight:item/canvas_sign" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/farmersdelight/items/carrot_crate.json b/src/generated/resources/assets/farmersdelight/items/carrot_crate.json new file mode 100644 index 000000000..8d1500ba9 --- /dev/null +++ b/src/generated/resources/assets/farmersdelight/items/carrot_crate.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "farmersdelight:block/carrot_crate" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/farmersdelight/items/cherry_cabinet.json b/src/generated/resources/assets/farmersdelight/items/cherry_cabinet.json new file mode 100644 index 000000000..df17ef388 --- /dev/null +++ b/src/generated/resources/assets/farmersdelight/items/cherry_cabinet.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "farmersdelight:block/cherry_cabinet" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/farmersdelight/items/chicken_cuts.json b/src/generated/resources/assets/farmersdelight/items/chicken_cuts.json new file mode 100644 index 000000000..c7c1628f9 --- /dev/null +++ b/src/generated/resources/assets/farmersdelight/items/chicken_cuts.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "farmersdelight:item/chicken_cuts" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/farmersdelight/items/chicken_sandwich.json b/src/generated/resources/assets/farmersdelight/items/chicken_sandwich.json new file mode 100644 index 000000000..682b9e8cd --- /dev/null +++ b/src/generated/resources/assets/farmersdelight/items/chicken_sandwich.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "farmersdelight:item/chicken_sandwich" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/farmersdelight/items/chicken_soup.json b/src/generated/resources/assets/farmersdelight/items/chicken_soup.json new file mode 100644 index 000000000..257a7942a --- /dev/null +++ b/src/generated/resources/assets/farmersdelight/items/chicken_soup.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "farmersdelight:item/chicken_soup" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/farmersdelight/items/chocolate_pie.json b/src/generated/resources/assets/farmersdelight/items/chocolate_pie.json new file mode 100644 index 000000000..cc3782516 --- /dev/null +++ b/src/generated/resources/assets/farmersdelight/items/chocolate_pie.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "farmersdelight:item/chocolate_pie" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/farmersdelight/items/chocolate_pie_slice.json b/src/generated/resources/assets/farmersdelight/items/chocolate_pie_slice.json new file mode 100644 index 000000000..fe72978e4 --- /dev/null +++ b/src/generated/resources/assets/farmersdelight/items/chocolate_pie_slice.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "farmersdelight:item/chocolate_pie_slice" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/farmersdelight/items/cod_roll.json b/src/generated/resources/assets/farmersdelight/items/cod_roll.json new file mode 100644 index 000000000..215d9365f --- /dev/null +++ b/src/generated/resources/assets/farmersdelight/items/cod_roll.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "farmersdelight:item/cod_roll" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/farmersdelight/items/cod_slice.json b/src/generated/resources/assets/farmersdelight/items/cod_slice.json new file mode 100644 index 000000000..16b0a6686 --- /dev/null +++ b/src/generated/resources/assets/farmersdelight/items/cod_slice.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "farmersdelight:item/cod_slice" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/farmersdelight/items/cooked_bacon.json b/src/generated/resources/assets/farmersdelight/items/cooked_bacon.json new file mode 100644 index 000000000..153018fc3 --- /dev/null +++ b/src/generated/resources/assets/farmersdelight/items/cooked_bacon.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "farmersdelight:item/cooked_bacon" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/farmersdelight/items/cooked_chicken_cuts.json b/src/generated/resources/assets/farmersdelight/items/cooked_chicken_cuts.json new file mode 100644 index 000000000..2fb8ebdff --- /dev/null +++ b/src/generated/resources/assets/farmersdelight/items/cooked_chicken_cuts.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "farmersdelight:item/cooked_chicken_cuts" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/farmersdelight/items/cooked_cod_slice.json b/src/generated/resources/assets/farmersdelight/items/cooked_cod_slice.json new file mode 100644 index 000000000..f03c444fb --- /dev/null +++ b/src/generated/resources/assets/farmersdelight/items/cooked_cod_slice.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "farmersdelight:item/cooked_cod_slice" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/farmersdelight/items/cooked_mutton_chops.json b/src/generated/resources/assets/farmersdelight/items/cooked_mutton_chops.json new file mode 100644 index 000000000..6fba334c9 --- /dev/null +++ b/src/generated/resources/assets/farmersdelight/items/cooked_mutton_chops.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "farmersdelight:item/cooked_mutton_chops" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/farmersdelight/items/cooked_rice.json b/src/generated/resources/assets/farmersdelight/items/cooked_rice.json new file mode 100644 index 000000000..08f221329 --- /dev/null +++ b/src/generated/resources/assets/farmersdelight/items/cooked_rice.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "farmersdelight:item/cooked_rice" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/farmersdelight/items/cooked_salmon_slice.json b/src/generated/resources/assets/farmersdelight/items/cooked_salmon_slice.json new file mode 100644 index 000000000..316c7ea79 --- /dev/null +++ b/src/generated/resources/assets/farmersdelight/items/cooked_salmon_slice.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "farmersdelight:item/cooked_salmon_slice" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/farmersdelight/items/cooking_pot.json b/src/generated/resources/assets/farmersdelight/items/cooking_pot.json new file mode 100644 index 000000000..cd8e74879 --- /dev/null +++ b/src/generated/resources/assets/farmersdelight/items/cooking_pot.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "farmersdelight:block/cooking_pot" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/farmersdelight/items/crimson_cabinet.json b/src/generated/resources/assets/farmersdelight/items/crimson_cabinet.json new file mode 100644 index 000000000..ed7fefff9 --- /dev/null +++ b/src/generated/resources/assets/farmersdelight/items/crimson_cabinet.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "farmersdelight:block/crimson_cabinet" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/farmersdelight/items/cutting_board.json b/src/generated/resources/assets/farmersdelight/items/cutting_board.json new file mode 100644 index 000000000..506383b8d --- /dev/null +++ b/src/generated/resources/assets/farmersdelight/items/cutting_board.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "farmersdelight:block/cutting_board" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/farmersdelight/items/cyan_canvas_sign.json b/src/generated/resources/assets/farmersdelight/items/cyan_canvas_sign.json new file mode 100644 index 000000000..d2602a0d0 --- /dev/null +++ b/src/generated/resources/assets/farmersdelight/items/cyan_canvas_sign.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "farmersdelight:item/cyan_canvas_sign" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/farmersdelight/items/cyan_hanging_canvas_sign.json b/src/generated/resources/assets/farmersdelight/items/cyan_hanging_canvas_sign.json new file mode 100644 index 000000000..2a5a55cdc --- /dev/null +++ b/src/generated/resources/assets/farmersdelight/items/cyan_hanging_canvas_sign.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "farmersdelight:item/cyan_hanging_canvas_sign" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/farmersdelight/items/dark_oak_cabinet.json b/src/generated/resources/assets/farmersdelight/items/dark_oak_cabinet.json new file mode 100644 index 000000000..67705bc79 --- /dev/null +++ b/src/generated/resources/assets/farmersdelight/items/dark_oak_cabinet.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "farmersdelight:block/dark_oak_cabinet" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/farmersdelight/items/debug_pumpkin_pie.json b/src/generated/resources/assets/farmersdelight/items/debug_pumpkin_pie.json new file mode 100644 index 000000000..8c85b6ab3 --- /dev/null +++ b/src/generated/resources/assets/farmersdelight/items/debug_pumpkin_pie.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "farmersdelight:item/debug_pumpkin_pie" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/farmersdelight/items/diamond_knife.json b/src/generated/resources/assets/farmersdelight/items/diamond_knife.json new file mode 100644 index 000000000..f48d08c4b --- /dev/null +++ b/src/generated/resources/assets/farmersdelight/items/diamond_knife.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "farmersdelight:item/diamond_knife" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/farmersdelight/items/dog_food.json b/src/generated/resources/assets/farmersdelight/items/dog_food.json new file mode 100644 index 000000000..03a132278 --- /dev/null +++ b/src/generated/resources/assets/farmersdelight/items/dog_food.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "farmersdelight:item/dog_food" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/farmersdelight/items/dumplings.json b/src/generated/resources/assets/farmersdelight/items/dumplings.json new file mode 100644 index 000000000..c700fa1b9 --- /dev/null +++ b/src/generated/resources/assets/farmersdelight/items/dumplings.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "farmersdelight:item/dumplings" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/farmersdelight/items/egg_sandwich.json b/src/generated/resources/assets/farmersdelight/items/egg_sandwich.json new file mode 100644 index 000000000..a416398ff --- /dev/null +++ b/src/generated/resources/assets/farmersdelight/items/egg_sandwich.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "farmersdelight:item/egg_sandwich" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/farmersdelight/items/fish_stew.json b/src/generated/resources/assets/farmersdelight/items/fish_stew.json new file mode 100644 index 000000000..0b18b622e --- /dev/null +++ b/src/generated/resources/assets/farmersdelight/items/fish_stew.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "farmersdelight:item/fish_stew" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/farmersdelight/items/flint_knife.json b/src/generated/resources/assets/farmersdelight/items/flint_knife.json new file mode 100644 index 000000000..995cbd444 --- /dev/null +++ b/src/generated/resources/assets/farmersdelight/items/flint_knife.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "farmersdelight:item/flint_knife" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/farmersdelight/items/fried_egg.json b/src/generated/resources/assets/farmersdelight/items/fried_egg.json new file mode 100644 index 000000000..092dd5029 --- /dev/null +++ b/src/generated/resources/assets/farmersdelight/items/fried_egg.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "farmersdelight:item/fried_egg" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/farmersdelight/items/fried_rice.json b/src/generated/resources/assets/farmersdelight/items/fried_rice.json new file mode 100644 index 000000000..7ccb71681 --- /dev/null +++ b/src/generated/resources/assets/farmersdelight/items/fried_rice.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "farmersdelight:item/fried_rice" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/farmersdelight/items/fruit_salad.json b/src/generated/resources/assets/farmersdelight/items/fruit_salad.json new file mode 100644 index 000000000..0a44c7765 --- /dev/null +++ b/src/generated/resources/assets/farmersdelight/items/fruit_salad.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "farmersdelight:item/fruit_salad" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/farmersdelight/items/full_tatami_mat.json b/src/generated/resources/assets/farmersdelight/items/full_tatami_mat.json new file mode 100644 index 000000000..b82eaa270 --- /dev/null +++ b/src/generated/resources/assets/farmersdelight/items/full_tatami_mat.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "farmersdelight:item/full_tatami_mat" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/farmersdelight/items/gleaming_salad.json b/src/generated/resources/assets/farmersdelight/items/gleaming_salad.json new file mode 100644 index 000000000..b5833126f --- /dev/null +++ b/src/generated/resources/assets/farmersdelight/items/gleaming_salad.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "farmersdelight:item/gleaming_salad" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/farmersdelight/items/gleaming_salad_block.json b/src/generated/resources/assets/farmersdelight/items/gleaming_salad_block.json new file mode 100644 index 000000000..10872294a --- /dev/null +++ b/src/generated/resources/assets/farmersdelight/items/gleaming_salad_block.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "farmersdelight:item/gleaming_salad_block" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/farmersdelight/items/glow_berry_custard.json b/src/generated/resources/assets/farmersdelight/items/glow_berry_custard.json new file mode 100644 index 000000000..348182b1d --- /dev/null +++ b/src/generated/resources/assets/farmersdelight/items/glow_berry_custard.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "farmersdelight:item/glow_berry_custard" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/farmersdelight/items/golden_knife.json b/src/generated/resources/assets/farmersdelight/items/golden_knife.json new file mode 100644 index 000000000..0e264e24a --- /dev/null +++ b/src/generated/resources/assets/farmersdelight/items/golden_knife.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "farmersdelight:item/golden_knife" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/farmersdelight/items/gray_canvas_sign.json b/src/generated/resources/assets/farmersdelight/items/gray_canvas_sign.json new file mode 100644 index 000000000..de4a7be74 --- /dev/null +++ b/src/generated/resources/assets/farmersdelight/items/gray_canvas_sign.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "farmersdelight:item/gray_canvas_sign" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/farmersdelight/items/gray_hanging_canvas_sign.json b/src/generated/resources/assets/farmersdelight/items/gray_hanging_canvas_sign.json new file mode 100644 index 000000000..cc4db6519 --- /dev/null +++ b/src/generated/resources/assets/farmersdelight/items/gray_hanging_canvas_sign.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "farmersdelight:item/gray_hanging_canvas_sign" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/farmersdelight/items/green_canvas_sign.json b/src/generated/resources/assets/farmersdelight/items/green_canvas_sign.json new file mode 100644 index 000000000..5d5a555a1 --- /dev/null +++ b/src/generated/resources/assets/farmersdelight/items/green_canvas_sign.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "farmersdelight:item/green_canvas_sign" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/farmersdelight/items/green_hanging_canvas_sign.json b/src/generated/resources/assets/farmersdelight/items/green_hanging_canvas_sign.json new file mode 100644 index 000000000..0a738e8be --- /dev/null +++ b/src/generated/resources/assets/farmersdelight/items/green_hanging_canvas_sign.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "farmersdelight:item/green_hanging_canvas_sign" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/farmersdelight/items/grilled_salmon.json b/src/generated/resources/assets/farmersdelight/items/grilled_salmon.json new file mode 100644 index 000000000..96ca7c999 --- /dev/null +++ b/src/generated/resources/assets/farmersdelight/items/grilled_salmon.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "farmersdelight:item/grilled_salmon" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/farmersdelight/items/half_tatami_mat.json b/src/generated/resources/assets/farmersdelight/items/half_tatami_mat.json new file mode 100644 index 000000000..8c5bcba70 --- /dev/null +++ b/src/generated/resources/assets/farmersdelight/items/half_tatami_mat.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "farmersdelight:item/half_tatami_mat" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/farmersdelight/items/ham.json b/src/generated/resources/assets/farmersdelight/items/ham.json new file mode 100644 index 000000000..ec1766292 --- /dev/null +++ b/src/generated/resources/assets/farmersdelight/items/ham.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "farmersdelight:item/ham" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/farmersdelight/items/hamburger.json b/src/generated/resources/assets/farmersdelight/items/hamburger.json new file mode 100644 index 000000000..3ac1b76ba --- /dev/null +++ b/src/generated/resources/assets/farmersdelight/items/hamburger.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "farmersdelight:item/hamburger" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/farmersdelight/items/hanging_canvas_sign.json b/src/generated/resources/assets/farmersdelight/items/hanging_canvas_sign.json new file mode 100644 index 000000000..56eda9af8 --- /dev/null +++ b/src/generated/resources/assets/farmersdelight/items/hanging_canvas_sign.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "farmersdelight:item/hanging_canvas_sign" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/farmersdelight/items/honey_cookie.json b/src/generated/resources/assets/farmersdelight/items/honey_cookie.json new file mode 100644 index 000000000..3ebc678cb --- /dev/null +++ b/src/generated/resources/assets/farmersdelight/items/honey_cookie.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "farmersdelight:item/honey_cookie" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/farmersdelight/items/honey_glazed_ham.json b/src/generated/resources/assets/farmersdelight/items/honey_glazed_ham.json new file mode 100644 index 000000000..e71fd149f --- /dev/null +++ b/src/generated/resources/assets/farmersdelight/items/honey_glazed_ham.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "farmersdelight:item/honey_glazed_ham" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/farmersdelight/items/honey_glazed_ham_block.json b/src/generated/resources/assets/farmersdelight/items/honey_glazed_ham_block.json new file mode 100644 index 000000000..c00b25eba --- /dev/null +++ b/src/generated/resources/assets/farmersdelight/items/honey_glazed_ham_block.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "farmersdelight:item/honey_glazed_ham_block" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/farmersdelight/items/horse_feed.json b/src/generated/resources/assets/farmersdelight/items/horse_feed.json new file mode 100644 index 000000000..6542e13a2 --- /dev/null +++ b/src/generated/resources/assets/farmersdelight/items/horse_feed.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "farmersdelight:item/horse_feed" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/farmersdelight/items/hot_cocoa.json b/src/generated/resources/assets/farmersdelight/items/hot_cocoa.json new file mode 100644 index 000000000..8b8bfb1e0 --- /dev/null +++ b/src/generated/resources/assets/farmersdelight/items/hot_cocoa.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "farmersdelight:item/hot_cocoa" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/farmersdelight/items/iron_knife.json b/src/generated/resources/assets/farmersdelight/items/iron_knife.json new file mode 100644 index 000000000..f14a33632 --- /dev/null +++ b/src/generated/resources/assets/farmersdelight/items/iron_knife.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "farmersdelight:item/iron_knife" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/farmersdelight/items/jungle_cabinet.json b/src/generated/resources/assets/farmersdelight/items/jungle_cabinet.json new file mode 100644 index 000000000..46c38e633 --- /dev/null +++ b/src/generated/resources/assets/farmersdelight/items/jungle_cabinet.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "farmersdelight:block/jungle_cabinet" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/farmersdelight/items/kelp_roll.json b/src/generated/resources/assets/farmersdelight/items/kelp_roll.json new file mode 100644 index 000000000..f8f806aaf --- /dev/null +++ b/src/generated/resources/assets/farmersdelight/items/kelp_roll.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "farmersdelight:item/kelp_roll" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/farmersdelight/items/kelp_roll_slice.json b/src/generated/resources/assets/farmersdelight/items/kelp_roll_slice.json new file mode 100644 index 000000000..d25233f7f --- /dev/null +++ b/src/generated/resources/assets/farmersdelight/items/kelp_roll_slice.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "farmersdelight:item/kelp_roll_slice" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/farmersdelight/items/light_blue_canvas_sign.json b/src/generated/resources/assets/farmersdelight/items/light_blue_canvas_sign.json new file mode 100644 index 000000000..a32d0c7a7 --- /dev/null +++ b/src/generated/resources/assets/farmersdelight/items/light_blue_canvas_sign.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "farmersdelight:item/light_blue_canvas_sign" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/farmersdelight/items/light_blue_hanging_canvas_sign.json b/src/generated/resources/assets/farmersdelight/items/light_blue_hanging_canvas_sign.json new file mode 100644 index 000000000..5e61bc520 --- /dev/null +++ b/src/generated/resources/assets/farmersdelight/items/light_blue_hanging_canvas_sign.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "farmersdelight:item/light_blue_hanging_canvas_sign" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/farmersdelight/items/light_gray_canvas_sign.json b/src/generated/resources/assets/farmersdelight/items/light_gray_canvas_sign.json new file mode 100644 index 000000000..95e07cc5c --- /dev/null +++ b/src/generated/resources/assets/farmersdelight/items/light_gray_canvas_sign.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "farmersdelight:item/light_gray_canvas_sign" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/farmersdelight/items/light_gray_hanging_canvas_sign.json b/src/generated/resources/assets/farmersdelight/items/light_gray_hanging_canvas_sign.json new file mode 100644 index 000000000..413122cfc --- /dev/null +++ b/src/generated/resources/assets/farmersdelight/items/light_gray_hanging_canvas_sign.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "farmersdelight:item/light_gray_hanging_canvas_sign" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/farmersdelight/items/lime_canvas_sign.json b/src/generated/resources/assets/farmersdelight/items/lime_canvas_sign.json new file mode 100644 index 000000000..bdfdd973b --- /dev/null +++ b/src/generated/resources/assets/farmersdelight/items/lime_canvas_sign.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "farmersdelight:item/lime_canvas_sign" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/farmersdelight/items/lime_hanging_canvas_sign.json b/src/generated/resources/assets/farmersdelight/items/lime_hanging_canvas_sign.json new file mode 100644 index 000000000..5c83b02a5 --- /dev/null +++ b/src/generated/resources/assets/farmersdelight/items/lime_hanging_canvas_sign.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "farmersdelight:item/lime_hanging_canvas_sign" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/farmersdelight/items/magenta_canvas_sign.json b/src/generated/resources/assets/farmersdelight/items/magenta_canvas_sign.json new file mode 100644 index 000000000..75f1280d3 --- /dev/null +++ b/src/generated/resources/assets/farmersdelight/items/magenta_canvas_sign.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "farmersdelight:item/magenta_canvas_sign" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/farmersdelight/items/magenta_hanging_canvas_sign.json b/src/generated/resources/assets/farmersdelight/items/magenta_hanging_canvas_sign.json new file mode 100644 index 000000000..dd622f60e --- /dev/null +++ b/src/generated/resources/assets/farmersdelight/items/magenta_hanging_canvas_sign.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "farmersdelight:item/magenta_hanging_canvas_sign" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/farmersdelight/items/mangrove_cabinet.json b/src/generated/resources/assets/farmersdelight/items/mangrove_cabinet.json new file mode 100644 index 000000000..3590276ec --- /dev/null +++ b/src/generated/resources/assets/farmersdelight/items/mangrove_cabinet.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "farmersdelight:block/mangrove_cabinet" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/farmersdelight/items/melon_juice.json b/src/generated/resources/assets/farmersdelight/items/melon_juice.json new file mode 100644 index 000000000..7eb70b7e9 --- /dev/null +++ b/src/generated/resources/assets/farmersdelight/items/melon_juice.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "farmersdelight:item/melon_juice" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/farmersdelight/items/melon_popsicle.json b/src/generated/resources/assets/farmersdelight/items/melon_popsicle.json new file mode 100644 index 000000000..34aa5d2d4 --- /dev/null +++ b/src/generated/resources/assets/farmersdelight/items/melon_popsicle.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "farmersdelight:item/melon_popsicle" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/farmersdelight/items/milk_bottle.json b/src/generated/resources/assets/farmersdelight/items/milk_bottle.json new file mode 100644 index 000000000..741ef1c8c --- /dev/null +++ b/src/generated/resources/assets/farmersdelight/items/milk_bottle.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "farmersdelight:item/milk_bottle" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/farmersdelight/items/minced_beef.json b/src/generated/resources/assets/farmersdelight/items/minced_beef.json new file mode 100644 index 000000000..fff7ef0d8 --- /dev/null +++ b/src/generated/resources/assets/farmersdelight/items/minced_beef.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "farmersdelight:item/minced_beef" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/farmersdelight/items/mixed_salad.json b/src/generated/resources/assets/farmersdelight/items/mixed_salad.json new file mode 100644 index 000000000..93e71a8cc --- /dev/null +++ b/src/generated/resources/assets/farmersdelight/items/mixed_salad.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "farmersdelight:item/mixed_salad" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/farmersdelight/items/mushroom_rice.json b/src/generated/resources/assets/farmersdelight/items/mushroom_rice.json new file mode 100644 index 000000000..de5bfbc9d --- /dev/null +++ b/src/generated/resources/assets/farmersdelight/items/mushroom_rice.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "farmersdelight:item/mushroom_rice" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/farmersdelight/items/mutton_chops.json b/src/generated/resources/assets/farmersdelight/items/mutton_chops.json new file mode 100644 index 000000000..e09790af6 --- /dev/null +++ b/src/generated/resources/assets/farmersdelight/items/mutton_chops.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "farmersdelight:item/mutton_chops" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/farmersdelight/items/mutton_wrap.json b/src/generated/resources/assets/farmersdelight/items/mutton_wrap.json new file mode 100644 index 000000000..fa580628f --- /dev/null +++ b/src/generated/resources/assets/farmersdelight/items/mutton_wrap.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "farmersdelight:item/mutton_wrap" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/farmersdelight/items/nether_salad.json b/src/generated/resources/assets/farmersdelight/items/nether_salad.json new file mode 100644 index 000000000..95f5a3a3a --- /dev/null +++ b/src/generated/resources/assets/farmersdelight/items/nether_salad.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "farmersdelight:item/nether_salad" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/farmersdelight/items/netherite_knife.json b/src/generated/resources/assets/farmersdelight/items/netherite_knife.json new file mode 100644 index 000000000..b6b6389e2 --- /dev/null +++ b/src/generated/resources/assets/farmersdelight/items/netherite_knife.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "farmersdelight:item/netherite_knife" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/farmersdelight/items/noodle_soup.json b/src/generated/resources/assets/farmersdelight/items/noodle_soup.json new file mode 100644 index 000000000..2e3e1338e --- /dev/null +++ b/src/generated/resources/assets/farmersdelight/items/noodle_soup.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "farmersdelight:item/noodle_soup" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/farmersdelight/items/oak_cabinet.json b/src/generated/resources/assets/farmersdelight/items/oak_cabinet.json new file mode 100644 index 000000000..b3436b453 --- /dev/null +++ b/src/generated/resources/assets/farmersdelight/items/oak_cabinet.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "farmersdelight:block/oak_cabinet" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/farmersdelight/items/onion.json b/src/generated/resources/assets/farmersdelight/items/onion.json new file mode 100644 index 000000000..c6863fcfa --- /dev/null +++ b/src/generated/resources/assets/farmersdelight/items/onion.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "farmersdelight:item/onion" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/farmersdelight/items/onion_crate.json b/src/generated/resources/assets/farmersdelight/items/onion_crate.json new file mode 100644 index 000000000..1f3bfb7ab --- /dev/null +++ b/src/generated/resources/assets/farmersdelight/items/onion_crate.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "farmersdelight:block/onion_crate" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/farmersdelight/items/onion_soup.json b/src/generated/resources/assets/farmersdelight/items/onion_soup.json new file mode 100644 index 000000000..ae4b7a633 --- /dev/null +++ b/src/generated/resources/assets/farmersdelight/items/onion_soup.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "farmersdelight:item/onion_soup" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/farmersdelight/items/orange_canvas_sign.json b/src/generated/resources/assets/farmersdelight/items/orange_canvas_sign.json new file mode 100644 index 000000000..3013afca9 --- /dev/null +++ b/src/generated/resources/assets/farmersdelight/items/orange_canvas_sign.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "farmersdelight:item/orange_canvas_sign" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/farmersdelight/items/orange_hanging_canvas_sign.json b/src/generated/resources/assets/farmersdelight/items/orange_hanging_canvas_sign.json new file mode 100644 index 000000000..6564cee97 --- /dev/null +++ b/src/generated/resources/assets/farmersdelight/items/orange_hanging_canvas_sign.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "farmersdelight:item/orange_hanging_canvas_sign" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/farmersdelight/items/organic_compost.json b/src/generated/resources/assets/farmersdelight/items/organic_compost.json new file mode 100644 index 000000000..ee607648b --- /dev/null +++ b/src/generated/resources/assets/farmersdelight/items/organic_compost.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "farmersdelight:block/organic_compost_stage0" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/farmersdelight/items/pasta_with_meatballs.json b/src/generated/resources/assets/farmersdelight/items/pasta_with_meatballs.json new file mode 100644 index 000000000..76d0fa141 --- /dev/null +++ b/src/generated/resources/assets/farmersdelight/items/pasta_with_meatballs.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "farmersdelight:item/pasta_with_meatballs" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/farmersdelight/items/pasta_with_mutton_chop.json b/src/generated/resources/assets/farmersdelight/items/pasta_with_mutton_chop.json new file mode 100644 index 000000000..0d32e391f --- /dev/null +++ b/src/generated/resources/assets/farmersdelight/items/pasta_with_mutton_chop.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "farmersdelight:item/pasta_with_mutton_chop" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/farmersdelight/items/pie_crust.json b/src/generated/resources/assets/farmersdelight/items/pie_crust.json new file mode 100644 index 000000000..4d53bf4b7 --- /dev/null +++ b/src/generated/resources/assets/farmersdelight/items/pie_crust.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "farmersdelight:item/pie_crust" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/farmersdelight/items/pink_canvas_sign.json b/src/generated/resources/assets/farmersdelight/items/pink_canvas_sign.json new file mode 100644 index 000000000..5a08278ce --- /dev/null +++ b/src/generated/resources/assets/farmersdelight/items/pink_canvas_sign.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "farmersdelight:item/pink_canvas_sign" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/farmersdelight/items/pink_hanging_canvas_sign.json b/src/generated/resources/assets/farmersdelight/items/pink_hanging_canvas_sign.json new file mode 100644 index 000000000..4f09527b7 --- /dev/null +++ b/src/generated/resources/assets/farmersdelight/items/pink_hanging_canvas_sign.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "farmersdelight:item/pink_hanging_canvas_sign" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/farmersdelight/items/potato_crate.json b/src/generated/resources/assets/farmersdelight/items/potato_crate.json new file mode 100644 index 000000000..f02ed2431 --- /dev/null +++ b/src/generated/resources/assets/farmersdelight/items/potato_crate.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "farmersdelight:block/potato_crate" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/farmersdelight/items/pumpkin_pie_slice.json b/src/generated/resources/assets/farmersdelight/items/pumpkin_pie_slice.json new file mode 100644 index 000000000..d9eee7988 --- /dev/null +++ b/src/generated/resources/assets/farmersdelight/items/pumpkin_pie_slice.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "farmersdelight:item/pumpkin_pie_slice" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/farmersdelight/items/pumpkin_slice.json b/src/generated/resources/assets/farmersdelight/items/pumpkin_slice.json new file mode 100644 index 000000000..24a3b78c0 --- /dev/null +++ b/src/generated/resources/assets/farmersdelight/items/pumpkin_slice.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "farmersdelight:item/pumpkin_slice" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/farmersdelight/items/pumpkin_soup.json b/src/generated/resources/assets/farmersdelight/items/pumpkin_soup.json new file mode 100644 index 000000000..0c8b28a4a --- /dev/null +++ b/src/generated/resources/assets/farmersdelight/items/pumpkin_soup.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "farmersdelight:item/pumpkin_soup" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/farmersdelight/items/purple_canvas_sign.json b/src/generated/resources/assets/farmersdelight/items/purple_canvas_sign.json new file mode 100644 index 000000000..475e02bd6 --- /dev/null +++ b/src/generated/resources/assets/farmersdelight/items/purple_canvas_sign.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "farmersdelight:item/purple_canvas_sign" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/farmersdelight/items/purple_hanging_canvas_sign.json b/src/generated/resources/assets/farmersdelight/items/purple_hanging_canvas_sign.json new file mode 100644 index 000000000..4d6fdfc72 --- /dev/null +++ b/src/generated/resources/assets/farmersdelight/items/purple_hanging_canvas_sign.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "farmersdelight:item/purple_hanging_canvas_sign" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/farmersdelight/items/ratatouille.json b/src/generated/resources/assets/farmersdelight/items/ratatouille.json new file mode 100644 index 000000000..830b70c04 --- /dev/null +++ b/src/generated/resources/assets/farmersdelight/items/ratatouille.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "farmersdelight:item/ratatouille" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/farmersdelight/items/raw_pasta.json b/src/generated/resources/assets/farmersdelight/items/raw_pasta.json new file mode 100644 index 000000000..27b7a6f3e --- /dev/null +++ b/src/generated/resources/assets/farmersdelight/items/raw_pasta.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "farmersdelight:item/raw_pasta" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/farmersdelight/items/red_canvas_sign.json b/src/generated/resources/assets/farmersdelight/items/red_canvas_sign.json new file mode 100644 index 000000000..39db0babb --- /dev/null +++ b/src/generated/resources/assets/farmersdelight/items/red_canvas_sign.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "farmersdelight:item/red_canvas_sign" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/farmersdelight/items/red_hanging_canvas_sign.json b/src/generated/resources/assets/farmersdelight/items/red_hanging_canvas_sign.json new file mode 100644 index 000000000..830da099a --- /dev/null +++ b/src/generated/resources/assets/farmersdelight/items/red_hanging_canvas_sign.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "farmersdelight:item/red_hanging_canvas_sign" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/farmersdelight/items/red_mushroom_colony.json b/src/generated/resources/assets/farmersdelight/items/red_mushroom_colony.json new file mode 100644 index 000000000..640dc86b0 --- /dev/null +++ b/src/generated/resources/assets/farmersdelight/items/red_mushroom_colony.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "farmersdelight:item/red_mushroom_colony" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/farmersdelight/items/rice.json b/src/generated/resources/assets/farmersdelight/items/rice.json new file mode 100644 index 000000000..1e37d616d --- /dev/null +++ b/src/generated/resources/assets/farmersdelight/items/rice.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "farmersdelight:item/rice" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/farmersdelight/items/rice_bag.json b/src/generated/resources/assets/farmersdelight/items/rice_bag.json new file mode 100644 index 000000000..c7267f877 --- /dev/null +++ b/src/generated/resources/assets/farmersdelight/items/rice_bag.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "farmersdelight:block/rice_bag" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/farmersdelight/items/rice_bale.json b/src/generated/resources/assets/farmersdelight/items/rice_bale.json new file mode 100644 index 000000000..193e1bef0 --- /dev/null +++ b/src/generated/resources/assets/farmersdelight/items/rice_bale.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "farmersdelight:block/rice_bale" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/farmersdelight/items/rice_panicle.json b/src/generated/resources/assets/farmersdelight/items/rice_panicle.json new file mode 100644 index 000000000..d7bfae62f --- /dev/null +++ b/src/generated/resources/assets/farmersdelight/items/rice_panicle.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "farmersdelight:item/rice_panicle" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/farmersdelight/items/rice_roll_medley_block.json b/src/generated/resources/assets/farmersdelight/items/rice_roll_medley_block.json new file mode 100644 index 000000000..b92050a86 --- /dev/null +++ b/src/generated/resources/assets/farmersdelight/items/rice_roll_medley_block.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "farmersdelight:item/rice_roll_medley_block" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/farmersdelight/items/rich_soil.json b/src/generated/resources/assets/farmersdelight/items/rich_soil.json new file mode 100644 index 000000000..b8498fae1 --- /dev/null +++ b/src/generated/resources/assets/farmersdelight/items/rich_soil.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "farmersdelight:block/rich_soil" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/farmersdelight/items/rich_soil_farmland.json b/src/generated/resources/assets/farmersdelight/items/rich_soil_farmland.json new file mode 100644 index 000000000..61a80bf60 --- /dev/null +++ b/src/generated/resources/assets/farmersdelight/items/rich_soil_farmland.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "farmersdelight:block/rich_soil_farmland" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/farmersdelight/items/roast_chicken.json b/src/generated/resources/assets/farmersdelight/items/roast_chicken.json new file mode 100644 index 000000000..51ee48b78 --- /dev/null +++ b/src/generated/resources/assets/farmersdelight/items/roast_chicken.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "farmersdelight:item/roast_chicken" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/farmersdelight/items/roast_chicken_block.json b/src/generated/resources/assets/farmersdelight/items/roast_chicken_block.json new file mode 100644 index 000000000..4374f3de6 --- /dev/null +++ b/src/generated/resources/assets/farmersdelight/items/roast_chicken_block.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "farmersdelight:item/roast_chicken_block" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/farmersdelight/items/roasted_mutton_chops.json b/src/generated/resources/assets/farmersdelight/items/roasted_mutton_chops.json new file mode 100644 index 000000000..8e4d48fce --- /dev/null +++ b/src/generated/resources/assets/farmersdelight/items/roasted_mutton_chops.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "farmersdelight:item/roasted_mutton_chops" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/farmersdelight/items/rope.json b/src/generated/resources/assets/farmersdelight/items/rope.json new file mode 100644 index 000000000..e242a5268 --- /dev/null +++ b/src/generated/resources/assets/farmersdelight/items/rope.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "farmersdelight:item/rope" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/farmersdelight/items/rope_fence.json b/src/generated/resources/assets/farmersdelight/items/rope_fence.json new file mode 100644 index 000000000..856c88d92 --- /dev/null +++ b/src/generated/resources/assets/farmersdelight/items/rope_fence.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "farmersdelight:block/rope_fence_inventory" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/farmersdelight/items/rope_fence_gate.json b/src/generated/resources/assets/farmersdelight/items/rope_fence_gate.json new file mode 100644 index 000000000..62406f496 --- /dev/null +++ b/src/generated/resources/assets/farmersdelight/items/rope_fence_gate.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "farmersdelight:block/rope_fence_gate" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/farmersdelight/items/rotten_tomato.json b/src/generated/resources/assets/farmersdelight/items/rotten_tomato.json new file mode 100644 index 000000000..1d48258f9 --- /dev/null +++ b/src/generated/resources/assets/farmersdelight/items/rotten_tomato.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "farmersdelight:item/rotten_tomato" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/farmersdelight/items/safety_net.json b/src/generated/resources/assets/farmersdelight/items/safety_net.json new file mode 100644 index 000000000..5454e8aca --- /dev/null +++ b/src/generated/resources/assets/farmersdelight/items/safety_net.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "farmersdelight:item/safety_net" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/farmersdelight/items/salmon_roll.json b/src/generated/resources/assets/farmersdelight/items/salmon_roll.json new file mode 100644 index 000000000..9e285e970 --- /dev/null +++ b/src/generated/resources/assets/farmersdelight/items/salmon_roll.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "farmersdelight:item/salmon_roll" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/farmersdelight/items/salmon_slice.json b/src/generated/resources/assets/farmersdelight/items/salmon_slice.json new file mode 100644 index 000000000..32ef53cad --- /dev/null +++ b/src/generated/resources/assets/farmersdelight/items/salmon_slice.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "farmersdelight:item/salmon_slice" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/farmersdelight/items/sandy_shrub.json b/src/generated/resources/assets/farmersdelight/items/sandy_shrub.json new file mode 100644 index 000000000..8bbe437a8 --- /dev/null +++ b/src/generated/resources/assets/farmersdelight/items/sandy_shrub.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "farmersdelight:item/sandy_shrub" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/farmersdelight/items/shepherds_pie.json b/src/generated/resources/assets/farmersdelight/items/shepherds_pie.json new file mode 100644 index 000000000..f9964a597 --- /dev/null +++ b/src/generated/resources/assets/farmersdelight/items/shepherds_pie.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "farmersdelight:item/shepherds_pie" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/farmersdelight/items/shepherds_pie_block.json b/src/generated/resources/assets/farmersdelight/items/shepherds_pie_block.json new file mode 100644 index 000000000..2009cf5b0 --- /dev/null +++ b/src/generated/resources/assets/farmersdelight/items/shepherds_pie_block.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "farmersdelight:item/shepherds_pie_block" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/farmersdelight/items/smoked_ham.json b/src/generated/resources/assets/farmersdelight/items/smoked_ham.json new file mode 100644 index 000000000..8652de2b0 --- /dev/null +++ b/src/generated/resources/assets/farmersdelight/items/smoked_ham.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "farmersdelight:item/smoked_ham" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/farmersdelight/items/spruce_cabinet.json b/src/generated/resources/assets/farmersdelight/items/spruce_cabinet.json new file mode 100644 index 000000000..4f4f8480b --- /dev/null +++ b/src/generated/resources/assets/farmersdelight/items/spruce_cabinet.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "farmersdelight:block/spruce_cabinet" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/farmersdelight/items/squid_ink_pasta.json b/src/generated/resources/assets/farmersdelight/items/squid_ink_pasta.json new file mode 100644 index 000000000..95d119c1f --- /dev/null +++ b/src/generated/resources/assets/farmersdelight/items/squid_ink_pasta.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "farmersdelight:item/squid_ink_pasta" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/farmersdelight/items/steak_and_potatoes.json b/src/generated/resources/assets/farmersdelight/items/steak_and_potatoes.json new file mode 100644 index 000000000..31f127688 --- /dev/null +++ b/src/generated/resources/assets/farmersdelight/items/steak_and_potatoes.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "farmersdelight:item/steak_and_potatoes" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/farmersdelight/items/stove.json b/src/generated/resources/assets/farmersdelight/items/stove.json new file mode 100644 index 000000000..104cb1ff3 --- /dev/null +++ b/src/generated/resources/assets/farmersdelight/items/stove.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "farmersdelight:block/stove" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/farmersdelight/items/straw.json b/src/generated/resources/assets/farmersdelight/items/straw.json new file mode 100644 index 000000000..ce16de3de --- /dev/null +++ b/src/generated/resources/assets/farmersdelight/items/straw.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "farmersdelight:item/straw" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/farmersdelight/items/straw_bale.json b/src/generated/resources/assets/farmersdelight/items/straw_bale.json new file mode 100644 index 000000000..0090e3ad0 --- /dev/null +++ b/src/generated/resources/assets/farmersdelight/items/straw_bale.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "farmersdelight:block/straw_bale" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/farmersdelight/items/stuffed_potato.json b/src/generated/resources/assets/farmersdelight/items/stuffed_potato.json new file mode 100644 index 000000000..e1ecf637f --- /dev/null +++ b/src/generated/resources/assets/farmersdelight/items/stuffed_potato.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "farmersdelight:item/stuffed_potato" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/farmersdelight/items/stuffed_pumpkin.json b/src/generated/resources/assets/farmersdelight/items/stuffed_pumpkin.json new file mode 100644 index 000000000..045e99ec8 --- /dev/null +++ b/src/generated/resources/assets/farmersdelight/items/stuffed_pumpkin.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "farmersdelight:item/stuffed_pumpkin" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/farmersdelight/items/stuffed_pumpkin_block.json b/src/generated/resources/assets/farmersdelight/items/stuffed_pumpkin_block.json new file mode 100644 index 000000000..5274a3e62 --- /dev/null +++ b/src/generated/resources/assets/farmersdelight/items/stuffed_pumpkin_block.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "farmersdelight:item/stuffed_pumpkin_block" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/farmersdelight/items/sweet_berry_cheesecake.json b/src/generated/resources/assets/farmersdelight/items/sweet_berry_cheesecake.json new file mode 100644 index 000000000..292a89688 --- /dev/null +++ b/src/generated/resources/assets/farmersdelight/items/sweet_berry_cheesecake.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "farmersdelight:item/sweet_berry_cheesecake" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/farmersdelight/items/sweet_berry_cheesecake_slice.json b/src/generated/resources/assets/farmersdelight/items/sweet_berry_cheesecake_slice.json new file mode 100644 index 000000000..3a2aafeab --- /dev/null +++ b/src/generated/resources/assets/farmersdelight/items/sweet_berry_cheesecake_slice.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "farmersdelight:item/sweet_berry_cheesecake_slice" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/farmersdelight/items/sweet_berry_cookie.json b/src/generated/resources/assets/farmersdelight/items/sweet_berry_cookie.json new file mode 100644 index 000000000..cb84bd29c --- /dev/null +++ b/src/generated/resources/assets/farmersdelight/items/sweet_berry_cookie.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "farmersdelight:item/sweet_berry_cookie" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/farmersdelight/items/tatami.json b/src/generated/resources/assets/farmersdelight/items/tatami.json new file mode 100644 index 000000000..5df48e360 --- /dev/null +++ b/src/generated/resources/assets/farmersdelight/items/tatami.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "farmersdelight:block/tatami_half" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/farmersdelight/items/tomato.json b/src/generated/resources/assets/farmersdelight/items/tomato.json new file mode 100644 index 000000000..21c99ef4a --- /dev/null +++ b/src/generated/resources/assets/farmersdelight/items/tomato.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "farmersdelight:item/tomato" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/farmersdelight/items/tomato_crate.json b/src/generated/resources/assets/farmersdelight/items/tomato_crate.json new file mode 100644 index 000000000..6d16cc1fa --- /dev/null +++ b/src/generated/resources/assets/farmersdelight/items/tomato_crate.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "farmersdelight:block/tomato_crate" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/farmersdelight/items/tomato_sauce.json b/src/generated/resources/assets/farmersdelight/items/tomato_sauce.json new file mode 100644 index 000000000..0034c1fc9 --- /dev/null +++ b/src/generated/resources/assets/farmersdelight/items/tomato_sauce.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "farmersdelight:item/tomato_sauce" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/farmersdelight/items/tomato_seeds.json b/src/generated/resources/assets/farmersdelight/items/tomato_seeds.json new file mode 100644 index 000000000..8feebe06d --- /dev/null +++ b/src/generated/resources/assets/farmersdelight/items/tomato_seeds.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "farmersdelight:item/tomato_seeds" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/farmersdelight/items/tree_bark.json b/src/generated/resources/assets/farmersdelight/items/tree_bark.json new file mode 100644 index 000000000..a404b7fda --- /dev/null +++ b/src/generated/resources/assets/farmersdelight/items/tree_bark.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "farmersdelight:item/tree_bark" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/farmersdelight/items/vegetable_noodles.json b/src/generated/resources/assets/farmersdelight/items/vegetable_noodles.json new file mode 100644 index 000000000..fc83dcb94 --- /dev/null +++ b/src/generated/resources/assets/farmersdelight/items/vegetable_noodles.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "farmersdelight:item/vegetable_noodles" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/farmersdelight/items/vegetable_soup.json b/src/generated/resources/assets/farmersdelight/items/vegetable_soup.json new file mode 100644 index 000000000..447f5dbaf --- /dev/null +++ b/src/generated/resources/assets/farmersdelight/items/vegetable_soup.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "farmersdelight:item/vegetable_soup" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/farmersdelight/items/warped_cabinet.json b/src/generated/resources/assets/farmersdelight/items/warped_cabinet.json new file mode 100644 index 000000000..9549c95aa --- /dev/null +++ b/src/generated/resources/assets/farmersdelight/items/warped_cabinet.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "farmersdelight:block/warped_cabinet" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/farmersdelight/items/wheat_dough.json b/src/generated/resources/assets/farmersdelight/items/wheat_dough.json new file mode 100644 index 000000000..0a8e377df --- /dev/null +++ b/src/generated/resources/assets/farmersdelight/items/wheat_dough.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "farmersdelight:item/wheat_dough" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/farmersdelight/items/white_canvas_sign.json b/src/generated/resources/assets/farmersdelight/items/white_canvas_sign.json new file mode 100644 index 000000000..9e39eced1 --- /dev/null +++ b/src/generated/resources/assets/farmersdelight/items/white_canvas_sign.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "farmersdelight:item/white_canvas_sign" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/farmersdelight/items/white_hanging_canvas_sign.json b/src/generated/resources/assets/farmersdelight/items/white_hanging_canvas_sign.json new file mode 100644 index 000000000..87a98f149 --- /dev/null +++ b/src/generated/resources/assets/farmersdelight/items/white_hanging_canvas_sign.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "farmersdelight:item/white_hanging_canvas_sign" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/farmersdelight/items/wild_beetroots.json b/src/generated/resources/assets/farmersdelight/items/wild_beetroots.json new file mode 100644 index 000000000..30bb103f4 --- /dev/null +++ b/src/generated/resources/assets/farmersdelight/items/wild_beetroots.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "farmersdelight:item/wild_beetroots" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/farmersdelight/items/wild_cabbages.json b/src/generated/resources/assets/farmersdelight/items/wild_cabbages.json new file mode 100644 index 000000000..13a5bc4db --- /dev/null +++ b/src/generated/resources/assets/farmersdelight/items/wild_cabbages.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "farmersdelight:item/wild_cabbages" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/farmersdelight/items/wild_carrots.json b/src/generated/resources/assets/farmersdelight/items/wild_carrots.json new file mode 100644 index 000000000..4d6d87c83 --- /dev/null +++ b/src/generated/resources/assets/farmersdelight/items/wild_carrots.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "farmersdelight:item/wild_carrots" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/farmersdelight/items/wild_onions.json b/src/generated/resources/assets/farmersdelight/items/wild_onions.json new file mode 100644 index 000000000..fde530672 --- /dev/null +++ b/src/generated/resources/assets/farmersdelight/items/wild_onions.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "farmersdelight:item/wild_onions" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/farmersdelight/items/wild_potatoes.json b/src/generated/resources/assets/farmersdelight/items/wild_potatoes.json new file mode 100644 index 000000000..604c84cd8 --- /dev/null +++ b/src/generated/resources/assets/farmersdelight/items/wild_potatoes.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "farmersdelight:item/wild_potatoes" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/farmersdelight/items/wild_rice.json b/src/generated/resources/assets/farmersdelight/items/wild_rice.json new file mode 100644 index 000000000..21628af52 --- /dev/null +++ b/src/generated/resources/assets/farmersdelight/items/wild_rice.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "farmersdelight:item/wild_rice" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/farmersdelight/items/wild_tomatoes.json b/src/generated/resources/assets/farmersdelight/items/wild_tomatoes.json new file mode 100644 index 000000000..80a7972c0 --- /dev/null +++ b/src/generated/resources/assets/farmersdelight/items/wild_tomatoes.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "farmersdelight:item/wild_tomatoes" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/farmersdelight/items/wooden_basket.json b/src/generated/resources/assets/farmersdelight/items/wooden_basket.json new file mode 100644 index 000000000..955ddf29e --- /dev/null +++ b/src/generated/resources/assets/farmersdelight/items/wooden_basket.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "farmersdelight:block/wooden_basket" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/farmersdelight/items/yellow_canvas_sign.json b/src/generated/resources/assets/farmersdelight/items/yellow_canvas_sign.json new file mode 100644 index 000000000..c2d10bda4 --- /dev/null +++ b/src/generated/resources/assets/farmersdelight/items/yellow_canvas_sign.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "farmersdelight:item/yellow_canvas_sign" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/farmersdelight/items/yellow_hanging_canvas_sign.json b/src/generated/resources/assets/farmersdelight/items/yellow_hanging_canvas_sign.json new file mode 100644 index 000000000..75b16fb2f --- /dev/null +++ b/src/generated/resources/assets/farmersdelight/items/yellow_hanging_canvas_sign.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "farmersdelight:item/yellow_hanging_canvas_sign" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/farmersdelight/models/block/black_canvas_sign_rot_0.json b/src/generated/resources/assets/farmersdelight/models/block/black_canvas_sign_rot_0.json new file mode 100644 index 000000000..b8164eb73 --- /dev/null +++ b/src/generated/resources/assets/farmersdelight/models/block/black_canvas_sign_rot_0.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/template_sign_rot_0", + "textures": { + "all": "farmersdelight:block/black_canvas_sign", + "particle": "minecraft:block/spruce_planks" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/farmersdelight/models/block/black_canvas_sign_rot_1.json b/src/generated/resources/assets/farmersdelight/models/block/black_canvas_sign_rot_1.json new file mode 100644 index 000000000..276a6a1cf --- /dev/null +++ b/src/generated/resources/assets/farmersdelight/models/block/black_canvas_sign_rot_1.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/template_sign_rot_1", + "textures": { + "all": "farmersdelight:block/black_canvas_sign", + "particle": "minecraft:block/spruce_planks" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/farmersdelight/models/block/black_canvas_sign_rot_2.json b/src/generated/resources/assets/farmersdelight/models/block/black_canvas_sign_rot_2.json new file mode 100644 index 000000000..05f6e92c3 --- /dev/null +++ b/src/generated/resources/assets/farmersdelight/models/block/black_canvas_sign_rot_2.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/template_sign_rot_2", + "textures": { + "all": "farmersdelight:block/black_canvas_sign", + "particle": "minecraft:block/spruce_planks" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/farmersdelight/models/block/black_canvas_sign_rot_3.json b/src/generated/resources/assets/farmersdelight/models/block/black_canvas_sign_rot_3.json new file mode 100644 index 000000000..d9bed0270 --- /dev/null +++ b/src/generated/resources/assets/farmersdelight/models/block/black_canvas_sign_rot_3.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/template_sign_rot_3", + "textures": { + "all": "farmersdelight:block/black_canvas_sign", + "particle": "minecraft:block/spruce_planks" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/farmersdelight/models/block/black_canvas_wall_sign.json b/src/generated/resources/assets/farmersdelight/models/block/black_canvas_wall_sign.json new file mode 100644 index 000000000..dd855de56 --- /dev/null +++ b/src/generated/resources/assets/farmersdelight/models/block/black_canvas_wall_sign.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/template_wall_sign", + "textures": { + "all": "farmersdelight:block/black_canvas_sign", + "particle": "minecraft:block/spruce_planks" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/farmersdelight/models/block/black_hanging_canvas_sign_attached_rot_0.json b/src/generated/resources/assets/farmersdelight/models/block/black_hanging_canvas_sign_attached_rot_0.json new file mode 100644 index 000000000..b1d4eeae7 --- /dev/null +++ b/src/generated/resources/assets/farmersdelight/models/block/black_hanging_canvas_sign_attached_rot_0.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/template_attached_hanging_sign_rot_0", + "textures": { + "all": "farmersdelight:block/black_hanging_canvas_sign", + "particle": "minecraft:block/stripped_spruce_log" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/farmersdelight/models/block/black_hanging_canvas_sign_attached_rot_1.json b/src/generated/resources/assets/farmersdelight/models/block/black_hanging_canvas_sign_attached_rot_1.json new file mode 100644 index 000000000..569141a6c --- /dev/null +++ b/src/generated/resources/assets/farmersdelight/models/block/black_hanging_canvas_sign_attached_rot_1.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/template_attached_hanging_sign_rot_1", + "textures": { + "all": "farmersdelight:block/black_hanging_canvas_sign", + "particle": "minecraft:block/stripped_spruce_log" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/farmersdelight/models/block/black_hanging_canvas_sign_attached_rot_2.json b/src/generated/resources/assets/farmersdelight/models/block/black_hanging_canvas_sign_attached_rot_2.json new file mode 100644 index 000000000..0c74babed --- /dev/null +++ b/src/generated/resources/assets/farmersdelight/models/block/black_hanging_canvas_sign_attached_rot_2.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/template_attached_hanging_sign_rot_2", + "textures": { + "all": "farmersdelight:block/black_hanging_canvas_sign", + "particle": "minecraft:block/stripped_spruce_log" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/farmersdelight/models/block/black_hanging_canvas_sign_attached_rot_3.json b/src/generated/resources/assets/farmersdelight/models/block/black_hanging_canvas_sign_attached_rot_3.json new file mode 100644 index 000000000..970d3db78 --- /dev/null +++ b/src/generated/resources/assets/farmersdelight/models/block/black_hanging_canvas_sign_attached_rot_3.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/template_attached_hanging_sign_rot_3", + "textures": { + "all": "farmersdelight:block/black_hanging_canvas_sign", + "particle": "minecraft:block/stripped_spruce_log" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/farmersdelight/models/block/black_hanging_canvas_sign_rot_0.json b/src/generated/resources/assets/farmersdelight/models/block/black_hanging_canvas_sign_rot_0.json new file mode 100644 index 000000000..996b8e383 --- /dev/null +++ b/src/generated/resources/assets/farmersdelight/models/block/black_hanging_canvas_sign_rot_0.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/template_hanging_sign_rot_0", + "textures": { + "all": "farmersdelight:block/black_hanging_canvas_sign", + "particle": "minecraft:block/stripped_spruce_log" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/farmersdelight/models/block/black_hanging_canvas_sign_rot_1.json b/src/generated/resources/assets/farmersdelight/models/block/black_hanging_canvas_sign_rot_1.json new file mode 100644 index 000000000..5d1d29e56 --- /dev/null +++ b/src/generated/resources/assets/farmersdelight/models/block/black_hanging_canvas_sign_rot_1.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/template_hanging_sign_rot_1", + "textures": { + "all": "farmersdelight:block/black_hanging_canvas_sign", + "particle": "minecraft:block/stripped_spruce_log" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/farmersdelight/models/block/black_hanging_canvas_sign_rot_2.json b/src/generated/resources/assets/farmersdelight/models/block/black_hanging_canvas_sign_rot_2.json new file mode 100644 index 000000000..9f1a85439 --- /dev/null +++ b/src/generated/resources/assets/farmersdelight/models/block/black_hanging_canvas_sign_rot_2.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/template_hanging_sign_rot_2", + "textures": { + "all": "farmersdelight:block/black_hanging_canvas_sign", + "particle": "minecraft:block/stripped_spruce_log" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/farmersdelight/models/block/black_hanging_canvas_sign_rot_3.json b/src/generated/resources/assets/farmersdelight/models/block/black_hanging_canvas_sign_rot_3.json new file mode 100644 index 000000000..b0ca5670d --- /dev/null +++ b/src/generated/resources/assets/farmersdelight/models/block/black_hanging_canvas_sign_rot_3.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/template_hanging_sign_rot_3", + "textures": { + "all": "farmersdelight:block/black_hanging_canvas_sign", + "particle": "minecraft:block/stripped_spruce_log" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/farmersdelight/models/block/black_wall_hanging_canvas_sign.json b/src/generated/resources/assets/farmersdelight/models/block/black_wall_hanging_canvas_sign.json new file mode 100644 index 000000000..a2ad2f60a --- /dev/null +++ b/src/generated/resources/assets/farmersdelight/models/block/black_wall_hanging_canvas_sign.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/template_wall_hanging_sign", + "textures": { + "all": "farmersdelight:block/black_hanging_canvas_sign", + "particle": "minecraft:block/stripped_spruce_log" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/farmersdelight/models/block/blue_canvas_sign_rot_0.json b/src/generated/resources/assets/farmersdelight/models/block/blue_canvas_sign_rot_0.json new file mode 100644 index 000000000..5a1b4341b --- /dev/null +++ b/src/generated/resources/assets/farmersdelight/models/block/blue_canvas_sign_rot_0.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/template_sign_rot_0", + "textures": { + "all": "farmersdelight:block/blue_canvas_sign", + "particle": "minecraft:block/spruce_planks" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/farmersdelight/models/block/blue_canvas_sign_rot_1.json b/src/generated/resources/assets/farmersdelight/models/block/blue_canvas_sign_rot_1.json new file mode 100644 index 000000000..e2bb75b8d --- /dev/null +++ b/src/generated/resources/assets/farmersdelight/models/block/blue_canvas_sign_rot_1.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/template_sign_rot_1", + "textures": { + "all": "farmersdelight:block/blue_canvas_sign", + "particle": "minecraft:block/spruce_planks" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/farmersdelight/models/block/blue_canvas_sign_rot_2.json b/src/generated/resources/assets/farmersdelight/models/block/blue_canvas_sign_rot_2.json new file mode 100644 index 000000000..c6f84f5c6 --- /dev/null +++ b/src/generated/resources/assets/farmersdelight/models/block/blue_canvas_sign_rot_2.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/template_sign_rot_2", + "textures": { + "all": "farmersdelight:block/blue_canvas_sign", + "particle": "minecraft:block/spruce_planks" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/farmersdelight/models/block/blue_canvas_sign_rot_3.json b/src/generated/resources/assets/farmersdelight/models/block/blue_canvas_sign_rot_3.json new file mode 100644 index 000000000..4b442f9e7 --- /dev/null +++ b/src/generated/resources/assets/farmersdelight/models/block/blue_canvas_sign_rot_3.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/template_sign_rot_3", + "textures": { + "all": "farmersdelight:block/blue_canvas_sign", + "particle": "minecraft:block/spruce_planks" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/farmersdelight/models/block/blue_canvas_wall_sign.json b/src/generated/resources/assets/farmersdelight/models/block/blue_canvas_wall_sign.json new file mode 100644 index 000000000..aa9987e1f --- /dev/null +++ b/src/generated/resources/assets/farmersdelight/models/block/blue_canvas_wall_sign.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/template_wall_sign", + "textures": { + "all": "farmersdelight:block/blue_canvas_sign", + "particle": "minecraft:block/spruce_planks" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/farmersdelight/models/block/blue_hanging_canvas_sign_attached_rot_0.json b/src/generated/resources/assets/farmersdelight/models/block/blue_hanging_canvas_sign_attached_rot_0.json new file mode 100644 index 000000000..916a68f90 --- /dev/null +++ b/src/generated/resources/assets/farmersdelight/models/block/blue_hanging_canvas_sign_attached_rot_0.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/template_attached_hanging_sign_rot_0", + "textures": { + "all": "farmersdelight:block/blue_hanging_canvas_sign", + "particle": "minecraft:block/stripped_spruce_log" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/farmersdelight/models/block/blue_hanging_canvas_sign_attached_rot_1.json b/src/generated/resources/assets/farmersdelight/models/block/blue_hanging_canvas_sign_attached_rot_1.json new file mode 100644 index 000000000..3d2f46341 --- /dev/null +++ b/src/generated/resources/assets/farmersdelight/models/block/blue_hanging_canvas_sign_attached_rot_1.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/template_attached_hanging_sign_rot_1", + "textures": { + "all": "farmersdelight:block/blue_hanging_canvas_sign", + "particle": "minecraft:block/stripped_spruce_log" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/farmersdelight/models/block/blue_hanging_canvas_sign_attached_rot_2.json b/src/generated/resources/assets/farmersdelight/models/block/blue_hanging_canvas_sign_attached_rot_2.json new file mode 100644 index 000000000..d46829b51 --- /dev/null +++ b/src/generated/resources/assets/farmersdelight/models/block/blue_hanging_canvas_sign_attached_rot_2.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/template_attached_hanging_sign_rot_2", + "textures": { + "all": "farmersdelight:block/blue_hanging_canvas_sign", + "particle": "minecraft:block/stripped_spruce_log" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/farmersdelight/models/block/blue_hanging_canvas_sign_attached_rot_3.json b/src/generated/resources/assets/farmersdelight/models/block/blue_hanging_canvas_sign_attached_rot_3.json new file mode 100644 index 000000000..a58421b00 --- /dev/null +++ b/src/generated/resources/assets/farmersdelight/models/block/blue_hanging_canvas_sign_attached_rot_3.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/template_attached_hanging_sign_rot_3", + "textures": { + "all": "farmersdelight:block/blue_hanging_canvas_sign", + "particle": "minecraft:block/stripped_spruce_log" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/farmersdelight/models/block/blue_hanging_canvas_sign_rot_0.json b/src/generated/resources/assets/farmersdelight/models/block/blue_hanging_canvas_sign_rot_0.json new file mode 100644 index 000000000..3e5dceb43 --- /dev/null +++ b/src/generated/resources/assets/farmersdelight/models/block/blue_hanging_canvas_sign_rot_0.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/template_hanging_sign_rot_0", + "textures": { + "all": "farmersdelight:block/blue_hanging_canvas_sign", + "particle": "minecraft:block/stripped_spruce_log" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/farmersdelight/models/block/blue_hanging_canvas_sign_rot_1.json b/src/generated/resources/assets/farmersdelight/models/block/blue_hanging_canvas_sign_rot_1.json new file mode 100644 index 000000000..04b5e52e7 --- /dev/null +++ b/src/generated/resources/assets/farmersdelight/models/block/blue_hanging_canvas_sign_rot_1.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/template_hanging_sign_rot_1", + "textures": { + "all": "farmersdelight:block/blue_hanging_canvas_sign", + "particle": "minecraft:block/stripped_spruce_log" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/farmersdelight/models/block/blue_hanging_canvas_sign_rot_2.json b/src/generated/resources/assets/farmersdelight/models/block/blue_hanging_canvas_sign_rot_2.json new file mode 100644 index 000000000..8ea198ba6 --- /dev/null +++ b/src/generated/resources/assets/farmersdelight/models/block/blue_hanging_canvas_sign_rot_2.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/template_hanging_sign_rot_2", + "textures": { + "all": "farmersdelight:block/blue_hanging_canvas_sign", + "particle": "minecraft:block/stripped_spruce_log" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/farmersdelight/models/block/blue_hanging_canvas_sign_rot_3.json b/src/generated/resources/assets/farmersdelight/models/block/blue_hanging_canvas_sign_rot_3.json new file mode 100644 index 000000000..6de0b4f69 --- /dev/null +++ b/src/generated/resources/assets/farmersdelight/models/block/blue_hanging_canvas_sign_rot_3.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/template_hanging_sign_rot_3", + "textures": { + "all": "farmersdelight:block/blue_hanging_canvas_sign", + "particle": "minecraft:block/stripped_spruce_log" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/farmersdelight/models/block/blue_wall_hanging_canvas_sign.json b/src/generated/resources/assets/farmersdelight/models/block/blue_wall_hanging_canvas_sign.json new file mode 100644 index 000000000..51e9f5b0a --- /dev/null +++ b/src/generated/resources/assets/farmersdelight/models/block/blue_wall_hanging_canvas_sign.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/template_wall_hanging_sign", + "textures": { + "all": "farmersdelight:block/blue_hanging_canvas_sign", + "particle": "minecraft:block/stripped_spruce_log" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/farmersdelight/models/block/brown_canvas_sign_rot_0.json b/src/generated/resources/assets/farmersdelight/models/block/brown_canvas_sign_rot_0.json new file mode 100644 index 000000000..b63675a5e --- /dev/null +++ b/src/generated/resources/assets/farmersdelight/models/block/brown_canvas_sign_rot_0.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/template_sign_rot_0", + "textures": { + "all": "farmersdelight:block/brown_canvas_sign", + "particle": "minecraft:block/spruce_planks" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/farmersdelight/models/block/brown_canvas_sign_rot_1.json b/src/generated/resources/assets/farmersdelight/models/block/brown_canvas_sign_rot_1.json new file mode 100644 index 000000000..78db469d0 --- /dev/null +++ b/src/generated/resources/assets/farmersdelight/models/block/brown_canvas_sign_rot_1.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/template_sign_rot_1", + "textures": { + "all": "farmersdelight:block/brown_canvas_sign", + "particle": "minecraft:block/spruce_planks" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/farmersdelight/models/block/brown_canvas_sign_rot_2.json b/src/generated/resources/assets/farmersdelight/models/block/brown_canvas_sign_rot_2.json new file mode 100644 index 000000000..07bde46b7 --- /dev/null +++ b/src/generated/resources/assets/farmersdelight/models/block/brown_canvas_sign_rot_2.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/template_sign_rot_2", + "textures": { + "all": "farmersdelight:block/brown_canvas_sign", + "particle": "minecraft:block/spruce_planks" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/farmersdelight/models/block/brown_canvas_sign_rot_3.json b/src/generated/resources/assets/farmersdelight/models/block/brown_canvas_sign_rot_3.json new file mode 100644 index 000000000..0d417995c --- /dev/null +++ b/src/generated/resources/assets/farmersdelight/models/block/brown_canvas_sign_rot_3.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/template_sign_rot_3", + "textures": { + "all": "farmersdelight:block/brown_canvas_sign", + "particle": "minecraft:block/spruce_planks" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/farmersdelight/models/block/brown_canvas_wall_sign.json b/src/generated/resources/assets/farmersdelight/models/block/brown_canvas_wall_sign.json new file mode 100644 index 000000000..521f66cfb --- /dev/null +++ b/src/generated/resources/assets/farmersdelight/models/block/brown_canvas_wall_sign.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/template_wall_sign", + "textures": { + "all": "farmersdelight:block/brown_canvas_sign", + "particle": "minecraft:block/spruce_planks" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/farmersdelight/models/block/brown_hanging_canvas_sign_attached_rot_0.json b/src/generated/resources/assets/farmersdelight/models/block/brown_hanging_canvas_sign_attached_rot_0.json new file mode 100644 index 000000000..1c66ec287 --- /dev/null +++ b/src/generated/resources/assets/farmersdelight/models/block/brown_hanging_canvas_sign_attached_rot_0.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/template_attached_hanging_sign_rot_0", + "textures": { + "all": "farmersdelight:block/brown_hanging_canvas_sign", + "particle": "minecraft:block/stripped_spruce_log" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/farmersdelight/models/block/brown_hanging_canvas_sign_attached_rot_1.json b/src/generated/resources/assets/farmersdelight/models/block/brown_hanging_canvas_sign_attached_rot_1.json new file mode 100644 index 000000000..832cadb4d --- /dev/null +++ b/src/generated/resources/assets/farmersdelight/models/block/brown_hanging_canvas_sign_attached_rot_1.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/template_attached_hanging_sign_rot_1", + "textures": { + "all": "farmersdelight:block/brown_hanging_canvas_sign", + "particle": "minecraft:block/stripped_spruce_log" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/farmersdelight/models/block/brown_hanging_canvas_sign_attached_rot_2.json b/src/generated/resources/assets/farmersdelight/models/block/brown_hanging_canvas_sign_attached_rot_2.json new file mode 100644 index 000000000..30944b9cc --- /dev/null +++ b/src/generated/resources/assets/farmersdelight/models/block/brown_hanging_canvas_sign_attached_rot_2.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/template_attached_hanging_sign_rot_2", + "textures": { + "all": "farmersdelight:block/brown_hanging_canvas_sign", + "particle": "minecraft:block/stripped_spruce_log" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/farmersdelight/models/block/brown_hanging_canvas_sign_attached_rot_3.json b/src/generated/resources/assets/farmersdelight/models/block/brown_hanging_canvas_sign_attached_rot_3.json new file mode 100644 index 000000000..e9afb3cb9 --- /dev/null +++ b/src/generated/resources/assets/farmersdelight/models/block/brown_hanging_canvas_sign_attached_rot_3.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/template_attached_hanging_sign_rot_3", + "textures": { + "all": "farmersdelight:block/brown_hanging_canvas_sign", + "particle": "minecraft:block/stripped_spruce_log" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/farmersdelight/models/block/brown_hanging_canvas_sign_rot_0.json b/src/generated/resources/assets/farmersdelight/models/block/brown_hanging_canvas_sign_rot_0.json new file mode 100644 index 000000000..cd4729618 --- /dev/null +++ b/src/generated/resources/assets/farmersdelight/models/block/brown_hanging_canvas_sign_rot_0.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/template_hanging_sign_rot_0", + "textures": { + "all": "farmersdelight:block/brown_hanging_canvas_sign", + "particle": "minecraft:block/stripped_spruce_log" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/farmersdelight/models/block/brown_hanging_canvas_sign_rot_1.json b/src/generated/resources/assets/farmersdelight/models/block/brown_hanging_canvas_sign_rot_1.json new file mode 100644 index 000000000..f2089235d --- /dev/null +++ b/src/generated/resources/assets/farmersdelight/models/block/brown_hanging_canvas_sign_rot_1.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/template_hanging_sign_rot_1", + "textures": { + "all": "farmersdelight:block/brown_hanging_canvas_sign", + "particle": "minecraft:block/stripped_spruce_log" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/farmersdelight/models/block/brown_hanging_canvas_sign_rot_2.json b/src/generated/resources/assets/farmersdelight/models/block/brown_hanging_canvas_sign_rot_2.json new file mode 100644 index 000000000..a29a71afb --- /dev/null +++ b/src/generated/resources/assets/farmersdelight/models/block/brown_hanging_canvas_sign_rot_2.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/template_hanging_sign_rot_2", + "textures": { + "all": "farmersdelight:block/brown_hanging_canvas_sign", + "particle": "minecraft:block/stripped_spruce_log" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/farmersdelight/models/block/brown_hanging_canvas_sign_rot_3.json b/src/generated/resources/assets/farmersdelight/models/block/brown_hanging_canvas_sign_rot_3.json new file mode 100644 index 000000000..62f344981 --- /dev/null +++ b/src/generated/resources/assets/farmersdelight/models/block/brown_hanging_canvas_sign_rot_3.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/template_hanging_sign_rot_3", + "textures": { + "all": "farmersdelight:block/brown_hanging_canvas_sign", + "particle": "minecraft:block/stripped_spruce_log" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/farmersdelight/models/block/brown_wall_hanging_canvas_sign.json b/src/generated/resources/assets/farmersdelight/models/block/brown_wall_hanging_canvas_sign.json new file mode 100644 index 000000000..04277327a --- /dev/null +++ b/src/generated/resources/assets/farmersdelight/models/block/brown_wall_hanging_canvas_sign.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/template_wall_hanging_sign", + "textures": { + "all": "farmersdelight:block/brown_hanging_canvas_sign", + "particle": "minecraft:block/stripped_spruce_log" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/farmersdelight/models/block/canvas_sign_rot_0.json b/src/generated/resources/assets/farmersdelight/models/block/canvas_sign_rot_0.json new file mode 100644 index 000000000..ecc8e323e --- /dev/null +++ b/src/generated/resources/assets/farmersdelight/models/block/canvas_sign_rot_0.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/template_sign_rot_0", + "textures": { + "all": "farmersdelight:block/canvas_sign", + "particle": "minecraft:block/spruce_planks" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/farmersdelight/models/block/canvas_sign_rot_1.json b/src/generated/resources/assets/farmersdelight/models/block/canvas_sign_rot_1.json new file mode 100644 index 000000000..08c61330c --- /dev/null +++ b/src/generated/resources/assets/farmersdelight/models/block/canvas_sign_rot_1.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/template_sign_rot_1", + "textures": { + "all": "farmersdelight:block/canvas_sign", + "particle": "minecraft:block/spruce_planks" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/farmersdelight/models/block/canvas_sign_rot_2.json b/src/generated/resources/assets/farmersdelight/models/block/canvas_sign_rot_2.json new file mode 100644 index 000000000..214311224 --- /dev/null +++ b/src/generated/resources/assets/farmersdelight/models/block/canvas_sign_rot_2.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/template_sign_rot_2", + "textures": { + "all": "farmersdelight:block/canvas_sign", + "particle": "minecraft:block/spruce_planks" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/farmersdelight/models/block/canvas_sign_rot_3.json b/src/generated/resources/assets/farmersdelight/models/block/canvas_sign_rot_3.json new file mode 100644 index 000000000..ed853291b --- /dev/null +++ b/src/generated/resources/assets/farmersdelight/models/block/canvas_sign_rot_3.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/template_sign_rot_3", + "textures": { + "all": "farmersdelight:block/canvas_sign", + "particle": "minecraft:block/spruce_planks" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/farmersdelight/models/block/canvas_wall_sign.json b/src/generated/resources/assets/farmersdelight/models/block/canvas_wall_sign.json new file mode 100644 index 000000000..9e1b840a8 --- /dev/null +++ b/src/generated/resources/assets/farmersdelight/models/block/canvas_wall_sign.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/template_wall_sign", + "textures": { + "all": "farmersdelight:block/canvas_sign", + "particle": "minecraft:block/spruce_planks" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/farmersdelight/models/block/cyan_canvas_sign_rot_0.json b/src/generated/resources/assets/farmersdelight/models/block/cyan_canvas_sign_rot_0.json new file mode 100644 index 000000000..c59beedcf --- /dev/null +++ b/src/generated/resources/assets/farmersdelight/models/block/cyan_canvas_sign_rot_0.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/template_sign_rot_0", + "textures": { + "all": "farmersdelight:block/cyan_canvas_sign", + "particle": "minecraft:block/spruce_planks" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/farmersdelight/models/block/cyan_canvas_sign_rot_1.json b/src/generated/resources/assets/farmersdelight/models/block/cyan_canvas_sign_rot_1.json new file mode 100644 index 000000000..5e2c2af77 --- /dev/null +++ b/src/generated/resources/assets/farmersdelight/models/block/cyan_canvas_sign_rot_1.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/template_sign_rot_1", + "textures": { + "all": "farmersdelight:block/cyan_canvas_sign", + "particle": "minecraft:block/spruce_planks" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/farmersdelight/models/block/cyan_canvas_sign_rot_2.json b/src/generated/resources/assets/farmersdelight/models/block/cyan_canvas_sign_rot_2.json new file mode 100644 index 000000000..21c0850db --- /dev/null +++ b/src/generated/resources/assets/farmersdelight/models/block/cyan_canvas_sign_rot_2.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/template_sign_rot_2", + "textures": { + "all": "farmersdelight:block/cyan_canvas_sign", + "particle": "minecraft:block/spruce_planks" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/farmersdelight/models/block/cyan_canvas_sign_rot_3.json b/src/generated/resources/assets/farmersdelight/models/block/cyan_canvas_sign_rot_3.json new file mode 100644 index 000000000..b1ff3a00b --- /dev/null +++ b/src/generated/resources/assets/farmersdelight/models/block/cyan_canvas_sign_rot_3.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/template_sign_rot_3", + "textures": { + "all": "farmersdelight:block/cyan_canvas_sign", + "particle": "minecraft:block/spruce_planks" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/farmersdelight/models/block/cyan_canvas_wall_sign.json b/src/generated/resources/assets/farmersdelight/models/block/cyan_canvas_wall_sign.json new file mode 100644 index 000000000..c17251484 --- /dev/null +++ b/src/generated/resources/assets/farmersdelight/models/block/cyan_canvas_wall_sign.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/template_wall_sign", + "textures": { + "all": "farmersdelight:block/cyan_canvas_sign", + "particle": "minecraft:block/spruce_planks" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/farmersdelight/models/block/cyan_hanging_canvas_sign_attached_rot_0.json b/src/generated/resources/assets/farmersdelight/models/block/cyan_hanging_canvas_sign_attached_rot_0.json new file mode 100644 index 000000000..0fff23a61 --- /dev/null +++ b/src/generated/resources/assets/farmersdelight/models/block/cyan_hanging_canvas_sign_attached_rot_0.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/template_attached_hanging_sign_rot_0", + "textures": { + "all": "farmersdelight:block/cyan_hanging_canvas_sign", + "particle": "minecraft:block/stripped_spruce_log" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/farmersdelight/models/block/cyan_hanging_canvas_sign_attached_rot_1.json b/src/generated/resources/assets/farmersdelight/models/block/cyan_hanging_canvas_sign_attached_rot_1.json new file mode 100644 index 000000000..09d570124 --- /dev/null +++ b/src/generated/resources/assets/farmersdelight/models/block/cyan_hanging_canvas_sign_attached_rot_1.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/template_attached_hanging_sign_rot_1", + "textures": { + "all": "farmersdelight:block/cyan_hanging_canvas_sign", + "particle": "minecraft:block/stripped_spruce_log" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/farmersdelight/models/block/cyan_hanging_canvas_sign_attached_rot_2.json b/src/generated/resources/assets/farmersdelight/models/block/cyan_hanging_canvas_sign_attached_rot_2.json new file mode 100644 index 000000000..00490ed6e --- /dev/null +++ b/src/generated/resources/assets/farmersdelight/models/block/cyan_hanging_canvas_sign_attached_rot_2.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/template_attached_hanging_sign_rot_2", + "textures": { + "all": "farmersdelight:block/cyan_hanging_canvas_sign", + "particle": "minecraft:block/stripped_spruce_log" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/farmersdelight/models/block/cyan_hanging_canvas_sign_attached_rot_3.json b/src/generated/resources/assets/farmersdelight/models/block/cyan_hanging_canvas_sign_attached_rot_3.json new file mode 100644 index 000000000..6bb35e2ec --- /dev/null +++ b/src/generated/resources/assets/farmersdelight/models/block/cyan_hanging_canvas_sign_attached_rot_3.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/template_attached_hanging_sign_rot_3", + "textures": { + "all": "farmersdelight:block/cyan_hanging_canvas_sign", + "particle": "minecraft:block/stripped_spruce_log" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/farmersdelight/models/block/cyan_hanging_canvas_sign_rot_0.json b/src/generated/resources/assets/farmersdelight/models/block/cyan_hanging_canvas_sign_rot_0.json new file mode 100644 index 000000000..88f3ea0c1 --- /dev/null +++ b/src/generated/resources/assets/farmersdelight/models/block/cyan_hanging_canvas_sign_rot_0.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/template_hanging_sign_rot_0", + "textures": { + "all": "farmersdelight:block/cyan_hanging_canvas_sign", + "particle": "minecraft:block/stripped_spruce_log" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/farmersdelight/models/block/cyan_hanging_canvas_sign_rot_1.json b/src/generated/resources/assets/farmersdelight/models/block/cyan_hanging_canvas_sign_rot_1.json new file mode 100644 index 000000000..544dd7e3e --- /dev/null +++ b/src/generated/resources/assets/farmersdelight/models/block/cyan_hanging_canvas_sign_rot_1.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/template_hanging_sign_rot_1", + "textures": { + "all": "farmersdelight:block/cyan_hanging_canvas_sign", + "particle": "minecraft:block/stripped_spruce_log" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/farmersdelight/models/block/cyan_hanging_canvas_sign_rot_2.json b/src/generated/resources/assets/farmersdelight/models/block/cyan_hanging_canvas_sign_rot_2.json new file mode 100644 index 000000000..e39643fa9 --- /dev/null +++ b/src/generated/resources/assets/farmersdelight/models/block/cyan_hanging_canvas_sign_rot_2.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/template_hanging_sign_rot_2", + "textures": { + "all": "farmersdelight:block/cyan_hanging_canvas_sign", + "particle": "minecraft:block/stripped_spruce_log" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/farmersdelight/models/block/cyan_hanging_canvas_sign_rot_3.json b/src/generated/resources/assets/farmersdelight/models/block/cyan_hanging_canvas_sign_rot_3.json new file mode 100644 index 000000000..b4a234474 --- /dev/null +++ b/src/generated/resources/assets/farmersdelight/models/block/cyan_hanging_canvas_sign_rot_3.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/template_hanging_sign_rot_3", + "textures": { + "all": "farmersdelight:block/cyan_hanging_canvas_sign", + "particle": "minecraft:block/stripped_spruce_log" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/farmersdelight/models/block/cyan_wall_hanging_canvas_sign.json b/src/generated/resources/assets/farmersdelight/models/block/cyan_wall_hanging_canvas_sign.json new file mode 100644 index 000000000..ceb857443 --- /dev/null +++ b/src/generated/resources/assets/farmersdelight/models/block/cyan_wall_hanging_canvas_sign.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/template_wall_hanging_sign", + "textures": { + "all": "farmersdelight:block/cyan_hanging_canvas_sign", + "particle": "minecraft:block/stripped_spruce_log" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/farmersdelight/models/block/gray_canvas_sign_rot_0.json b/src/generated/resources/assets/farmersdelight/models/block/gray_canvas_sign_rot_0.json new file mode 100644 index 000000000..6ba152cb8 --- /dev/null +++ b/src/generated/resources/assets/farmersdelight/models/block/gray_canvas_sign_rot_0.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/template_sign_rot_0", + "textures": { + "all": "farmersdelight:block/gray_canvas_sign", + "particle": "minecraft:block/spruce_planks" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/farmersdelight/models/block/gray_canvas_sign_rot_1.json b/src/generated/resources/assets/farmersdelight/models/block/gray_canvas_sign_rot_1.json new file mode 100644 index 000000000..44b5c0d24 --- /dev/null +++ b/src/generated/resources/assets/farmersdelight/models/block/gray_canvas_sign_rot_1.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/template_sign_rot_1", + "textures": { + "all": "farmersdelight:block/gray_canvas_sign", + "particle": "minecraft:block/spruce_planks" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/farmersdelight/models/block/gray_canvas_sign_rot_2.json b/src/generated/resources/assets/farmersdelight/models/block/gray_canvas_sign_rot_2.json new file mode 100644 index 000000000..5157fa45f --- /dev/null +++ b/src/generated/resources/assets/farmersdelight/models/block/gray_canvas_sign_rot_2.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/template_sign_rot_2", + "textures": { + "all": "farmersdelight:block/gray_canvas_sign", + "particle": "minecraft:block/spruce_planks" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/farmersdelight/models/block/gray_canvas_sign_rot_3.json b/src/generated/resources/assets/farmersdelight/models/block/gray_canvas_sign_rot_3.json new file mode 100644 index 000000000..a482c9033 --- /dev/null +++ b/src/generated/resources/assets/farmersdelight/models/block/gray_canvas_sign_rot_3.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/template_sign_rot_3", + "textures": { + "all": "farmersdelight:block/gray_canvas_sign", + "particle": "minecraft:block/spruce_planks" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/farmersdelight/models/block/gray_canvas_wall_sign.json b/src/generated/resources/assets/farmersdelight/models/block/gray_canvas_wall_sign.json new file mode 100644 index 000000000..235412749 --- /dev/null +++ b/src/generated/resources/assets/farmersdelight/models/block/gray_canvas_wall_sign.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/template_wall_sign", + "textures": { + "all": "farmersdelight:block/gray_canvas_sign", + "particle": "minecraft:block/spruce_planks" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/farmersdelight/models/block/gray_hanging_canvas_sign_attached_rot_0.json b/src/generated/resources/assets/farmersdelight/models/block/gray_hanging_canvas_sign_attached_rot_0.json new file mode 100644 index 000000000..e1bec66e5 --- /dev/null +++ b/src/generated/resources/assets/farmersdelight/models/block/gray_hanging_canvas_sign_attached_rot_0.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/template_attached_hanging_sign_rot_0", + "textures": { + "all": "farmersdelight:block/gray_hanging_canvas_sign", + "particle": "minecraft:block/stripped_spruce_log" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/farmersdelight/models/block/gray_hanging_canvas_sign_attached_rot_1.json b/src/generated/resources/assets/farmersdelight/models/block/gray_hanging_canvas_sign_attached_rot_1.json new file mode 100644 index 000000000..4e328a85e --- /dev/null +++ b/src/generated/resources/assets/farmersdelight/models/block/gray_hanging_canvas_sign_attached_rot_1.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/template_attached_hanging_sign_rot_1", + "textures": { + "all": "farmersdelight:block/gray_hanging_canvas_sign", + "particle": "minecraft:block/stripped_spruce_log" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/farmersdelight/models/block/gray_hanging_canvas_sign_attached_rot_2.json b/src/generated/resources/assets/farmersdelight/models/block/gray_hanging_canvas_sign_attached_rot_2.json new file mode 100644 index 000000000..3f38ff18c --- /dev/null +++ b/src/generated/resources/assets/farmersdelight/models/block/gray_hanging_canvas_sign_attached_rot_2.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/template_attached_hanging_sign_rot_2", + "textures": { + "all": "farmersdelight:block/gray_hanging_canvas_sign", + "particle": "minecraft:block/stripped_spruce_log" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/farmersdelight/models/block/gray_hanging_canvas_sign_attached_rot_3.json b/src/generated/resources/assets/farmersdelight/models/block/gray_hanging_canvas_sign_attached_rot_3.json new file mode 100644 index 000000000..df8ccdb42 --- /dev/null +++ b/src/generated/resources/assets/farmersdelight/models/block/gray_hanging_canvas_sign_attached_rot_3.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/template_attached_hanging_sign_rot_3", + "textures": { + "all": "farmersdelight:block/gray_hanging_canvas_sign", + "particle": "minecraft:block/stripped_spruce_log" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/farmersdelight/models/block/gray_hanging_canvas_sign_rot_0.json b/src/generated/resources/assets/farmersdelight/models/block/gray_hanging_canvas_sign_rot_0.json new file mode 100644 index 000000000..24b975432 --- /dev/null +++ b/src/generated/resources/assets/farmersdelight/models/block/gray_hanging_canvas_sign_rot_0.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/template_hanging_sign_rot_0", + "textures": { + "all": "farmersdelight:block/gray_hanging_canvas_sign", + "particle": "minecraft:block/stripped_spruce_log" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/farmersdelight/models/block/gray_hanging_canvas_sign_rot_1.json b/src/generated/resources/assets/farmersdelight/models/block/gray_hanging_canvas_sign_rot_1.json new file mode 100644 index 000000000..7ec7d07cb --- /dev/null +++ b/src/generated/resources/assets/farmersdelight/models/block/gray_hanging_canvas_sign_rot_1.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/template_hanging_sign_rot_1", + "textures": { + "all": "farmersdelight:block/gray_hanging_canvas_sign", + "particle": "minecraft:block/stripped_spruce_log" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/farmersdelight/models/block/gray_hanging_canvas_sign_rot_2.json b/src/generated/resources/assets/farmersdelight/models/block/gray_hanging_canvas_sign_rot_2.json new file mode 100644 index 000000000..f51ea0569 --- /dev/null +++ b/src/generated/resources/assets/farmersdelight/models/block/gray_hanging_canvas_sign_rot_2.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/template_hanging_sign_rot_2", + "textures": { + "all": "farmersdelight:block/gray_hanging_canvas_sign", + "particle": "minecraft:block/stripped_spruce_log" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/farmersdelight/models/block/gray_hanging_canvas_sign_rot_3.json b/src/generated/resources/assets/farmersdelight/models/block/gray_hanging_canvas_sign_rot_3.json new file mode 100644 index 000000000..5258ef9a2 --- /dev/null +++ b/src/generated/resources/assets/farmersdelight/models/block/gray_hanging_canvas_sign_rot_3.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/template_hanging_sign_rot_3", + "textures": { + "all": "farmersdelight:block/gray_hanging_canvas_sign", + "particle": "minecraft:block/stripped_spruce_log" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/farmersdelight/models/block/gray_wall_hanging_canvas_sign.json b/src/generated/resources/assets/farmersdelight/models/block/gray_wall_hanging_canvas_sign.json new file mode 100644 index 000000000..7f3e3d0c6 --- /dev/null +++ b/src/generated/resources/assets/farmersdelight/models/block/gray_wall_hanging_canvas_sign.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/template_wall_hanging_sign", + "textures": { + "all": "farmersdelight:block/gray_hanging_canvas_sign", + "particle": "minecraft:block/stripped_spruce_log" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/farmersdelight/models/block/green_canvas_sign_rot_0.json b/src/generated/resources/assets/farmersdelight/models/block/green_canvas_sign_rot_0.json new file mode 100644 index 000000000..c82dabc32 --- /dev/null +++ b/src/generated/resources/assets/farmersdelight/models/block/green_canvas_sign_rot_0.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/template_sign_rot_0", + "textures": { + "all": "farmersdelight:block/green_canvas_sign", + "particle": "minecraft:block/spruce_planks" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/farmersdelight/models/block/green_canvas_sign_rot_1.json b/src/generated/resources/assets/farmersdelight/models/block/green_canvas_sign_rot_1.json new file mode 100644 index 000000000..445dee692 --- /dev/null +++ b/src/generated/resources/assets/farmersdelight/models/block/green_canvas_sign_rot_1.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/template_sign_rot_1", + "textures": { + "all": "farmersdelight:block/green_canvas_sign", + "particle": "minecraft:block/spruce_planks" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/farmersdelight/models/block/green_canvas_sign_rot_2.json b/src/generated/resources/assets/farmersdelight/models/block/green_canvas_sign_rot_2.json new file mode 100644 index 000000000..1a950e702 --- /dev/null +++ b/src/generated/resources/assets/farmersdelight/models/block/green_canvas_sign_rot_2.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/template_sign_rot_2", + "textures": { + "all": "farmersdelight:block/green_canvas_sign", + "particle": "minecraft:block/spruce_planks" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/farmersdelight/models/block/green_canvas_sign_rot_3.json b/src/generated/resources/assets/farmersdelight/models/block/green_canvas_sign_rot_3.json new file mode 100644 index 000000000..eedb414c7 --- /dev/null +++ b/src/generated/resources/assets/farmersdelight/models/block/green_canvas_sign_rot_3.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/template_sign_rot_3", + "textures": { + "all": "farmersdelight:block/green_canvas_sign", + "particle": "minecraft:block/spruce_planks" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/farmersdelight/models/block/green_canvas_wall_sign.json b/src/generated/resources/assets/farmersdelight/models/block/green_canvas_wall_sign.json new file mode 100644 index 000000000..2e75672d2 --- /dev/null +++ b/src/generated/resources/assets/farmersdelight/models/block/green_canvas_wall_sign.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/template_wall_sign", + "textures": { + "all": "farmersdelight:block/green_canvas_sign", + "particle": "minecraft:block/spruce_planks" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/farmersdelight/models/block/green_hanging_canvas_sign_attached_rot_0.json b/src/generated/resources/assets/farmersdelight/models/block/green_hanging_canvas_sign_attached_rot_0.json new file mode 100644 index 000000000..50c132494 --- /dev/null +++ b/src/generated/resources/assets/farmersdelight/models/block/green_hanging_canvas_sign_attached_rot_0.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/template_attached_hanging_sign_rot_0", + "textures": { + "all": "farmersdelight:block/green_hanging_canvas_sign", + "particle": "minecraft:block/stripped_spruce_log" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/farmersdelight/models/block/green_hanging_canvas_sign_attached_rot_1.json b/src/generated/resources/assets/farmersdelight/models/block/green_hanging_canvas_sign_attached_rot_1.json new file mode 100644 index 000000000..9a75b74d2 --- /dev/null +++ b/src/generated/resources/assets/farmersdelight/models/block/green_hanging_canvas_sign_attached_rot_1.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/template_attached_hanging_sign_rot_1", + "textures": { + "all": "farmersdelight:block/green_hanging_canvas_sign", + "particle": "minecraft:block/stripped_spruce_log" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/farmersdelight/models/block/green_hanging_canvas_sign_attached_rot_2.json b/src/generated/resources/assets/farmersdelight/models/block/green_hanging_canvas_sign_attached_rot_2.json new file mode 100644 index 000000000..ee9e3a74e --- /dev/null +++ b/src/generated/resources/assets/farmersdelight/models/block/green_hanging_canvas_sign_attached_rot_2.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/template_attached_hanging_sign_rot_2", + "textures": { + "all": "farmersdelight:block/green_hanging_canvas_sign", + "particle": "minecraft:block/stripped_spruce_log" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/farmersdelight/models/block/green_hanging_canvas_sign_attached_rot_3.json b/src/generated/resources/assets/farmersdelight/models/block/green_hanging_canvas_sign_attached_rot_3.json new file mode 100644 index 000000000..7b8ee4804 --- /dev/null +++ b/src/generated/resources/assets/farmersdelight/models/block/green_hanging_canvas_sign_attached_rot_3.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/template_attached_hanging_sign_rot_3", + "textures": { + "all": "farmersdelight:block/green_hanging_canvas_sign", + "particle": "minecraft:block/stripped_spruce_log" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/farmersdelight/models/block/green_hanging_canvas_sign_rot_0.json b/src/generated/resources/assets/farmersdelight/models/block/green_hanging_canvas_sign_rot_0.json new file mode 100644 index 000000000..dd6fb02ca --- /dev/null +++ b/src/generated/resources/assets/farmersdelight/models/block/green_hanging_canvas_sign_rot_0.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/template_hanging_sign_rot_0", + "textures": { + "all": "farmersdelight:block/green_hanging_canvas_sign", + "particle": "minecraft:block/stripped_spruce_log" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/farmersdelight/models/block/green_hanging_canvas_sign_rot_1.json b/src/generated/resources/assets/farmersdelight/models/block/green_hanging_canvas_sign_rot_1.json new file mode 100644 index 000000000..02b7abc0f --- /dev/null +++ b/src/generated/resources/assets/farmersdelight/models/block/green_hanging_canvas_sign_rot_1.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/template_hanging_sign_rot_1", + "textures": { + "all": "farmersdelight:block/green_hanging_canvas_sign", + "particle": "minecraft:block/stripped_spruce_log" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/farmersdelight/models/block/green_hanging_canvas_sign_rot_2.json b/src/generated/resources/assets/farmersdelight/models/block/green_hanging_canvas_sign_rot_2.json new file mode 100644 index 000000000..77f3a986a --- /dev/null +++ b/src/generated/resources/assets/farmersdelight/models/block/green_hanging_canvas_sign_rot_2.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/template_hanging_sign_rot_2", + "textures": { + "all": "farmersdelight:block/green_hanging_canvas_sign", + "particle": "minecraft:block/stripped_spruce_log" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/farmersdelight/models/block/green_hanging_canvas_sign_rot_3.json b/src/generated/resources/assets/farmersdelight/models/block/green_hanging_canvas_sign_rot_3.json new file mode 100644 index 000000000..595538cb6 --- /dev/null +++ b/src/generated/resources/assets/farmersdelight/models/block/green_hanging_canvas_sign_rot_3.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/template_hanging_sign_rot_3", + "textures": { + "all": "farmersdelight:block/green_hanging_canvas_sign", + "particle": "minecraft:block/stripped_spruce_log" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/farmersdelight/models/block/green_wall_hanging_canvas_sign.json b/src/generated/resources/assets/farmersdelight/models/block/green_wall_hanging_canvas_sign.json new file mode 100644 index 000000000..8e78faab3 --- /dev/null +++ b/src/generated/resources/assets/farmersdelight/models/block/green_wall_hanging_canvas_sign.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/template_wall_hanging_sign", + "textures": { + "all": "farmersdelight:block/green_hanging_canvas_sign", + "particle": "minecraft:block/stripped_spruce_log" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/farmersdelight/models/block/hanging_canvas_sign_attached_rot_0.json b/src/generated/resources/assets/farmersdelight/models/block/hanging_canvas_sign_attached_rot_0.json new file mode 100644 index 000000000..4777f556e --- /dev/null +++ b/src/generated/resources/assets/farmersdelight/models/block/hanging_canvas_sign_attached_rot_0.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/template_attached_hanging_sign_rot_0", + "textures": { + "all": "farmersdelight:block/hanging_canvas_sign", + "particle": "minecraft:block/stripped_spruce_log" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/farmersdelight/models/block/hanging_canvas_sign_attached_rot_1.json b/src/generated/resources/assets/farmersdelight/models/block/hanging_canvas_sign_attached_rot_1.json new file mode 100644 index 000000000..7689fca6a --- /dev/null +++ b/src/generated/resources/assets/farmersdelight/models/block/hanging_canvas_sign_attached_rot_1.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/template_attached_hanging_sign_rot_1", + "textures": { + "all": "farmersdelight:block/hanging_canvas_sign", + "particle": "minecraft:block/stripped_spruce_log" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/farmersdelight/models/block/hanging_canvas_sign_attached_rot_2.json b/src/generated/resources/assets/farmersdelight/models/block/hanging_canvas_sign_attached_rot_2.json new file mode 100644 index 000000000..b203d52db --- /dev/null +++ b/src/generated/resources/assets/farmersdelight/models/block/hanging_canvas_sign_attached_rot_2.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/template_attached_hanging_sign_rot_2", + "textures": { + "all": "farmersdelight:block/hanging_canvas_sign", + "particle": "minecraft:block/stripped_spruce_log" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/farmersdelight/models/block/hanging_canvas_sign_attached_rot_3.json b/src/generated/resources/assets/farmersdelight/models/block/hanging_canvas_sign_attached_rot_3.json new file mode 100644 index 000000000..e7232405b --- /dev/null +++ b/src/generated/resources/assets/farmersdelight/models/block/hanging_canvas_sign_attached_rot_3.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/template_attached_hanging_sign_rot_3", + "textures": { + "all": "farmersdelight:block/hanging_canvas_sign", + "particle": "minecraft:block/stripped_spruce_log" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/farmersdelight/models/block/hanging_canvas_sign_rot_0.json b/src/generated/resources/assets/farmersdelight/models/block/hanging_canvas_sign_rot_0.json new file mode 100644 index 000000000..eca827d21 --- /dev/null +++ b/src/generated/resources/assets/farmersdelight/models/block/hanging_canvas_sign_rot_0.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/template_hanging_sign_rot_0", + "textures": { + "all": "farmersdelight:block/hanging_canvas_sign", + "particle": "minecraft:block/stripped_spruce_log" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/farmersdelight/models/block/hanging_canvas_sign_rot_1.json b/src/generated/resources/assets/farmersdelight/models/block/hanging_canvas_sign_rot_1.json new file mode 100644 index 000000000..a8796ae33 --- /dev/null +++ b/src/generated/resources/assets/farmersdelight/models/block/hanging_canvas_sign_rot_1.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/template_hanging_sign_rot_1", + "textures": { + "all": "farmersdelight:block/hanging_canvas_sign", + "particle": "minecraft:block/stripped_spruce_log" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/farmersdelight/models/block/hanging_canvas_sign_rot_2.json b/src/generated/resources/assets/farmersdelight/models/block/hanging_canvas_sign_rot_2.json new file mode 100644 index 000000000..1edc86bef --- /dev/null +++ b/src/generated/resources/assets/farmersdelight/models/block/hanging_canvas_sign_rot_2.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/template_hanging_sign_rot_2", + "textures": { + "all": "farmersdelight:block/hanging_canvas_sign", + "particle": "minecraft:block/stripped_spruce_log" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/farmersdelight/models/block/hanging_canvas_sign_rot_3.json b/src/generated/resources/assets/farmersdelight/models/block/hanging_canvas_sign_rot_3.json new file mode 100644 index 000000000..29af6f32f --- /dev/null +++ b/src/generated/resources/assets/farmersdelight/models/block/hanging_canvas_sign_rot_3.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/template_hanging_sign_rot_3", + "textures": { + "all": "farmersdelight:block/hanging_canvas_sign", + "particle": "minecraft:block/stripped_spruce_log" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/farmersdelight/models/block/light_blue_canvas_sign_rot_0.json b/src/generated/resources/assets/farmersdelight/models/block/light_blue_canvas_sign_rot_0.json new file mode 100644 index 000000000..7d17a98da --- /dev/null +++ b/src/generated/resources/assets/farmersdelight/models/block/light_blue_canvas_sign_rot_0.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/template_sign_rot_0", + "textures": { + "all": "farmersdelight:block/light_blue_canvas_sign", + "particle": "minecraft:block/spruce_planks" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/farmersdelight/models/block/light_blue_canvas_sign_rot_1.json b/src/generated/resources/assets/farmersdelight/models/block/light_blue_canvas_sign_rot_1.json new file mode 100644 index 000000000..c16f76da5 --- /dev/null +++ b/src/generated/resources/assets/farmersdelight/models/block/light_blue_canvas_sign_rot_1.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/template_sign_rot_1", + "textures": { + "all": "farmersdelight:block/light_blue_canvas_sign", + "particle": "minecraft:block/spruce_planks" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/farmersdelight/models/block/light_blue_canvas_sign_rot_2.json b/src/generated/resources/assets/farmersdelight/models/block/light_blue_canvas_sign_rot_2.json new file mode 100644 index 000000000..3be388fb1 --- /dev/null +++ b/src/generated/resources/assets/farmersdelight/models/block/light_blue_canvas_sign_rot_2.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/template_sign_rot_2", + "textures": { + "all": "farmersdelight:block/light_blue_canvas_sign", + "particle": "minecraft:block/spruce_planks" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/farmersdelight/models/block/light_blue_canvas_sign_rot_3.json b/src/generated/resources/assets/farmersdelight/models/block/light_blue_canvas_sign_rot_3.json new file mode 100644 index 000000000..726bda13a --- /dev/null +++ b/src/generated/resources/assets/farmersdelight/models/block/light_blue_canvas_sign_rot_3.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/template_sign_rot_3", + "textures": { + "all": "farmersdelight:block/light_blue_canvas_sign", + "particle": "minecraft:block/spruce_planks" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/farmersdelight/models/block/light_blue_canvas_wall_sign.json b/src/generated/resources/assets/farmersdelight/models/block/light_blue_canvas_wall_sign.json new file mode 100644 index 000000000..ee3057b21 --- /dev/null +++ b/src/generated/resources/assets/farmersdelight/models/block/light_blue_canvas_wall_sign.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/template_wall_sign", + "textures": { + "all": "farmersdelight:block/light_blue_canvas_sign", + "particle": "minecraft:block/spruce_planks" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/farmersdelight/models/block/light_blue_hanging_canvas_sign_attached_rot_0.json b/src/generated/resources/assets/farmersdelight/models/block/light_blue_hanging_canvas_sign_attached_rot_0.json new file mode 100644 index 000000000..6dcfbb516 --- /dev/null +++ b/src/generated/resources/assets/farmersdelight/models/block/light_blue_hanging_canvas_sign_attached_rot_0.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/template_attached_hanging_sign_rot_0", + "textures": { + "all": "farmersdelight:block/light_blue_hanging_canvas_sign", + "particle": "minecraft:block/stripped_spruce_log" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/farmersdelight/models/block/light_blue_hanging_canvas_sign_attached_rot_1.json b/src/generated/resources/assets/farmersdelight/models/block/light_blue_hanging_canvas_sign_attached_rot_1.json new file mode 100644 index 000000000..68513e9f9 --- /dev/null +++ b/src/generated/resources/assets/farmersdelight/models/block/light_blue_hanging_canvas_sign_attached_rot_1.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/template_attached_hanging_sign_rot_1", + "textures": { + "all": "farmersdelight:block/light_blue_hanging_canvas_sign", + "particle": "minecraft:block/stripped_spruce_log" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/farmersdelight/models/block/light_blue_hanging_canvas_sign_attached_rot_2.json b/src/generated/resources/assets/farmersdelight/models/block/light_blue_hanging_canvas_sign_attached_rot_2.json new file mode 100644 index 000000000..fd654b906 --- /dev/null +++ b/src/generated/resources/assets/farmersdelight/models/block/light_blue_hanging_canvas_sign_attached_rot_2.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/template_attached_hanging_sign_rot_2", + "textures": { + "all": "farmersdelight:block/light_blue_hanging_canvas_sign", + "particle": "minecraft:block/stripped_spruce_log" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/farmersdelight/models/block/light_blue_hanging_canvas_sign_attached_rot_3.json b/src/generated/resources/assets/farmersdelight/models/block/light_blue_hanging_canvas_sign_attached_rot_3.json new file mode 100644 index 000000000..1690993d3 --- /dev/null +++ b/src/generated/resources/assets/farmersdelight/models/block/light_blue_hanging_canvas_sign_attached_rot_3.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/template_attached_hanging_sign_rot_3", + "textures": { + "all": "farmersdelight:block/light_blue_hanging_canvas_sign", + "particle": "minecraft:block/stripped_spruce_log" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/farmersdelight/models/block/light_blue_hanging_canvas_sign_rot_0.json b/src/generated/resources/assets/farmersdelight/models/block/light_blue_hanging_canvas_sign_rot_0.json new file mode 100644 index 000000000..035ca03e3 --- /dev/null +++ b/src/generated/resources/assets/farmersdelight/models/block/light_blue_hanging_canvas_sign_rot_0.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/template_hanging_sign_rot_0", + "textures": { + "all": "farmersdelight:block/light_blue_hanging_canvas_sign", + "particle": "minecraft:block/stripped_spruce_log" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/farmersdelight/models/block/light_blue_hanging_canvas_sign_rot_1.json b/src/generated/resources/assets/farmersdelight/models/block/light_blue_hanging_canvas_sign_rot_1.json new file mode 100644 index 000000000..4a7ab4dc3 --- /dev/null +++ b/src/generated/resources/assets/farmersdelight/models/block/light_blue_hanging_canvas_sign_rot_1.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/template_hanging_sign_rot_1", + "textures": { + "all": "farmersdelight:block/light_blue_hanging_canvas_sign", + "particle": "minecraft:block/stripped_spruce_log" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/farmersdelight/models/block/light_blue_hanging_canvas_sign_rot_2.json b/src/generated/resources/assets/farmersdelight/models/block/light_blue_hanging_canvas_sign_rot_2.json new file mode 100644 index 000000000..bb5dd8854 --- /dev/null +++ b/src/generated/resources/assets/farmersdelight/models/block/light_blue_hanging_canvas_sign_rot_2.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/template_hanging_sign_rot_2", + "textures": { + "all": "farmersdelight:block/light_blue_hanging_canvas_sign", + "particle": "minecraft:block/stripped_spruce_log" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/farmersdelight/models/block/light_blue_hanging_canvas_sign_rot_3.json b/src/generated/resources/assets/farmersdelight/models/block/light_blue_hanging_canvas_sign_rot_3.json new file mode 100644 index 000000000..6949e3052 --- /dev/null +++ b/src/generated/resources/assets/farmersdelight/models/block/light_blue_hanging_canvas_sign_rot_3.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/template_hanging_sign_rot_3", + "textures": { + "all": "farmersdelight:block/light_blue_hanging_canvas_sign", + "particle": "minecraft:block/stripped_spruce_log" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/farmersdelight/models/block/light_blue_wall_hanging_canvas_sign.json b/src/generated/resources/assets/farmersdelight/models/block/light_blue_wall_hanging_canvas_sign.json new file mode 100644 index 000000000..8f6ab8767 --- /dev/null +++ b/src/generated/resources/assets/farmersdelight/models/block/light_blue_wall_hanging_canvas_sign.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/template_wall_hanging_sign", + "textures": { + "all": "farmersdelight:block/light_blue_hanging_canvas_sign", + "particle": "minecraft:block/stripped_spruce_log" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/farmersdelight/models/block/light_gray_canvas_sign_rot_0.json b/src/generated/resources/assets/farmersdelight/models/block/light_gray_canvas_sign_rot_0.json new file mode 100644 index 000000000..ec7150065 --- /dev/null +++ b/src/generated/resources/assets/farmersdelight/models/block/light_gray_canvas_sign_rot_0.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/template_sign_rot_0", + "textures": { + "all": "farmersdelight:block/light_gray_canvas_sign", + "particle": "minecraft:block/spruce_planks" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/farmersdelight/models/block/light_gray_canvas_sign_rot_1.json b/src/generated/resources/assets/farmersdelight/models/block/light_gray_canvas_sign_rot_1.json new file mode 100644 index 000000000..519298372 --- /dev/null +++ b/src/generated/resources/assets/farmersdelight/models/block/light_gray_canvas_sign_rot_1.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/template_sign_rot_1", + "textures": { + "all": "farmersdelight:block/light_gray_canvas_sign", + "particle": "minecraft:block/spruce_planks" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/farmersdelight/models/block/light_gray_canvas_sign_rot_2.json b/src/generated/resources/assets/farmersdelight/models/block/light_gray_canvas_sign_rot_2.json new file mode 100644 index 000000000..57087b67d --- /dev/null +++ b/src/generated/resources/assets/farmersdelight/models/block/light_gray_canvas_sign_rot_2.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/template_sign_rot_2", + "textures": { + "all": "farmersdelight:block/light_gray_canvas_sign", + "particle": "minecraft:block/spruce_planks" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/farmersdelight/models/block/light_gray_canvas_sign_rot_3.json b/src/generated/resources/assets/farmersdelight/models/block/light_gray_canvas_sign_rot_3.json new file mode 100644 index 000000000..e859558b9 --- /dev/null +++ b/src/generated/resources/assets/farmersdelight/models/block/light_gray_canvas_sign_rot_3.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/template_sign_rot_3", + "textures": { + "all": "farmersdelight:block/light_gray_canvas_sign", + "particle": "minecraft:block/spruce_planks" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/farmersdelight/models/block/light_gray_canvas_wall_sign.json b/src/generated/resources/assets/farmersdelight/models/block/light_gray_canvas_wall_sign.json new file mode 100644 index 000000000..325ddc8b0 --- /dev/null +++ b/src/generated/resources/assets/farmersdelight/models/block/light_gray_canvas_wall_sign.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/template_wall_sign", + "textures": { + "all": "farmersdelight:block/light_gray_canvas_sign", + "particle": "minecraft:block/spruce_planks" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/farmersdelight/models/block/light_gray_hanging_canvas_sign_attached_rot_0.json b/src/generated/resources/assets/farmersdelight/models/block/light_gray_hanging_canvas_sign_attached_rot_0.json new file mode 100644 index 000000000..336a63f6f --- /dev/null +++ b/src/generated/resources/assets/farmersdelight/models/block/light_gray_hanging_canvas_sign_attached_rot_0.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/template_attached_hanging_sign_rot_0", + "textures": { + "all": "farmersdelight:block/light_gray_hanging_canvas_sign", + "particle": "minecraft:block/stripped_spruce_log" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/farmersdelight/models/block/light_gray_hanging_canvas_sign_attached_rot_1.json b/src/generated/resources/assets/farmersdelight/models/block/light_gray_hanging_canvas_sign_attached_rot_1.json new file mode 100644 index 000000000..aa1cc3cd8 --- /dev/null +++ b/src/generated/resources/assets/farmersdelight/models/block/light_gray_hanging_canvas_sign_attached_rot_1.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/template_attached_hanging_sign_rot_1", + "textures": { + "all": "farmersdelight:block/light_gray_hanging_canvas_sign", + "particle": "minecraft:block/stripped_spruce_log" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/farmersdelight/models/block/light_gray_hanging_canvas_sign_attached_rot_2.json b/src/generated/resources/assets/farmersdelight/models/block/light_gray_hanging_canvas_sign_attached_rot_2.json new file mode 100644 index 000000000..2c007dde0 --- /dev/null +++ b/src/generated/resources/assets/farmersdelight/models/block/light_gray_hanging_canvas_sign_attached_rot_2.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/template_attached_hanging_sign_rot_2", + "textures": { + "all": "farmersdelight:block/light_gray_hanging_canvas_sign", + "particle": "minecraft:block/stripped_spruce_log" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/farmersdelight/models/block/light_gray_hanging_canvas_sign_attached_rot_3.json b/src/generated/resources/assets/farmersdelight/models/block/light_gray_hanging_canvas_sign_attached_rot_3.json new file mode 100644 index 000000000..55f743f44 --- /dev/null +++ b/src/generated/resources/assets/farmersdelight/models/block/light_gray_hanging_canvas_sign_attached_rot_3.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/template_attached_hanging_sign_rot_3", + "textures": { + "all": "farmersdelight:block/light_gray_hanging_canvas_sign", + "particle": "minecraft:block/stripped_spruce_log" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/farmersdelight/models/block/light_gray_hanging_canvas_sign_rot_0.json b/src/generated/resources/assets/farmersdelight/models/block/light_gray_hanging_canvas_sign_rot_0.json new file mode 100644 index 000000000..49566cd79 --- /dev/null +++ b/src/generated/resources/assets/farmersdelight/models/block/light_gray_hanging_canvas_sign_rot_0.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/template_hanging_sign_rot_0", + "textures": { + "all": "farmersdelight:block/light_gray_hanging_canvas_sign", + "particle": "minecraft:block/stripped_spruce_log" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/farmersdelight/models/block/light_gray_hanging_canvas_sign_rot_1.json b/src/generated/resources/assets/farmersdelight/models/block/light_gray_hanging_canvas_sign_rot_1.json new file mode 100644 index 000000000..bf0e9a68d --- /dev/null +++ b/src/generated/resources/assets/farmersdelight/models/block/light_gray_hanging_canvas_sign_rot_1.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/template_hanging_sign_rot_1", + "textures": { + "all": "farmersdelight:block/light_gray_hanging_canvas_sign", + "particle": "minecraft:block/stripped_spruce_log" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/farmersdelight/models/block/light_gray_hanging_canvas_sign_rot_2.json b/src/generated/resources/assets/farmersdelight/models/block/light_gray_hanging_canvas_sign_rot_2.json new file mode 100644 index 000000000..9883c0d88 --- /dev/null +++ b/src/generated/resources/assets/farmersdelight/models/block/light_gray_hanging_canvas_sign_rot_2.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/template_hanging_sign_rot_2", + "textures": { + "all": "farmersdelight:block/light_gray_hanging_canvas_sign", + "particle": "minecraft:block/stripped_spruce_log" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/farmersdelight/models/block/light_gray_hanging_canvas_sign_rot_3.json b/src/generated/resources/assets/farmersdelight/models/block/light_gray_hanging_canvas_sign_rot_3.json new file mode 100644 index 000000000..cf88c0acf --- /dev/null +++ b/src/generated/resources/assets/farmersdelight/models/block/light_gray_hanging_canvas_sign_rot_3.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/template_hanging_sign_rot_3", + "textures": { + "all": "farmersdelight:block/light_gray_hanging_canvas_sign", + "particle": "minecraft:block/stripped_spruce_log" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/farmersdelight/models/block/light_gray_wall_hanging_canvas_sign.json b/src/generated/resources/assets/farmersdelight/models/block/light_gray_wall_hanging_canvas_sign.json new file mode 100644 index 000000000..627a9c9c2 --- /dev/null +++ b/src/generated/resources/assets/farmersdelight/models/block/light_gray_wall_hanging_canvas_sign.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/template_wall_hanging_sign", + "textures": { + "all": "farmersdelight:block/light_gray_hanging_canvas_sign", + "particle": "minecraft:block/stripped_spruce_log" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/farmersdelight/models/block/lime_canvas_sign_rot_0.json b/src/generated/resources/assets/farmersdelight/models/block/lime_canvas_sign_rot_0.json new file mode 100644 index 000000000..3f83ba64f --- /dev/null +++ b/src/generated/resources/assets/farmersdelight/models/block/lime_canvas_sign_rot_0.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/template_sign_rot_0", + "textures": { + "all": "farmersdelight:block/lime_canvas_sign", + "particle": "minecraft:block/spruce_planks" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/farmersdelight/models/block/lime_canvas_sign_rot_1.json b/src/generated/resources/assets/farmersdelight/models/block/lime_canvas_sign_rot_1.json new file mode 100644 index 000000000..0dc64c01e --- /dev/null +++ b/src/generated/resources/assets/farmersdelight/models/block/lime_canvas_sign_rot_1.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/template_sign_rot_1", + "textures": { + "all": "farmersdelight:block/lime_canvas_sign", + "particle": "minecraft:block/spruce_planks" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/farmersdelight/models/block/lime_canvas_sign_rot_2.json b/src/generated/resources/assets/farmersdelight/models/block/lime_canvas_sign_rot_2.json new file mode 100644 index 000000000..fc3e5e3ed --- /dev/null +++ b/src/generated/resources/assets/farmersdelight/models/block/lime_canvas_sign_rot_2.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/template_sign_rot_2", + "textures": { + "all": "farmersdelight:block/lime_canvas_sign", + "particle": "minecraft:block/spruce_planks" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/farmersdelight/models/block/lime_canvas_sign_rot_3.json b/src/generated/resources/assets/farmersdelight/models/block/lime_canvas_sign_rot_3.json new file mode 100644 index 000000000..8a4987e2e --- /dev/null +++ b/src/generated/resources/assets/farmersdelight/models/block/lime_canvas_sign_rot_3.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/template_sign_rot_3", + "textures": { + "all": "farmersdelight:block/lime_canvas_sign", + "particle": "minecraft:block/spruce_planks" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/farmersdelight/models/block/lime_canvas_wall_sign.json b/src/generated/resources/assets/farmersdelight/models/block/lime_canvas_wall_sign.json new file mode 100644 index 000000000..d02ab13a4 --- /dev/null +++ b/src/generated/resources/assets/farmersdelight/models/block/lime_canvas_wall_sign.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/template_wall_sign", + "textures": { + "all": "farmersdelight:block/lime_canvas_sign", + "particle": "minecraft:block/spruce_planks" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/farmersdelight/models/block/lime_hanging_canvas_sign_attached_rot_0.json b/src/generated/resources/assets/farmersdelight/models/block/lime_hanging_canvas_sign_attached_rot_0.json new file mode 100644 index 000000000..ac2d092e0 --- /dev/null +++ b/src/generated/resources/assets/farmersdelight/models/block/lime_hanging_canvas_sign_attached_rot_0.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/template_attached_hanging_sign_rot_0", + "textures": { + "all": "farmersdelight:block/lime_hanging_canvas_sign", + "particle": "minecraft:block/stripped_spruce_log" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/farmersdelight/models/block/lime_hanging_canvas_sign_attached_rot_1.json b/src/generated/resources/assets/farmersdelight/models/block/lime_hanging_canvas_sign_attached_rot_1.json new file mode 100644 index 000000000..ddea05beb --- /dev/null +++ b/src/generated/resources/assets/farmersdelight/models/block/lime_hanging_canvas_sign_attached_rot_1.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/template_attached_hanging_sign_rot_1", + "textures": { + "all": "farmersdelight:block/lime_hanging_canvas_sign", + "particle": "minecraft:block/stripped_spruce_log" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/farmersdelight/models/block/lime_hanging_canvas_sign_attached_rot_2.json b/src/generated/resources/assets/farmersdelight/models/block/lime_hanging_canvas_sign_attached_rot_2.json new file mode 100644 index 000000000..cacff011d --- /dev/null +++ b/src/generated/resources/assets/farmersdelight/models/block/lime_hanging_canvas_sign_attached_rot_2.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/template_attached_hanging_sign_rot_2", + "textures": { + "all": "farmersdelight:block/lime_hanging_canvas_sign", + "particle": "minecraft:block/stripped_spruce_log" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/farmersdelight/models/block/lime_hanging_canvas_sign_attached_rot_3.json b/src/generated/resources/assets/farmersdelight/models/block/lime_hanging_canvas_sign_attached_rot_3.json new file mode 100644 index 000000000..4602c74b6 --- /dev/null +++ b/src/generated/resources/assets/farmersdelight/models/block/lime_hanging_canvas_sign_attached_rot_3.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/template_attached_hanging_sign_rot_3", + "textures": { + "all": "farmersdelight:block/lime_hanging_canvas_sign", + "particle": "minecraft:block/stripped_spruce_log" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/farmersdelight/models/block/lime_hanging_canvas_sign_rot_0.json b/src/generated/resources/assets/farmersdelight/models/block/lime_hanging_canvas_sign_rot_0.json new file mode 100644 index 000000000..16facd042 --- /dev/null +++ b/src/generated/resources/assets/farmersdelight/models/block/lime_hanging_canvas_sign_rot_0.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/template_hanging_sign_rot_0", + "textures": { + "all": "farmersdelight:block/lime_hanging_canvas_sign", + "particle": "minecraft:block/stripped_spruce_log" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/farmersdelight/models/block/lime_hanging_canvas_sign_rot_1.json b/src/generated/resources/assets/farmersdelight/models/block/lime_hanging_canvas_sign_rot_1.json new file mode 100644 index 000000000..37edb1ce3 --- /dev/null +++ b/src/generated/resources/assets/farmersdelight/models/block/lime_hanging_canvas_sign_rot_1.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/template_hanging_sign_rot_1", + "textures": { + "all": "farmersdelight:block/lime_hanging_canvas_sign", + "particle": "minecraft:block/stripped_spruce_log" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/farmersdelight/models/block/lime_hanging_canvas_sign_rot_2.json b/src/generated/resources/assets/farmersdelight/models/block/lime_hanging_canvas_sign_rot_2.json new file mode 100644 index 000000000..6ad30c90c --- /dev/null +++ b/src/generated/resources/assets/farmersdelight/models/block/lime_hanging_canvas_sign_rot_2.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/template_hanging_sign_rot_2", + "textures": { + "all": "farmersdelight:block/lime_hanging_canvas_sign", + "particle": "minecraft:block/stripped_spruce_log" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/farmersdelight/models/block/lime_hanging_canvas_sign_rot_3.json b/src/generated/resources/assets/farmersdelight/models/block/lime_hanging_canvas_sign_rot_3.json new file mode 100644 index 000000000..55739254c --- /dev/null +++ b/src/generated/resources/assets/farmersdelight/models/block/lime_hanging_canvas_sign_rot_3.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/template_hanging_sign_rot_3", + "textures": { + "all": "farmersdelight:block/lime_hanging_canvas_sign", + "particle": "minecraft:block/stripped_spruce_log" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/farmersdelight/models/block/lime_wall_hanging_canvas_sign.json b/src/generated/resources/assets/farmersdelight/models/block/lime_wall_hanging_canvas_sign.json new file mode 100644 index 000000000..0e5ab83dc --- /dev/null +++ b/src/generated/resources/assets/farmersdelight/models/block/lime_wall_hanging_canvas_sign.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/template_wall_hanging_sign", + "textures": { + "all": "farmersdelight:block/lime_hanging_canvas_sign", + "particle": "minecraft:block/stripped_spruce_log" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/farmersdelight/models/block/magenta_canvas_sign_rot_0.json b/src/generated/resources/assets/farmersdelight/models/block/magenta_canvas_sign_rot_0.json new file mode 100644 index 000000000..a02073d31 --- /dev/null +++ b/src/generated/resources/assets/farmersdelight/models/block/magenta_canvas_sign_rot_0.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/template_sign_rot_0", + "textures": { + "all": "farmersdelight:block/magenta_canvas_sign", + "particle": "minecraft:block/spruce_planks" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/farmersdelight/models/block/magenta_canvas_sign_rot_1.json b/src/generated/resources/assets/farmersdelight/models/block/magenta_canvas_sign_rot_1.json new file mode 100644 index 000000000..c628fb161 --- /dev/null +++ b/src/generated/resources/assets/farmersdelight/models/block/magenta_canvas_sign_rot_1.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/template_sign_rot_1", + "textures": { + "all": "farmersdelight:block/magenta_canvas_sign", + "particle": "minecraft:block/spruce_planks" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/farmersdelight/models/block/magenta_canvas_sign_rot_2.json b/src/generated/resources/assets/farmersdelight/models/block/magenta_canvas_sign_rot_2.json new file mode 100644 index 000000000..e1680402d --- /dev/null +++ b/src/generated/resources/assets/farmersdelight/models/block/magenta_canvas_sign_rot_2.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/template_sign_rot_2", + "textures": { + "all": "farmersdelight:block/magenta_canvas_sign", + "particle": "minecraft:block/spruce_planks" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/farmersdelight/models/block/magenta_canvas_sign_rot_3.json b/src/generated/resources/assets/farmersdelight/models/block/magenta_canvas_sign_rot_3.json new file mode 100644 index 000000000..64a5c02b2 --- /dev/null +++ b/src/generated/resources/assets/farmersdelight/models/block/magenta_canvas_sign_rot_3.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/template_sign_rot_3", + "textures": { + "all": "farmersdelight:block/magenta_canvas_sign", + "particle": "minecraft:block/spruce_planks" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/farmersdelight/models/block/magenta_canvas_wall_sign.json b/src/generated/resources/assets/farmersdelight/models/block/magenta_canvas_wall_sign.json new file mode 100644 index 000000000..db5467ea8 --- /dev/null +++ b/src/generated/resources/assets/farmersdelight/models/block/magenta_canvas_wall_sign.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/template_wall_sign", + "textures": { + "all": "farmersdelight:block/magenta_canvas_sign", + "particle": "minecraft:block/spruce_planks" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/farmersdelight/models/block/magenta_hanging_canvas_sign_attached_rot_0.json b/src/generated/resources/assets/farmersdelight/models/block/magenta_hanging_canvas_sign_attached_rot_0.json new file mode 100644 index 000000000..ff6f2225a --- /dev/null +++ b/src/generated/resources/assets/farmersdelight/models/block/magenta_hanging_canvas_sign_attached_rot_0.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/template_attached_hanging_sign_rot_0", + "textures": { + "all": "farmersdelight:block/magenta_hanging_canvas_sign", + "particle": "minecraft:block/stripped_spruce_log" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/farmersdelight/models/block/magenta_hanging_canvas_sign_attached_rot_1.json b/src/generated/resources/assets/farmersdelight/models/block/magenta_hanging_canvas_sign_attached_rot_1.json new file mode 100644 index 000000000..3aedd5d9d --- /dev/null +++ b/src/generated/resources/assets/farmersdelight/models/block/magenta_hanging_canvas_sign_attached_rot_1.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/template_attached_hanging_sign_rot_1", + "textures": { + "all": "farmersdelight:block/magenta_hanging_canvas_sign", + "particle": "minecraft:block/stripped_spruce_log" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/farmersdelight/models/block/magenta_hanging_canvas_sign_attached_rot_2.json b/src/generated/resources/assets/farmersdelight/models/block/magenta_hanging_canvas_sign_attached_rot_2.json new file mode 100644 index 000000000..9475362ce --- /dev/null +++ b/src/generated/resources/assets/farmersdelight/models/block/magenta_hanging_canvas_sign_attached_rot_2.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/template_attached_hanging_sign_rot_2", + "textures": { + "all": "farmersdelight:block/magenta_hanging_canvas_sign", + "particle": "minecraft:block/stripped_spruce_log" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/farmersdelight/models/block/magenta_hanging_canvas_sign_attached_rot_3.json b/src/generated/resources/assets/farmersdelight/models/block/magenta_hanging_canvas_sign_attached_rot_3.json new file mode 100644 index 000000000..5e25b80f9 --- /dev/null +++ b/src/generated/resources/assets/farmersdelight/models/block/magenta_hanging_canvas_sign_attached_rot_3.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/template_attached_hanging_sign_rot_3", + "textures": { + "all": "farmersdelight:block/magenta_hanging_canvas_sign", + "particle": "minecraft:block/stripped_spruce_log" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/farmersdelight/models/block/magenta_hanging_canvas_sign_rot_0.json b/src/generated/resources/assets/farmersdelight/models/block/magenta_hanging_canvas_sign_rot_0.json new file mode 100644 index 000000000..e46026e7b --- /dev/null +++ b/src/generated/resources/assets/farmersdelight/models/block/magenta_hanging_canvas_sign_rot_0.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/template_hanging_sign_rot_0", + "textures": { + "all": "farmersdelight:block/magenta_hanging_canvas_sign", + "particle": "minecraft:block/stripped_spruce_log" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/farmersdelight/models/block/magenta_hanging_canvas_sign_rot_1.json b/src/generated/resources/assets/farmersdelight/models/block/magenta_hanging_canvas_sign_rot_1.json new file mode 100644 index 000000000..f48050920 --- /dev/null +++ b/src/generated/resources/assets/farmersdelight/models/block/magenta_hanging_canvas_sign_rot_1.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/template_hanging_sign_rot_1", + "textures": { + "all": "farmersdelight:block/magenta_hanging_canvas_sign", + "particle": "minecraft:block/stripped_spruce_log" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/farmersdelight/models/block/magenta_hanging_canvas_sign_rot_2.json b/src/generated/resources/assets/farmersdelight/models/block/magenta_hanging_canvas_sign_rot_2.json new file mode 100644 index 000000000..dc6887580 --- /dev/null +++ b/src/generated/resources/assets/farmersdelight/models/block/magenta_hanging_canvas_sign_rot_2.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/template_hanging_sign_rot_2", + "textures": { + "all": "farmersdelight:block/magenta_hanging_canvas_sign", + "particle": "minecraft:block/stripped_spruce_log" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/farmersdelight/models/block/magenta_hanging_canvas_sign_rot_3.json b/src/generated/resources/assets/farmersdelight/models/block/magenta_hanging_canvas_sign_rot_3.json new file mode 100644 index 000000000..e5750189b --- /dev/null +++ b/src/generated/resources/assets/farmersdelight/models/block/magenta_hanging_canvas_sign_rot_3.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/template_hanging_sign_rot_3", + "textures": { + "all": "farmersdelight:block/magenta_hanging_canvas_sign", + "particle": "minecraft:block/stripped_spruce_log" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/farmersdelight/models/block/magenta_wall_hanging_canvas_sign.json b/src/generated/resources/assets/farmersdelight/models/block/magenta_wall_hanging_canvas_sign.json new file mode 100644 index 000000000..1718cf722 --- /dev/null +++ b/src/generated/resources/assets/farmersdelight/models/block/magenta_wall_hanging_canvas_sign.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/template_wall_hanging_sign", + "textures": { + "all": "farmersdelight:block/magenta_hanging_canvas_sign", + "particle": "minecraft:block/stripped_spruce_log" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/farmersdelight/models/block/orange_canvas_sign_rot_0.json b/src/generated/resources/assets/farmersdelight/models/block/orange_canvas_sign_rot_0.json new file mode 100644 index 000000000..b527498de --- /dev/null +++ b/src/generated/resources/assets/farmersdelight/models/block/orange_canvas_sign_rot_0.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/template_sign_rot_0", + "textures": { + "all": "farmersdelight:block/orange_canvas_sign", + "particle": "minecraft:block/spruce_planks" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/farmersdelight/models/block/orange_canvas_sign_rot_1.json b/src/generated/resources/assets/farmersdelight/models/block/orange_canvas_sign_rot_1.json new file mode 100644 index 000000000..add5893e7 --- /dev/null +++ b/src/generated/resources/assets/farmersdelight/models/block/orange_canvas_sign_rot_1.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/template_sign_rot_1", + "textures": { + "all": "farmersdelight:block/orange_canvas_sign", + "particle": "minecraft:block/spruce_planks" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/farmersdelight/models/block/orange_canvas_sign_rot_2.json b/src/generated/resources/assets/farmersdelight/models/block/orange_canvas_sign_rot_2.json new file mode 100644 index 000000000..22dedbec9 --- /dev/null +++ b/src/generated/resources/assets/farmersdelight/models/block/orange_canvas_sign_rot_2.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/template_sign_rot_2", + "textures": { + "all": "farmersdelight:block/orange_canvas_sign", + "particle": "minecraft:block/spruce_planks" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/farmersdelight/models/block/orange_canvas_sign_rot_3.json b/src/generated/resources/assets/farmersdelight/models/block/orange_canvas_sign_rot_3.json new file mode 100644 index 000000000..0c2377c20 --- /dev/null +++ b/src/generated/resources/assets/farmersdelight/models/block/orange_canvas_sign_rot_3.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/template_sign_rot_3", + "textures": { + "all": "farmersdelight:block/orange_canvas_sign", + "particle": "minecraft:block/spruce_planks" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/farmersdelight/models/block/orange_canvas_wall_sign.json b/src/generated/resources/assets/farmersdelight/models/block/orange_canvas_wall_sign.json new file mode 100644 index 000000000..5ee45048e --- /dev/null +++ b/src/generated/resources/assets/farmersdelight/models/block/orange_canvas_wall_sign.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/template_wall_sign", + "textures": { + "all": "farmersdelight:block/orange_canvas_sign", + "particle": "minecraft:block/spruce_planks" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/farmersdelight/models/block/orange_hanging_canvas_sign_attached_rot_0.json b/src/generated/resources/assets/farmersdelight/models/block/orange_hanging_canvas_sign_attached_rot_0.json new file mode 100644 index 000000000..6b625eb4c --- /dev/null +++ b/src/generated/resources/assets/farmersdelight/models/block/orange_hanging_canvas_sign_attached_rot_0.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/template_attached_hanging_sign_rot_0", + "textures": { + "all": "farmersdelight:block/orange_hanging_canvas_sign", + "particle": "minecraft:block/stripped_spruce_log" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/farmersdelight/models/block/orange_hanging_canvas_sign_attached_rot_1.json b/src/generated/resources/assets/farmersdelight/models/block/orange_hanging_canvas_sign_attached_rot_1.json new file mode 100644 index 000000000..543ba2045 --- /dev/null +++ b/src/generated/resources/assets/farmersdelight/models/block/orange_hanging_canvas_sign_attached_rot_1.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/template_attached_hanging_sign_rot_1", + "textures": { + "all": "farmersdelight:block/orange_hanging_canvas_sign", + "particle": "minecraft:block/stripped_spruce_log" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/farmersdelight/models/block/orange_hanging_canvas_sign_attached_rot_2.json b/src/generated/resources/assets/farmersdelight/models/block/orange_hanging_canvas_sign_attached_rot_2.json new file mode 100644 index 000000000..455971204 --- /dev/null +++ b/src/generated/resources/assets/farmersdelight/models/block/orange_hanging_canvas_sign_attached_rot_2.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/template_attached_hanging_sign_rot_2", + "textures": { + "all": "farmersdelight:block/orange_hanging_canvas_sign", + "particle": "minecraft:block/stripped_spruce_log" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/farmersdelight/models/block/orange_hanging_canvas_sign_attached_rot_3.json b/src/generated/resources/assets/farmersdelight/models/block/orange_hanging_canvas_sign_attached_rot_3.json new file mode 100644 index 000000000..02cd197d2 --- /dev/null +++ b/src/generated/resources/assets/farmersdelight/models/block/orange_hanging_canvas_sign_attached_rot_3.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/template_attached_hanging_sign_rot_3", + "textures": { + "all": "farmersdelight:block/orange_hanging_canvas_sign", + "particle": "minecraft:block/stripped_spruce_log" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/farmersdelight/models/block/orange_hanging_canvas_sign_rot_0.json b/src/generated/resources/assets/farmersdelight/models/block/orange_hanging_canvas_sign_rot_0.json new file mode 100644 index 000000000..6e4f62631 --- /dev/null +++ b/src/generated/resources/assets/farmersdelight/models/block/orange_hanging_canvas_sign_rot_0.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/template_hanging_sign_rot_0", + "textures": { + "all": "farmersdelight:block/orange_hanging_canvas_sign", + "particle": "minecraft:block/stripped_spruce_log" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/farmersdelight/models/block/orange_hanging_canvas_sign_rot_1.json b/src/generated/resources/assets/farmersdelight/models/block/orange_hanging_canvas_sign_rot_1.json new file mode 100644 index 000000000..09b0abc9b --- /dev/null +++ b/src/generated/resources/assets/farmersdelight/models/block/orange_hanging_canvas_sign_rot_1.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/template_hanging_sign_rot_1", + "textures": { + "all": "farmersdelight:block/orange_hanging_canvas_sign", + "particle": "minecraft:block/stripped_spruce_log" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/farmersdelight/models/block/orange_hanging_canvas_sign_rot_2.json b/src/generated/resources/assets/farmersdelight/models/block/orange_hanging_canvas_sign_rot_2.json new file mode 100644 index 000000000..af3ec846b --- /dev/null +++ b/src/generated/resources/assets/farmersdelight/models/block/orange_hanging_canvas_sign_rot_2.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/template_hanging_sign_rot_2", + "textures": { + "all": "farmersdelight:block/orange_hanging_canvas_sign", + "particle": "minecraft:block/stripped_spruce_log" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/farmersdelight/models/block/orange_hanging_canvas_sign_rot_3.json b/src/generated/resources/assets/farmersdelight/models/block/orange_hanging_canvas_sign_rot_3.json new file mode 100644 index 000000000..cdb31b361 --- /dev/null +++ b/src/generated/resources/assets/farmersdelight/models/block/orange_hanging_canvas_sign_rot_3.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/template_hanging_sign_rot_3", + "textures": { + "all": "farmersdelight:block/orange_hanging_canvas_sign", + "particle": "minecraft:block/stripped_spruce_log" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/farmersdelight/models/block/orange_wall_hanging_canvas_sign.json b/src/generated/resources/assets/farmersdelight/models/block/orange_wall_hanging_canvas_sign.json new file mode 100644 index 000000000..68b06ec8a --- /dev/null +++ b/src/generated/resources/assets/farmersdelight/models/block/orange_wall_hanging_canvas_sign.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/template_wall_hanging_sign", + "textures": { + "all": "farmersdelight:block/orange_hanging_canvas_sign", + "particle": "minecraft:block/stripped_spruce_log" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/farmersdelight/models/block/pink_canvas_sign_rot_0.json b/src/generated/resources/assets/farmersdelight/models/block/pink_canvas_sign_rot_0.json new file mode 100644 index 000000000..bda3de998 --- /dev/null +++ b/src/generated/resources/assets/farmersdelight/models/block/pink_canvas_sign_rot_0.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/template_sign_rot_0", + "textures": { + "all": "farmersdelight:block/pink_canvas_sign", + "particle": "minecraft:block/spruce_planks" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/farmersdelight/models/block/pink_canvas_sign_rot_1.json b/src/generated/resources/assets/farmersdelight/models/block/pink_canvas_sign_rot_1.json new file mode 100644 index 000000000..ee4390880 --- /dev/null +++ b/src/generated/resources/assets/farmersdelight/models/block/pink_canvas_sign_rot_1.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/template_sign_rot_1", + "textures": { + "all": "farmersdelight:block/pink_canvas_sign", + "particle": "minecraft:block/spruce_planks" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/farmersdelight/models/block/pink_canvas_sign_rot_2.json b/src/generated/resources/assets/farmersdelight/models/block/pink_canvas_sign_rot_2.json new file mode 100644 index 000000000..86d2947b0 --- /dev/null +++ b/src/generated/resources/assets/farmersdelight/models/block/pink_canvas_sign_rot_2.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/template_sign_rot_2", + "textures": { + "all": "farmersdelight:block/pink_canvas_sign", + "particle": "minecraft:block/spruce_planks" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/farmersdelight/models/block/pink_canvas_sign_rot_3.json b/src/generated/resources/assets/farmersdelight/models/block/pink_canvas_sign_rot_3.json new file mode 100644 index 000000000..47f28b970 --- /dev/null +++ b/src/generated/resources/assets/farmersdelight/models/block/pink_canvas_sign_rot_3.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/template_sign_rot_3", + "textures": { + "all": "farmersdelight:block/pink_canvas_sign", + "particle": "minecraft:block/spruce_planks" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/farmersdelight/models/block/pink_canvas_wall_sign.json b/src/generated/resources/assets/farmersdelight/models/block/pink_canvas_wall_sign.json new file mode 100644 index 000000000..48de41360 --- /dev/null +++ b/src/generated/resources/assets/farmersdelight/models/block/pink_canvas_wall_sign.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/template_wall_sign", + "textures": { + "all": "farmersdelight:block/pink_canvas_sign", + "particle": "minecraft:block/spruce_planks" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/farmersdelight/models/block/pink_hanging_canvas_sign_attached_rot_0.json b/src/generated/resources/assets/farmersdelight/models/block/pink_hanging_canvas_sign_attached_rot_0.json new file mode 100644 index 000000000..536365a11 --- /dev/null +++ b/src/generated/resources/assets/farmersdelight/models/block/pink_hanging_canvas_sign_attached_rot_0.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/template_attached_hanging_sign_rot_0", + "textures": { + "all": "farmersdelight:block/pink_hanging_canvas_sign", + "particle": "minecraft:block/stripped_spruce_log" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/farmersdelight/models/block/pink_hanging_canvas_sign_attached_rot_1.json b/src/generated/resources/assets/farmersdelight/models/block/pink_hanging_canvas_sign_attached_rot_1.json new file mode 100644 index 000000000..d92a01240 --- /dev/null +++ b/src/generated/resources/assets/farmersdelight/models/block/pink_hanging_canvas_sign_attached_rot_1.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/template_attached_hanging_sign_rot_1", + "textures": { + "all": "farmersdelight:block/pink_hanging_canvas_sign", + "particle": "minecraft:block/stripped_spruce_log" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/farmersdelight/models/block/pink_hanging_canvas_sign_attached_rot_2.json b/src/generated/resources/assets/farmersdelight/models/block/pink_hanging_canvas_sign_attached_rot_2.json new file mode 100644 index 000000000..9137eff6b --- /dev/null +++ b/src/generated/resources/assets/farmersdelight/models/block/pink_hanging_canvas_sign_attached_rot_2.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/template_attached_hanging_sign_rot_2", + "textures": { + "all": "farmersdelight:block/pink_hanging_canvas_sign", + "particle": "minecraft:block/stripped_spruce_log" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/farmersdelight/models/block/pink_hanging_canvas_sign_attached_rot_3.json b/src/generated/resources/assets/farmersdelight/models/block/pink_hanging_canvas_sign_attached_rot_3.json new file mode 100644 index 000000000..4fd0a58ef --- /dev/null +++ b/src/generated/resources/assets/farmersdelight/models/block/pink_hanging_canvas_sign_attached_rot_3.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/template_attached_hanging_sign_rot_3", + "textures": { + "all": "farmersdelight:block/pink_hanging_canvas_sign", + "particle": "minecraft:block/stripped_spruce_log" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/farmersdelight/models/block/pink_hanging_canvas_sign_rot_0.json b/src/generated/resources/assets/farmersdelight/models/block/pink_hanging_canvas_sign_rot_0.json new file mode 100644 index 000000000..40013a472 --- /dev/null +++ b/src/generated/resources/assets/farmersdelight/models/block/pink_hanging_canvas_sign_rot_0.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/template_hanging_sign_rot_0", + "textures": { + "all": "farmersdelight:block/pink_hanging_canvas_sign", + "particle": "minecraft:block/stripped_spruce_log" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/farmersdelight/models/block/pink_hanging_canvas_sign_rot_1.json b/src/generated/resources/assets/farmersdelight/models/block/pink_hanging_canvas_sign_rot_1.json new file mode 100644 index 000000000..355916f32 --- /dev/null +++ b/src/generated/resources/assets/farmersdelight/models/block/pink_hanging_canvas_sign_rot_1.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/template_hanging_sign_rot_1", + "textures": { + "all": "farmersdelight:block/pink_hanging_canvas_sign", + "particle": "minecraft:block/stripped_spruce_log" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/farmersdelight/models/block/pink_hanging_canvas_sign_rot_2.json b/src/generated/resources/assets/farmersdelight/models/block/pink_hanging_canvas_sign_rot_2.json new file mode 100644 index 000000000..03a8c4697 --- /dev/null +++ b/src/generated/resources/assets/farmersdelight/models/block/pink_hanging_canvas_sign_rot_2.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/template_hanging_sign_rot_2", + "textures": { + "all": "farmersdelight:block/pink_hanging_canvas_sign", + "particle": "minecraft:block/stripped_spruce_log" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/farmersdelight/models/block/pink_hanging_canvas_sign_rot_3.json b/src/generated/resources/assets/farmersdelight/models/block/pink_hanging_canvas_sign_rot_3.json new file mode 100644 index 000000000..65801596b --- /dev/null +++ b/src/generated/resources/assets/farmersdelight/models/block/pink_hanging_canvas_sign_rot_3.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/template_hanging_sign_rot_3", + "textures": { + "all": "farmersdelight:block/pink_hanging_canvas_sign", + "particle": "minecraft:block/stripped_spruce_log" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/farmersdelight/models/block/pink_wall_hanging_canvas_sign.json b/src/generated/resources/assets/farmersdelight/models/block/pink_wall_hanging_canvas_sign.json new file mode 100644 index 000000000..6c8619444 --- /dev/null +++ b/src/generated/resources/assets/farmersdelight/models/block/pink_wall_hanging_canvas_sign.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/template_wall_hanging_sign", + "textures": { + "all": "farmersdelight:block/pink_hanging_canvas_sign", + "particle": "minecraft:block/stripped_spruce_log" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/farmersdelight/models/block/purple_canvas_sign_rot_0.json b/src/generated/resources/assets/farmersdelight/models/block/purple_canvas_sign_rot_0.json new file mode 100644 index 000000000..bbde3b7c2 --- /dev/null +++ b/src/generated/resources/assets/farmersdelight/models/block/purple_canvas_sign_rot_0.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/template_sign_rot_0", + "textures": { + "all": "farmersdelight:block/purple_canvas_sign", + "particle": "minecraft:block/spruce_planks" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/farmersdelight/models/block/purple_canvas_sign_rot_1.json b/src/generated/resources/assets/farmersdelight/models/block/purple_canvas_sign_rot_1.json new file mode 100644 index 000000000..8e7c10074 --- /dev/null +++ b/src/generated/resources/assets/farmersdelight/models/block/purple_canvas_sign_rot_1.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/template_sign_rot_1", + "textures": { + "all": "farmersdelight:block/purple_canvas_sign", + "particle": "minecraft:block/spruce_planks" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/farmersdelight/models/block/purple_canvas_sign_rot_2.json b/src/generated/resources/assets/farmersdelight/models/block/purple_canvas_sign_rot_2.json new file mode 100644 index 000000000..13a4ede18 --- /dev/null +++ b/src/generated/resources/assets/farmersdelight/models/block/purple_canvas_sign_rot_2.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/template_sign_rot_2", + "textures": { + "all": "farmersdelight:block/purple_canvas_sign", + "particle": "minecraft:block/spruce_planks" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/farmersdelight/models/block/purple_canvas_sign_rot_3.json b/src/generated/resources/assets/farmersdelight/models/block/purple_canvas_sign_rot_3.json new file mode 100644 index 000000000..8894d7c5b --- /dev/null +++ b/src/generated/resources/assets/farmersdelight/models/block/purple_canvas_sign_rot_3.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/template_sign_rot_3", + "textures": { + "all": "farmersdelight:block/purple_canvas_sign", + "particle": "minecraft:block/spruce_planks" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/farmersdelight/models/block/purple_canvas_wall_sign.json b/src/generated/resources/assets/farmersdelight/models/block/purple_canvas_wall_sign.json new file mode 100644 index 000000000..f120c933d --- /dev/null +++ b/src/generated/resources/assets/farmersdelight/models/block/purple_canvas_wall_sign.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/template_wall_sign", + "textures": { + "all": "farmersdelight:block/purple_canvas_sign", + "particle": "minecraft:block/spruce_planks" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/farmersdelight/models/block/purple_hanging_canvas_sign_attached_rot_0.json b/src/generated/resources/assets/farmersdelight/models/block/purple_hanging_canvas_sign_attached_rot_0.json new file mode 100644 index 000000000..806595261 --- /dev/null +++ b/src/generated/resources/assets/farmersdelight/models/block/purple_hanging_canvas_sign_attached_rot_0.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/template_attached_hanging_sign_rot_0", + "textures": { + "all": "farmersdelight:block/purple_hanging_canvas_sign", + "particle": "minecraft:block/stripped_spruce_log" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/farmersdelight/models/block/purple_hanging_canvas_sign_attached_rot_1.json b/src/generated/resources/assets/farmersdelight/models/block/purple_hanging_canvas_sign_attached_rot_1.json new file mode 100644 index 000000000..51b96c3da --- /dev/null +++ b/src/generated/resources/assets/farmersdelight/models/block/purple_hanging_canvas_sign_attached_rot_1.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/template_attached_hanging_sign_rot_1", + "textures": { + "all": "farmersdelight:block/purple_hanging_canvas_sign", + "particle": "minecraft:block/stripped_spruce_log" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/farmersdelight/models/block/purple_hanging_canvas_sign_attached_rot_2.json b/src/generated/resources/assets/farmersdelight/models/block/purple_hanging_canvas_sign_attached_rot_2.json new file mode 100644 index 000000000..039ab66b7 --- /dev/null +++ b/src/generated/resources/assets/farmersdelight/models/block/purple_hanging_canvas_sign_attached_rot_2.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/template_attached_hanging_sign_rot_2", + "textures": { + "all": "farmersdelight:block/purple_hanging_canvas_sign", + "particle": "minecraft:block/stripped_spruce_log" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/farmersdelight/models/block/purple_hanging_canvas_sign_attached_rot_3.json b/src/generated/resources/assets/farmersdelight/models/block/purple_hanging_canvas_sign_attached_rot_3.json new file mode 100644 index 000000000..3fb5b5638 --- /dev/null +++ b/src/generated/resources/assets/farmersdelight/models/block/purple_hanging_canvas_sign_attached_rot_3.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/template_attached_hanging_sign_rot_3", + "textures": { + "all": "farmersdelight:block/purple_hanging_canvas_sign", + "particle": "minecraft:block/stripped_spruce_log" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/farmersdelight/models/block/purple_hanging_canvas_sign_rot_0.json b/src/generated/resources/assets/farmersdelight/models/block/purple_hanging_canvas_sign_rot_0.json new file mode 100644 index 000000000..d053d1002 --- /dev/null +++ b/src/generated/resources/assets/farmersdelight/models/block/purple_hanging_canvas_sign_rot_0.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/template_hanging_sign_rot_0", + "textures": { + "all": "farmersdelight:block/purple_hanging_canvas_sign", + "particle": "minecraft:block/stripped_spruce_log" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/farmersdelight/models/block/purple_hanging_canvas_sign_rot_1.json b/src/generated/resources/assets/farmersdelight/models/block/purple_hanging_canvas_sign_rot_1.json new file mode 100644 index 000000000..32b4096fb --- /dev/null +++ b/src/generated/resources/assets/farmersdelight/models/block/purple_hanging_canvas_sign_rot_1.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/template_hanging_sign_rot_1", + "textures": { + "all": "farmersdelight:block/purple_hanging_canvas_sign", + "particle": "minecraft:block/stripped_spruce_log" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/farmersdelight/models/block/purple_hanging_canvas_sign_rot_2.json b/src/generated/resources/assets/farmersdelight/models/block/purple_hanging_canvas_sign_rot_2.json new file mode 100644 index 000000000..0c054736c --- /dev/null +++ b/src/generated/resources/assets/farmersdelight/models/block/purple_hanging_canvas_sign_rot_2.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/template_hanging_sign_rot_2", + "textures": { + "all": "farmersdelight:block/purple_hanging_canvas_sign", + "particle": "minecraft:block/stripped_spruce_log" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/farmersdelight/models/block/purple_hanging_canvas_sign_rot_3.json b/src/generated/resources/assets/farmersdelight/models/block/purple_hanging_canvas_sign_rot_3.json new file mode 100644 index 000000000..fddb39391 --- /dev/null +++ b/src/generated/resources/assets/farmersdelight/models/block/purple_hanging_canvas_sign_rot_3.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/template_hanging_sign_rot_3", + "textures": { + "all": "farmersdelight:block/purple_hanging_canvas_sign", + "particle": "minecraft:block/stripped_spruce_log" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/farmersdelight/models/block/purple_wall_hanging_canvas_sign.json b/src/generated/resources/assets/farmersdelight/models/block/purple_wall_hanging_canvas_sign.json new file mode 100644 index 000000000..f5dc38292 --- /dev/null +++ b/src/generated/resources/assets/farmersdelight/models/block/purple_wall_hanging_canvas_sign.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/template_wall_hanging_sign", + "textures": { + "all": "farmersdelight:block/purple_hanging_canvas_sign", + "particle": "minecraft:block/stripped_spruce_log" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/farmersdelight/models/block/red_canvas_sign_rot_0.json b/src/generated/resources/assets/farmersdelight/models/block/red_canvas_sign_rot_0.json new file mode 100644 index 000000000..52a28bcb4 --- /dev/null +++ b/src/generated/resources/assets/farmersdelight/models/block/red_canvas_sign_rot_0.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/template_sign_rot_0", + "textures": { + "all": "farmersdelight:block/red_canvas_sign", + "particle": "minecraft:block/spruce_planks" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/farmersdelight/models/block/red_canvas_sign_rot_1.json b/src/generated/resources/assets/farmersdelight/models/block/red_canvas_sign_rot_1.json new file mode 100644 index 000000000..91009992f --- /dev/null +++ b/src/generated/resources/assets/farmersdelight/models/block/red_canvas_sign_rot_1.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/template_sign_rot_1", + "textures": { + "all": "farmersdelight:block/red_canvas_sign", + "particle": "minecraft:block/spruce_planks" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/farmersdelight/models/block/red_canvas_sign_rot_2.json b/src/generated/resources/assets/farmersdelight/models/block/red_canvas_sign_rot_2.json new file mode 100644 index 000000000..d3d7b87f0 --- /dev/null +++ b/src/generated/resources/assets/farmersdelight/models/block/red_canvas_sign_rot_2.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/template_sign_rot_2", + "textures": { + "all": "farmersdelight:block/red_canvas_sign", + "particle": "minecraft:block/spruce_planks" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/farmersdelight/models/block/red_canvas_sign_rot_3.json b/src/generated/resources/assets/farmersdelight/models/block/red_canvas_sign_rot_3.json new file mode 100644 index 000000000..657da32a6 --- /dev/null +++ b/src/generated/resources/assets/farmersdelight/models/block/red_canvas_sign_rot_3.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/template_sign_rot_3", + "textures": { + "all": "farmersdelight:block/red_canvas_sign", + "particle": "minecraft:block/spruce_planks" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/farmersdelight/models/block/red_canvas_wall_sign.json b/src/generated/resources/assets/farmersdelight/models/block/red_canvas_wall_sign.json new file mode 100644 index 000000000..3074fdc7e --- /dev/null +++ b/src/generated/resources/assets/farmersdelight/models/block/red_canvas_wall_sign.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/template_wall_sign", + "textures": { + "all": "farmersdelight:block/red_canvas_sign", + "particle": "minecraft:block/spruce_planks" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/farmersdelight/models/block/red_hanging_canvas_sign_attached_rot_0.json b/src/generated/resources/assets/farmersdelight/models/block/red_hanging_canvas_sign_attached_rot_0.json new file mode 100644 index 000000000..067844f86 --- /dev/null +++ b/src/generated/resources/assets/farmersdelight/models/block/red_hanging_canvas_sign_attached_rot_0.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/template_attached_hanging_sign_rot_0", + "textures": { + "all": "farmersdelight:block/red_hanging_canvas_sign", + "particle": "minecraft:block/stripped_spruce_log" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/farmersdelight/models/block/red_hanging_canvas_sign_attached_rot_1.json b/src/generated/resources/assets/farmersdelight/models/block/red_hanging_canvas_sign_attached_rot_1.json new file mode 100644 index 000000000..ce6a9315d --- /dev/null +++ b/src/generated/resources/assets/farmersdelight/models/block/red_hanging_canvas_sign_attached_rot_1.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/template_attached_hanging_sign_rot_1", + "textures": { + "all": "farmersdelight:block/red_hanging_canvas_sign", + "particle": "minecraft:block/stripped_spruce_log" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/farmersdelight/models/block/red_hanging_canvas_sign_attached_rot_2.json b/src/generated/resources/assets/farmersdelight/models/block/red_hanging_canvas_sign_attached_rot_2.json new file mode 100644 index 000000000..866c7f9ce --- /dev/null +++ b/src/generated/resources/assets/farmersdelight/models/block/red_hanging_canvas_sign_attached_rot_2.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/template_attached_hanging_sign_rot_2", + "textures": { + "all": "farmersdelight:block/red_hanging_canvas_sign", + "particle": "minecraft:block/stripped_spruce_log" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/farmersdelight/models/block/red_hanging_canvas_sign_attached_rot_3.json b/src/generated/resources/assets/farmersdelight/models/block/red_hanging_canvas_sign_attached_rot_3.json new file mode 100644 index 000000000..f684be5a3 --- /dev/null +++ b/src/generated/resources/assets/farmersdelight/models/block/red_hanging_canvas_sign_attached_rot_3.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/template_attached_hanging_sign_rot_3", + "textures": { + "all": "farmersdelight:block/red_hanging_canvas_sign", + "particle": "minecraft:block/stripped_spruce_log" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/farmersdelight/models/block/red_hanging_canvas_sign_rot_0.json b/src/generated/resources/assets/farmersdelight/models/block/red_hanging_canvas_sign_rot_0.json new file mode 100644 index 000000000..a97602461 --- /dev/null +++ b/src/generated/resources/assets/farmersdelight/models/block/red_hanging_canvas_sign_rot_0.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/template_hanging_sign_rot_0", + "textures": { + "all": "farmersdelight:block/red_hanging_canvas_sign", + "particle": "minecraft:block/stripped_spruce_log" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/farmersdelight/models/block/red_hanging_canvas_sign_rot_1.json b/src/generated/resources/assets/farmersdelight/models/block/red_hanging_canvas_sign_rot_1.json new file mode 100644 index 000000000..4ff6ff5e4 --- /dev/null +++ b/src/generated/resources/assets/farmersdelight/models/block/red_hanging_canvas_sign_rot_1.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/template_hanging_sign_rot_1", + "textures": { + "all": "farmersdelight:block/red_hanging_canvas_sign", + "particle": "minecraft:block/stripped_spruce_log" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/farmersdelight/models/block/red_hanging_canvas_sign_rot_2.json b/src/generated/resources/assets/farmersdelight/models/block/red_hanging_canvas_sign_rot_2.json new file mode 100644 index 000000000..a5b6aaf86 --- /dev/null +++ b/src/generated/resources/assets/farmersdelight/models/block/red_hanging_canvas_sign_rot_2.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/template_hanging_sign_rot_2", + "textures": { + "all": "farmersdelight:block/red_hanging_canvas_sign", + "particle": "minecraft:block/stripped_spruce_log" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/farmersdelight/models/block/red_hanging_canvas_sign_rot_3.json b/src/generated/resources/assets/farmersdelight/models/block/red_hanging_canvas_sign_rot_3.json new file mode 100644 index 000000000..6fa23ff4e --- /dev/null +++ b/src/generated/resources/assets/farmersdelight/models/block/red_hanging_canvas_sign_rot_3.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/template_hanging_sign_rot_3", + "textures": { + "all": "farmersdelight:block/red_hanging_canvas_sign", + "particle": "minecraft:block/stripped_spruce_log" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/farmersdelight/models/block/red_wall_hanging_canvas_sign.json b/src/generated/resources/assets/farmersdelight/models/block/red_wall_hanging_canvas_sign.json new file mode 100644 index 000000000..68ff5be9e --- /dev/null +++ b/src/generated/resources/assets/farmersdelight/models/block/red_wall_hanging_canvas_sign.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/template_wall_hanging_sign", + "textures": { + "all": "farmersdelight:block/red_hanging_canvas_sign", + "particle": "minecraft:block/stripped_spruce_log" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/farmersdelight/models/block/wall_hanging_canvas_sign.json b/src/generated/resources/assets/farmersdelight/models/block/wall_hanging_canvas_sign.json new file mode 100644 index 000000000..5378e3145 --- /dev/null +++ b/src/generated/resources/assets/farmersdelight/models/block/wall_hanging_canvas_sign.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/template_wall_hanging_sign", + "textures": { + "all": "farmersdelight:block/hanging_canvas_sign", + "particle": "minecraft:block/stripped_spruce_log" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/farmersdelight/models/block/white_canvas_sign_rot_0.json b/src/generated/resources/assets/farmersdelight/models/block/white_canvas_sign_rot_0.json new file mode 100644 index 000000000..8a403cebb --- /dev/null +++ b/src/generated/resources/assets/farmersdelight/models/block/white_canvas_sign_rot_0.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/template_sign_rot_0", + "textures": { + "all": "farmersdelight:block/white_canvas_sign", + "particle": "minecraft:block/spruce_planks" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/farmersdelight/models/block/white_canvas_sign_rot_1.json b/src/generated/resources/assets/farmersdelight/models/block/white_canvas_sign_rot_1.json new file mode 100644 index 000000000..3740d55b4 --- /dev/null +++ b/src/generated/resources/assets/farmersdelight/models/block/white_canvas_sign_rot_1.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/template_sign_rot_1", + "textures": { + "all": "farmersdelight:block/white_canvas_sign", + "particle": "minecraft:block/spruce_planks" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/farmersdelight/models/block/white_canvas_sign_rot_2.json b/src/generated/resources/assets/farmersdelight/models/block/white_canvas_sign_rot_2.json new file mode 100644 index 000000000..e5d92cb27 --- /dev/null +++ b/src/generated/resources/assets/farmersdelight/models/block/white_canvas_sign_rot_2.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/template_sign_rot_2", + "textures": { + "all": "farmersdelight:block/white_canvas_sign", + "particle": "minecraft:block/spruce_planks" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/farmersdelight/models/block/white_canvas_sign_rot_3.json b/src/generated/resources/assets/farmersdelight/models/block/white_canvas_sign_rot_3.json new file mode 100644 index 000000000..93c8a0f93 --- /dev/null +++ b/src/generated/resources/assets/farmersdelight/models/block/white_canvas_sign_rot_3.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/template_sign_rot_3", + "textures": { + "all": "farmersdelight:block/white_canvas_sign", + "particle": "minecraft:block/spruce_planks" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/farmersdelight/models/block/white_canvas_wall_sign.json b/src/generated/resources/assets/farmersdelight/models/block/white_canvas_wall_sign.json new file mode 100644 index 000000000..8db04a822 --- /dev/null +++ b/src/generated/resources/assets/farmersdelight/models/block/white_canvas_wall_sign.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/template_wall_sign", + "textures": { + "all": "farmersdelight:block/white_canvas_sign", + "particle": "minecraft:block/spruce_planks" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/farmersdelight/models/block/white_hanging_canvas_sign_attached_rot_0.json b/src/generated/resources/assets/farmersdelight/models/block/white_hanging_canvas_sign_attached_rot_0.json new file mode 100644 index 000000000..d076bfc91 --- /dev/null +++ b/src/generated/resources/assets/farmersdelight/models/block/white_hanging_canvas_sign_attached_rot_0.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/template_attached_hanging_sign_rot_0", + "textures": { + "all": "farmersdelight:block/white_hanging_canvas_sign", + "particle": "minecraft:block/stripped_spruce_log" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/farmersdelight/models/block/white_hanging_canvas_sign_attached_rot_1.json b/src/generated/resources/assets/farmersdelight/models/block/white_hanging_canvas_sign_attached_rot_1.json new file mode 100644 index 000000000..36fa0497d --- /dev/null +++ b/src/generated/resources/assets/farmersdelight/models/block/white_hanging_canvas_sign_attached_rot_1.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/template_attached_hanging_sign_rot_1", + "textures": { + "all": "farmersdelight:block/white_hanging_canvas_sign", + "particle": "minecraft:block/stripped_spruce_log" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/farmersdelight/models/block/white_hanging_canvas_sign_attached_rot_2.json b/src/generated/resources/assets/farmersdelight/models/block/white_hanging_canvas_sign_attached_rot_2.json new file mode 100644 index 000000000..d58b38687 --- /dev/null +++ b/src/generated/resources/assets/farmersdelight/models/block/white_hanging_canvas_sign_attached_rot_2.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/template_attached_hanging_sign_rot_2", + "textures": { + "all": "farmersdelight:block/white_hanging_canvas_sign", + "particle": "minecraft:block/stripped_spruce_log" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/farmersdelight/models/block/white_hanging_canvas_sign_attached_rot_3.json b/src/generated/resources/assets/farmersdelight/models/block/white_hanging_canvas_sign_attached_rot_3.json new file mode 100644 index 000000000..e88856f2b --- /dev/null +++ b/src/generated/resources/assets/farmersdelight/models/block/white_hanging_canvas_sign_attached_rot_3.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/template_attached_hanging_sign_rot_3", + "textures": { + "all": "farmersdelight:block/white_hanging_canvas_sign", + "particle": "minecraft:block/stripped_spruce_log" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/farmersdelight/models/block/white_hanging_canvas_sign_rot_0.json b/src/generated/resources/assets/farmersdelight/models/block/white_hanging_canvas_sign_rot_0.json new file mode 100644 index 000000000..1f9439459 --- /dev/null +++ b/src/generated/resources/assets/farmersdelight/models/block/white_hanging_canvas_sign_rot_0.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/template_hanging_sign_rot_0", + "textures": { + "all": "farmersdelight:block/white_hanging_canvas_sign", + "particle": "minecraft:block/stripped_spruce_log" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/farmersdelight/models/block/white_hanging_canvas_sign_rot_1.json b/src/generated/resources/assets/farmersdelight/models/block/white_hanging_canvas_sign_rot_1.json new file mode 100644 index 000000000..ec5cd8e99 --- /dev/null +++ b/src/generated/resources/assets/farmersdelight/models/block/white_hanging_canvas_sign_rot_1.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/template_hanging_sign_rot_1", + "textures": { + "all": "farmersdelight:block/white_hanging_canvas_sign", + "particle": "minecraft:block/stripped_spruce_log" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/farmersdelight/models/block/white_hanging_canvas_sign_rot_2.json b/src/generated/resources/assets/farmersdelight/models/block/white_hanging_canvas_sign_rot_2.json new file mode 100644 index 000000000..2e97bb2fd --- /dev/null +++ b/src/generated/resources/assets/farmersdelight/models/block/white_hanging_canvas_sign_rot_2.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/template_hanging_sign_rot_2", + "textures": { + "all": "farmersdelight:block/white_hanging_canvas_sign", + "particle": "minecraft:block/stripped_spruce_log" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/farmersdelight/models/block/white_hanging_canvas_sign_rot_3.json b/src/generated/resources/assets/farmersdelight/models/block/white_hanging_canvas_sign_rot_3.json new file mode 100644 index 000000000..d0b400632 --- /dev/null +++ b/src/generated/resources/assets/farmersdelight/models/block/white_hanging_canvas_sign_rot_3.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/template_hanging_sign_rot_3", + "textures": { + "all": "farmersdelight:block/white_hanging_canvas_sign", + "particle": "minecraft:block/stripped_spruce_log" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/farmersdelight/models/block/white_wall_hanging_canvas_sign.json b/src/generated/resources/assets/farmersdelight/models/block/white_wall_hanging_canvas_sign.json new file mode 100644 index 000000000..46d9e34b5 --- /dev/null +++ b/src/generated/resources/assets/farmersdelight/models/block/white_wall_hanging_canvas_sign.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/template_wall_hanging_sign", + "textures": { + "all": "farmersdelight:block/white_hanging_canvas_sign", + "particle": "minecraft:block/stripped_spruce_log" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/farmersdelight/models/block/yellow_canvas_sign_rot_0.json b/src/generated/resources/assets/farmersdelight/models/block/yellow_canvas_sign_rot_0.json new file mode 100644 index 000000000..dd9854ad1 --- /dev/null +++ b/src/generated/resources/assets/farmersdelight/models/block/yellow_canvas_sign_rot_0.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/template_sign_rot_0", + "textures": { + "all": "farmersdelight:block/yellow_canvas_sign", + "particle": "minecraft:block/spruce_planks" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/farmersdelight/models/block/yellow_canvas_sign_rot_1.json b/src/generated/resources/assets/farmersdelight/models/block/yellow_canvas_sign_rot_1.json new file mode 100644 index 000000000..8b5382692 --- /dev/null +++ b/src/generated/resources/assets/farmersdelight/models/block/yellow_canvas_sign_rot_1.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/template_sign_rot_1", + "textures": { + "all": "farmersdelight:block/yellow_canvas_sign", + "particle": "minecraft:block/spruce_planks" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/farmersdelight/models/block/yellow_canvas_sign_rot_2.json b/src/generated/resources/assets/farmersdelight/models/block/yellow_canvas_sign_rot_2.json new file mode 100644 index 000000000..4ae610990 --- /dev/null +++ b/src/generated/resources/assets/farmersdelight/models/block/yellow_canvas_sign_rot_2.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/template_sign_rot_2", + "textures": { + "all": "farmersdelight:block/yellow_canvas_sign", + "particle": "minecraft:block/spruce_planks" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/farmersdelight/models/block/yellow_canvas_sign_rot_3.json b/src/generated/resources/assets/farmersdelight/models/block/yellow_canvas_sign_rot_3.json new file mode 100644 index 000000000..c116ee84f --- /dev/null +++ b/src/generated/resources/assets/farmersdelight/models/block/yellow_canvas_sign_rot_3.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/template_sign_rot_3", + "textures": { + "all": "farmersdelight:block/yellow_canvas_sign", + "particle": "minecraft:block/spruce_planks" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/farmersdelight/models/block/yellow_canvas_wall_sign.json b/src/generated/resources/assets/farmersdelight/models/block/yellow_canvas_wall_sign.json new file mode 100644 index 000000000..8f2492cd5 --- /dev/null +++ b/src/generated/resources/assets/farmersdelight/models/block/yellow_canvas_wall_sign.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/template_wall_sign", + "textures": { + "all": "farmersdelight:block/yellow_canvas_sign", + "particle": "minecraft:block/spruce_planks" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/farmersdelight/models/block/yellow_hanging_canvas_sign_attached_rot_0.json b/src/generated/resources/assets/farmersdelight/models/block/yellow_hanging_canvas_sign_attached_rot_0.json new file mode 100644 index 000000000..c837b726a --- /dev/null +++ b/src/generated/resources/assets/farmersdelight/models/block/yellow_hanging_canvas_sign_attached_rot_0.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/template_attached_hanging_sign_rot_0", + "textures": { + "all": "farmersdelight:block/yellow_hanging_canvas_sign", + "particle": "minecraft:block/stripped_spruce_log" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/farmersdelight/models/block/yellow_hanging_canvas_sign_attached_rot_1.json b/src/generated/resources/assets/farmersdelight/models/block/yellow_hanging_canvas_sign_attached_rot_1.json new file mode 100644 index 000000000..e93a997aa --- /dev/null +++ b/src/generated/resources/assets/farmersdelight/models/block/yellow_hanging_canvas_sign_attached_rot_1.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/template_attached_hanging_sign_rot_1", + "textures": { + "all": "farmersdelight:block/yellow_hanging_canvas_sign", + "particle": "minecraft:block/stripped_spruce_log" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/farmersdelight/models/block/yellow_hanging_canvas_sign_attached_rot_2.json b/src/generated/resources/assets/farmersdelight/models/block/yellow_hanging_canvas_sign_attached_rot_2.json new file mode 100644 index 000000000..364417685 --- /dev/null +++ b/src/generated/resources/assets/farmersdelight/models/block/yellow_hanging_canvas_sign_attached_rot_2.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/template_attached_hanging_sign_rot_2", + "textures": { + "all": "farmersdelight:block/yellow_hanging_canvas_sign", + "particle": "minecraft:block/stripped_spruce_log" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/farmersdelight/models/block/yellow_hanging_canvas_sign_attached_rot_3.json b/src/generated/resources/assets/farmersdelight/models/block/yellow_hanging_canvas_sign_attached_rot_3.json new file mode 100644 index 000000000..510486709 --- /dev/null +++ b/src/generated/resources/assets/farmersdelight/models/block/yellow_hanging_canvas_sign_attached_rot_3.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/template_attached_hanging_sign_rot_3", + "textures": { + "all": "farmersdelight:block/yellow_hanging_canvas_sign", + "particle": "minecraft:block/stripped_spruce_log" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/farmersdelight/models/block/yellow_hanging_canvas_sign_rot_0.json b/src/generated/resources/assets/farmersdelight/models/block/yellow_hanging_canvas_sign_rot_0.json new file mode 100644 index 000000000..7bd240a48 --- /dev/null +++ b/src/generated/resources/assets/farmersdelight/models/block/yellow_hanging_canvas_sign_rot_0.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/template_hanging_sign_rot_0", + "textures": { + "all": "farmersdelight:block/yellow_hanging_canvas_sign", + "particle": "minecraft:block/stripped_spruce_log" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/farmersdelight/models/block/yellow_hanging_canvas_sign_rot_1.json b/src/generated/resources/assets/farmersdelight/models/block/yellow_hanging_canvas_sign_rot_1.json new file mode 100644 index 000000000..45dc3a41c --- /dev/null +++ b/src/generated/resources/assets/farmersdelight/models/block/yellow_hanging_canvas_sign_rot_1.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/template_hanging_sign_rot_1", + "textures": { + "all": "farmersdelight:block/yellow_hanging_canvas_sign", + "particle": "minecraft:block/stripped_spruce_log" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/farmersdelight/models/block/yellow_hanging_canvas_sign_rot_2.json b/src/generated/resources/assets/farmersdelight/models/block/yellow_hanging_canvas_sign_rot_2.json new file mode 100644 index 000000000..a6002cca2 --- /dev/null +++ b/src/generated/resources/assets/farmersdelight/models/block/yellow_hanging_canvas_sign_rot_2.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/template_hanging_sign_rot_2", + "textures": { + "all": "farmersdelight:block/yellow_hanging_canvas_sign", + "particle": "minecraft:block/stripped_spruce_log" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/farmersdelight/models/block/yellow_hanging_canvas_sign_rot_3.json b/src/generated/resources/assets/farmersdelight/models/block/yellow_hanging_canvas_sign_rot_3.json new file mode 100644 index 000000000..028230ab2 --- /dev/null +++ b/src/generated/resources/assets/farmersdelight/models/block/yellow_hanging_canvas_sign_rot_3.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/template_hanging_sign_rot_3", + "textures": { + "all": "farmersdelight:block/yellow_hanging_canvas_sign", + "particle": "minecraft:block/stripped_spruce_log" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/farmersdelight/models/block/yellow_wall_hanging_canvas_sign.json b/src/generated/resources/assets/farmersdelight/models/block/yellow_wall_hanging_canvas_sign.json new file mode 100644 index 000000000..faefe380b --- /dev/null +++ b/src/generated/resources/assets/farmersdelight/models/block/yellow_wall_hanging_canvas_sign.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/template_wall_hanging_sign", + "textures": { + "all": "farmersdelight:block/yellow_hanging_canvas_sign", + "particle": "minecraft:block/stripped_spruce_log" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/farmersdelight/models/item/acacia_cabinet.json b/src/generated/resources/assets/farmersdelight/models/item/acacia_cabinet.json deleted file mode 100644 index 2f719f675..000000000 --- a/src/generated/resources/assets/farmersdelight/models/item/acacia_cabinet.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "farmersdelight:block/acacia_cabinet" -} \ No newline at end of file diff --git a/src/generated/resources/assets/farmersdelight/models/item/bamboo_basket.json b/src/generated/resources/assets/farmersdelight/models/item/bamboo_basket.json deleted file mode 100644 index 514d8b1a4..000000000 --- a/src/generated/resources/assets/farmersdelight/models/item/bamboo_basket.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "farmersdelight:block/bamboo_basket" -} \ No newline at end of file diff --git a/src/generated/resources/assets/farmersdelight/models/item/bamboo_cabinet.json b/src/generated/resources/assets/farmersdelight/models/item/bamboo_cabinet.json deleted file mode 100644 index 60b9fbc16..000000000 --- a/src/generated/resources/assets/farmersdelight/models/item/bamboo_cabinet.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "farmersdelight:block/bamboo_cabinet" -} \ No newline at end of file diff --git a/src/generated/resources/assets/farmersdelight/models/item/beetroot_crate.json b/src/generated/resources/assets/farmersdelight/models/item/beetroot_crate.json deleted file mode 100644 index 2c7ddca98..000000000 --- a/src/generated/resources/assets/farmersdelight/models/item/beetroot_crate.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "farmersdelight:block/beetroot_crate" -} \ No newline at end of file diff --git a/src/generated/resources/assets/farmersdelight/models/item/birch_cabinet.json b/src/generated/resources/assets/farmersdelight/models/item/birch_cabinet.json deleted file mode 100644 index 4564fa381..000000000 --- a/src/generated/resources/assets/farmersdelight/models/item/birch_cabinet.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "farmersdelight:block/birch_cabinet" -} \ No newline at end of file diff --git a/src/generated/resources/assets/farmersdelight/models/item/cabbage_crate.json b/src/generated/resources/assets/farmersdelight/models/item/cabbage_crate.json deleted file mode 100644 index 179e6fccb..000000000 --- a/src/generated/resources/assets/farmersdelight/models/item/cabbage_crate.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "farmersdelight:block/cabbage_crate" -} \ No newline at end of file diff --git a/src/generated/resources/assets/farmersdelight/models/item/canvas_rug.json b/src/generated/resources/assets/farmersdelight/models/item/canvas_rug.json deleted file mode 100644 index 15f3ba600..000000000 --- a/src/generated/resources/assets/farmersdelight/models/item/canvas_rug.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "farmersdelight:block/canvas_rug" -} \ No newline at end of file diff --git a/src/generated/resources/assets/farmersdelight/models/item/carrot_crate.json b/src/generated/resources/assets/farmersdelight/models/item/carrot_crate.json deleted file mode 100644 index 8dfee3095..000000000 --- a/src/generated/resources/assets/farmersdelight/models/item/carrot_crate.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "farmersdelight:block/carrot_crate" -} \ No newline at end of file diff --git a/src/generated/resources/assets/farmersdelight/models/item/cherry_cabinet.json b/src/generated/resources/assets/farmersdelight/models/item/cherry_cabinet.json deleted file mode 100644 index 72a299e23..000000000 --- a/src/generated/resources/assets/farmersdelight/models/item/cherry_cabinet.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "farmersdelight:block/cherry_cabinet" -} \ No newline at end of file diff --git a/src/generated/resources/assets/farmersdelight/models/item/cooking_pot.json b/src/generated/resources/assets/farmersdelight/models/item/cooking_pot.json deleted file mode 100644 index 71d203445..000000000 --- a/src/generated/resources/assets/farmersdelight/models/item/cooking_pot.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "farmersdelight:block/cooking_pot" -} \ No newline at end of file diff --git a/src/generated/resources/assets/farmersdelight/models/item/crimson_cabinet.json b/src/generated/resources/assets/farmersdelight/models/item/crimson_cabinet.json deleted file mode 100644 index ce72f8be2..000000000 --- a/src/generated/resources/assets/farmersdelight/models/item/crimson_cabinet.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "farmersdelight:block/crimson_cabinet" -} \ No newline at end of file diff --git a/src/generated/resources/assets/farmersdelight/models/item/cutting_board.json b/src/generated/resources/assets/farmersdelight/models/item/cutting_board.json deleted file mode 100644 index 88c1c5685..000000000 --- a/src/generated/resources/assets/farmersdelight/models/item/cutting_board.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "farmersdelight:block/cutting_board" -} \ No newline at end of file diff --git a/src/generated/resources/assets/farmersdelight/models/item/dark_oak_cabinet.json b/src/generated/resources/assets/farmersdelight/models/item/dark_oak_cabinet.json deleted file mode 100644 index f77c10a2c..000000000 --- a/src/generated/resources/assets/farmersdelight/models/item/dark_oak_cabinet.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "farmersdelight:block/dark_oak_cabinet" -} \ No newline at end of file diff --git a/src/generated/resources/assets/farmersdelight/models/item/jungle_cabinet.json b/src/generated/resources/assets/farmersdelight/models/item/jungle_cabinet.json deleted file mode 100644 index fcd78357a..000000000 --- a/src/generated/resources/assets/farmersdelight/models/item/jungle_cabinet.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "farmersdelight:block/jungle_cabinet" -} \ No newline at end of file diff --git a/src/generated/resources/assets/farmersdelight/models/item/mangrove_cabinet.json b/src/generated/resources/assets/farmersdelight/models/item/mangrove_cabinet.json deleted file mode 100644 index 16d14cbfd..000000000 --- a/src/generated/resources/assets/farmersdelight/models/item/mangrove_cabinet.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "farmersdelight:block/mangrove_cabinet" -} \ No newline at end of file diff --git a/src/generated/resources/assets/farmersdelight/models/item/oak_cabinet.json b/src/generated/resources/assets/farmersdelight/models/item/oak_cabinet.json deleted file mode 100644 index e120e55a9..000000000 --- a/src/generated/resources/assets/farmersdelight/models/item/oak_cabinet.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "farmersdelight:block/oak_cabinet" -} \ No newline at end of file diff --git a/src/generated/resources/assets/farmersdelight/models/item/onion_crate.json b/src/generated/resources/assets/farmersdelight/models/item/onion_crate.json deleted file mode 100644 index 4deade2c9..000000000 --- a/src/generated/resources/assets/farmersdelight/models/item/onion_crate.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "farmersdelight:block/onion_crate" -} \ No newline at end of file diff --git a/src/generated/resources/assets/farmersdelight/models/item/organic_compost.json b/src/generated/resources/assets/farmersdelight/models/item/organic_compost.json deleted file mode 100644 index 80cb2c335..000000000 --- a/src/generated/resources/assets/farmersdelight/models/item/organic_compost.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "farmersdelight:block/organic_compost_stage0" -} \ No newline at end of file diff --git a/src/generated/resources/assets/farmersdelight/models/item/potato_crate.json b/src/generated/resources/assets/farmersdelight/models/item/potato_crate.json deleted file mode 100644 index a7421e3a5..000000000 --- a/src/generated/resources/assets/farmersdelight/models/item/potato_crate.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "farmersdelight:block/potato_crate" -} \ No newline at end of file diff --git a/src/generated/resources/assets/farmersdelight/models/item/rice_bag.json b/src/generated/resources/assets/farmersdelight/models/item/rice_bag.json deleted file mode 100644 index 0b2a93e0a..000000000 --- a/src/generated/resources/assets/farmersdelight/models/item/rice_bag.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "farmersdelight:block/rice_bag" -} \ No newline at end of file diff --git a/src/generated/resources/assets/farmersdelight/models/item/rice_bale.json b/src/generated/resources/assets/farmersdelight/models/item/rice_bale.json deleted file mode 100644 index 5343c4b91..000000000 --- a/src/generated/resources/assets/farmersdelight/models/item/rice_bale.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "farmersdelight:block/rice_bale" -} \ No newline at end of file diff --git a/src/generated/resources/assets/farmersdelight/models/item/rich_soil.json b/src/generated/resources/assets/farmersdelight/models/item/rich_soil.json deleted file mode 100644 index dca4649f3..000000000 --- a/src/generated/resources/assets/farmersdelight/models/item/rich_soil.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "farmersdelight:block/rich_soil" -} \ No newline at end of file diff --git a/src/generated/resources/assets/farmersdelight/models/item/rich_soil_farmland.json b/src/generated/resources/assets/farmersdelight/models/item/rich_soil_farmland.json deleted file mode 100644 index 00a0d17e1..000000000 --- a/src/generated/resources/assets/farmersdelight/models/item/rich_soil_farmland.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "farmersdelight:block/rich_soil_farmland" -} \ No newline at end of file diff --git a/src/generated/resources/assets/farmersdelight/models/item/rope_fence.json b/src/generated/resources/assets/farmersdelight/models/item/rope_fence.json deleted file mode 100644 index 76bd1da06..000000000 --- a/src/generated/resources/assets/farmersdelight/models/item/rope_fence.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "farmersdelight:block/rope_fence_inventory" -} \ No newline at end of file diff --git a/src/generated/resources/assets/farmersdelight/models/item/rope_fence_gate.json b/src/generated/resources/assets/farmersdelight/models/item/rope_fence_gate.json deleted file mode 100644 index 563aa8c08..000000000 --- a/src/generated/resources/assets/farmersdelight/models/item/rope_fence_gate.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "farmersdelight:block/rope_fence_gate" -} \ No newline at end of file diff --git a/src/generated/resources/assets/farmersdelight/models/item/spruce_cabinet.json b/src/generated/resources/assets/farmersdelight/models/item/spruce_cabinet.json deleted file mode 100644 index 36839c250..000000000 --- a/src/generated/resources/assets/farmersdelight/models/item/spruce_cabinet.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "farmersdelight:block/spruce_cabinet" -} \ No newline at end of file diff --git a/src/generated/resources/assets/farmersdelight/models/item/stove.json b/src/generated/resources/assets/farmersdelight/models/item/stove.json deleted file mode 100644 index efd00b859..000000000 --- a/src/generated/resources/assets/farmersdelight/models/item/stove.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "farmersdelight:block/stove" -} \ No newline at end of file diff --git a/src/generated/resources/assets/farmersdelight/models/item/straw_bale.json b/src/generated/resources/assets/farmersdelight/models/item/straw_bale.json deleted file mode 100644 index cced2025a..000000000 --- a/src/generated/resources/assets/farmersdelight/models/item/straw_bale.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "farmersdelight:block/straw_bale" -} \ No newline at end of file diff --git a/src/generated/resources/assets/farmersdelight/models/item/tatami.json b/src/generated/resources/assets/farmersdelight/models/item/tatami.json deleted file mode 100644 index 019ee0966..000000000 --- a/src/generated/resources/assets/farmersdelight/models/item/tatami.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "farmersdelight:block/tatami_half" -} \ No newline at end of file diff --git a/src/generated/resources/assets/farmersdelight/models/item/tomato_crate.json b/src/generated/resources/assets/farmersdelight/models/item/tomato_crate.json deleted file mode 100644 index 6f142647a..000000000 --- a/src/generated/resources/assets/farmersdelight/models/item/tomato_crate.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "farmersdelight:block/tomato_crate" -} \ No newline at end of file diff --git a/src/generated/resources/assets/farmersdelight/models/item/warped_cabinet.json b/src/generated/resources/assets/farmersdelight/models/item/warped_cabinet.json deleted file mode 100644 index b686a5dd4..000000000 --- a/src/generated/resources/assets/farmersdelight/models/item/warped_cabinet.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "farmersdelight:block/warped_cabinet" -} \ No newline at end of file diff --git a/src/generated/resources/assets/farmersdelight/models/item/wooden_basket.json b/src/generated/resources/assets/farmersdelight/models/item/wooden_basket.json deleted file mode 100644 index 4dc112a54..000000000 --- a/src/generated/resources/assets/farmersdelight/models/item/wooden_basket.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "farmersdelight:block/wooden_basket" -} \ No newline at end of file diff --git a/src/generated/resources/assets/farmersdelight/sounds.json b/src/generated/resources/assets/farmersdelight/sounds.json index 91e2fc737..d5eaccb07 100644 --- a/src/generated/resources/assets/farmersdelight/sounds.json +++ b/src/generated/resources/assets/farmersdelight/sounds.json @@ -88,7 +88,7 @@ "sounds": [ { "type": "event", - "name": "entity.leash_knot.place" + "name": "item.lead.tied" } ], "subtitle": "subtitles.farmersdelight.block.rope_fence_gate.close" @@ -97,7 +97,7 @@ "sounds": [ { "type": "event", - "name": "entity.leash_knot.break" + "name": "item.lead.untied" } ], "subtitle": "subtitles.farmersdelight.block.rope_fence_gate.open" diff --git a/src/generated/resources/data/farmersdelight/advancement/main/craft_knife.json b/src/generated/resources/data/farmersdelight/advancement/main/craft_knife.json index 24918ace2..45c6958a1 100644 --- a/src/generated/resources/data/farmersdelight/advancement/main/craft_knife.json +++ b/src/generated/resources/data/farmersdelight/advancement/main/craft_knife.json @@ -57,7 +57,6 @@ "translate": "advancements.farmersdelight.craft_knife.description" }, "icon": { - "count": 1, "id": "farmersdelight:flint_knife" }, "title": { diff --git a/src/generated/resources/data/farmersdelight/advancement/main/eat_nourishing_food.json b/src/generated/resources/data/farmersdelight/advancement/main/eat_nourishing_food.json index 0ff00214b..3f81b7902 100644 --- a/src/generated/resources/data/farmersdelight/advancement/main/eat_nourishing_food.json +++ b/src/generated/resources/data/farmersdelight/advancement/main/eat_nourishing_food.json @@ -16,7 +16,6 @@ "translate": "advancements.farmersdelight.eat_nourishing_food.description" }, "icon": { - "count": 1, "id": "farmersdelight:steak_and_potatoes" }, "title": { diff --git a/src/generated/resources/data/farmersdelight/advancement/main/get_fd_seed.json b/src/generated/resources/data/farmersdelight/advancement/main/get_fd_seed.json index 81438b527..31b8cdbf4 100644 --- a/src/generated/resources/data/farmersdelight/advancement/main/get_fd_seed.json +++ b/src/generated/resources/data/farmersdelight/advancement/main/get_fd_seed.json @@ -47,7 +47,6 @@ "translate": "advancements.farmersdelight.get_fd_seed.description" }, "icon": { - "count": 1, "id": "farmersdelight:wild_onions" }, "title": { diff --git a/src/generated/resources/data/farmersdelight/advancement/main/get_ham.json b/src/generated/resources/data/farmersdelight/advancement/main/get_ham.json index 20622291b..44fc52861 100644 --- a/src/generated/resources/data/farmersdelight/advancement/main/get_ham.json +++ b/src/generated/resources/data/farmersdelight/advancement/main/get_ham.json @@ -28,7 +28,6 @@ "translate": "advancements.farmersdelight.get_ham.description" }, "icon": { - "count": 1, "id": "farmersdelight:ham" }, "title": { diff --git a/src/generated/resources/data/farmersdelight/advancement/main/get_mushroom_colony.json b/src/generated/resources/data/farmersdelight/advancement/main/get_mushroom_colony.json index 4efb14e66..1d2e910c5 100644 --- a/src/generated/resources/data/farmersdelight/advancement/main/get_mushroom_colony.json +++ b/src/generated/resources/data/farmersdelight/advancement/main/get_mushroom_colony.json @@ -28,7 +28,6 @@ "translate": "advancements.farmersdelight.get_mushroom_colony.description" }, "icon": { - "count": 1, "id": "farmersdelight:red_mushroom_colony" }, "title": { diff --git a/src/generated/resources/data/farmersdelight/advancement/main/get_rich_soil.json b/src/generated/resources/data/farmersdelight/advancement/main/get_rich_soil.json index 5c22de724..260be34ce 100644 --- a/src/generated/resources/data/farmersdelight/advancement/main/get_rich_soil.json +++ b/src/generated/resources/data/farmersdelight/advancement/main/get_rich_soil.json @@ -18,7 +18,6 @@ }, "frame": "goal", "icon": { - "count": 1, "id": "farmersdelight:rich_soil" }, "title": { diff --git a/src/generated/resources/data/farmersdelight/advancement/main/harvest_ropelogged_tomato.json b/src/generated/resources/data/farmersdelight/advancement/main/harvest_ropelogged_tomato.json index c6889f8cc..d74bdbe2a 100644 --- a/src/generated/resources/data/farmersdelight/advancement/main/harvest_ropelogged_tomato.json +++ b/src/generated/resources/data/farmersdelight/advancement/main/harvest_ropelogged_tomato.json @@ -26,7 +26,6 @@ "translate": "advancements.farmersdelight.harvest_ropelogged_tomato.description" }, "icon": { - "count": 1, "id": "farmersdelight:tomato" }, "title": { diff --git a/src/generated/resources/data/farmersdelight/advancement/main/harvest_straw.json b/src/generated/resources/data/farmersdelight/advancement/main/harvest_straw.json index f53efbfbf..98830c499 100644 --- a/src/generated/resources/data/farmersdelight/advancement/main/harvest_straw.json +++ b/src/generated/resources/data/farmersdelight/advancement/main/harvest_straw.json @@ -18,7 +18,6 @@ "translate": "advancements.farmersdelight.harvest_straw.description" }, "icon": { - "count": 1, "id": "farmersdelight:straw" }, "title": { diff --git a/src/generated/resources/data/farmersdelight/advancement/main/hit_raider_with_rotten_tomato.json b/src/generated/resources/data/farmersdelight/advancement/main/hit_raider_with_rotten_tomato.json index fa1c72802..de5898506 100644 --- a/src/generated/resources/data/farmersdelight/advancement/main/hit_raider_with_rotten_tomato.json +++ b/src/generated/resources/data/farmersdelight/advancement/main/hit_raider_with_rotten_tomato.json @@ -6,7 +6,7 @@ "damage": { "type": { "direct_entity": { - "type": "farmersdelight:rotten_tomato" + "minecraft:entity_type": "farmersdelight:rotten_tomato" }, "tags": [ { @@ -21,7 +21,7 @@ "condition": "minecraft:entity_properties", "entity": "this", "predicate": { - "type": "#minecraft:raiders" + "minecraft:entity_type": "#minecraft:raiders" } } ] @@ -34,7 +34,6 @@ "translate": "advancements.farmersdelight.hit_raider_with_rotten_tomato.description" }, "icon": { - "count": 1, "id": "farmersdelight:rotten_tomato" }, "title": { diff --git a/src/generated/resources/data/farmersdelight/advancement/main/master_chef.json b/src/generated/resources/data/farmersdelight/advancement/main/master_chef.json index d90ad619d..2f20ebb9f 100644 --- a/src/generated/resources/data/farmersdelight/advancement/main/master_chef.json +++ b/src/generated/resources/data/farmersdelight/advancement/main/master_chef.json @@ -224,7 +224,6 @@ }, "frame": "challenge", "icon": { - "count": 1, "id": "farmersdelight:honey_glazed_ham" }, "title": { diff --git a/src/generated/resources/data/farmersdelight/advancement/main/obtain_netherite_knife.json b/src/generated/resources/data/farmersdelight/advancement/main/obtain_netherite_knife.json index 0e45b189b..8c9c4a2d4 100644 --- a/src/generated/resources/data/farmersdelight/advancement/main/obtain_netherite_knife.json +++ b/src/generated/resources/data/farmersdelight/advancement/main/obtain_netherite_knife.json @@ -18,7 +18,6 @@ }, "frame": "challenge", "icon": { - "count": 1, "id": "farmersdelight:netherite_knife" }, "title": { diff --git a/src/generated/resources/data/farmersdelight/advancement/main/place_campfire.json b/src/generated/resources/data/farmersdelight/advancement/main/place_campfire.json index ade1a10b1..227843ae9 100644 --- a/src/generated/resources/data/farmersdelight/advancement/main/place_campfire.json +++ b/src/generated/resources/data/farmersdelight/advancement/main/place_campfire.json @@ -29,7 +29,6 @@ "translate": "advancements.farmersdelight.place_campfire.description" }, "icon": { - "count": 1, "id": "minecraft:campfire" }, "title": { diff --git a/src/generated/resources/data/farmersdelight/advancement/main/place_cooking_pot.json b/src/generated/resources/data/farmersdelight/advancement/main/place_cooking_pot.json index 90bc075a5..72deb92e8 100644 --- a/src/generated/resources/data/farmersdelight/advancement/main/place_cooking_pot.json +++ b/src/generated/resources/data/farmersdelight/advancement/main/place_cooking_pot.json @@ -19,7 +19,6 @@ }, "frame": "goal", "icon": { - "count": 1, "id": "farmersdelight:cooking_pot" }, "title": { diff --git a/src/generated/resources/data/farmersdelight/advancement/main/place_feast.json b/src/generated/resources/data/farmersdelight/advancement/main/place_feast.json index a0458852b..960f4c6c6 100644 --- a/src/generated/resources/data/farmersdelight/advancement/main/place_feast.json +++ b/src/generated/resources/data/farmersdelight/advancement/main/place_feast.json @@ -73,7 +73,6 @@ "translate": "advancements.farmersdelight.place_feast.description" }, "icon": { - "count": 1, "id": "farmersdelight:roast_chicken_block" }, "title": { diff --git a/src/generated/resources/data/farmersdelight/advancement/main/place_organic_compost.json b/src/generated/resources/data/farmersdelight/advancement/main/place_organic_compost.json index b51c7ee3b..f63e863ea 100644 --- a/src/generated/resources/data/farmersdelight/advancement/main/place_organic_compost.json +++ b/src/generated/resources/data/farmersdelight/advancement/main/place_organic_compost.json @@ -19,7 +19,6 @@ "translate": "advancements.farmersdelight.place_organic_compost.description" }, "icon": { - "count": 1, "id": "farmersdelight:organic_compost" }, "title": { diff --git a/src/generated/resources/data/farmersdelight/advancement/main/place_skillet.json b/src/generated/resources/data/farmersdelight/advancement/main/place_skillet.json index ac5f12cde..b001e508f 100644 --- a/src/generated/resources/data/farmersdelight/advancement/main/place_skillet.json +++ b/src/generated/resources/data/farmersdelight/advancement/main/place_skillet.json @@ -19,7 +19,6 @@ "translate": "advancements.farmersdelight.place_skillet.description" }, "icon": { - "count": 1, "id": "farmersdelight:skillet" }, "title": { diff --git a/src/generated/resources/data/farmersdelight/advancement/main/plant_all_crops.json b/src/generated/resources/data/farmersdelight/advancement/main/plant_all_crops.json index 07376cd7d..8b3e3d654 100644 --- a/src/generated/resources/data/farmersdelight/advancement/main/plant_all_crops.json +++ b/src/generated/resources/data/farmersdelight/advancement/main/plant_all_crops.json @@ -217,7 +217,6 @@ }, "frame": "challenge", "icon": { - "count": 1, "id": "farmersdelight:cabbage" }, "title": { diff --git a/src/generated/resources/data/farmersdelight/advancement/main/plant_rice.json b/src/generated/resources/data/farmersdelight/advancement/main/plant_rice.json index 503c8cd1a..b09cce672 100644 --- a/src/generated/resources/data/farmersdelight/advancement/main/plant_rice.json +++ b/src/generated/resources/data/farmersdelight/advancement/main/plant_rice.json @@ -19,7 +19,6 @@ "translate": "advancements.farmersdelight.plant_rice.description" }, "icon": { - "count": 1, "id": "farmersdelight:rice" }, "title": { diff --git a/src/generated/resources/data/farmersdelight/advancement/main/root.json b/src/generated/resources/data/farmersdelight/advancement/main/root.json index 523fd2905..ef0415ee9 100644 --- a/src/generated/resources/data/farmersdelight/advancement/main/root.json +++ b/src/generated/resources/data/farmersdelight/advancement/main/root.json @@ -11,7 +11,6 @@ "translate": "advancements.farmersdelight.root.description" }, "icon": { - "count": 1, "id": "farmersdelight:cooking_pot" }, "show_toast": false, diff --git a/src/generated/resources/data/farmersdelight/advancement/main/use_cutting_board.json b/src/generated/resources/data/farmersdelight/advancement/main/use_cutting_board.json index 41afd5918..0ca088d91 100644 --- a/src/generated/resources/data/farmersdelight/advancement/main/use_cutting_board.json +++ b/src/generated/resources/data/farmersdelight/advancement/main/use_cutting_board.json @@ -11,7 +11,6 @@ "translate": "advancements.farmersdelight.use_cutting_board.description" }, "icon": { - "count": 1, "id": "farmersdelight:cutting_board" }, "title": { diff --git a/src/generated/resources/data/farmersdelight/advancement/main/use_skillet.json b/src/generated/resources/data/farmersdelight/advancement/main/use_skillet.json index bf2ace1f3..60ee22110 100644 --- a/src/generated/resources/data/farmersdelight/advancement/main/use_skillet.json +++ b/src/generated/resources/data/farmersdelight/advancement/main/use_skillet.json @@ -16,7 +16,6 @@ "translate": "advancements.farmersdelight.use_skillet.description" }, "icon": { - "count": 1, "id": "farmersdelight:skillet" }, "title": { diff --git a/src/generated/resources/data/farmersdelight/loot_modifiers/add_loot_abandoned_mineshaft.json b/src/generated/resources/data/farmersdelight/loot_modifiers/add_loot_abandoned_mineshaft.json index a1bab88c5..6860f4567 100644 --- a/src/generated/resources/data/farmersdelight/loot_modifiers/add_loot_abandoned_mineshaft.json +++ b/src/generated/resources/data/farmersdelight/loot_modifiers/add_loot_abandoned_mineshaft.json @@ -6,5 +6,6 @@ "loot_table_id": "minecraft:chests/abandoned_mineshaft" } ], + "priority": 0, "table": "farmersdelight:chests/fd_abandoned_mineshaft" } \ No newline at end of file diff --git a/src/generated/resources/data/farmersdelight/loot_modifiers/add_loot_bastion_hoglin_stable.json b/src/generated/resources/data/farmersdelight/loot_modifiers/add_loot_bastion_hoglin_stable.json index d62e73492..3ddf0b61d 100644 --- a/src/generated/resources/data/farmersdelight/loot_modifiers/add_loot_bastion_hoglin_stable.json +++ b/src/generated/resources/data/farmersdelight/loot_modifiers/add_loot_bastion_hoglin_stable.json @@ -6,5 +6,6 @@ "loot_table_id": "minecraft:chests/bastion_hoglin_stable" } ], + "priority": 0, "table": "farmersdelight:chests/fd_bastion_hoglin_stable" } \ No newline at end of file diff --git a/src/generated/resources/data/farmersdelight/loot_modifiers/add_loot_bastion_treasure.json b/src/generated/resources/data/farmersdelight/loot_modifiers/add_loot_bastion_treasure.json index 3fb96e07e..160e8c441 100644 --- a/src/generated/resources/data/farmersdelight/loot_modifiers/add_loot_bastion_treasure.json +++ b/src/generated/resources/data/farmersdelight/loot_modifiers/add_loot_bastion_treasure.json @@ -6,5 +6,6 @@ "loot_table_id": "minecraft:chests/bastion_treasure" } ], + "priority": 0, "table": "farmersdelight:chests/fd_bastion_treasure" } \ No newline at end of file diff --git a/src/generated/resources/data/farmersdelight/loot_modifiers/add_loot_end_city_treasure.json b/src/generated/resources/data/farmersdelight/loot_modifiers/add_loot_end_city_treasure.json index ae56fd234..14cba305c 100644 --- a/src/generated/resources/data/farmersdelight/loot_modifiers/add_loot_end_city_treasure.json +++ b/src/generated/resources/data/farmersdelight/loot_modifiers/add_loot_end_city_treasure.json @@ -6,5 +6,6 @@ "loot_table_id": "minecraft:chests/end_city_treasure" } ], + "priority": 0, "table": "farmersdelight:chests/fd_end_city_treasure" } \ No newline at end of file diff --git a/src/generated/resources/data/farmersdelight/loot_modifiers/add_loot_pillager_outpost.json b/src/generated/resources/data/farmersdelight/loot_modifiers/add_loot_pillager_outpost.json index 9b0f07d7f..6e479e3f1 100644 --- a/src/generated/resources/data/farmersdelight/loot_modifiers/add_loot_pillager_outpost.json +++ b/src/generated/resources/data/farmersdelight/loot_modifiers/add_loot_pillager_outpost.json @@ -6,5 +6,6 @@ "loot_table_id": "minecraft:chests/pillager_outpost" } ], + "priority": 0, "table": "farmersdelight:chests/fd_pillager_outpost" } \ No newline at end of file diff --git a/src/generated/resources/data/farmersdelight/loot_modifiers/add_loot_ruined_portal.json b/src/generated/resources/data/farmersdelight/loot_modifiers/add_loot_ruined_portal.json index b77c89525..ab976071d 100644 --- a/src/generated/resources/data/farmersdelight/loot_modifiers/add_loot_ruined_portal.json +++ b/src/generated/resources/data/farmersdelight/loot_modifiers/add_loot_ruined_portal.json @@ -6,5 +6,6 @@ "loot_table_id": "minecraft:chests/ruined_portal" } ], + "priority": 0, "table": "farmersdelight:chests/fd_ruined_portal" } \ No newline at end of file diff --git a/src/generated/resources/data/farmersdelight/loot_modifiers/add_loot_shipwreck_supply.json b/src/generated/resources/data/farmersdelight/loot_modifiers/add_loot_shipwreck_supply.json index 9016ba7a4..4bcb25ec1 100644 --- a/src/generated/resources/data/farmersdelight/loot_modifiers/add_loot_shipwreck_supply.json +++ b/src/generated/resources/data/farmersdelight/loot_modifiers/add_loot_shipwreck_supply.json @@ -6,5 +6,6 @@ "loot_table_id": "minecraft:chests/shipwreck_supply" } ], + "priority": 0, "table": "farmersdelight:chests/fd_shipwreck_supply" } \ No newline at end of file diff --git a/src/generated/resources/data/farmersdelight/loot_modifiers/add_loot_simple_dungeon.json b/src/generated/resources/data/farmersdelight/loot_modifiers/add_loot_simple_dungeon.json index 4108daa53..f7e1cf0e7 100644 --- a/src/generated/resources/data/farmersdelight/loot_modifiers/add_loot_simple_dungeon.json +++ b/src/generated/resources/data/farmersdelight/loot_modifiers/add_loot_simple_dungeon.json @@ -6,5 +6,6 @@ "loot_table_id": "minecraft:chests/simple_dungeon" } ], + "priority": 0, "table": "farmersdelight:chests/fd_simple_dungeon" } \ No newline at end of file diff --git a/src/generated/resources/data/farmersdelight/loot_modifiers/add_loot_village_butcher.json b/src/generated/resources/data/farmersdelight/loot_modifiers/add_loot_village_butcher.json index d121f16db..0e366bc41 100644 --- a/src/generated/resources/data/farmersdelight/loot_modifiers/add_loot_village_butcher.json +++ b/src/generated/resources/data/farmersdelight/loot_modifiers/add_loot_village_butcher.json @@ -6,5 +6,6 @@ "loot_table_id": "minecraft:chests/village/village_butcher" } ], + "priority": 0, "table": "farmersdelight:chests/fd_village_butcher" } \ No newline at end of file diff --git a/src/generated/resources/data/farmersdelight/loot_modifiers/add_loot_village_desert_house.json b/src/generated/resources/data/farmersdelight/loot_modifiers/add_loot_village_desert_house.json index 3765bacfd..0201032db 100644 --- a/src/generated/resources/data/farmersdelight/loot_modifiers/add_loot_village_desert_house.json +++ b/src/generated/resources/data/farmersdelight/loot_modifiers/add_loot_village_desert_house.json @@ -6,5 +6,6 @@ "loot_table_id": "minecraft:chests/village/village_desert_house" } ], + "priority": 0, "table": "farmersdelight:chests/fd_village_desert_house" } \ No newline at end of file diff --git a/src/generated/resources/data/farmersdelight/loot_modifiers/add_loot_village_plains_house.json b/src/generated/resources/data/farmersdelight/loot_modifiers/add_loot_village_plains_house.json index 0ea7379d0..97ce567e2 100644 --- a/src/generated/resources/data/farmersdelight/loot_modifiers/add_loot_village_plains_house.json +++ b/src/generated/resources/data/farmersdelight/loot_modifiers/add_loot_village_plains_house.json @@ -6,5 +6,6 @@ "loot_table_id": "minecraft:chests/village/village_plains_house" } ], + "priority": 0, "table": "farmersdelight:chests/fd_village_plains_house" } \ No newline at end of file diff --git a/src/generated/resources/data/farmersdelight/loot_modifiers/add_loot_village_savanna_house.json b/src/generated/resources/data/farmersdelight/loot_modifiers/add_loot_village_savanna_house.json index 20572c967..89ecf0642 100644 --- a/src/generated/resources/data/farmersdelight/loot_modifiers/add_loot_village_savanna_house.json +++ b/src/generated/resources/data/farmersdelight/loot_modifiers/add_loot_village_savanna_house.json @@ -6,5 +6,6 @@ "loot_table_id": "minecraft:chests/village/village_savanna_house" } ], + "priority": 0, "table": "farmersdelight:chests/fd_village_savanna_house" } \ No newline at end of file diff --git a/src/generated/resources/data/farmersdelight/loot_modifiers/add_loot_village_snowy_house.json b/src/generated/resources/data/farmersdelight/loot_modifiers/add_loot_village_snowy_house.json index 1ff35e12d..bc1248615 100644 --- a/src/generated/resources/data/farmersdelight/loot_modifiers/add_loot_village_snowy_house.json +++ b/src/generated/resources/data/farmersdelight/loot_modifiers/add_loot_village_snowy_house.json @@ -6,5 +6,6 @@ "loot_table_id": "minecraft:chests/village/village_snowy_house" } ], + "priority": 0, "table": "farmersdelight:chests/fd_village_snowy_house" } \ No newline at end of file diff --git a/src/generated/resources/data/farmersdelight/loot_modifiers/add_loot_village_taiga_house.json b/src/generated/resources/data/farmersdelight/loot_modifiers/add_loot_village_taiga_house.json index 1bcdebd12..223c18ebb 100644 --- a/src/generated/resources/data/farmersdelight/loot_modifiers/add_loot_village_taiga_house.json +++ b/src/generated/resources/data/farmersdelight/loot_modifiers/add_loot_village_taiga_house.json @@ -6,5 +6,6 @@ "loot_table_id": "minecraft:chests/village/village_taiga_house" } ], + "priority": 0, "table": "farmersdelight:chests/fd_village_taiga_house" } \ No newline at end of file diff --git a/src/generated/resources/data/farmersdelight/loot_modifiers/add_onion_to_illagers.json b/src/generated/resources/data/farmersdelight/loot_modifiers/add_onion_to_illagers.json index ec2d786d7..c8891b649 100644 --- a/src/generated/resources/data/farmersdelight/loot_modifiers/add_onion_to_illagers.json +++ b/src/generated/resources/data/farmersdelight/loot_modifiers/add_onion_to_illagers.json @@ -8,21 +8,21 @@ "condition": "minecraft:entity_properties", "entity": "this", "predicate": { - "type": "minecraft:pillager" + "minecraft:entity_type": "minecraft:pillager" } }, { "condition": "minecraft:entity_properties", "entity": "this", "predicate": { - "type": "minecraft:evoker" + "minecraft:entity_type": "minecraft:evoker" } }, { "condition": "minecraft:entity_properties", "entity": "this", "predicate": { - "type": "minecraft:vindicator" + "minecraft:entity_type": "minecraft:vindicator" } } ] @@ -41,5 +41,6 @@ "unenchanted_chance": 0.02 } ], - "item": "farmersdelight:onion" + "item": "farmersdelight:onion", + "priority": 0 } \ No newline at end of file diff --git a/src/generated/resources/data/farmersdelight/loot_modifiers/add_onion_to_zombies.json b/src/generated/resources/data/farmersdelight/loot_modifiers/add_onion_to_zombies.json index 38f6656fa..7de586979 100644 --- a/src/generated/resources/data/farmersdelight/loot_modifiers/add_onion_to_zombies.json +++ b/src/generated/resources/data/farmersdelight/loot_modifiers/add_onion_to_zombies.json @@ -8,21 +8,21 @@ "condition": "minecraft:entity_properties", "entity": "this", "predicate": { - "type": "minecraft:zombie" + "minecraft:entity_type": "minecraft:zombie" } }, { "condition": "minecraft:entity_properties", "entity": "this", "predicate": { - "type": "minecraft:husk" + "minecraft:entity_type": "minecraft:husk" } }, { "condition": "minecraft:entity_properties", "entity": "this", "predicate": { - "type": "minecraft:zombie_villager" + "minecraft:entity_type": "minecraft:zombie_villager" } } ] @@ -41,5 +41,6 @@ "unenchanted_chance": 0.02 } ], - "item": "farmersdelight:onion" + "item": "farmersdelight:onion", + "priority": 0 } \ No newline at end of file diff --git a/src/generated/resources/data/farmersdelight/loot_modifiers/scavenging_feather.json b/src/generated/resources/data/farmersdelight/loot_modifiers/scavenging_feather.json index 8ecdddfce..a45faf740 100644 --- a/src/generated/resources/data/farmersdelight/loot_modifiers/scavenging_feather.json +++ b/src/generated/resources/data/farmersdelight/loot_modifiers/scavenging_feather.json @@ -5,7 +5,7 @@ "condition": "minecraft:entity_properties", "entity": "attacker", "predicate": { - "equipment": { + "minecraft:equipment": { "mainhand": { "items": "#farmersdelight:tools/knives" } @@ -16,9 +16,10 @@ "condition": "minecraft:entity_properties", "entity": "this", "predicate": { - "type": "minecraft:chicken" + "minecraft:entity_type": "minecraft:chicken" } } ], - "item": "minecraft:feather" + "item": "minecraft:feather", + "priority": 0 } \ No newline at end of file diff --git a/src/generated/resources/data/farmersdelight/loot_modifiers/scavenging_ham_from_hoglin.json b/src/generated/resources/data/farmersdelight/loot_modifiers/scavenging_ham_from_hoglin.json index 0c7d685bb..b32021d17 100644 --- a/src/generated/resources/data/farmersdelight/loot_modifiers/scavenging_ham_from_hoglin.json +++ b/src/generated/resources/data/farmersdelight/loot_modifiers/scavenging_ham_from_hoglin.json @@ -5,7 +5,7 @@ "condition": "minecraft:entity_properties", "entity": "attacker", "predicate": { - "equipment": { + "minecraft:equipment": { "mainhand": { "items": "#farmersdelight:tools/knives" } @@ -16,18 +16,19 @@ "condition": "minecraft:entity_properties", "entity": "this", "predicate": { - "type": "minecraft:hoglin" + "minecraft:entity_type": "minecraft:hoglin" } }, { "condition": "minecraft:entity_properties", "entity": "this", "predicate": { - "flags": { + "minecraft:flags": { "is_on_fire": false } } } ], - "item": "farmersdelight:ham" + "item": "farmersdelight:ham", + "priority": 0 } \ No newline at end of file diff --git a/src/generated/resources/data/farmersdelight/loot_modifiers/scavenging_ham_from_pig.json b/src/generated/resources/data/farmersdelight/loot_modifiers/scavenging_ham_from_pig.json index 8952d3343..3f90ee064 100644 --- a/src/generated/resources/data/farmersdelight/loot_modifiers/scavenging_ham_from_pig.json +++ b/src/generated/resources/data/farmersdelight/loot_modifiers/scavenging_ham_from_pig.json @@ -5,7 +5,7 @@ "condition": "minecraft:entity_properties", "entity": "attacker", "predicate": { - "equipment": { + "minecraft:equipment": { "mainhand": { "items": "#farmersdelight:tools/knives" } @@ -16,14 +16,14 @@ "condition": "minecraft:entity_properties", "entity": "this", "predicate": { - "type": "minecraft:pig" + "minecraft:entity_type": "minecraft:pig" } }, { "condition": "minecraft:entity_properties", "entity": "this", "predicate": { - "flags": { + "minecraft:flags": { "is_on_fire": false } } @@ -39,5 +39,6 @@ "unenchanted_chance": 0.5 } ], - "item": "farmersdelight:ham" + "item": "farmersdelight:ham", + "priority": 0 } \ No newline at end of file diff --git a/src/generated/resources/data/farmersdelight/loot_modifiers/scavenging_leather.json b/src/generated/resources/data/farmersdelight/loot_modifiers/scavenging_leather.json index 99df1bb37..c37097c2d 100644 --- a/src/generated/resources/data/farmersdelight/loot_modifiers/scavenging_leather.json +++ b/src/generated/resources/data/farmersdelight/loot_modifiers/scavenging_leather.json @@ -5,7 +5,7 @@ "condition": "minecraft:entity_properties", "entity": "attacker", "predicate": { - "equipment": { + "minecraft:equipment": { "mainhand": { "items": "#farmersdelight:tools/knives" } @@ -19,53 +19,54 @@ "condition": "minecraft:entity_properties", "entity": "this", "predicate": { - "type": "minecraft:cow" + "minecraft:entity_type": "minecraft:cow" } }, { "condition": "minecraft:entity_properties", "entity": "this", "predicate": { - "type": "minecraft:mooshroom" + "minecraft:entity_type": "minecraft:mooshroom" } }, { "condition": "minecraft:entity_properties", "entity": "this", "predicate": { - "type": "minecraft:horse" + "minecraft:entity_type": "minecraft:horse" } }, { "condition": "minecraft:entity_properties", "entity": "this", "predicate": { - "type": "minecraft:donkey" + "minecraft:entity_type": "minecraft:donkey" } }, { "condition": "minecraft:entity_properties", "entity": "this", "predicate": { - "type": "minecraft:mule" + "minecraft:entity_type": "minecraft:mule" } }, { "condition": "minecraft:entity_properties", "entity": "this", "predicate": { - "type": "minecraft:llama" + "minecraft:entity_type": "minecraft:llama" } }, { "condition": "minecraft:entity_properties", "entity": "this", "predicate": { - "type": "minecraft:trader_llama" + "minecraft:entity_type": "minecraft:trader_llama" } } ] } ], - "item": "minecraft:leather" + "item": "minecraft:leather", + "priority": 0 } \ No newline at end of file diff --git a/src/generated/resources/data/farmersdelight/loot_modifiers/scavenging_pumpkin.json b/src/generated/resources/data/farmersdelight/loot_modifiers/scavenging_pumpkin.json index 25e1f2fc6..aba097c7e 100644 --- a/src/generated/resources/data/farmersdelight/loot_modifiers/scavenging_pumpkin.json +++ b/src/generated/resources/data/farmersdelight/loot_modifiers/scavenging_pumpkin.json @@ -37,5 +37,6 @@ } ], "count": 4, + "priority": 0, "removed_item": "minecraft:pumpkin" } \ No newline at end of file diff --git a/src/generated/resources/data/farmersdelight/loot_modifiers/scavenging_rabbit_hide.json b/src/generated/resources/data/farmersdelight/loot_modifiers/scavenging_rabbit_hide.json index e2bbb69c4..c125d6987 100644 --- a/src/generated/resources/data/farmersdelight/loot_modifiers/scavenging_rabbit_hide.json +++ b/src/generated/resources/data/farmersdelight/loot_modifiers/scavenging_rabbit_hide.json @@ -5,7 +5,7 @@ "condition": "minecraft:entity_properties", "entity": "attacker", "predicate": { - "equipment": { + "minecraft:equipment": { "mainhand": { "items": "#farmersdelight:tools/knives" } @@ -16,9 +16,10 @@ "condition": "minecraft:entity_properties", "entity": "this", "predicate": { - "type": "minecraft:rabbit" + "minecraft:entity_type": "minecraft:rabbit" } } ], - "item": "minecraft:rabbit_hide" + "item": "minecraft:rabbit_hide", + "priority": 0 } \ No newline at end of file diff --git a/src/generated/resources/data/farmersdelight/loot_modifiers/scavenging_shulker_shell.json b/src/generated/resources/data/farmersdelight/loot_modifiers/scavenging_shulker_shell.json index 9465f0e3b..e8b41f617 100644 --- a/src/generated/resources/data/farmersdelight/loot_modifiers/scavenging_shulker_shell.json +++ b/src/generated/resources/data/farmersdelight/loot_modifiers/scavenging_shulker_shell.json @@ -5,7 +5,7 @@ "condition": "minecraft:entity_properties", "entity": "attacker", "predicate": { - "equipment": { + "minecraft:equipment": { "mainhand": { "items": "#farmersdelight:tools/knives" } @@ -16,9 +16,10 @@ "condition": "minecraft:entity_properties", "entity": "this", "predicate": { - "type": "minecraft:shulker" + "minecraft:entity_type": "minecraft:shulker" } } ], - "item": "minecraft:shulker_shell" + "item": "minecraft:shulker_shell", + "priority": 0 } \ No newline at end of file diff --git a/src/generated/resources/data/farmersdelight/loot_modifiers/scavenging_smoked_ham_from_hoglin.json b/src/generated/resources/data/farmersdelight/loot_modifiers/scavenging_smoked_ham_from_hoglin.json index dd60761f4..aad00510e 100644 --- a/src/generated/resources/data/farmersdelight/loot_modifiers/scavenging_smoked_ham_from_hoglin.json +++ b/src/generated/resources/data/farmersdelight/loot_modifiers/scavenging_smoked_ham_from_hoglin.json @@ -5,7 +5,7 @@ "condition": "minecraft:entity_properties", "entity": "attacker", "predicate": { - "equipment": { + "minecraft:equipment": { "mainhand": { "items": "#farmersdelight:tools/knives" } @@ -16,18 +16,19 @@ "condition": "minecraft:entity_properties", "entity": "this", "predicate": { - "type": "minecraft:hoglin" + "minecraft:entity_type": "minecraft:hoglin" } }, { "condition": "minecraft:entity_properties", "entity": "this", "predicate": { - "flags": { + "minecraft:flags": { "is_on_fire": true } } } ], - "item": "farmersdelight:smoked_ham" + "item": "farmersdelight:smoked_ham", + "priority": 0 } \ No newline at end of file diff --git a/src/generated/resources/data/farmersdelight/loot_modifiers/scavenging_smoked_ham_from_pig.json b/src/generated/resources/data/farmersdelight/loot_modifiers/scavenging_smoked_ham_from_pig.json index 29a3f99e2..92adfda1d 100644 --- a/src/generated/resources/data/farmersdelight/loot_modifiers/scavenging_smoked_ham_from_pig.json +++ b/src/generated/resources/data/farmersdelight/loot_modifiers/scavenging_smoked_ham_from_pig.json @@ -5,7 +5,7 @@ "condition": "minecraft:entity_properties", "entity": "attacker", "predicate": { - "equipment": { + "minecraft:equipment": { "mainhand": { "items": "#farmersdelight:tools/knives" } @@ -16,14 +16,14 @@ "condition": "minecraft:entity_properties", "entity": "this", "predicate": { - "type": "minecraft:pig" + "minecraft:entity_type": "minecraft:pig" } }, { "condition": "minecraft:entity_properties", "entity": "this", "predicate": { - "flags": { + "minecraft:flags": { "is_on_fire": true } } @@ -39,5 +39,6 @@ "unenchanted_chance": 0.5 } ], - "item": "farmersdelight:smoked_ham" + "item": "farmersdelight:smoked_ham", + "priority": 0 } \ No newline at end of file diff --git a/src/generated/resources/data/farmersdelight/loot_modifiers/scavenging_string.json b/src/generated/resources/data/farmersdelight/loot_modifiers/scavenging_string.json index 8de317f6f..75d4ca2d1 100644 --- a/src/generated/resources/data/farmersdelight/loot_modifiers/scavenging_string.json +++ b/src/generated/resources/data/farmersdelight/loot_modifiers/scavenging_string.json @@ -5,7 +5,7 @@ "condition": "minecraft:entity_properties", "entity": "attacker", "predicate": { - "equipment": { + "minecraft:equipment": { "mainhand": { "items": "#farmersdelight:tools/knives" } @@ -19,18 +19,19 @@ "condition": "minecraft:entity_properties", "entity": "this", "predicate": { - "type": "minecraft:spider" + "minecraft:entity_type": "minecraft:spider" } }, { "condition": "minecraft:entity_properties", "entity": "this", "predicate": { - "type": "minecraft:cave_spider" + "minecraft:entity_type": "minecraft:cave_spider" } } ] } ], - "item": "minecraft:string" + "item": "minecraft:string", + "priority": 0 } \ No newline at end of file diff --git a/src/generated/resources/data/farmersdelight/loot_modifiers/slicing_apple_pie.json b/src/generated/resources/data/farmersdelight/loot_modifiers/slicing_apple_pie.json index 7233be950..ab98dca7a 100644 --- a/src/generated/resources/data/farmersdelight/loot_modifiers/slicing_apple_pie.json +++ b/src/generated/resources/data/farmersdelight/loot_modifiers/slicing_apple_pie.json @@ -12,5 +12,6 @@ "condition": "minecraft:block_state_property" } ], + "priority": 0, "slice": "farmersdelight:apple_pie_slice" } \ No newline at end of file diff --git a/src/generated/resources/data/farmersdelight/loot_modifiers/slicing_cake.json b/src/generated/resources/data/farmersdelight/loot_modifiers/slicing_cake.json index 17f2e0261..42e78e31a 100644 --- a/src/generated/resources/data/farmersdelight/loot_modifiers/slicing_cake.json +++ b/src/generated/resources/data/farmersdelight/loot_modifiers/slicing_cake.json @@ -12,5 +12,6 @@ "condition": "minecraft:block_state_property" } ], + "priority": 0, "slice": "farmersdelight:cake_slice" } \ No newline at end of file diff --git a/src/generated/resources/data/farmersdelight/loot_modifiers/slicing_candle_cake.json b/src/generated/resources/data/farmersdelight/loot_modifiers/slicing_candle_cake.json index cc3544e74..5c2040498 100644 --- a/src/generated/resources/data/farmersdelight/loot_modifiers/slicing_candle_cake.json +++ b/src/generated/resources/data/farmersdelight/loot_modifiers/slicing_candle_cake.json @@ -82,5 +82,6 @@ } ], "count": 7, - "item": "farmersdelight:cake_slice" + "item": "farmersdelight:cake_slice", + "priority": 0 } \ No newline at end of file diff --git a/src/generated/resources/data/farmersdelight/loot_modifiers/slicing_chocolate_pie.json b/src/generated/resources/data/farmersdelight/loot_modifiers/slicing_chocolate_pie.json index b35c8c789..ca90ea202 100644 --- a/src/generated/resources/data/farmersdelight/loot_modifiers/slicing_chocolate_pie.json +++ b/src/generated/resources/data/farmersdelight/loot_modifiers/slicing_chocolate_pie.json @@ -12,5 +12,6 @@ "condition": "minecraft:block_state_property" } ], + "priority": 0, "slice": "farmersdelight:chocolate_pie_slice" } \ No newline at end of file diff --git a/src/generated/resources/data/farmersdelight/loot_modifiers/slicing_pumpkin_pie.json b/src/generated/resources/data/farmersdelight/loot_modifiers/slicing_pumpkin_pie.json index abdf66ec2..a82923da2 100644 --- a/src/generated/resources/data/farmersdelight/loot_modifiers/slicing_pumpkin_pie.json +++ b/src/generated/resources/data/farmersdelight/loot_modifiers/slicing_pumpkin_pie.json @@ -12,5 +12,6 @@ "condition": "minecraft:block_state_property" } ], + "priority": 0, "slice": "farmersdelight:pumpkin_pie_slice" } \ No newline at end of file diff --git a/src/generated/resources/data/farmersdelight/loot_modifiers/slicing_sweet_berry_cheesecake.json b/src/generated/resources/data/farmersdelight/loot_modifiers/slicing_sweet_berry_cheesecake.json index 9a3e055f4..d6a7b4cf8 100644 --- a/src/generated/resources/data/farmersdelight/loot_modifiers/slicing_sweet_berry_cheesecake.json +++ b/src/generated/resources/data/farmersdelight/loot_modifiers/slicing_sweet_berry_cheesecake.json @@ -12,5 +12,6 @@ "condition": "minecraft:block_state_property" } ], + "priority": 0, "slice": "farmersdelight:sweet_berry_cheesecake_slice" } \ No newline at end of file diff --git a/src/generated/resources/data/farmersdelight/loot_modifiers/straw_from_grass.json b/src/generated/resources/data/farmersdelight/loot_modifiers/straw_from_grass.json index 2c98636e1..416374bc9 100644 --- a/src/generated/resources/data/farmersdelight/loot_modifiers/straw_from_grass.json +++ b/src/generated/resources/data/farmersdelight/loot_modifiers/straw_from_grass.json @@ -16,5 +16,6 @@ "condition": "minecraft:block_state_property" } ], - "item": "farmersdelight:straw" + "item": "farmersdelight:straw", + "priority": 0 } \ No newline at end of file diff --git a/src/generated/resources/data/farmersdelight/loot_modifiers/straw_from_mature_rice.json b/src/generated/resources/data/farmersdelight/loot_modifiers/straw_from_mature_rice.json index 3184fba7a..72ee37248 100644 --- a/src/generated/resources/data/farmersdelight/loot_modifiers/straw_from_mature_rice.json +++ b/src/generated/resources/data/farmersdelight/loot_modifiers/straw_from_mature_rice.json @@ -15,5 +15,6 @@ } } ], - "item": "farmersdelight:straw" + "item": "farmersdelight:straw", + "priority": 0 } \ No newline at end of file diff --git a/src/generated/resources/data/farmersdelight/loot_modifiers/straw_from_mature_wheat.json b/src/generated/resources/data/farmersdelight/loot_modifiers/straw_from_mature_wheat.json index 88d3a0c78..11782c978 100644 --- a/src/generated/resources/data/farmersdelight/loot_modifiers/straw_from_mature_wheat.json +++ b/src/generated/resources/data/farmersdelight/loot_modifiers/straw_from_mature_wheat.json @@ -15,5 +15,6 @@ } } ], - "item": "farmersdelight:straw" + "item": "farmersdelight:straw", + "priority": 0 } \ No newline at end of file diff --git a/src/generated/resources/data/farmersdelight/loot_modifiers/straw_from_sandy_shrub.json b/src/generated/resources/data/farmersdelight/loot_modifiers/straw_from_sandy_shrub.json index b887da01f..b711a2ec7 100644 --- a/src/generated/resources/data/farmersdelight/loot_modifiers/straw_from_sandy_shrub.json +++ b/src/generated/resources/data/farmersdelight/loot_modifiers/straw_from_sandy_shrub.json @@ -16,5 +16,6 @@ "condition": "minecraft:block_state_property" } ], - "item": "farmersdelight:straw" + "item": "farmersdelight:straw", + "priority": 0 } \ No newline at end of file diff --git a/src/generated/resources/data/farmersdelight/loot_modifiers/straw_from_tall_grass.json b/src/generated/resources/data/farmersdelight/loot_modifiers/straw_from_tall_grass.json index 227696544..f708244a2 100644 --- a/src/generated/resources/data/farmersdelight/loot_modifiers/straw_from_tall_grass.json +++ b/src/generated/resources/data/farmersdelight/loot_modifiers/straw_from_tall_grass.json @@ -16,5 +16,6 @@ "condition": "minecraft:block_state_property" } ], - "item": "farmersdelight:straw" + "item": "farmersdelight:straw", + "priority": 0 } \ No newline at end of file diff --git a/src/generated/resources/data/farmersdelight/loot_table/blocks/black_canvas_wall_sign.json b/src/generated/resources/data/farmersdelight/loot_table/blocks/black_canvas_wall_sign.json new file mode 100644 index 000000000..5bdfa136b --- /dev/null +++ b/src/generated/resources/data/farmersdelight/loot_table/blocks/black_canvas_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": "farmersdelight:black_canvas_sign" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "farmersdelight:blocks/black_canvas_wall_sign" +} \ No newline at end of file diff --git a/src/generated/resources/data/farmersdelight/loot_table/blocks/black_wall_hanging_canvas_sign.json b/src/generated/resources/data/farmersdelight/loot_table/blocks/black_wall_hanging_canvas_sign.json new file mode 100644 index 000000000..1aa1d87eb --- /dev/null +++ b/src/generated/resources/data/farmersdelight/loot_table/blocks/black_wall_hanging_canvas_sign.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "farmersdelight:black_hanging_canvas_sign" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "farmersdelight:blocks/black_wall_hanging_canvas_sign" +} \ No newline at end of file diff --git a/src/generated/resources/data/farmersdelight/loot_table/blocks/blue_canvas_wall_sign.json b/src/generated/resources/data/farmersdelight/loot_table/blocks/blue_canvas_wall_sign.json new file mode 100644 index 000000000..2dbf42550 --- /dev/null +++ b/src/generated/resources/data/farmersdelight/loot_table/blocks/blue_canvas_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": "farmersdelight:blue_canvas_sign" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "farmersdelight:blocks/blue_canvas_wall_sign" +} \ No newline at end of file diff --git a/src/generated/resources/data/farmersdelight/loot_table/blocks/blue_wall_hanging_canvas_sign.json b/src/generated/resources/data/farmersdelight/loot_table/blocks/blue_wall_hanging_canvas_sign.json new file mode 100644 index 000000000..8cd6d991c --- /dev/null +++ b/src/generated/resources/data/farmersdelight/loot_table/blocks/blue_wall_hanging_canvas_sign.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "farmersdelight:blue_hanging_canvas_sign" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "farmersdelight:blocks/blue_wall_hanging_canvas_sign" +} \ No newline at end of file diff --git a/src/generated/resources/data/farmersdelight/loot_table/blocks/brown_canvas_wall_sign.json b/src/generated/resources/data/farmersdelight/loot_table/blocks/brown_canvas_wall_sign.json new file mode 100644 index 000000000..72c82aa25 --- /dev/null +++ b/src/generated/resources/data/farmersdelight/loot_table/blocks/brown_canvas_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": "farmersdelight:brown_canvas_sign" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "farmersdelight:blocks/brown_canvas_wall_sign" +} \ No newline at end of file diff --git a/src/generated/resources/data/farmersdelight/loot_table/blocks/brown_mushroom_colony.json b/src/generated/resources/data/farmersdelight/loot_table/blocks/brown_mushroom_colony.json index e02aa0176..1e99d52e1 100644 --- a/src/generated/resources/data/farmersdelight/loot_table/blocks/brown_mushroom_colony.json +++ b/src/generated/resources/data/farmersdelight/loot_table/blocks/brown_mushroom_colony.json @@ -25,7 +25,6 @@ ], "functions": [ { - "add": false, "count": 2.0, "function": "minecraft:set_count" } @@ -45,7 +44,6 @@ ], "functions": [ { - "add": false, "count": 3.0, "function": "minecraft:set_count" } @@ -65,7 +63,6 @@ ], "functions": [ { - "add": false, "count": 4.0, "function": "minecraft:set_count" } @@ -92,7 +89,6 @@ ], "functions": [ { - "add": false, "count": 5.0, "function": "minecraft:set_count" } diff --git a/src/generated/resources/data/farmersdelight/loot_table/blocks/brown_wall_hanging_canvas_sign.json b/src/generated/resources/data/farmersdelight/loot_table/blocks/brown_wall_hanging_canvas_sign.json new file mode 100644 index 000000000..8b2b758bd --- /dev/null +++ b/src/generated/resources/data/farmersdelight/loot_table/blocks/brown_wall_hanging_canvas_sign.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "farmersdelight:brown_hanging_canvas_sign" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "farmersdelight:blocks/brown_wall_hanging_canvas_sign" +} \ No newline at end of file diff --git a/src/generated/resources/data/farmersdelight/loot_table/blocks/canvas_wall_sign.json b/src/generated/resources/data/farmersdelight/loot_table/blocks/canvas_wall_sign.json new file mode 100644 index 000000000..644363947 --- /dev/null +++ b/src/generated/resources/data/farmersdelight/loot_table/blocks/canvas_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": "farmersdelight:canvas_sign" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "farmersdelight:blocks/canvas_wall_sign" +} \ No newline at end of file diff --git a/src/generated/resources/data/farmersdelight/loot_table/blocks/cyan_canvas_wall_sign.json b/src/generated/resources/data/farmersdelight/loot_table/blocks/cyan_canvas_wall_sign.json new file mode 100644 index 000000000..847be2f8f --- /dev/null +++ b/src/generated/resources/data/farmersdelight/loot_table/blocks/cyan_canvas_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": "farmersdelight:cyan_canvas_sign" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "farmersdelight:blocks/cyan_canvas_wall_sign" +} \ No newline at end of file diff --git a/src/generated/resources/data/farmersdelight/loot_table/blocks/cyan_wall_hanging_canvas_sign.json b/src/generated/resources/data/farmersdelight/loot_table/blocks/cyan_wall_hanging_canvas_sign.json new file mode 100644 index 000000000..7d631b8e6 --- /dev/null +++ b/src/generated/resources/data/farmersdelight/loot_table/blocks/cyan_wall_hanging_canvas_sign.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "farmersdelight:cyan_hanging_canvas_sign" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "farmersdelight:blocks/cyan_wall_hanging_canvas_sign" +} \ No newline at end of file diff --git a/src/generated/resources/data/farmersdelight/loot_table/blocks/gray_canvas_wall_sign.json b/src/generated/resources/data/farmersdelight/loot_table/blocks/gray_canvas_wall_sign.json new file mode 100644 index 000000000..caf800fff --- /dev/null +++ b/src/generated/resources/data/farmersdelight/loot_table/blocks/gray_canvas_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": "farmersdelight:gray_canvas_sign" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "farmersdelight:blocks/gray_canvas_wall_sign" +} \ No newline at end of file diff --git a/src/generated/resources/data/farmersdelight/loot_table/blocks/gray_wall_hanging_canvas_sign.json b/src/generated/resources/data/farmersdelight/loot_table/blocks/gray_wall_hanging_canvas_sign.json new file mode 100644 index 000000000..08736776d --- /dev/null +++ b/src/generated/resources/data/farmersdelight/loot_table/blocks/gray_wall_hanging_canvas_sign.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "farmersdelight:gray_hanging_canvas_sign" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "farmersdelight:blocks/gray_wall_hanging_canvas_sign" +} \ No newline at end of file diff --git a/src/generated/resources/data/farmersdelight/loot_table/blocks/green_canvas_wall_sign.json b/src/generated/resources/data/farmersdelight/loot_table/blocks/green_canvas_wall_sign.json new file mode 100644 index 000000000..a14162aba --- /dev/null +++ b/src/generated/resources/data/farmersdelight/loot_table/blocks/green_canvas_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": "farmersdelight:green_canvas_sign" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "farmersdelight:blocks/green_canvas_wall_sign" +} \ No newline at end of file diff --git a/src/generated/resources/data/farmersdelight/loot_table/blocks/green_wall_hanging_canvas_sign.json b/src/generated/resources/data/farmersdelight/loot_table/blocks/green_wall_hanging_canvas_sign.json new file mode 100644 index 000000000..48ff93ef3 --- /dev/null +++ b/src/generated/resources/data/farmersdelight/loot_table/blocks/green_wall_hanging_canvas_sign.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "farmersdelight:green_hanging_canvas_sign" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "farmersdelight:blocks/green_wall_hanging_canvas_sign" +} \ No newline at end of file diff --git a/src/generated/resources/data/farmersdelight/loot_table/blocks/light_blue_canvas_wall_sign.json b/src/generated/resources/data/farmersdelight/loot_table/blocks/light_blue_canvas_wall_sign.json new file mode 100644 index 000000000..688498a85 --- /dev/null +++ b/src/generated/resources/data/farmersdelight/loot_table/blocks/light_blue_canvas_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": "farmersdelight:light_blue_canvas_sign" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "farmersdelight:blocks/light_blue_canvas_wall_sign" +} \ No newline at end of file diff --git a/src/generated/resources/data/farmersdelight/loot_table/blocks/light_blue_wall_hanging_canvas_sign.json b/src/generated/resources/data/farmersdelight/loot_table/blocks/light_blue_wall_hanging_canvas_sign.json new file mode 100644 index 000000000..bb9bffc89 --- /dev/null +++ b/src/generated/resources/data/farmersdelight/loot_table/blocks/light_blue_wall_hanging_canvas_sign.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "farmersdelight:light_blue_hanging_canvas_sign" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "farmersdelight:blocks/light_blue_wall_hanging_canvas_sign" +} \ No newline at end of file diff --git a/src/generated/resources/data/farmersdelight/loot_table/blocks/light_gray_canvas_wall_sign.json b/src/generated/resources/data/farmersdelight/loot_table/blocks/light_gray_canvas_wall_sign.json new file mode 100644 index 000000000..40742f9f6 --- /dev/null +++ b/src/generated/resources/data/farmersdelight/loot_table/blocks/light_gray_canvas_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": "farmersdelight:light_gray_canvas_sign" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "farmersdelight:blocks/light_gray_canvas_wall_sign" +} \ No newline at end of file diff --git a/src/generated/resources/data/farmersdelight/loot_table/blocks/light_gray_wall_hanging_canvas_sign.json b/src/generated/resources/data/farmersdelight/loot_table/blocks/light_gray_wall_hanging_canvas_sign.json new file mode 100644 index 000000000..0169187e2 --- /dev/null +++ b/src/generated/resources/data/farmersdelight/loot_table/blocks/light_gray_wall_hanging_canvas_sign.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "farmersdelight:light_gray_hanging_canvas_sign" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "farmersdelight:blocks/light_gray_wall_hanging_canvas_sign" +} \ No newline at end of file diff --git a/src/generated/resources/data/farmersdelight/loot_table/blocks/lime_canvas_wall_sign.json b/src/generated/resources/data/farmersdelight/loot_table/blocks/lime_canvas_wall_sign.json new file mode 100644 index 000000000..f190d209a --- /dev/null +++ b/src/generated/resources/data/farmersdelight/loot_table/blocks/lime_canvas_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": "farmersdelight:lime_canvas_sign" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "farmersdelight:blocks/lime_canvas_wall_sign" +} \ No newline at end of file diff --git a/src/generated/resources/data/farmersdelight/loot_table/blocks/lime_wall_hanging_canvas_sign.json b/src/generated/resources/data/farmersdelight/loot_table/blocks/lime_wall_hanging_canvas_sign.json new file mode 100644 index 000000000..5ff3b7d4a --- /dev/null +++ b/src/generated/resources/data/farmersdelight/loot_table/blocks/lime_wall_hanging_canvas_sign.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "farmersdelight:lime_hanging_canvas_sign" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "farmersdelight:blocks/lime_wall_hanging_canvas_sign" +} \ No newline at end of file diff --git a/src/generated/resources/data/farmersdelight/loot_table/blocks/magenta_canvas_wall_sign.json b/src/generated/resources/data/farmersdelight/loot_table/blocks/magenta_canvas_wall_sign.json new file mode 100644 index 000000000..2e1e8cb71 --- /dev/null +++ b/src/generated/resources/data/farmersdelight/loot_table/blocks/magenta_canvas_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": "farmersdelight:magenta_canvas_sign" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "farmersdelight:blocks/magenta_canvas_wall_sign" +} \ No newline at end of file diff --git a/src/generated/resources/data/farmersdelight/loot_table/blocks/magenta_wall_hanging_canvas_sign.json b/src/generated/resources/data/farmersdelight/loot_table/blocks/magenta_wall_hanging_canvas_sign.json new file mode 100644 index 000000000..c3e530d56 --- /dev/null +++ b/src/generated/resources/data/farmersdelight/loot_table/blocks/magenta_wall_hanging_canvas_sign.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "farmersdelight:magenta_hanging_canvas_sign" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "farmersdelight:blocks/magenta_wall_hanging_canvas_sign" +} \ No newline at end of file diff --git a/src/generated/resources/data/farmersdelight/loot_table/blocks/orange_canvas_wall_sign.json b/src/generated/resources/data/farmersdelight/loot_table/blocks/orange_canvas_wall_sign.json new file mode 100644 index 000000000..1f95cc4a4 --- /dev/null +++ b/src/generated/resources/data/farmersdelight/loot_table/blocks/orange_canvas_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": "farmersdelight:orange_canvas_sign" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "farmersdelight:blocks/orange_canvas_wall_sign" +} \ No newline at end of file diff --git a/src/generated/resources/data/farmersdelight/loot_table/blocks/orange_wall_hanging_canvas_sign.json b/src/generated/resources/data/farmersdelight/loot_table/blocks/orange_wall_hanging_canvas_sign.json new file mode 100644 index 000000000..155d00d0c --- /dev/null +++ b/src/generated/resources/data/farmersdelight/loot_table/blocks/orange_wall_hanging_canvas_sign.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "farmersdelight:orange_hanging_canvas_sign" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "farmersdelight:blocks/orange_wall_hanging_canvas_sign" +} \ No newline at end of file diff --git a/src/generated/resources/data/farmersdelight/loot_table/blocks/pink_canvas_wall_sign.json b/src/generated/resources/data/farmersdelight/loot_table/blocks/pink_canvas_wall_sign.json new file mode 100644 index 000000000..3fa657cae --- /dev/null +++ b/src/generated/resources/data/farmersdelight/loot_table/blocks/pink_canvas_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": "farmersdelight:pink_canvas_sign" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "farmersdelight:blocks/pink_canvas_wall_sign" +} \ No newline at end of file diff --git a/src/generated/resources/data/farmersdelight/loot_table/blocks/pink_wall_hanging_canvas_sign.json b/src/generated/resources/data/farmersdelight/loot_table/blocks/pink_wall_hanging_canvas_sign.json new file mode 100644 index 000000000..bac2cfd7a --- /dev/null +++ b/src/generated/resources/data/farmersdelight/loot_table/blocks/pink_wall_hanging_canvas_sign.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "farmersdelight:pink_hanging_canvas_sign" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "farmersdelight:blocks/pink_wall_hanging_canvas_sign" +} \ No newline at end of file diff --git a/src/generated/resources/data/farmersdelight/loot_table/blocks/purple_canvas_wall_sign.json b/src/generated/resources/data/farmersdelight/loot_table/blocks/purple_canvas_wall_sign.json new file mode 100644 index 000000000..aef9ad147 --- /dev/null +++ b/src/generated/resources/data/farmersdelight/loot_table/blocks/purple_canvas_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": "farmersdelight:purple_canvas_sign" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "farmersdelight:blocks/purple_canvas_wall_sign" +} \ No newline at end of file diff --git a/src/generated/resources/data/farmersdelight/loot_table/blocks/purple_wall_hanging_canvas_sign.json b/src/generated/resources/data/farmersdelight/loot_table/blocks/purple_wall_hanging_canvas_sign.json new file mode 100644 index 000000000..2ef171afb --- /dev/null +++ b/src/generated/resources/data/farmersdelight/loot_table/blocks/purple_wall_hanging_canvas_sign.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "farmersdelight:purple_hanging_canvas_sign" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "farmersdelight:blocks/purple_wall_hanging_canvas_sign" +} \ No newline at end of file diff --git a/src/generated/resources/data/farmersdelight/loot_table/blocks/red_canvas_wall_sign.json b/src/generated/resources/data/farmersdelight/loot_table/blocks/red_canvas_wall_sign.json new file mode 100644 index 000000000..3538b1590 --- /dev/null +++ b/src/generated/resources/data/farmersdelight/loot_table/blocks/red_canvas_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": "farmersdelight:red_canvas_sign" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "farmersdelight:blocks/red_canvas_wall_sign" +} \ No newline at end of file diff --git a/src/generated/resources/data/farmersdelight/loot_table/blocks/red_mushroom_colony.json b/src/generated/resources/data/farmersdelight/loot_table/blocks/red_mushroom_colony.json index 64f0b04fa..956673871 100644 --- a/src/generated/resources/data/farmersdelight/loot_table/blocks/red_mushroom_colony.json +++ b/src/generated/resources/data/farmersdelight/loot_table/blocks/red_mushroom_colony.json @@ -25,7 +25,6 @@ ], "functions": [ { - "add": false, "count": 2.0, "function": "minecraft:set_count" } @@ -45,7 +44,6 @@ ], "functions": [ { - "add": false, "count": 3.0, "function": "minecraft:set_count" } @@ -65,7 +63,6 @@ ], "functions": [ { - "add": false, "count": 4.0, "function": "minecraft:set_count" } @@ -92,7 +89,6 @@ ], "functions": [ { - "add": false, "count": 5.0, "function": "minecraft:set_count" } diff --git a/src/generated/resources/data/farmersdelight/loot_table/blocks/red_wall_hanging_canvas_sign.json b/src/generated/resources/data/farmersdelight/loot_table/blocks/red_wall_hanging_canvas_sign.json new file mode 100644 index 000000000..05d1fce1d --- /dev/null +++ b/src/generated/resources/data/farmersdelight/loot_table/blocks/red_wall_hanging_canvas_sign.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "farmersdelight:red_hanging_canvas_sign" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "farmersdelight:blocks/red_wall_hanging_canvas_sign" +} \ No newline at end of file diff --git a/src/generated/resources/data/farmersdelight/loot_table/blocks/tomatoes.json b/src/generated/resources/data/farmersdelight/loot_table/blocks/tomatoes.json index dbe66a613..3925d162f 100644 --- a/src/generated/resources/data/farmersdelight/loot_table/blocks/tomatoes.json +++ b/src/generated/resources/data/farmersdelight/loot_table/blocks/tomatoes.json @@ -25,7 +25,6 @@ ], "functions": [ { - "add": false, "count": { "type": "minecraft:uniform", "max": 2.0, diff --git a/src/generated/resources/data/farmersdelight/loot_table/blocks/tomatoes_on_rope.json b/src/generated/resources/data/farmersdelight/loot_table/blocks/tomatoes_on_rope.json index bb7cc1b82..10d576778 100644 --- a/src/generated/resources/data/farmersdelight/loot_table/blocks/tomatoes_on_rope.json +++ b/src/generated/resources/data/farmersdelight/loot_table/blocks/tomatoes_on_rope.json @@ -25,7 +25,6 @@ ], "functions": [ { - "add": false, "count": { "type": "minecraft:uniform", "max": 2.0, diff --git a/src/generated/resources/data/farmersdelight/loot_table/blocks/wall_hanging_canvas_sign.json b/src/generated/resources/data/farmersdelight/loot_table/blocks/wall_hanging_canvas_sign.json new file mode 100644 index 000000000..9d0baf6c4 --- /dev/null +++ b/src/generated/resources/data/farmersdelight/loot_table/blocks/wall_hanging_canvas_sign.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "farmersdelight:hanging_canvas_sign" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "farmersdelight:blocks/wall_hanging_canvas_sign" +} \ No newline at end of file diff --git a/src/generated/resources/data/farmersdelight/loot_table/blocks/white_canvas_wall_sign.json b/src/generated/resources/data/farmersdelight/loot_table/blocks/white_canvas_wall_sign.json new file mode 100644 index 000000000..ac543038c --- /dev/null +++ b/src/generated/resources/data/farmersdelight/loot_table/blocks/white_canvas_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": "farmersdelight:white_canvas_sign" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "farmersdelight:blocks/white_canvas_wall_sign" +} \ No newline at end of file diff --git a/src/generated/resources/data/farmersdelight/loot_table/blocks/white_wall_hanging_canvas_sign.json b/src/generated/resources/data/farmersdelight/loot_table/blocks/white_wall_hanging_canvas_sign.json new file mode 100644 index 000000000..998d8b140 --- /dev/null +++ b/src/generated/resources/data/farmersdelight/loot_table/blocks/white_wall_hanging_canvas_sign.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "farmersdelight:white_hanging_canvas_sign" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "farmersdelight:blocks/white_wall_hanging_canvas_sign" +} \ No newline at end of file diff --git a/src/generated/resources/data/farmersdelight/loot_table/blocks/wild_onions.json b/src/generated/resources/data/farmersdelight/loot_table/blocks/wild_onions.json index 529c417dd..611c45ff5 100644 --- a/src/generated/resources/data/farmersdelight/loot_table/blocks/wild_onions.json +++ b/src/generated/resources/data/farmersdelight/loot_table/blocks/wild_onions.json @@ -58,7 +58,6 @@ ], "functions": [ { - "add": false, "count": { "type": "minecraft:uniform", "max": 3.0, diff --git a/src/generated/resources/data/farmersdelight/loot_table/blocks/yellow_canvas_wall_sign.json b/src/generated/resources/data/farmersdelight/loot_table/blocks/yellow_canvas_wall_sign.json new file mode 100644 index 000000000..7bab4d6b4 --- /dev/null +++ b/src/generated/resources/data/farmersdelight/loot_table/blocks/yellow_canvas_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": "farmersdelight:yellow_canvas_sign" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "farmersdelight:blocks/yellow_canvas_wall_sign" +} \ No newline at end of file diff --git a/src/generated/resources/data/farmersdelight/loot_table/blocks/yellow_wall_hanging_canvas_sign.json b/src/generated/resources/data/farmersdelight/loot_table/blocks/yellow_wall_hanging_canvas_sign.json new file mode 100644 index 000000000..876ef113e --- /dev/null +++ b/src/generated/resources/data/farmersdelight/loot_table/blocks/yellow_wall_hanging_canvas_sign.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "farmersdelight:yellow_hanging_canvas_sign" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "farmersdelight:blocks/yellow_wall_hanging_canvas_sign" +} \ No newline at end of file diff --git a/src/generated/resources/data/farmersdelight/loot_table/chests/fd_abandoned_mineshaft.json b/src/generated/resources/data/farmersdelight/loot_table/chests/fd_abandoned_mineshaft.json index f6c4a61bb..0aecd5da3 100644 --- a/src/generated/resources/data/farmersdelight/loot_table/chests/fd_abandoned_mineshaft.json +++ b/src/generated/resources/data/farmersdelight/loot_table/chests/fd_abandoned_mineshaft.json @@ -12,7 +12,6 @@ "type": "minecraft:item", "functions": [ { - "add": false, "damage": { "type": "minecraft:uniform", "max": 0.8, @@ -37,7 +36,6 @@ "type": "minecraft:item", "functions": [ { - "add": false, "count": { "type": "minecraft:uniform", "max": 4.0, @@ -52,7 +50,6 @@ "type": "minecraft:item", "functions": [ { - "add": false, "count": { "type": "minecraft:uniform", "max": 4.0, @@ -67,7 +64,6 @@ "type": "minecraft:item", "functions": [ { - "add": false, "count": { "type": "minecraft:uniform", "max": 4.0, @@ -96,7 +92,6 @@ "type": "minecraft:item", "functions": [ { - "add": false, "count": { "type": "minecraft:uniform", "max": 12.0, diff --git a/src/generated/resources/data/farmersdelight/loot_table/chests/fd_bastion_hoglin_stable.json b/src/generated/resources/data/farmersdelight/loot_table/chests/fd_bastion_hoglin_stable.json index aca5e3dda..c381a215a 100644 --- a/src/generated/resources/data/farmersdelight/loot_table/chests/fd_bastion_hoglin_stable.json +++ b/src/generated/resources/data/farmersdelight/loot_table/chests/fd_bastion_hoglin_stable.json @@ -8,7 +8,6 @@ "type": "minecraft:item", "functions": [ { - "add": false, "damage": { "type": "minecraft:uniform", "max": 0.8, @@ -48,7 +47,6 @@ "type": "minecraft:item", "functions": [ { - "add": false, "count": { "type": "minecraft:uniform", "max": 5.0, @@ -64,7 +62,6 @@ "type": "minecraft:item", "functions": [ { - "add": false, "count": { "type": "minecraft:uniform", "max": 5.0, diff --git a/src/generated/resources/data/farmersdelight/loot_table/chests/fd_bastion_treasure.json b/src/generated/resources/data/farmersdelight/loot_table/chests/fd_bastion_treasure.json index 6012eff45..8429a4f5a 100644 --- a/src/generated/resources/data/farmersdelight/loot_table/chests/fd_bastion_treasure.json +++ b/src/generated/resources/data/farmersdelight/loot_table/chests/fd_bastion_treasure.json @@ -8,7 +8,6 @@ "type": "minecraft:item", "functions": [ { - "add": false, "damage": { "type": "minecraft:uniform", "max": 1.0, diff --git a/src/generated/resources/data/farmersdelight/loot_table/chests/fd_pillager_outpost.json b/src/generated/resources/data/farmersdelight/loot_table/chests/fd_pillager_outpost.json index ad311f227..1f504db21 100644 --- a/src/generated/resources/data/farmersdelight/loot_table/chests/fd_pillager_outpost.json +++ b/src/generated/resources/data/farmersdelight/loot_table/chests/fd_pillager_outpost.json @@ -8,7 +8,6 @@ "type": "minecraft:item", "functions": [ { - "add": false, "count": { "type": "minecraft:uniform", "max": 12.0, @@ -24,7 +23,6 @@ "type": "minecraft:item", "functions": [ { - "add": false, "count": { "type": "minecraft:uniform", "max": 3.0, diff --git a/src/generated/resources/data/farmersdelight/loot_table/chests/fd_shipwreck_supply.json b/src/generated/resources/data/farmersdelight/loot_table/chests/fd_shipwreck_supply.json index 145859304..f1b87cc1b 100644 --- a/src/generated/resources/data/farmersdelight/loot_table/chests/fd_shipwreck_supply.json +++ b/src/generated/resources/data/farmersdelight/loot_table/chests/fd_shipwreck_supply.json @@ -8,7 +8,6 @@ "type": "minecraft:item", "functions": [ { - "add": false, "count": { "type": "minecraft:uniform", "max": 4.0, @@ -24,7 +23,6 @@ "type": "minecraft:item", "functions": [ { - "add": false, "count": { "type": "minecraft:uniform", "max": 4.0, @@ -40,7 +38,6 @@ "type": "minecraft:item", "functions": [ { - "add": false, "count": { "type": "minecraft:uniform", "max": 4.0, @@ -56,7 +53,6 @@ "type": "minecraft:item", "functions": [ { - "add": false, "count": { "type": "minecraft:uniform", "max": 4.0, @@ -82,7 +78,6 @@ "type": "minecraft:item", "functions": [ { - "add": false, "count": { "type": "minecraft:uniform", "max": 12.0, diff --git a/src/generated/resources/data/farmersdelight/loot_table/chests/fd_simple_dungeon.json b/src/generated/resources/data/farmersdelight/loot_table/chests/fd_simple_dungeon.json index e28a8a0b8..aafd4049c 100644 --- a/src/generated/resources/data/farmersdelight/loot_table/chests/fd_simple_dungeon.json +++ b/src/generated/resources/data/farmersdelight/loot_table/chests/fd_simple_dungeon.json @@ -8,7 +8,6 @@ "type": "minecraft:item", "functions": [ { - "add": false, "count": { "type": "minecraft:uniform", "max": 4.0, @@ -23,7 +22,6 @@ "type": "minecraft:item", "functions": [ { - "add": false, "count": { "type": "minecraft:uniform", "max": 4.0, @@ -52,7 +50,6 @@ "type": "minecraft:item", "functions": [ { - "add": false, "count": { "type": "minecraft:uniform", "max": 12.0, diff --git a/src/generated/resources/data/farmersdelight/loot_table/chests/fd_village_butcher.json b/src/generated/resources/data/farmersdelight/loot_table/chests/fd_village_butcher.json index 64071470c..f769fb677 100644 --- a/src/generated/resources/data/farmersdelight/loot_table/chests/fd_village_butcher.json +++ b/src/generated/resources/data/farmersdelight/loot_table/chests/fd_village_butcher.json @@ -29,7 +29,6 @@ "type": "minecraft:item", "functions": [ { - "add": false, "count": { "type": "minecraft:uniform", "max": 6.0, @@ -45,7 +44,6 @@ "type": "minecraft:item", "functions": [ { - "add": false, "count": { "type": "minecraft:uniform", "max": 6.0, @@ -61,7 +59,6 @@ "type": "minecraft:item", "functions": [ { - "add": false, "count": { "type": "minecraft:uniform", "max": 6.0, diff --git a/src/generated/resources/data/farmersdelight/loot_table/chests/fd_village_desert_house.json b/src/generated/resources/data/farmersdelight/loot_table/chests/fd_village_desert_house.json index ca46be96f..9e086924d 100644 --- a/src/generated/resources/data/farmersdelight/loot_table/chests/fd_village_desert_house.json +++ b/src/generated/resources/data/farmersdelight/loot_table/chests/fd_village_desert_house.json @@ -8,7 +8,6 @@ "type": "minecraft:item", "functions": [ { - "add": false, "count": { "type": "minecraft:uniform", "max": 3.0, @@ -23,7 +22,6 @@ "type": "minecraft:item", "functions": [ { - "add": false, "count": { "type": "minecraft:uniform", "max": 3.0, diff --git a/src/generated/resources/data/farmersdelight/loot_table/chests/fd_village_plains_house.json b/src/generated/resources/data/farmersdelight/loot_table/chests/fd_village_plains_house.json index ee2a27109..0f019ee8e 100644 --- a/src/generated/resources/data/farmersdelight/loot_table/chests/fd_village_plains_house.json +++ b/src/generated/resources/data/farmersdelight/loot_table/chests/fd_village_plains_house.json @@ -8,7 +8,6 @@ "type": "minecraft:item", "functions": [ { - "add": false, "count": { "type": "minecraft:uniform", "max": 3.0, @@ -23,7 +22,6 @@ "type": "minecraft:item", "functions": [ { - "add": false, "count": { "type": "minecraft:uniform", "max": 3.0, diff --git a/src/generated/resources/data/farmersdelight/loot_table/chests/fd_village_savanna_house.json b/src/generated/resources/data/farmersdelight/loot_table/chests/fd_village_savanna_house.json index 5da591748..bd9f8ac19 100644 --- a/src/generated/resources/data/farmersdelight/loot_table/chests/fd_village_savanna_house.json +++ b/src/generated/resources/data/farmersdelight/loot_table/chests/fd_village_savanna_house.json @@ -8,7 +8,6 @@ "type": "minecraft:item", "functions": [ { - "add": false, "count": { "type": "minecraft:uniform", "max": 3.0, @@ -23,7 +22,6 @@ "type": "minecraft:item", "functions": [ { - "add": false, "count": { "type": "minecraft:uniform", "max": 3.0, diff --git a/src/generated/resources/data/farmersdelight/loot_table/chests/fd_village_snowy_house.json b/src/generated/resources/data/farmersdelight/loot_table/chests/fd_village_snowy_house.json index 4c4d5753a..ec9d7a3ae 100644 --- a/src/generated/resources/data/farmersdelight/loot_table/chests/fd_village_snowy_house.json +++ b/src/generated/resources/data/farmersdelight/loot_table/chests/fd_village_snowy_house.json @@ -8,7 +8,6 @@ "type": "minecraft:item", "functions": [ { - "add": false, "count": { "type": "minecraft:uniform", "max": 3.0, @@ -23,7 +22,6 @@ "type": "minecraft:item", "functions": [ { - "add": false, "count": { "type": "minecraft:uniform", "max": 3.0, diff --git a/src/generated/resources/data/farmersdelight/loot_table/chests/fd_village_taiga_house.json b/src/generated/resources/data/farmersdelight/loot_table/chests/fd_village_taiga_house.json index 233f65f89..50f017807 100644 --- a/src/generated/resources/data/farmersdelight/loot_table/chests/fd_village_taiga_house.json +++ b/src/generated/resources/data/farmersdelight/loot_table/chests/fd_village_taiga_house.json @@ -8,7 +8,6 @@ "type": "minecraft:item", "functions": [ { - "add": false, "count": { "type": "minecraft:uniform", "max": 3.0, @@ -23,7 +22,6 @@ "type": "minecraft:item", "functions": [ { - "add": false, "count": { "type": "minecraft:uniform", "max": 3.0, diff --git a/src/generated/resources/data/farmersdelight/recipe/acacia_cabinet.json b/src/generated/resources/data/farmersdelight/recipe/acacia_cabinet.json index 8957deded..5a0169c9d 100644 --- a/src/generated/resources/data/farmersdelight/recipe/acacia_cabinet.json +++ b/src/generated/resources/data/farmersdelight/recipe/acacia_cabinet.json @@ -1,14 +1,9 @@ { "type": "minecraft:crafting_shaped", - "category": "misc", "group": "fd_cabinet", "key": { - "D": { - "item": "minecraft:acacia_trapdoor" - }, - "_": { - "item": "minecraft:acacia_slab" - } + "D": "minecraft:acacia_trapdoor", + "_": "minecraft:acacia_slab" }, "pattern": [ "___", @@ -16,7 +11,6 @@ "___" ], "result": { - "count": 1, "id": "farmersdelight:acacia_cabinet" } } \ No newline at end of file diff --git a/src/generated/resources/data/farmersdelight/recipe/apple_pie.json b/src/generated/resources/data/farmersdelight/recipe/apple_pie.json index a581d221c..9ebc85d16 100644 --- a/src/generated/resources/data/farmersdelight/recipe/apple_pie.json +++ b/src/generated/resources/data/farmersdelight/recipe/apple_pie.json @@ -1,20 +1,11 @@ { "type": "minecraft:crafting_shaped", - "category": "misc", "group": "fd_apple_pie", "key": { - "#": { - "tag": "c:crops/wheat" - }, - "O": { - "item": "farmersdelight:pie_crust" - }, - "a": { - "item": "minecraft:apple" - }, - "x": { - "item": "minecraft:sugar" - } + "#": "#c:crops/wheat", + "O": "farmersdelight:pie_crust", + "a": "minecraft:apple", + "x": "minecraft:sugar" }, "pattern": [ "###", @@ -22,7 +13,6 @@ "xOx" ], "result": { - "count": 1, "id": "farmersdelight:apple_pie" } } \ No newline at end of file diff --git a/src/generated/resources/data/farmersdelight/recipe/apple_pie_from_slices.json b/src/generated/resources/data/farmersdelight/recipe/apple_pie_from_slices.json index 5059dc172..93f348e00 100644 --- a/src/generated/resources/data/farmersdelight/recipe/apple_pie_from_slices.json +++ b/src/generated/resources/data/farmersdelight/recipe/apple_pie_from_slices.json @@ -1,18 +1,14 @@ { "type": "minecraft:crafting_shaped", - "category": "misc", "group": "fd_apple_pie", "key": { - "#": { - "item": "farmersdelight:apple_pie_slice" - } + "#": "farmersdelight:apple_pie_slice" }, "pattern": [ "##", "##" ], "result": { - "count": 1, "id": "farmersdelight:apple_pie" } } \ No newline at end of file diff --git a/src/generated/resources/data/farmersdelight/recipe/bacon_and_eggs.json b/src/generated/resources/data/farmersdelight/recipe/bacon_and_eggs.json index 828a74e9e..18c6fc5a8 100644 --- a/src/generated/resources/data/farmersdelight/recipe/bacon_and_eggs.json +++ b/src/generated/resources/data/farmersdelight/recipe/bacon_and_eggs.json @@ -1,25 +1,13 @@ { "type": "minecraft:crafting_shapeless", - "category": "misc", "ingredients": [ - { - "tag": "c:foods/cooked_bacon" - }, - { - "tag": "c:foods/cooked_bacon" - }, - { - "item": "minecraft:bowl" - }, - { - "tag": "c:foods/cooked_egg" - }, - { - "tag": "c:foods/cooked_egg" - } + "#c:foods/cooked_bacon", + "#c:foods/cooked_bacon", + "minecraft:bowl", + "#c:foods/cooked_egg", + "#c:foods/cooked_egg" ], "result": { - "count": 1, "id": "farmersdelight:bacon_and_eggs" } } \ No newline at end of file diff --git a/src/generated/resources/data/farmersdelight/recipe/bacon_sandwich.json b/src/generated/resources/data/farmersdelight/recipe/bacon_sandwich.json index 4d43f51ba..7d3fcb08d 100644 --- a/src/generated/resources/data/farmersdelight/recipe/bacon_sandwich.json +++ b/src/generated/resources/data/farmersdelight/recipe/bacon_sandwich.json @@ -1,22 +1,12 @@ { "type": "minecraft:crafting_shapeless", - "category": "misc", "ingredients": [ - { - "tag": "c:foods/bread" - }, - { - "tag": "c:foods/cooked_bacon" - }, - { - "tag": "c:foods/leafy_green" - }, - { - "tag": "c:crops/tomato" - } + "#c:foods/bread", + "#c:foods/cooked_bacon", + "#c:foods/leafy_green", + "#c:crops/tomato" ], "result": { - "count": 1, "id": "farmersdelight:bacon_sandwich" } } \ No newline at end of file diff --git a/src/generated/resources/data/farmersdelight/recipe/bamboo_basket.json b/src/generated/resources/data/farmersdelight/recipe/bamboo_basket.json index 12d2a0e19..a21b322f2 100644 --- a/src/generated/resources/data/farmersdelight/recipe/bamboo_basket.json +++ b/src/generated/resources/data/farmersdelight/recipe/bamboo_basket.json @@ -1,13 +1,8 @@ { "type": "minecraft:crafting_shaped", - "category": "misc", "key": { - "#": { - "item": "farmersdelight:canvas" - }, - "/": { - "item": "minecraft:bamboo" - } + "#": "farmersdelight:canvas", + "/": "minecraft:bamboo" }, "pattern": [ "/ /", @@ -15,7 +10,6 @@ "/#/" ], "result": { - "count": 1, "id": "farmersdelight:bamboo_basket" } } \ No newline at end of file diff --git a/src/generated/resources/data/farmersdelight/recipe/bamboo_cabinet.json b/src/generated/resources/data/farmersdelight/recipe/bamboo_cabinet.json index d1f8cd861..7c8f68676 100644 --- a/src/generated/resources/data/farmersdelight/recipe/bamboo_cabinet.json +++ b/src/generated/resources/data/farmersdelight/recipe/bamboo_cabinet.json @@ -1,14 +1,9 @@ { "type": "minecraft:crafting_shaped", - "category": "misc", "group": "fd_cabinet", "key": { - "D": { - "item": "minecraft:bamboo_trapdoor" - }, - "_": { - "item": "minecraft:bamboo_slab" - } + "D": "minecraft:bamboo_trapdoor", + "_": "minecraft:bamboo_slab" }, "pattern": [ "___", @@ -16,7 +11,6 @@ "___" ], "result": { - "count": 1, "id": "farmersdelight:bamboo_cabinet" } } \ No newline at end of file diff --git a/src/generated/resources/data/farmersdelight/recipe/barbecue_stick.json b/src/generated/resources/data/farmersdelight/recipe/barbecue_stick.json index 8c19c139a..c1d199e18 100644 --- a/src/generated/resources/data/farmersdelight/recipe/barbecue_stick.json +++ b/src/generated/resources/data/farmersdelight/recipe/barbecue_stick.json @@ -1,22 +1,12 @@ { "type": "minecraft:crafting_shapeless", - "category": "misc", "ingredients": [ - { - "tag": "c:crops/tomato" - }, - { - "tag": "c:crops/onion" - }, - { - "tag": "c:foods/cooked_meat" - }, - { - "item": "minecraft:stick" - } + "#c:crops/tomato", + "#c:crops/onion", + "#c:foods/cooked_meat", + "minecraft:stick" ], "result": { - "count": 1, "id": "farmersdelight:barbecue_stick" } } \ No newline at end of file diff --git a/src/generated/resources/data/farmersdelight/recipe/beef_patty.json b/src/generated/resources/data/farmersdelight/recipe/beef_patty.json index 3ead16a9f..9716c42b3 100644 --- a/src/generated/resources/data/farmersdelight/recipe/beef_patty.json +++ b/src/generated/resources/data/farmersdelight/recipe/beef_patty.json @@ -1,13 +1,9 @@ { "type": "minecraft:smelting", "category": "food", - "cookingtime": 200, "experience": 0.35, - "ingredient": { - "item": "farmersdelight:minced_beef" - }, + "ingredient": "farmersdelight:minced_beef", "result": { - "count": 1, "id": "farmersdelight:beef_patty" } } \ No newline at end of file diff --git a/src/generated/resources/data/farmersdelight/recipe/beef_patty_from_campfire_cooking.json b/src/generated/resources/data/farmersdelight/recipe/beef_patty_from_campfire_cooking.json index 74cace00f..73c131dec 100644 --- a/src/generated/resources/data/farmersdelight/recipe/beef_patty_from_campfire_cooking.json +++ b/src/generated/resources/data/farmersdelight/recipe/beef_patty_from_campfire_cooking.json @@ -3,11 +3,8 @@ "category": "food", "cookingtime": 600, "experience": 0.35, - "ingredient": { - "item": "farmersdelight:minced_beef" - }, + "ingredient": "farmersdelight:minced_beef", "result": { - "count": 1, "id": "farmersdelight:beef_patty" } } \ No newline at end of file diff --git a/src/generated/resources/data/farmersdelight/recipe/beef_patty_from_smoking.json b/src/generated/resources/data/farmersdelight/recipe/beef_patty_from_smoking.json index a9e259e0d..4662684c8 100644 --- a/src/generated/resources/data/farmersdelight/recipe/beef_patty_from_smoking.json +++ b/src/generated/resources/data/farmersdelight/recipe/beef_patty_from_smoking.json @@ -1,13 +1,9 @@ { "type": "minecraft:smoking", "category": "food", - "cookingtime": 100, "experience": 0.35, - "ingredient": { - "item": "farmersdelight:minced_beef" - }, + "ingredient": "farmersdelight:minced_beef", "result": { - "count": 1, "id": "farmersdelight:beef_patty" } } \ No newline at end of file diff --git a/src/generated/resources/data/farmersdelight/recipe/beetroot_crate.json b/src/generated/resources/data/farmersdelight/recipe/beetroot_crate.json index 2e46de43d..b569cbb13 100644 --- a/src/generated/resources/data/farmersdelight/recipe/beetroot_crate.json +++ b/src/generated/resources/data/farmersdelight/recipe/beetroot_crate.json @@ -7,9 +7,7 @@ "type": "minecraft:crafting_shaped", "category": "building", "key": { - "#": { - "item": "minecraft:beetroot" - } + "#": "minecraft:beetroot" }, "pattern": [ "###", @@ -17,7 +15,6 @@ "###" ], "result": { - "count": 1, "id": "farmersdelight:beetroot_crate" } } \ No newline at end of file diff --git a/src/generated/resources/data/farmersdelight/recipe/beetroot_from_crate.json b/src/generated/resources/data/farmersdelight/recipe/beetroot_from_crate.json index 334247472..7522e84ce 100644 --- a/src/generated/resources/data/farmersdelight/recipe/beetroot_from_crate.json +++ b/src/generated/resources/data/farmersdelight/recipe/beetroot_from_crate.json @@ -1,10 +1,7 @@ { "type": "minecraft:crafting_shapeless", - "category": "misc", "ingredients": [ - { - "item": "farmersdelight:beetroot_crate" - } + "farmersdelight:beetroot_crate" ], "result": { "count": 9, diff --git a/src/generated/resources/data/farmersdelight/recipe/birch_cabinet.json b/src/generated/resources/data/farmersdelight/recipe/birch_cabinet.json index b826d3619..7903fdb6d 100644 --- a/src/generated/resources/data/farmersdelight/recipe/birch_cabinet.json +++ b/src/generated/resources/data/farmersdelight/recipe/birch_cabinet.json @@ -1,14 +1,9 @@ { "type": "minecraft:crafting_shaped", - "category": "misc", "group": "fd_cabinet", "key": { - "D": { - "item": "minecraft:birch_trapdoor" - }, - "_": { - "item": "minecraft:birch_slab" - } + "D": "minecraft:birch_trapdoor", + "_": "minecraft:birch_slab" }, "pattern": [ "___", @@ -16,7 +11,6 @@ "___" ], "result": { - "count": 1, "id": "farmersdelight:birch_cabinet" } } \ No newline at end of file diff --git a/src/generated/resources/data/farmersdelight/recipe/black_canvas_sign.json b/src/generated/resources/data/farmersdelight/recipe/black_canvas_sign.json index 7de940209..dd3664aba 100644 --- a/src/generated/resources/data/farmersdelight/recipe/black_canvas_sign.json +++ b/src/generated/resources/data/farmersdelight/recipe/black_canvas_sign.json @@ -1,17 +1,11 @@ { "type": "minecraft:crafting_shapeless", - "category": "misc", "group": "fd_canvas_sign", "ingredients": [ - { - "tag": "farmersdelight:canvas_signs" - }, - { - "tag": "c:dyes/black" - } + "#farmersdelight:canvas_signs", + "#c:dyes/black" ], "result": { - "count": 1, "id": "farmersdelight:black_canvas_sign" } } \ No newline at end of file diff --git a/src/generated/resources/data/farmersdelight/recipe/black_hanging_canvas_sign.json b/src/generated/resources/data/farmersdelight/recipe/black_hanging_canvas_sign.json index a4f183e48..e12f07246 100644 --- a/src/generated/resources/data/farmersdelight/recipe/black_hanging_canvas_sign.json +++ b/src/generated/resources/data/farmersdelight/recipe/black_hanging_canvas_sign.json @@ -1,17 +1,11 @@ { "type": "minecraft:crafting_shapeless", - "category": "misc", "group": "fd_hanging_canvas_sign", "ingredients": [ - { - "tag": "farmersdelight:hanging_canvas_signs" - }, - { - "tag": "c:dyes/black" - } + "#farmersdelight:hanging_canvas_signs", + "#c:dyes/black" ], "result": { - "count": 1, "id": "farmersdelight:black_hanging_canvas_sign" } } \ No newline at end of file diff --git a/src/generated/resources/data/farmersdelight/recipe/blue_canvas_sign.json b/src/generated/resources/data/farmersdelight/recipe/blue_canvas_sign.json index 20b4d3fc7..b67c3bd27 100644 --- a/src/generated/resources/data/farmersdelight/recipe/blue_canvas_sign.json +++ b/src/generated/resources/data/farmersdelight/recipe/blue_canvas_sign.json @@ -1,17 +1,11 @@ { "type": "minecraft:crafting_shapeless", - "category": "misc", "group": "fd_canvas_sign", "ingredients": [ - { - "tag": "farmersdelight:canvas_signs" - }, - { - "tag": "c:dyes/blue" - } + "#farmersdelight:canvas_signs", + "#c:dyes/blue" ], "result": { - "count": 1, "id": "farmersdelight:blue_canvas_sign" } } \ No newline at end of file diff --git a/src/generated/resources/data/farmersdelight/recipe/blue_hanging_canvas_sign.json b/src/generated/resources/data/farmersdelight/recipe/blue_hanging_canvas_sign.json index 10117713f..266e96350 100644 --- a/src/generated/resources/data/farmersdelight/recipe/blue_hanging_canvas_sign.json +++ b/src/generated/resources/data/farmersdelight/recipe/blue_hanging_canvas_sign.json @@ -1,17 +1,11 @@ { "type": "minecraft:crafting_shapeless", - "category": "misc", "group": "fd_hanging_canvas_sign", "ingredients": [ - { - "tag": "farmersdelight:hanging_canvas_signs" - }, - { - "tag": "c:dyes/blue" - } + "#farmersdelight:hanging_canvas_signs", + "#c:dyes/blue" ], "result": { - "count": 1, "id": "farmersdelight:blue_hanging_canvas_sign" } } \ No newline at end of file diff --git a/src/generated/resources/data/farmersdelight/recipe/book_from_canvas.json b/src/generated/resources/data/farmersdelight/recipe/book_from_canvas.json index 8d3223af9..44431941f 100644 --- a/src/generated/resources/data/farmersdelight/recipe/book_from_canvas.json +++ b/src/generated/resources/data/farmersdelight/recipe/book_from_canvas.json @@ -1,22 +1,12 @@ { "type": "minecraft:crafting_shapeless", - "category": "misc", "ingredients": [ - { - "item": "minecraft:paper" - }, - { - "item": "minecraft:paper" - }, - { - "item": "minecraft:paper" - }, - { - "item": "farmersdelight:canvas" - } + "minecraft:paper", + "minecraft:paper", + "minecraft:paper", + "farmersdelight:canvas" ], "result": { - "count": 1, "id": "minecraft:book" } } \ No newline at end of file diff --git a/src/generated/resources/data/farmersdelight/recipe/bread_from_smelting.json b/src/generated/resources/data/farmersdelight/recipe/bread_from_smelting.json index c282abeda..244aa44b0 100644 --- a/src/generated/resources/data/farmersdelight/recipe/bread_from_smelting.json +++ b/src/generated/resources/data/farmersdelight/recipe/bread_from_smelting.json @@ -1,13 +1,9 @@ { "type": "minecraft:smelting", "category": "food", - "cookingtime": 200, "experience": 0.35, - "ingredient": { - "item": "farmersdelight:wheat_dough" - }, + "ingredient": "farmersdelight:wheat_dough", "result": { - "count": 1, "id": "minecraft:bread" } } \ No newline at end of file diff --git a/src/generated/resources/data/farmersdelight/recipe/bread_from_smoking.json b/src/generated/resources/data/farmersdelight/recipe/bread_from_smoking.json index 81bf30133..001aa0d25 100644 --- a/src/generated/resources/data/farmersdelight/recipe/bread_from_smoking.json +++ b/src/generated/resources/data/farmersdelight/recipe/bread_from_smoking.json @@ -1,13 +1,9 @@ { "type": "minecraft:smoking", "category": "food", - "cookingtime": 100, "experience": 0.35, - "ingredient": { - "item": "farmersdelight:wheat_dough" - }, + "ingredient": "farmersdelight:wheat_dough", "result": { - "count": 1, "id": "minecraft:bread" } } \ No newline at end of file diff --git a/src/generated/resources/data/farmersdelight/recipe/brown_canvas_sign.json b/src/generated/resources/data/farmersdelight/recipe/brown_canvas_sign.json index 0eb480848..0fda1f6a8 100644 --- a/src/generated/resources/data/farmersdelight/recipe/brown_canvas_sign.json +++ b/src/generated/resources/data/farmersdelight/recipe/brown_canvas_sign.json @@ -1,17 +1,11 @@ { "type": "minecraft:crafting_shapeless", - "category": "misc", "group": "fd_canvas_sign", "ingredients": [ - { - "tag": "farmersdelight:canvas_signs" - }, - { - "tag": "c:dyes/brown" - } + "#farmersdelight:canvas_signs", + "#c:dyes/brown" ], "result": { - "count": 1, "id": "farmersdelight:brown_canvas_sign" } } \ No newline at end of file diff --git a/src/generated/resources/data/farmersdelight/recipe/brown_hanging_canvas_sign.json b/src/generated/resources/data/farmersdelight/recipe/brown_hanging_canvas_sign.json index 5a4c2090a..498e1c59e 100644 --- a/src/generated/resources/data/farmersdelight/recipe/brown_hanging_canvas_sign.json +++ b/src/generated/resources/data/farmersdelight/recipe/brown_hanging_canvas_sign.json @@ -1,17 +1,11 @@ { "type": "minecraft:crafting_shapeless", - "category": "misc", "group": "fd_hanging_canvas_sign", "ingredients": [ - { - "tag": "farmersdelight:hanging_canvas_signs" - }, - { - "tag": "c:dyes/brown" - } + "#farmersdelight:hanging_canvas_signs", + "#c:dyes/brown" ], "result": { - "count": 1, "id": "farmersdelight:brown_hanging_canvas_sign" } } \ No newline at end of file diff --git a/src/generated/resources/data/farmersdelight/recipe/cabbage.json b/src/generated/resources/data/farmersdelight/recipe/cabbage.json index f44667450..789ea6910 100644 --- a/src/generated/resources/data/farmersdelight/recipe/cabbage.json +++ b/src/generated/resources/data/farmersdelight/recipe/cabbage.json @@ -1,11 +1,8 @@ { "type": "minecraft:crafting_shapeless", - "category": "misc", "group": "fd_cabbage", "ingredients": [ - { - "item": "farmersdelight:cabbage_crate" - } + "farmersdelight:cabbage_crate" ], "result": { "count": 9, diff --git a/src/generated/resources/data/farmersdelight/recipe/cabbage_crate.json b/src/generated/resources/data/farmersdelight/recipe/cabbage_crate.json index 94739ce02..ec42b4fd2 100644 --- a/src/generated/resources/data/farmersdelight/recipe/cabbage_crate.json +++ b/src/generated/resources/data/farmersdelight/recipe/cabbage_crate.json @@ -2,9 +2,7 @@ "type": "minecraft:crafting_shaped", "category": "building", "key": { - "#": { - "item": "farmersdelight:cabbage" - } + "#": "farmersdelight:cabbage" }, "pattern": [ "###", @@ -12,7 +10,6 @@ "###" ], "result": { - "count": 1, "id": "farmersdelight:cabbage_crate" } } \ No newline at end of file diff --git a/src/generated/resources/data/farmersdelight/recipe/cabbage_from_leaves.json b/src/generated/resources/data/farmersdelight/recipe/cabbage_from_leaves.json index 3a626db94..562854270 100644 --- a/src/generated/resources/data/farmersdelight/recipe/cabbage_from_leaves.json +++ b/src/generated/resources/data/farmersdelight/recipe/cabbage_from_leaves.json @@ -1,17 +1,11 @@ { "type": "minecraft:crafting_shapeless", - "category": "misc", "group": "fd_cabbage", "ingredients": [ - { - "item": "farmersdelight:cabbage_leaf" - }, - { - "item": "farmersdelight:cabbage_leaf" - } + "farmersdelight:cabbage_leaf", + "farmersdelight:cabbage_leaf" ], "result": { - "count": 1, "id": "farmersdelight:cabbage" } } \ No newline at end of file diff --git a/src/generated/resources/data/farmersdelight/recipe/cake_from_milk_bottle.json b/src/generated/resources/data/farmersdelight/recipe/cake_from_milk_bottle.json index ffe7b9a40..2a92ea044 100644 --- a/src/generated/resources/data/farmersdelight/recipe/cake_from_milk_bottle.json +++ b/src/generated/resources/data/farmersdelight/recipe/cake_from_milk_bottle.json @@ -1,20 +1,11 @@ { "type": "minecraft:crafting_shaped", - "category": "misc", "group": "cake", "key": { - "e": { - "tag": "c:eggs" - }, - "m": { - "tag": "c:drinks/milk" - }, - "s": { - "item": "minecraft:sugar" - }, - "w": { - "tag": "c:crops/wheat" - } + "e": "#c:eggs", + "m": "#c:drinks/milk", + "s": "minecraft:sugar", + "w": "#c:crops/wheat" }, "pattern": [ "mmm", @@ -22,7 +13,6 @@ "www" ], "result": { - "count": 1, "id": "minecraft:cake" } } \ No newline at end of file diff --git a/src/generated/resources/data/farmersdelight/recipe/cake_from_slices.json b/src/generated/resources/data/farmersdelight/recipe/cake_from_slices.json index 0bd6195c6..f05203bf5 100644 --- a/src/generated/resources/data/farmersdelight/recipe/cake_from_slices.json +++ b/src/generated/resources/data/farmersdelight/recipe/cake_from_slices.json @@ -1,32 +1,16 @@ { "type": "minecraft:crafting_shapeless", - "category": "misc", "group": "cake", "ingredients": [ - { - "item": "farmersdelight:cake_slice" - }, - { - "item": "farmersdelight:cake_slice" - }, - { - "item": "farmersdelight:cake_slice" - }, - { - "item": "farmersdelight:cake_slice" - }, - { - "item": "farmersdelight:cake_slice" - }, - { - "item": "farmersdelight:cake_slice" - }, - { - "item": "farmersdelight:cake_slice" - } + "farmersdelight:cake_slice", + "farmersdelight:cake_slice", + "farmersdelight:cake_slice", + "farmersdelight:cake_slice", + "farmersdelight:cake_slice", + "farmersdelight:cake_slice", + "farmersdelight:cake_slice" ], "result": { - "count": 1, "id": "minecraft:cake" } } \ No newline at end of file diff --git a/src/generated/resources/data/farmersdelight/recipe/canvas.json b/src/generated/resources/data/farmersdelight/recipe/canvas.json index bbc08c4bd..1783de9c8 100644 --- a/src/generated/resources/data/farmersdelight/recipe/canvas.json +++ b/src/generated/resources/data/farmersdelight/recipe/canvas.json @@ -1,18 +1,14 @@ { "type": "minecraft:crafting_shaped", - "category": "misc", "group": "fd_canvas", "key": { - "#": { - "item": "farmersdelight:straw" - } + "#": "farmersdelight:straw" }, "pattern": [ "##", "##" ], "result": { - "count": 1, "id": "farmersdelight:canvas" } } \ No newline at end of file diff --git a/src/generated/resources/data/farmersdelight/recipe/canvas_from_canvas_rug.json b/src/generated/resources/data/farmersdelight/recipe/canvas_from_canvas_rug.json index e72dadc49..d47995c86 100644 --- a/src/generated/resources/data/farmersdelight/recipe/canvas_from_canvas_rug.json +++ b/src/generated/resources/data/farmersdelight/recipe/canvas_from_canvas_rug.json @@ -1,17 +1,11 @@ { "type": "minecraft:crafting_shapeless", - "category": "misc", "group": "fd_canvas", "ingredients": [ - { - "item": "farmersdelight:canvas_rug" - }, - { - "item": "farmersdelight:canvas_rug" - } + "farmersdelight:canvas_rug", + "farmersdelight:canvas_rug" ], "result": { - "count": 1, "id": "farmersdelight:canvas" } } \ No newline at end of file diff --git a/src/generated/resources/data/farmersdelight/recipe/canvas_rug.json b/src/generated/resources/data/farmersdelight/recipe/canvas_rug.json index d53b68d3b..82435c12a 100644 --- a/src/generated/resources/data/farmersdelight/recipe/canvas_rug.json +++ b/src/generated/resources/data/farmersdelight/recipe/canvas_rug.json @@ -1,10 +1,7 @@ { "type": "minecraft:crafting_shapeless", - "category": "misc", "ingredients": [ - { - "item": "farmersdelight:canvas" - } + "farmersdelight:canvas" ], "result": { "count": 2, diff --git a/src/generated/resources/data/farmersdelight/recipe/canvas_sign.json b/src/generated/resources/data/farmersdelight/recipe/canvas_sign.json index 8a761cefe..460b0dc31 100644 --- a/src/generated/resources/data/farmersdelight/recipe/canvas_sign.json +++ b/src/generated/resources/data/farmersdelight/recipe/canvas_sign.json @@ -1,16 +1,9 @@ { "type": "minecraft:crafting_shaped", - "category": "misc", "key": { - "#": { - "item": "farmersdelight:canvas" - }, - "/": { - "item": "minecraft:stick" - }, - "w": { - "tag": "minecraft:planks" - } + "#": "farmersdelight:canvas", + "/": "minecraft:stick", + "w": "#minecraft:planks" }, "pattern": [ "w#w", diff --git a/src/generated/resources/data/farmersdelight/recipe/carrot_crate.json b/src/generated/resources/data/farmersdelight/recipe/carrot_crate.json index 7be54d556..4109ba006 100644 --- a/src/generated/resources/data/farmersdelight/recipe/carrot_crate.json +++ b/src/generated/resources/data/farmersdelight/recipe/carrot_crate.json @@ -7,9 +7,7 @@ "type": "minecraft:crafting_shaped", "category": "building", "key": { - "#": { - "item": "minecraft:carrot" - } + "#": "minecraft:carrot" }, "pattern": [ "###", @@ -17,7 +15,6 @@ "###" ], "result": { - "count": 1, "id": "farmersdelight:carrot_crate" } } \ No newline at end of file diff --git a/src/generated/resources/data/farmersdelight/recipe/carrot_from_crate.json b/src/generated/resources/data/farmersdelight/recipe/carrot_from_crate.json index 16381e838..3c2399a1d 100644 --- a/src/generated/resources/data/farmersdelight/recipe/carrot_from_crate.json +++ b/src/generated/resources/data/farmersdelight/recipe/carrot_from_crate.json @@ -1,10 +1,7 @@ { "type": "minecraft:crafting_shapeless", - "category": "misc", "ingredients": [ - { - "item": "farmersdelight:carrot_crate" - } + "farmersdelight:carrot_crate" ], "result": { "count": 9, diff --git a/src/generated/resources/data/farmersdelight/recipe/cherry_cabinet.json b/src/generated/resources/data/farmersdelight/recipe/cherry_cabinet.json index 9fed47a8a..9f67f4931 100644 --- a/src/generated/resources/data/farmersdelight/recipe/cherry_cabinet.json +++ b/src/generated/resources/data/farmersdelight/recipe/cherry_cabinet.json @@ -1,14 +1,9 @@ { "type": "minecraft:crafting_shaped", - "category": "misc", "group": "fd_cabinet", "key": { - "D": { - "item": "minecraft:cherry_trapdoor" - }, - "_": { - "item": "minecraft:cherry_slab" - } + "D": "minecraft:cherry_trapdoor", + "_": "minecraft:cherry_slab" }, "pattern": [ "___", @@ -16,7 +11,6 @@ "___" ], "result": { - "count": 1, "id": "farmersdelight:cherry_cabinet" } } \ No newline at end of file diff --git a/src/generated/resources/data/farmersdelight/recipe/chicken_sandwich.json b/src/generated/resources/data/farmersdelight/recipe/chicken_sandwich.json index 3bc3766cc..32527e8d9 100644 --- a/src/generated/resources/data/farmersdelight/recipe/chicken_sandwich.json +++ b/src/generated/resources/data/farmersdelight/recipe/chicken_sandwich.json @@ -1,22 +1,12 @@ { "type": "minecraft:crafting_shapeless", - "category": "misc", "ingredients": [ - { - "tag": "c:foods/bread" - }, - { - "tag": "c:foods/cooked_chicken" - }, - { - "tag": "c:foods/leafy_green" - }, - { - "tag": "c:crops/carrot" - } + "#c:foods/bread", + "#c:foods/cooked_chicken", + "#c:foods/leafy_green", + "#c:crops/carrot" ], "result": { - "count": 1, "id": "farmersdelight:chicken_sandwich" } } \ No newline at end of file diff --git a/src/generated/resources/data/farmersdelight/recipe/chocolate_pie.json b/src/generated/resources/data/farmersdelight/recipe/chocolate_pie.json index aa46b0c44..614f3fca6 100644 --- a/src/generated/resources/data/farmersdelight/recipe/chocolate_pie.json +++ b/src/generated/resources/data/farmersdelight/recipe/chocolate_pie.json @@ -1,20 +1,11 @@ { "type": "minecraft:crafting_shaped", - "category": "misc", "group": "fd_chocolate_pie", "key": { - "O": { - "item": "farmersdelight:pie_crust" - }, - "c": { - "item": "minecraft:cocoa_beans" - }, - "m": { - "tag": "c:drinks/milk" - }, - "x": { - "item": "minecraft:sugar" - } + "O": "farmersdelight:pie_crust", + "c": "minecraft:cocoa_beans", + "m": "#c:drinks/milk", + "x": "minecraft:sugar" }, "pattern": [ "ccc", @@ -22,7 +13,6 @@ "xOx" ], "result": { - "count": 1, "id": "farmersdelight:chocolate_pie" } } \ No newline at end of file diff --git a/src/generated/resources/data/farmersdelight/recipe/chocolate_pie_from_slices.json b/src/generated/resources/data/farmersdelight/recipe/chocolate_pie_from_slices.json index 4aa4edb66..fedca323c 100644 --- a/src/generated/resources/data/farmersdelight/recipe/chocolate_pie_from_slices.json +++ b/src/generated/resources/data/farmersdelight/recipe/chocolate_pie_from_slices.json @@ -1,18 +1,14 @@ { "type": "minecraft:crafting_shaped", - "category": "misc", "group": "fd_chocolate_pie", "key": { - "#": { - "item": "farmersdelight:chocolate_pie_slice" - } + "#": "farmersdelight:chocolate_pie_slice" }, "pattern": [ "##", "##" ], "result": { - "count": 1, "id": "farmersdelight:chocolate_pie" } } \ No newline at end of file diff --git a/src/generated/resources/data/farmersdelight/recipe/cod_roll.json b/src/generated/resources/data/farmersdelight/recipe/cod_roll.json index fdbe79960..d77b74a56 100644 --- a/src/generated/resources/data/farmersdelight/recipe/cod_roll.json +++ b/src/generated/resources/data/farmersdelight/recipe/cod_roll.json @@ -1,16 +1,9 @@ { "type": "minecraft:crafting_shapeless", - "category": "misc", "ingredients": [ - { - "item": "farmersdelight:cod_slice" - }, - { - "item": "farmersdelight:cod_slice" - }, - { - "item": "farmersdelight:cooked_rice" - } + "farmersdelight:cod_slice", + "farmersdelight:cod_slice", + "farmersdelight:cooked_rice" ], "result": { "count": 2, diff --git a/src/generated/resources/data/farmersdelight/recipe/cooked_bacon.json b/src/generated/resources/data/farmersdelight/recipe/cooked_bacon.json index bf0a03c65..164645d51 100644 --- a/src/generated/resources/data/farmersdelight/recipe/cooked_bacon.json +++ b/src/generated/resources/data/farmersdelight/recipe/cooked_bacon.json @@ -1,13 +1,9 @@ { "type": "minecraft:smelting", "category": "food", - "cookingtime": 200, "experience": 0.35, - "ingredient": { - "item": "farmersdelight:bacon" - }, + "ingredient": "farmersdelight:bacon", "result": { - "count": 1, "id": "farmersdelight:cooked_bacon" } } \ No newline at end of file diff --git a/src/generated/resources/data/farmersdelight/recipe/cooked_bacon_from_campfire_cooking.json b/src/generated/resources/data/farmersdelight/recipe/cooked_bacon_from_campfire_cooking.json index 3027c33b8..e974043ec 100644 --- a/src/generated/resources/data/farmersdelight/recipe/cooked_bacon_from_campfire_cooking.json +++ b/src/generated/resources/data/farmersdelight/recipe/cooked_bacon_from_campfire_cooking.json @@ -3,11 +3,8 @@ "category": "food", "cookingtime": 600, "experience": 0.35, - "ingredient": { - "item": "farmersdelight:bacon" - }, + "ingredient": "farmersdelight:bacon", "result": { - "count": 1, "id": "farmersdelight:cooked_bacon" } } \ No newline at end of file diff --git a/src/generated/resources/data/farmersdelight/recipe/cooked_bacon_from_smoking.json b/src/generated/resources/data/farmersdelight/recipe/cooked_bacon_from_smoking.json index b7a18d333..238b9d007 100644 --- a/src/generated/resources/data/farmersdelight/recipe/cooked_bacon_from_smoking.json +++ b/src/generated/resources/data/farmersdelight/recipe/cooked_bacon_from_smoking.json @@ -1,13 +1,9 @@ { "type": "minecraft:smoking", "category": "food", - "cookingtime": 100, "experience": 0.35, - "ingredient": { - "item": "farmersdelight:bacon" - }, + "ingredient": "farmersdelight:bacon", "result": { - "count": 1, "id": "farmersdelight:cooked_bacon" } } \ No newline at end of file diff --git a/src/generated/resources/data/farmersdelight/recipe/cooked_chicken_cuts.json b/src/generated/resources/data/farmersdelight/recipe/cooked_chicken_cuts.json index 0bd915a20..1ab805557 100644 --- a/src/generated/resources/data/farmersdelight/recipe/cooked_chicken_cuts.json +++ b/src/generated/resources/data/farmersdelight/recipe/cooked_chicken_cuts.json @@ -1,13 +1,9 @@ { "type": "minecraft:smelting", "category": "food", - "cookingtime": 200, "experience": 0.35, - "ingredient": { - "item": "farmersdelight:chicken_cuts" - }, + "ingredient": "farmersdelight:chicken_cuts", "result": { - "count": 1, "id": "farmersdelight:cooked_chicken_cuts" } } \ No newline at end of file diff --git a/src/generated/resources/data/farmersdelight/recipe/cooked_chicken_cuts_from_campfire_cooking.json b/src/generated/resources/data/farmersdelight/recipe/cooked_chicken_cuts_from_campfire_cooking.json index 38e3a746d..3ead676b1 100644 --- a/src/generated/resources/data/farmersdelight/recipe/cooked_chicken_cuts_from_campfire_cooking.json +++ b/src/generated/resources/data/farmersdelight/recipe/cooked_chicken_cuts_from_campfire_cooking.json @@ -3,11 +3,8 @@ "category": "food", "cookingtime": 600, "experience": 0.35, - "ingredient": { - "item": "farmersdelight:chicken_cuts" - }, + "ingredient": "farmersdelight:chicken_cuts", "result": { - "count": 1, "id": "farmersdelight:cooked_chicken_cuts" } } \ No newline at end of file diff --git a/src/generated/resources/data/farmersdelight/recipe/cooked_chicken_cuts_from_smoking.json b/src/generated/resources/data/farmersdelight/recipe/cooked_chicken_cuts_from_smoking.json index fddd7ffe7..f7d449e07 100644 --- a/src/generated/resources/data/farmersdelight/recipe/cooked_chicken_cuts_from_smoking.json +++ b/src/generated/resources/data/farmersdelight/recipe/cooked_chicken_cuts_from_smoking.json @@ -1,13 +1,9 @@ { "type": "minecraft:smoking", "category": "food", - "cookingtime": 100, "experience": 0.35, - "ingredient": { - "item": "farmersdelight:chicken_cuts" - }, + "ingredient": "farmersdelight:chicken_cuts", "result": { - "count": 1, "id": "farmersdelight:cooked_chicken_cuts" } } \ No newline at end of file diff --git a/src/generated/resources/data/farmersdelight/recipe/cooked_cod_slice.json b/src/generated/resources/data/farmersdelight/recipe/cooked_cod_slice.json index 8cb5671a3..9246d2d7a 100644 --- a/src/generated/resources/data/farmersdelight/recipe/cooked_cod_slice.json +++ b/src/generated/resources/data/farmersdelight/recipe/cooked_cod_slice.json @@ -1,13 +1,9 @@ { "type": "minecraft:smelting", "category": "food", - "cookingtime": 200, "experience": 0.35, - "ingredient": { - "item": "farmersdelight:cod_slice" - }, + "ingredient": "farmersdelight:cod_slice", "result": { - "count": 1, "id": "farmersdelight:cooked_cod_slice" } } \ No newline at end of file diff --git a/src/generated/resources/data/farmersdelight/recipe/cooked_cod_slice_from_campfire_cooking.json b/src/generated/resources/data/farmersdelight/recipe/cooked_cod_slice_from_campfire_cooking.json index 9d970a1c5..74e9247e3 100644 --- a/src/generated/resources/data/farmersdelight/recipe/cooked_cod_slice_from_campfire_cooking.json +++ b/src/generated/resources/data/farmersdelight/recipe/cooked_cod_slice_from_campfire_cooking.json @@ -3,11 +3,8 @@ "category": "food", "cookingtime": 600, "experience": 0.35, - "ingredient": { - "item": "farmersdelight:cod_slice" - }, + "ingredient": "farmersdelight:cod_slice", "result": { - "count": 1, "id": "farmersdelight:cooked_cod_slice" } } \ No newline at end of file diff --git a/src/generated/resources/data/farmersdelight/recipe/cooked_cod_slice_from_smoking.json b/src/generated/resources/data/farmersdelight/recipe/cooked_cod_slice_from_smoking.json index accf1712e..f65f8d539 100644 --- a/src/generated/resources/data/farmersdelight/recipe/cooked_cod_slice_from_smoking.json +++ b/src/generated/resources/data/farmersdelight/recipe/cooked_cod_slice_from_smoking.json @@ -1,13 +1,9 @@ { "type": "minecraft:smoking", "category": "food", - "cookingtime": 100, "experience": 0.35, - "ingredient": { - "item": "farmersdelight:cod_slice" - }, + "ingredient": "farmersdelight:cod_slice", "result": { - "count": 1, "id": "farmersdelight:cooked_cod_slice" } } \ No newline at end of file diff --git a/src/generated/resources/data/farmersdelight/recipe/cooked_mutton_chops.json b/src/generated/resources/data/farmersdelight/recipe/cooked_mutton_chops.json index f76a2bee1..ede061fcf 100644 --- a/src/generated/resources/data/farmersdelight/recipe/cooked_mutton_chops.json +++ b/src/generated/resources/data/farmersdelight/recipe/cooked_mutton_chops.json @@ -1,13 +1,9 @@ { "type": "minecraft:smelting", "category": "food", - "cookingtime": 200, "experience": 0.35, - "ingredient": { - "item": "farmersdelight:mutton_chops" - }, + "ingredient": "farmersdelight:mutton_chops", "result": { - "count": 1, "id": "farmersdelight:cooked_mutton_chops" } } \ No newline at end of file diff --git a/src/generated/resources/data/farmersdelight/recipe/cooked_mutton_chops_from_campfire_cooking.json b/src/generated/resources/data/farmersdelight/recipe/cooked_mutton_chops_from_campfire_cooking.json index b37adba35..50ef4b2d4 100644 --- a/src/generated/resources/data/farmersdelight/recipe/cooked_mutton_chops_from_campfire_cooking.json +++ b/src/generated/resources/data/farmersdelight/recipe/cooked_mutton_chops_from_campfire_cooking.json @@ -3,11 +3,8 @@ "category": "food", "cookingtime": 600, "experience": 0.35, - "ingredient": { - "item": "farmersdelight:mutton_chops" - }, + "ingredient": "farmersdelight:mutton_chops", "result": { - "count": 1, "id": "farmersdelight:cooked_mutton_chops" } } \ No newline at end of file diff --git a/src/generated/resources/data/farmersdelight/recipe/cooked_mutton_chops_from_smoking.json b/src/generated/resources/data/farmersdelight/recipe/cooked_mutton_chops_from_smoking.json index dbb0cf274..f6a5f2d28 100644 --- a/src/generated/resources/data/farmersdelight/recipe/cooked_mutton_chops_from_smoking.json +++ b/src/generated/resources/data/farmersdelight/recipe/cooked_mutton_chops_from_smoking.json @@ -1,13 +1,9 @@ { "type": "minecraft:smoking", "category": "food", - "cookingtime": 100, "experience": 0.35, - "ingredient": { - "item": "farmersdelight:mutton_chops" - }, + "ingredient": "farmersdelight:mutton_chops", "result": { - "count": 1, "id": "farmersdelight:cooked_mutton_chops" } } \ No newline at end of file diff --git a/src/generated/resources/data/farmersdelight/recipe/cooked_salmon_slice.json b/src/generated/resources/data/farmersdelight/recipe/cooked_salmon_slice.json index 781d8d93e..e40b57713 100644 --- a/src/generated/resources/data/farmersdelight/recipe/cooked_salmon_slice.json +++ b/src/generated/resources/data/farmersdelight/recipe/cooked_salmon_slice.json @@ -1,13 +1,9 @@ { "type": "minecraft:smelting", "category": "food", - "cookingtime": 200, "experience": 0.35, - "ingredient": { - "item": "farmersdelight:salmon_slice" - }, + "ingredient": "farmersdelight:salmon_slice", "result": { - "count": 1, "id": "farmersdelight:cooked_salmon_slice" } } \ No newline at end of file diff --git a/src/generated/resources/data/farmersdelight/recipe/cooked_salmon_slice_from_campfire_cooking.json b/src/generated/resources/data/farmersdelight/recipe/cooked_salmon_slice_from_campfire_cooking.json index 00f8a169c..5c846ccec 100644 --- a/src/generated/resources/data/farmersdelight/recipe/cooked_salmon_slice_from_campfire_cooking.json +++ b/src/generated/resources/data/farmersdelight/recipe/cooked_salmon_slice_from_campfire_cooking.json @@ -3,11 +3,8 @@ "category": "food", "cookingtime": 600, "experience": 0.35, - "ingredient": { - "item": "farmersdelight:salmon_slice" - }, + "ingredient": "farmersdelight:salmon_slice", "result": { - "count": 1, "id": "farmersdelight:cooked_salmon_slice" } } \ No newline at end of file diff --git a/src/generated/resources/data/farmersdelight/recipe/cooked_salmon_slice_from_smoking.json b/src/generated/resources/data/farmersdelight/recipe/cooked_salmon_slice_from_smoking.json index 8d0facc89..fa136d759 100644 --- a/src/generated/resources/data/farmersdelight/recipe/cooked_salmon_slice_from_smoking.json +++ b/src/generated/resources/data/farmersdelight/recipe/cooked_salmon_slice_from_smoking.json @@ -1,13 +1,9 @@ { "type": "minecraft:smoking", "category": "food", - "cookingtime": 100, "experience": 0.35, - "ingredient": { - "item": "farmersdelight:salmon_slice" - }, + "ingredient": "farmersdelight:salmon_slice", "result": { - "count": 1, "id": "farmersdelight:cooked_salmon_slice" } } \ No newline at end of file diff --git a/src/generated/resources/data/farmersdelight/recipe/cooking/apple_cider.json b/src/generated/resources/data/farmersdelight/recipe/cooking/apple_cider.json index 95b35c1a1..8594c42fb 100644 --- a/src/generated/resources/data/farmersdelight/recipe/cooking/apple_cider.json +++ b/src/generated/resources/data/farmersdelight/recipe/cooking/apple_cider.json @@ -2,19 +2,12 @@ "type": "farmersdelight:cooking", "experience": 1.0, "ingredients": [ - { - "item": "minecraft:apple" - }, - { - "item": "minecraft:apple" - }, - { - "item": "minecraft:sugar" - } + "minecraft:apple", + "minecraft:apple", + "minecraft:sugar" ], "recipe_book_tab": "drinks", "result": { - "count": 1, "id": "farmersdelight:apple_cider" } } \ No newline at end of file diff --git a/src/generated/resources/data/farmersdelight/recipe/cooking/baked_cod_stew.json b/src/generated/resources/data/farmersdelight/recipe/cooking/baked_cod_stew.json index 722862d94..447bc59d9 100644 --- a/src/generated/resources/data/farmersdelight/recipe/cooking/baked_cod_stew.json +++ b/src/generated/resources/data/farmersdelight/recipe/cooking/baked_cod_stew.json @@ -2,22 +2,13 @@ "type": "farmersdelight:cooking", "experience": 1.0, "ingredients": [ - { - "tag": "c:foods/raw_cod" - }, - { - "tag": "c:crops/potato" - }, - { - "tag": "c:eggs" - }, - { - "tag": "c:crops/tomato" - } + "#c:foods/raw_cod", + "#c:crops/potato", + "#c:eggs", + "#c:crops/tomato" ], "recipe_book_tab": "meals", "result": { - "count": 1, "id": "farmersdelight:baked_cod_stew" } } \ No newline at end of file diff --git a/src/generated/resources/data/farmersdelight/recipe/cooking/beef_stew.json b/src/generated/resources/data/farmersdelight/recipe/cooking/beef_stew.json index a3b63dc62..16a66ad11 100644 --- a/src/generated/resources/data/farmersdelight/recipe/cooking/beef_stew.json +++ b/src/generated/resources/data/farmersdelight/recipe/cooking/beef_stew.json @@ -2,19 +2,12 @@ "type": "farmersdelight:cooking", "experience": 1.0, "ingredients": [ - { - "tag": "c:foods/raw_beef" - }, - { - "tag": "c:crops/carrot" - }, - { - "tag": "c:crops/potato" - } + "#c:foods/raw_beef", + "#c:crops/carrot", + "#c:crops/potato" ], "recipe_book_tab": "meals", "result": { - "count": 1, "id": "farmersdelight:beef_stew" } } \ No newline at end of file diff --git a/src/generated/resources/data/farmersdelight/recipe/cooking/beetroot_soup.json b/src/generated/resources/data/farmersdelight/recipe/cooking/beetroot_soup.json index 5a313cc19..b30324d19 100644 --- a/src/generated/resources/data/farmersdelight/recipe/cooking/beetroot_soup.json +++ b/src/generated/resources/data/farmersdelight/recipe/cooking/beetroot_soup.json @@ -1,24 +1,16 @@ { "type": "farmersdelight:cooking", "container": { - "count": 1, "id": "minecraft:bowl" }, "experience": 1.0, "ingredients": [ - { - "tag": "c:crops/beetroot" - }, - { - "tag": "c:crops/beetroot" - }, - { - "tag": "c:crops/beetroot" - } + "#c:crops/beetroot", + "#c:crops/beetroot", + "#c:crops/beetroot" ], "recipe_book_tab": "meals", "result": { - "count": 1, "id": "minecraft:beetroot_soup" } } \ No newline at end of file diff --git a/src/generated/resources/data/farmersdelight/recipe/cooking/bone_broth.json b/src/generated/resources/data/farmersdelight/recipe/cooking/bone_broth.json index 4ef741d46..80595fa22 100644 --- a/src/generated/resources/data/farmersdelight/recipe/cooking/bone_broth.json +++ b/src/generated/resources/data/farmersdelight/recipe/cooking/bone_broth.json @@ -2,30 +2,19 @@ "type": "farmersdelight:cooking", "experience": 0.35, "ingredients": [ + "#c:bones", { - "tag": "c:bones" - }, - { - "type": "neoforge:compound", + "neoforge:ingredient_type": "neoforge:compound", "children": [ - { - "item": "minecraft:glow_berries" - }, - { - "tag": "c:mushrooms" - }, - { - "item": "minecraft:hanging_roots" - }, - { - "item": "minecraft:glow_lichen" - } + "minecraft:glow_berries", + "#c:mushrooms", + "minecraft:hanging_roots", + "minecraft:glow_lichen" ] } ], "recipe_book_tab": "meals", "result": { - "count": 1, "id": "farmersdelight:bone_broth" } } \ No newline at end of file diff --git a/src/generated/resources/data/farmersdelight/recipe/cooking/cabbage_rolls.json b/src/generated/resources/data/farmersdelight/recipe/cooking/cabbage_rolls.json index 0514103ab..951030688 100644 --- a/src/generated/resources/data/farmersdelight/recipe/cooking/cabbage_rolls.json +++ b/src/generated/resources/data/farmersdelight/recipe/cooking/cabbage_rolls.json @@ -3,29 +3,18 @@ "cookingtime": 100, "experience": 0.35, "ingredients": [ + "#c:crops/cabbage", { - "tag": "c:crops/cabbage" - }, - { - "type": "neoforge:compound", + "neoforge:ingredient_type": "neoforge:compound", "children": [ - { - "tag": "c:foods/raw_meat" - }, - { - "tag": "c:foods/safe_raw_fish" - }, - { - "tag": "c:foods/vegetable" - }, - { - "tag": "c:mushrooms" - } + "#c:foods/raw_meat", + "#c:foods/safe_raw_fish", + "#c:foods/vegetable", + "#c:mushrooms" ] } ], "result": { - "count": 1, "id": "farmersdelight:cabbage_rolls" } } \ No newline at end of file diff --git a/src/generated/resources/data/farmersdelight/recipe/cooking/chicken_soup.json b/src/generated/resources/data/farmersdelight/recipe/cooking/chicken_soup.json index 4e9df07b8..1b464c865 100644 --- a/src/generated/resources/data/farmersdelight/recipe/cooking/chicken_soup.json +++ b/src/generated/resources/data/farmersdelight/recipe/cooking/chicken_soup.json @@ -2,28 +2,17 @@ "type": "farmersdelight:cooking", "experience": 1.0, "ingredients": [ + "#c:foods/raw_chicken", + "#c:crops/carrot", + "#c:foods/leafy_green", { - "tag": "c:foods/raw_chicken" - }, - { - "tag": "c:crops/carrot" - }, - { - "tag": "c:foods/leafy_green" - }, - { - "type": "neoforge:difference", - "base": { - "tag": "c:foods/vegetable" - }, - "subtracted": { - "item": "minecraft:melon_slice" - } + "neoforge:ingredient_type": "neoforge:difference", + "base": "#c:foods/vegetable", + "subtracted": "minecraft:melon_slice" } ], "recipe_book_tab": "meals", "result": { - "count": 1, "id": "farmersdelight:chicken_soup" } } \ No newline at end of file diff --git a/src/generated/resources/data/farmersdelight/recipe/cooking/cooked_rice.json b/src/generated/resources/data/farmersdelight/recipe/cooking/cooked_rice.json index 829abf8ff..d9112e005 100644 --- a/src/generated/resources/data/farmersdelight/recipe/cooking/cooked_rice.json +++ b/src/generated/resources/data/farmersdelight/recipe/cooking/cooked_rice.json @@ -3,12 +3,9 @@ "cookingtime": 100, "experience": 0.35, "ingredients": [ - { - "tag": "c:crops/rice" - } + "#c:crops/rice" ], "result": { - "count": 1, "id": "farmersdelight:cooked_rice" } } \ No newline at end of file diff --git a/src/generated/resources/data/farmersdelight/recipe/cooking/dog_food.json b/src/generated/resources/data/farmersdelight/recipe/cooking/dog_food.json index 8ce558e44..d5c72663d 100644 --- a/src/generated/resources/data/farmersdelight/recipe/cooking/dog_food.json +++ b/src/generated/resources/data/farmersdelight/recipe/cooking/dog_food.json @@ -2,21 +2,12 @@ "type": "farmersdelight:cooking", "experience": 1.0, "ingredients": [ - { - "item": "minecraft:rotten_flesh" - }, - { - "item": "minecraft:bone_meal" - }, - { - "tag": "c:foods/raw_meat" - }, - { - "tag": "c:crops/rice" - } + "minecraft:rotten_flesh", + "minecraft:bone_meal", + "#c:foods/raw_meat", + "#c:crops/rice" ], "result": { - "count": 1, "id": "farmersdelight:dog_food" } } \ No newline at end of file diff --git a/src/generated/resources/data/farmersdelight/recipe/cooking/dumplings.json b/src/generated/resources/data/farmersdelight/recipe/cooking/dumplings.json index f88c11765..13f0fa7ac 100644 --- a/src/generated/resources/data/farmersdelight/recipe/cooking/dumplings.json +++ b/src/generated/resources/data/farmersdelight/recipe/cooking/dumplings.json @@ -2,30 +2,16 @@ "type": "farmersdelight:cooking", "experience": 1.0, "ingredients": [ + "#c:foods/dough", + "#c:crops/cabbage", + "#c:crops/onion", { - "tag": "c:foods/dough" - }, - { - "tag": "c:crops/cabbage" - }, - { - "tag": "c:crops/onion" - }, - { - "type": "neoforge:compound", + "neoforge:ingredient_type": "neoforge:compound", "children": [ - { - "tag": "c:foods/raw_chicken" - }, - { - "tag": "c:foods/raw_pork" - }, - { - "tag": "c:foods/raw_beef" - }, - { - "item": "minecraft:brown_mushroom" - } + "#c:foods/raw_chicken", + "#c:foods/raw_pork", + "#c:foods/raw_beef", + "minecraft:brown_mushroom" ] } ], diff --git a/src/generated/resources/data/farmersdelight/recipe/cooking/fish_stew.json b/src/generated/resources/data/farmersdelight/recipe/cooking/fish_stew.json index 8a363c87c..b3cb7411e 100644 --- a/src/generated/resources/data/farmersdelight/recipe/cooking/fish_stew.json +++ b/src/generated/resources/data/farmersdelight/recipe/cooking/fish_stew.json @@ -2,19 +2,12 @@ "type": "farmersdelight:cooking", "experience": 1.0, "ingredients": [ - { - "tag": "c:foods/safe_raw_fish" - }, - { - "item": "farmersdelight:tomato_sauce" - }, - { - "tag": "c:crops/onion" - } + "#c:foods/safe_raw_fish", + "farmersdelight:tomato_sauce", + "#c:crops/onion" ], "recipe_book_tab": "meals", "result": { - "count": 1, "id": "farmersdelight:fish_stew" } } \ No newline at end of file diff --git a/src/generated/resources/data/farmersdelight/recipe/cooking/fried_rice.json b/src/generated/resources/data/farmersdelight/recipe/cooking/fried_rice.json index e241642a8..439851f87 100644 --- a/src/generated/resources/data/farmersdelight/recipe/cooking/fried_rice.json +++ b/src/generated/resources/data/farmersdelight/recipe/cooking/fried_rice.json @@ -2,22 +2,13 @@ "type": "farmersdelight:cooking", "experience": 1.0, "ingredients": [ - { - "tag": "c:crops/rice" - }, - { - "tag": "c:eggs" - }, - { - "tag": "c:crops/carrot" - }, - { - "tag": "c:crops/onion" - } + "#c:crops/rice", + "#c:eggs", + "#c:crops/carrot", + "#c:crops/onion" ], "recipe_book_tab": "meals", "result": { - "count": 1, "id": "farmersdelight:fried_rice" } } \ No newline at end of file diff --git a/src/generated/resources/data/farmersdelight/recipe/cooking/glow_berry_custard.json b/src/generated/resources/data/farmersdelight/recipe/cooking/glow_berry_custard.json index fe7040c08..a3793a95e 100644 --- a/src/generated/resources/data/farmersdelight/recipe/cooking/glow_berry_custard.json +++ b/src/generated/resources/data/farmersdelight/recipe/cooking/glow_berry_custard.json @@ -2,21 +2,12 @@ "type": "farmersdelight:cooking", "experience": 1.0, "ingredients": [ - { - "item": "minecraft:glow_berries" - }, - { - "tag": "c:drinks/milk" - }, - { - "tag": "c:eggs" - }, - { - "item": "minecraft:sugar" - } + "minecraft:glow_berries", + "#c:drinks/milk", + "#c:eggs", + "minecraft:sugar" ], "result": { - "count": 1, "id": "farmersdelight:glow_berry_custard" } } \ No newline at end of file diff --git a/src/generated/resources/data/farmersdelight/recipe/cooking/hot_cocoa.json b/src/generated/resources/data/farmersdelight/recipe/cooking/hot_cocoa.json index 4ee9358c9..59c4c2ed4 100644 --- a/src/generated/resources/data/farmersdelight/recipe/cooking/hot_cocoa.json +++ b/src/generated/resources/data/farmersdelight/recipe/cooking/hot_cocoa.json @@ -2,22 +2,13 @@ "type": "farmersdelight:cooking", "experience": 1.0, "ingredients": [ - { - "tag": "c:drinks/milk" - }, - { - "item": "minecraft:sugar" - }, - { - "item": "minecraft:cocoa_beans" - }, - { - "item": "minecraft:cocoa_beans" - } + "#c:drinks/milk", + "minecraft:sugar", + "minecraft:cocoa_beans", + "minecraft:cocoa_beans" ], "recipe_book_tab": "drinks", "result": { - "count": 1, "id": "farmersdelight:hot_cocoa" } } \ No newline at end of file diff --git a/src/generated/resources/data/farmersdelight/recipe/cooking/mushroom_rice.json b/src/generated/resources/data/farmersdelight/recipe/cooking/mushroom_rice.json index ad9f8f50a..32976c496 100644 --- a/src/generated/resources/data/farmersdelight/recipe/cooking/mushroom_rice.json +++ b/src/generated/resources/data/farmersdelight/recipe/cooking/mushroom_rice.json @@ -2,30 +2,16 @@ "type": "farmersdelight:cooking", "experience": 1.0, "ingredients": [ - { - "item": "minecraft:brown_mushroom" - }, - { - "item": "minecraft:red_mushroom" - }, - { - "tag": "c:crops/rice" - }, - { - "type": "neoforge:compound", - "children": [ - { - "item": "minecraft:carrot" - }, - { - "item": "minecraft:potato" - } - ] - } + "minecraft:brown_mushroom", + "minecraft:red_mushroom", + "#c:crops/rice", + [ + "minecraft:carrot", + "minecraft:potato" + ] ], "recipe_book_tab": "meals", "result": { - "count": 1, "id": "farmersdelight:mushroom_rice" } } \ No newline at end of file diff --git a/src/generated/resources/data/farmersdelight/recipe/cooking/mushroom_stew.json b/src/generated/resources/data/farmersdelight/recipe/cooking/mushroom_stew.json index e38fb0a73..b691af954 100644 --- a/src/generated/resources/data/farmersdelight/recipe/cooking/mushroom_stew.json +++ b/src/generated/resources/data/farmersdelight/recipe/cooking/mushroom_stew.json @@ -1,21 +1,15 @@ { "type": "farmersdelight:cooking", "container": { - "count": 1, "id": "minecraft:bowl" }, "experience": 1.0, "ingredients": [ - { - "item": "minecraft:brown_mushroom" - }, - { - "item": "minecraft:red_mushroom" - } + "minecraft:brown_mushroom", + "minecraft:red_mushroom" ], "recipe_book_tab": "meals", "result": { - "count": 1, "id": "minecraft:mushroom_stew" } } \ No newline at end of file diff --git a/src/generated/resources/data/farmersdelight/recipe/cooking/noodle_soup.json b/src/generated/resources/data/farmersdelight/recipe/cooking/noodle_soup.json index f40311f33..32a7634dd 100644 --- a/src/generated/resources/data/farmersdelight/recipe/cooking/noodle_soup.json +++ b/src/generated/resources/data/farmersdelight/recipe/cooking/noodle_soup.json @@ -2,22 +2,13 @@ "type": "farmersdelight:cooking", "experience": 1.0, "ingredients": [ - { - "tag": "c:foods/pasta" - }, - { - "tag": "c:eggs" - }, - { - "item": "minecraft:dried_kelp" - }, - { - "tag": "c:foods/raw_pork" - } + "#c:foods/pasta", + "#c:eggs", + "minecraft:dried_kelp", + "#c:foods/raw_pork" ], "recipe_book_tab": "meals", "result": { - "count": 1, "id": "farmersdelight:noodle_soup" } } \ No newline at end of file diff --git a/src/generated/resources/data/farmersdelight/recipe/cooking/onion_soup.json b/src/generated/resources/data/farmersdelight/recipe/cooking/onion_soup.json index 4c7c339e9..e4128da6f 100644 --- a/src/generated/resources/data/farmersdelight/recipe/cooking/onion_soup.json +++ b/src/generated/resources/data/farmersdelight/recipe/cooking/onion_soup.json @@ -2,22 +2,13 @@ "type": "farmersdelight:cooking", "experience": 1.0, "ingredients": [ - { - "tag": "c:crops/onion" - }, - { - "tag": "c:crops/onion" - }, - { - "tag": "c:foods/bread" - }, - { - "tag": "c:drinks/milk" - } + "#c:crops/onion", + "#c:crops/onion", + "#c:foods/bread", + "#c:drinks/milk" ], "recipe_book_tab": "meals", "result": { - "count": 1, "id": "farmersdelight:onion_soup" } } \ No newline at end of file diff --git a/src/generated/resources/data/farmersdelight/recipe/cooking/pasta_with_meatballs.json b/src/generated/resources/data/farmersdelight/recipe/cooking/pasta_with_meatballs.json index bec51e222..2975956b6 100644 --- a/src/generated/resources/data/farmersdelight/recipe/cooking/pasta_with_meatballs.json +++ b/src/generated/resources/data/farmersdelight/recipe/cooking/pasta_with_meatballs.json @@ -2,19 +2,12 @@ "type": "farmersdelight:cooking", "experience": 1.0, "ingredients": [ - { - "item": "farmersdelight:minced_beef" - }, - { - "tag": "c:foods/pasta" - }, - { - "item": "farmersdelight:tomato_sauce" - } + "farmersdelight:minced_beef", + "#c:foods/pasta", + "farmersdelight:tomato_sauce" ], "recipe_book_tab": "meals", "result": { - "count": 1, "id": "farmersdelight:pasta_with_meatballs" } } \ No newline at end of file diff --git a/src/generated/resources/data/farmersdelight/recipe/cooking/pasta_with_mutton_chop.json b/src/generated/resources/data/farmersdelight/recipe/cooking/pasta_with_mutton_chop.json index 227f39ec0..b0f51cd15 100644 --- a/src/generated/resources/data/farmersdelight/recipe/cooking/pasta_with_mutton_chop.json +++ b/src/generated/resources/data/farmersdelight/recipe/cooking/pasta_with_mutton_chop.json @@ -2,19 +2,12 @@ "type": "farmersdelight:cooking", "experience": 1.0, "ingredients": [ - { - "tag": "c:foods/raw_mutton" - }, - { - "tag": "c:foods/pasta" - }, - { - "item": "farmersdelight:tomato_sauce" - } + "#c:foods/raw_mutton", + "#c:foods/pasta", + "farmersdelight:tomato_sauce" ], "recipe_book_tab": "meals", "result": { - "count": 1, "id": "farmersdelight:pasta_with_mutton_chop" } } \ No newline at end of file diff --git a/src/generated/resources/data/farmersdelight/recipe/cooking/pumpkin_soup.json b/src/generated/resources/data/farmersdelight/recipe/cooking/pumpkin_soup.json index 55f9eb90f..b8f3fa981 100644 --- a/src/generated/resources/data/farmersdelight/recipe/cooking/pumpkin_soup.json +++ b/src/generated/resources/data/farmersdelight/recipe/cooking/pumpkin_soup.json @@ -2,22 +2,13 @@ "type": "farmersdelight:cooking", "experience": 1.0, "ingredients": [ - { - "item": "farmersdelight:pumpkin_slice" - }, - { - "tag": "c:foods/leafy_green" - }, - { - "tag": "c:foods/raw_pork" - }, - { - "tag": "c:drinks/milk" - } + "farmersdelight:pumpkin_slice", + "#c:foods/leafy_green", + "#c:foods/raw_pork", + "#c:drinks/milk" ], "recipe_book_tab": "meals", "result": { - "count": 1, "id": "farmersdelight:pumpkin_soup" } } \ No newline at end of file diff --git a/src/generated/resources/data/farmersdelight/recipe/cooking/rabbit_stew.json b/src/generated/resources/data/farmersdelight/recipe/cooking/rabbit_stew.json index a2a765850..97004e202 100644 --- a/src/generated/resources/data/farmersdelight/recipe/cooking/rabbit_stew.json +++ b/src/generated/resources/data/farmersdelight/recipe/cooking/rabbit_stew.json @@ -1,35 +1,20 @@ { "type": "farmersdelight:cooking", "container": { - "count": 1, "id": "minecraft:bowl" }, "experience": 1.0, "ingredients": [ - { - "tag": "c:crops/potato" - }, - { - "item": "minecraft:rabbit" - }, - { - "tag": "c:crops/carrot" - }, - { - "type": "neoforge:compound", - "children": [ - { - "item": "minecraft:brown_mushroom" - }, - { - "item": "minecraft:red_mushroom" - } - ] - } + "#c:crops/potato", + "minecraft:rabbit", + "#c:crops/carrot", + [ + "minecraft:brown_mushroom", + "minecraft:red_mushroom" + ] ], "recipe_book_tab": "meals", "result": { - "count": 1, "id": "minecraft:rabbit_stew" } } \ No newline at end of file diff --git a/src/generated/resources/data/farmersdelight/recipe/cooking/ratatouille.json b/src/generated/resources/data/farmersdelight/recipe/cooking/ratatouille.json index 6620bfa18..6ec8c4bbd 100644 --- a/src/generated/resources/data/farmersdelight/recipe/cooking/ratatouille.json +++ b/src/generated/resources/data/farmersdelight/recipe/cooking/ratatouille.json @@ -2,28 +2,17 @@ "type": "farmersdelight:cooking", "experience": 1.0, "ingredients": [ + "#c:crops/tomato", + "#c:crops/onion", + "#c:crops/beetroot", { - "tag": "c:crops/tomato" - }, - { - "tag": "c:crops/onion" - }, - { - "tag": "c:crops/beetroot" - }, - { - "type": "neoforge:difference", - "base": { - "tag": "c:foods/vegetable" - }, - "subtracted": { - "item": "minecraft:melon_slice" - } + "neoforge:ingredient_type": "neoforge:difference", + "base": "#c:foods/vegetable", + "subtracted": "minecraft:melon_slice" } ], "recipe_book_tab": "meals", "result": { - "count": 1, "id": "farmersdelight:ratatouille" } } \ No newline at end of file diff --git a/src/generated/resources/data/farmersdelight/recipe/cooking/squid_ink_pasta.json b/src/generated/resources/data/farmersdelight/recipe/cooking/squid_ink_pasta.json index 57238eb59..a7e0e9b9a 100644 --- a/src/generated/resources/data/farmersdelight/recipe/cooking/squid_ink_pasta.json +++ b/src/generated/resources/data/farmersdelight/recipe/cooking/squid_ink_pasta.json @@ -2,22 +2,13 @@ "type": "farmersdelight:cooking", "experience": 1.0, "ingredients": [ - { - "tag": "c:foods/safe_raw_fish" - }, - { - "tag": "c:foods/pasta" - }, - { - "tag": "c:crops/tomato" - }, - { - "item": "minecraft:ink_sac" - } + "#c:foods/safe_raw_fish", + "#c:foods/pasta", + "#c:crops/tomato", + "minecraft:ink_sac" ], "recipe_book_tab": "meals", "result": { - "count": 1, "id": "farmersdelight:squid_ink_pasta" } } \ No newline at end of file diff --git a/src/generated/resources/data/farmersdelight/recipe/cooking/stuffed_pumpkin_block.json b/src/generated/resources/data/farmersdelight/recipe/cooking/stuffed_pumpkin_block.json index 52a446389..8045d6630 100644 --- a/src/generated/resources/data/farmersdelight/recipe/cooking/stuffed_pumpkin_block.json +++ b/src/generated/resources/data/farmersdelight/recipe/cooking/stuffed_pumpkin_block.json @@ -1,40 +1,24 @@ { "type": "farmersdelight:cooking", "container": { - "count": 1, "id": "minecraft:pumpkin" }, "cookingtime": 400, "experience": 2.0, "ingredients": [ + "#c:crops/rice", + "#c:crops/onion", + "minecraft:brown_mushroom", + "#c:crops/potato", + "#c:foods/berry", { - "tag": "c:crops/rice" - }, - { - "tag": "c:crops/onion" - }, - { - "item": "minecraft:brown_mushroom" - }, - { - "tag": "c:crops/potato" - }, - { - "tag": "c:foods/berry" - }, - { - "type": "neoforge:difference", - "base": { - "tag": "c:foods/vegetable" - }, - "subtracted": { - "item": "minecraft:melon_slice" - } + "neoforge:ingredient_type": "neoforge:difference", + "base": "#c:foods/vegetable", + "subtracted": "minecraft:melon_slice" } ], "recipe_book_tab": "meals", "result": { - "count": 1, "id": "farmersdelight:stuffed_pumpkin_block" } } \ No newline at end of file diff --git a/src/generated/resources/data/farmersdelight/recipe/cooking/tomato_sauce.json b/src/generated/resources/data/farmersdelight/recipe/cooking/tomato_sauce.json index 4588f0850..def6a510c 100644 --- a/src/generated/resources/data/farmersdelight/recipe/cooking/tomato_sauce.json +++ b/src/generated/resources/data/farmersdelight/recipe/cooking/tomato_sauce.json @@ -3,15 +3,10 @@ "cookingtime": 100, "experience": 0.35, "ingredients": [ - { - "tag": "c:crops/tomato" - }, - { - "tag": "c:crops/tomato" - } + "#c:crops/tomato", + "#c:crops/tomato" ], "result": { - "count": 1, "id": "farmersdelight:tomato_sauce" } } \ No newline at end of file diff --git a/src/generated/resources/data/farmersdelight/recipe/cooking/vegetable_noodles.json b/src/generated/resources/data/farmersdelight/recipe/cooking/vegetable_noodles.json index 52e6cd205..b3c56ce9c 100644 --- a/src/generated/resources/data/farmersdelight/recipe/cooking/vegetable_noodles.json +++ b/src/generated/resources/data/farmersdelight/recipe/cooking/vegetable_noodles.json @@ -2,31 +2,18 @@ "type": "farmersdelight:cooking", "experience": 1.0, "ingredients": [ + "#c:crops/carrot", + "#c:mushrooms", + "#c:foods/pasta", + "#c:foods/leafy_green", { - "tag": "c:crops/carrot" - }, - { - "tag": "c:mushrooms" - }, - { - "tag": "c:foods/pasta" - }, - { - "tag": "c:foods/leafy_green" - }, - { - "type": "neoforge:difference", - "base": { - "tag": "c:foods/vegetable" - }, - "subtracted": { - "item": "minecraft:melon_slice" - } + "neoforge:ingredient_type": "neoforge:difference", + "base": "#c:foods/vegetable", + "subtracted": "minecraft:melon_slice" } ], "recipe_book_tab": "meals", "result": { - "count": 1, "id": "farmersdelight:vegetable_noodles" } } \ No newline at end of file diff --git a/src/generated/resources/data/farmersdelight/recipe/cooking/vegetable_soup.json b/src/generated/resources/data/farmersdelight/recipe/cooking/vegetable_soup.json index 42966d745..bca0b2523 100644 --- a/src/generated/resources/data/farmersdelight/recipe/cooking/vegetable_soup.json +++ b/src/generated/resources/data/farmersdelight/recipe/cooking/vegetable_soup.json @@ -2,22 +2,13 @@ "type": "farmersdelight:cooking", "experience": 1.0, "ingredients": [ - { - "tag": "c:crops/carrot" - }, - { - "tag": "c:crops/potato" - }, - { - "tag": "c:crops/beetroot" - }, - { - "tag": "c:foods/leafy_green" - } + "#c:crops/carrot", + "#c:crops/potato", + "#c:crops/beetroot", + "#c:foods/leafy_green" ], "recipe_book_tab": "meals", "result": { - "count": 1, "id": "farmersdelight:vegetable_soup" } } \ No newline at end of file diff --git a/src/generated/resources/data/farmersdelight/recipe/cooking_pot.json b/src/generated/resources/data/farmersdelight/recipe/cooking_pot.json index 5e5ccd3eb..767e7be97 100644 --- a/src/generated/resources/data/farmersdelight/recipe/cooking_pot.json +++ b/src/generated/resources/data/farmersdelight/recipe/cooking_pot.json @@ -1,19 +1,10 @@ { "type": "minecraft:crafting_shaped", - "category": "misc", "key": { - "S": { - "item": "minecraft:wooden_shovel" - }, - "W": { - "tag": "c:buckets/water" - }, - "b": { - "item": "minecraft:brick" - }, - "i": { - "tag": "c:ingots/iron" - } + "S": "minecraft:wooden_shovel", + "W": "#c:buckets/water", + "b": "minecraft:brick", + "i": "#c:ingots/iron" }, "pattern": [ "bSb", @@ -21,7 +12,6 @@ "iii" ], "result": { - "count": 1, "id": "farmersdelight:cooking_pot" } } \ No newline at end of file diff --git a/src/generated/resources/data/farmersdelight/recipe/crimson_cabinet.json b/src/generated/resources/data/farmersdelight/recipe/crimson_cabinet.json index a54c0e5f3..2e0492f60 100644 --- a/src/generated/resources/data/farmersdelight/recipe/crimson_cabinet.json +++ b/src/generated/resources/data/farmersdelight/recipe/crimson_cabinet.json @@ -1,14 +1,9 @@ { "type": "minecraft:crafting_shaped", - "category": "misc", "group": "fd_cabinet", "key": { - "D": { - "item": "minecraft:crimson_trapdoor" - }, - "_": { - "item": "minecraft:crimson_slab" - } + "D": "minecraft:crimson_trapdoor", + "_": "minecraft:crimson_slab" }, "pattern": [ "___", @@ -16,7 +11,6 @@ "___" ], "result": { - "count": 1, "id": "farmersdelight:crimson_cabinet" } } \ No newline at end of file diff --git a/src/generated/resources/data/farmersdelight/recipe/cutting/acacia_log.json b/src/generated/resources/data/farmersdelight/recipe/cutting/acacia_log.json index e0a0245ab..e3bcdf2e9 100644 --- a/src/generated/resources/data/farmersdelight/recipe/cutting/acacia_log.json +++ b/src/generated/resources/data/farmersdelight/recipe/cutting/acacia_log.json @@ -1,20 +1,16 @@ { "type": "farmersdelight:cutting", "ingredients": [ - { - "item": "minecraft:acacia_log" - } + "minecraft:acacia_log" ], "result": [ { "item": { - "count": 1, "id": "minecraft:stripped_acacia_log" } }, { "item": { - "count": 1, "id": "farmersdelight:tree_bark" } } @@ -22,13 +18,14 @@ "sound": { "sound_id": "minecraft:item.axe.strip" }, - "tool": [ - { - "type": "farmersdelight:item_ability", - "action": "axe_strip" - }, - { - "tag": "minecraft:axes" - } - ] + "tool": { + "neoforge:ingredient_type": "neoforge:compound", + "children": [ + { + "neoforge:ingredient_type": "farmersdelight:item_ability", + "action": "axe_strip" + }, + "#minecraft:axes" + ] + } } \ No newline at end of file diff --git a/src/generated/resources/data/farmersdelight/recipe/cutting/acacia_wood.json b/src/generated/resources/data/farmersdelight/recipe/cutting/acacia_wood.json index f5a318c18..06cf42bee 100644 --- a/src/generated/resources/data/farmersdelight/recipe/cutting/acacia_wood.json +++ b/src/generated/resources/data/farmersdelight/recipe/cutting/acacia_wood.json @@ -1,20 +1,16 @@ { "type": "farmersdelight:cutting", "ingredients": [ - { - "item": "minecraft:acacia_wood" - } + "minecraft:acacia_wood" ], "result": [ { "item": { - "count": 1, "id": "minecraft:stripped_acacia_wood" } }, { "item": { - "count": 1, "id": "farmersdelight:tree_bark" } } @@ -22,13 +18,14 @@ "sound": { "sound_id": "minecraft:item.axe.strip" }, - "tool": [ - { - "type": "farmersdelight:item_ability", - "action": "axe_strip" - }, - { - "tag": "minecraft:axes" - } - ] + "tool": { + "neoforge:ingredient_type": "neoforge:compound", + "children": [ + { + "neoforge:ingredient_type": "farmersdelight:item_ability", + "action": "axe_strip" + }, + "#minecraft:axes" + ] + } } \ No newline at end of file diff --git a/src/generated/resources/data/farmersdelight/recipe/cutting/allium.json b/src/generated/resources/data/farmersdelight/recipe/cutting/allium.json index 884ad05fa..6f3a789c3 100644 --- a/src/generated/resources/data/farmersdelight/recipe/cutting/allium.json +++ b/src/generated/resources/data/farmersdelight/recipe/cutting/allium.json @@ -1,9 +1,7 @@ { "type": "farmersdelight:cutting", "ingredients": [ - { - "item": "minecraft:allium" - } + "minecraft:allium" ], "result": [ { @@ -13,13 +11,14 @@ } } ], - "tool": [ - { - "type": "farmersdelight:item_ability", - "action": "knife_dig" - }, - { - "tag": "c:tools/knife" - } - ] + "tool": { + "neoforge:ingredient_type": "neoforge:compound", + "children": [ + { + "neoforge:ingredient_type": "farmersdelight:item_ability", + "action": "knife_dig" + }, + "#c:tools/knife" + ] + } } \ No newline at end of file diff --git a/src/generated/resources/data/farmersdelight/recipe/cutting/apple_pie.json b/src/generated/resources/data/farmersdelight/recipe/cutting/apple_pie.json index c31e5b53c..d121384e3 100644 --- a/src/generated/resources/data/farmersdelight/recipe/cutting/apple_pie.json +++ b/src/generated/resources/data/farmersdelight/recipe/cutting/apple_pie.json @@ -1,9 +1,7 @@ { "type": "farmersdelight:cutting", "ingredients": [ - { - "item": "farmersdelight:apple_pie" - } + "farmersdelight:apple_pie" ], "result": [ { @@ -13,13 +11,14 @@ } } ], - "tool": [ - { - "type": "farmersdelight:item_ability", - "action": "knife_dig" - }, - { - "tag": "c:tools/knife" - } - ] + "tool": { + "neoforge:ingredient_type": "neoforge:compound", + "children": [ + { + "neoforge:ingredient_type": "farmersdelight:item_ability", + "action": "knife_dig" + }, + "#c:tools/knife" + ] + } } \ No newline at end of file diff --git a/src/generated/resources/data/farmersdelight/recipe/cutting/azure_bluet.json b/src/generated/resources/data/farmersdelight/recipe/cutting/azure_bluet.json index df8ddf4d6..aec96521e 100644 --- a/src/generated/resources/data/farmersdelight/recipe/cutting/azure_bluet.json +++ b/src/generated/resources/data/farmersdelight/recipe/cutting/azure_bluet.json @@ -1,9 +1,7 @@ { "type": "farmersdelight:cutting", "ingredients": [ - { - "item": "minecraft:azure_bluet" - } + "minecraft:azure_bluet" ], "result": [ { @@ -13,13 +11,14 @@ } } ], - "tool": [ - { - "type": "farmersdelight:item_ability", - "action": "knife_dig" - }, - { - "tag": "c:tools/knife" - } - ] + "tool": { + "neoforge:ingredient_type": "neoforge:compound", + "children": [ + { + "neoforge:ingredient_type": "farmersdelight:item_ability", + "action": "knife_dig" + }, + "#c:tools/knife" + ] + } } \ No newline at end of file diff --git a/src/generated/resources/data/farmersdelight/recipe/cutting/bamboo_basket.json b/src/generated/resources/data/farmersdelight/recipe/cutting/bamboo_basket.json index eecd18b2c..8c86ee50b 100644 --- a/src/generated/resources/data/farmersdelight/recipe/cutting/bamboo_basket.json +++ b/src/generated/resources/data/farmersdelight/recipe/cutting/bamboo_basket.json @@ -1,31 +1,28 @@ { "type": "farmersdelight:cutting", "ingredients": [ - { - "item": "farmersdelight:bamboo_basket" - } + "farmersdelight:bamboo_basket" ], "result": [ { "item": { - "count": 1, "id": "farmersdelight:canvas" } }, { "item": { - "count": 1, "id": "minecraft:bamboo" } } ], - "tool": [ - { - "type": "farmersdelight:item_ability", - "action": "axe_dig" - }, - { - "tag": "minecraft:axes" - } - ] + "tool": { + "neoforge:ingredient_type": "neoforge:compound", + "children": [ + { + "neoforge:ingredient_type": "farmersdelight:item_ability", + "action": "axe_dig" + }, + "#minecraft:axes" + ] + } } \ No newline at end of file diff --git a/src/generated/resources/data/farmersdelight/recipe/cutting/bamboo_block.json b/src/generated/resources/data/farmersdelight/recipe/cutting/bamboo_block.json index 22537d5d2..43fd91695 100644 --- a/src/generated/resources/data/farmersdelight/recipe/cutting/bamboo_block.json +++ b/src/generated/resources/data/farmersdelight/recipe/cutting/bamboo_block.json @@ -1,20 +1,16 @@ { "type": "farmersdelight:cutting", "ingredients": [ - { - "item": "minecraft:bamboo_block" - } + "minecraft:bamboo_block" ], "result": [ { "item": { - "count": 1, "id": "minecraft:stripped_bamboo_block" } }, { "item": { - "count": 1, "id": "farmersdelight:straw" } } @@ -22,13 +18,14 @@ "sound": { "sound_id": "minecraft:item.axe.strip" }, - "tool": [ - { - "type": "farmersdelight:item_ability", - "action": "axe_strip" - }, - { - "tag": "minecraft:axes" - } - ] + "tool": { + "neoforge:ingredient_type": "neoforge:compound", + "children": [ + { + "neoforge:ingredient_type": "farmersdelight:item_ability", + "action": "axe_strip" + }, + "#minecraft:axes" + ] + } } \ No newline at end of file diff --git a/src/generated/resources/data/farmersdelight/recipe/cutting/beef.json b/src/generated/resources/data/farmersdelight/recipe/cutting/beef.json index 88410b201..b891578f3 100644 --- a/src/generated/resources/data/farmersdelight/recipe/cutting/beef.json +++ b/src/generated/resources/data/farmersdelight/recipe/cutting/beef.json @@ -1,9 +1,7 @@ { "type": "farmersdelight:cutting", "ingredients": [ - { - "item": "minecraft:beef" - } + "minecraft:beef" ], "result": [ { @@ -13,13 +11,14 @@ } } ], - "tool": [ - { - "type": "farmersdelight:item_ability", - "action": "knife_dig" - }, - { - "tag": "c:tools/knife" - } - ] + "tool": { + "neoforge:ingredient_type": "neoforge:compound", + "children": [ + { + "neoforge:ingredient_type": "farmersdelight:item_ability", + "action": "knife_dig" + }, + "#c:tools/knife" + ] + } } \ No newline at end of file diff --git a/src/generated/resources/data/farmersdelight/recipe/cutting/birch_log.json b/src/generated/resources/data/farmersdelight/recipe/cutting/birch_log.json index f5139948e..c1c3b1e03 100644 --- a/src/generated/resources/data/farmersdelight/recipe/cutting/birch_log.json +++ b/src/generated/resources/data/farmersdelight/recipe/cutting/birch_log.json @@ -1,20 +1,16 @@ { "type": "farmersdelight:cutting", "ingredients": [ - { - "item": "minecraft:birch_log" - } + "minecraft:birch_log" ], "result": [ { "item": { - "count": 1, "id": "minecraft:stripped_birch_log" } }, { "item": { - "count": 1, "id": "farmersdelight:tree_bark" } } @@ -22,13 +18,14 @@ "sound": { "sound_id": "minecraft:item.axe.strip" }, - "tool": [ - { - "type": "farmersdelight:item_ability", - "action": "axe_strip" - }, - { - "tag": "minecraft:axes" - } - ] + "tool": { + "neoforge:ingredient_type": "neoforge:compound", + "children": [ + { + "neoforge:ingredient_type": "farmersdelight:item_ability", + "action": "axe_strip" + }, + "#minecraft:axes" + ] + } } \ No newline at end of file diff --git a/src/generated/resources/data/farmersdelight/recipe/cutting/birch_wood.json b/src/generated/resources/data/farmersdelight/recipe/cutting/birch_wood.json index c09e8e8a2..1dceb1fa4 100644 --- a/src/generated/resources/data/farmersdelight/recipe/cutting/birch_wood.json +++ b/src/generated/resources/data/farmersdelight/recipe/cutting/birch_wood.json @@ -1,20 +1,16 @@ { "type": "farmersdelight:cutting", "ingredients": [ - { - "item": "minecraft:birch_wood" - } + "minecraft:birch_wood" ], "result": [ { "item": { - "count": 1, "id": "minecraft:stripped_birch_wood" } }, { "item": { - "count": 1, "id": "farmersdelight:tree_bark" } } @@ -22,13 +18,14 @@ "sound": { "sound_id": "minecraft:item.axe.strip" }, - "tool": [ - { - "type": "farmersdelight:item_ability", - "action": "axe_strip" - }, - { - "tag": "minecraft:axes" - } - ] + "tool": { + "neoforge:ingredient_type": "neoforge:compound", + "children": [ + { + "neoforge:ingredient_type": "farmersdelight:item_ability", + "action": "axe_strip" + }, + "#minecraft:axes" + ] + } } \ No newline at end of file diff --git a/src/generated/resources/data/farmersdelight/recipe/cutting/blue_orchid.json b/src/generated/resources/data/farmersdelight/recipe/cutting/blue_orchid.json index e67820d84..fb4eda644 100644 --- a/src/generated/resources/data/farmersdelight/recipe/cutting/blue_orchid.json +++ b/src/generated/resources/data/farmersdelight/recipe/cutting/blue_orchid.json @@ -1,9 +1,7 @@ { "type": "farmersdelight:cutting", "ingredients": [ - { - "item": "minecraft:blue_orchid" - } + "minecraft:blue_orchid" ], "result": [ { @@ -13,13 +11,14 @@ } } ], - "tool": [ - { - "type": "farmersdelight:item_ability", - "action": "knife_dig" - }, - { - "tag": "c:tools/knife" - } - ] + "tool": { + "neoforge:ingredient_type": "neoforge:compound", + "children": [ + { + "neoforge:ingredient_type": "farmersdelight:item_ability", + "action": "knife_dig" + }, + "#c:tools/knife" + ] + } } \ No newline at end of file diff --git a/src/generated/resources/data/farmersdelight/recipe/cutting/brown_mushroom_colony.json b/src/generated/resources/data/farmersdelight/recipe/cutting/brown_mushroom_colony.json index 4a868cceb..41b81fe1a 100644 --- a/src/generated/resources/data/farmersdelight/recipe/cutting/brown_mushroom_colony.json +++ b/src/generated/resources/data/farmersdelight/recipe/cutting/brown_mushroom_colony.json @@ -1,9 +1,7 @@ { "type": "farmersdelight:cutting", "ingredients": [ - { - "item": "farmersdelight:brown_mushroom_colony" - } + "farmersdelight:brown_mushroom_colony" ], "result": [ { @@ -13,13 +11,14 @@ } } ], - "tool": [ - { - "type": "farmersdelight:item_ability", - "action": "knife_dig" - }, - { - "tag": "c:tools/knife" - } - ] + "tool": { + "neoforge:ingredient_type": "neoforge:compound", + "children": [ + { + "neoforge:ingredient_type": "farmersdelight:item_ability", + "action": "knife_dig" + }, + "#c:tools/knife" + ] + } } \ No newline at end of file diff --git a/src/generated/resources/data/farmersdelight/recipe/cutting/cabbage.json b/src/generated/resources/data/farmersdelight/recipe/cutting/cabbage.json index 13be5a07c..e391c7808 100644 --- a/src/generated/resources/data/farmersdelight/recipe/cutting/cabbage.json +++ b/src/generated/resources/data/farmersdelight/recipe/cutting/cabbage.json @@ -1,9 +1,7 @@ { "type": "farmersdelight:cutting", "ingredients": [ - { - "item": "farmersdelight:cabbage" - } + "farmersdelight:cabbage" ], "result": [ { @@ -13,13 +11,14 @@ } } ], - "tool": [ - { - "type": "farmersdelight:item_ability", - "action": "knife_dig" - }, - { - "tag": "c:tools/knife" - } - ] + "tool": { + "neoforge:ingredient_type": "neoforge:compound", + "children": [ + { + "neoforge:ingredient_type": "farmersdelight:item_ability", + "action": "knife_dig" + }, + "#c:tools/knife" + ] + } } \ No newline at end of file diff --git a/src/generated/resources/data/farmersdelight/recipe/cutting/cake.json b/src/generated/resources/data/farmersdelight/recipe/cutting/cake.json index 029575081..77ff267e9 100644 --- a/src/generated/resources/data/farmersdelight/recipe/cutting/cake.json +++ b/src/generated/resources/data/farmersdelight/recipe/cutting/cake.json @@ -1,9 +1,7 @@ { "type": "farmersdelight:cutting", "ingredients": [ - { - "item": "minecraft:cake" - } + "minecraft:cake" ], "result": [ { @@ -13,13 +11,14 @@ } } ], - "tool": [ - { - "type": "farmersdelight:item_ability", - "action": "knife_dig" - }, - { - "tag": "c:tools/knife" - } - ] + "tool": { + "neoforge:ingredient_type": "neoforge:compound", + "children": [ + { + "neoforge:ingredient_type": "farmersdelight:item_ability", + "action": "knife_dig" + }, + "#c:tools/knife" + ] + } } \ No newline at end of file diff --git a/src/generated/resources/data/farmersdelight/recipe/cutting/cherry_log.json b/src/generated/resources/data/farmersdelight/recipe/cutting/cherry_log.json index 1d7d8ff73..786334350 100644 --- a/src/generated/resources/data/farmersdelight/recipe/cutting/cherry_log.json +++ b/src/generated/resources/data/farmersdelight/recipe/cutting/cherry_log.json @@ -1,20 +1,16 @@ { "type": "farmersdelight:cutting", "ingredients": [ - { - "item": "minecraft:cherry_log" - } + "minecraft:cherry_log" ], "result": [ { "item": { - "count": 1, "id": "minecraft:stripped_cherry_log" } }, { "item": { - "count": 1, "id": "farmersdelight:tree_bark" } } @@ -22,13 +18,14 @@ "sound": { "sound_id": "minecraft:item.axe.strip" }, - "tool": [ - { - "type": "farmersdelight:item_ability", - "action": "axe_strip" - }, - { - "tag": "minecraft:axes" - } - ] + "tool": { + "neoforge:ingredient_type": "neoforge:compound", + "children": [ + { + "neoforge:ingredient_type": "farmersdelight:item_ability", + "action": "axe_strip" + }, + "#minecraft:axes" + ] + } } \ No newline at end of file diff --git a/src/generated/resources/data/farmersdelight/recipe/cutting/cherry_wood.json b/src/generated/resources/data/farmersdelight/recipe/cutting/cherry_wood.json index e345094f5..62efa90e4 100644 --- a/src/generated/resources/data/farmersdelight/recipe/cutting/cherry_wood.json +++ b/src/generated/resources/data/farmersdelight/recipe/cutting/cherry_wood.json @@ -1,20 +1,16 @@ { "type": "farmersdelight:cutting", "ingredients": [ - { - "item": "minecraft:cherry_wood" - } + "minecraft:cherry_wood" ], "result": [ { "item": { - "count": 1, "id": "minecraft:stripped_cherry_wood" } }, { "item": { - "count": 1, "id": "farmersdelight:tree_bark" } } @@ -22,13 +18,14 @@ "sound": { "sound_id": "minecraft:item.axe.strip" }, - "tool": [ - { - "type": "farmersdelight:item_ability", - "action": "axe_strip" - }, - { - "tag": "minecraft:axes" - } - ] + "tool": { + "neoforge:ingredient_type": "neoforge:compound", + "children": [ + { + "neoforge:ingredient_type": "farmersdelight:item_ability", + "action": "axe_strip" + }, + "#minecraft:axes" + ] + } } \ No newline at end of file diff --git a/src/generated/resources/data/farmersdelight/recipe/cutting/chicken.json b/src/generated/resources/data/farmersdelight/recipe/cutting/chicken.json index 596384f7c..449d2f843 100644 --- a/src/generated/resources/data/farmersdelight/recipe/cutting/chicken.json +++ b/src/generated/resources/data/farmersdelight/recipe/cutting/chicken.json @@ -1,9 +1,7 @@ { "type": "farmersdelight:cutting", "ingredients": [ - { - "item": "minecraft:chicken" - } + "minecraft:chicken" ], "result": [ { @@ -14,18 +12,18 @@ }, { "item": { - "count": 1, "id": "minecraft:bone_meal" } } ], - "tool": [ - { - "type": "farmersdelight:item_ability", - "action": "knife_dig" - }, - { - "tag": "c:tools/knife" - } - ] + "tool": { + "neoforge:ingredient_type": "neoforge:compound", + "children": [ + { + "neoforge:ingredient_type": "farmersdelight:item_ability", + "action": "knife_dig" + }, + "#c:tools/knife" + ] + } } \ No newline at end of file diff --git a/src/generated/resources/data/farmersdelight/recipe/cutting/chocolate_pie.json b/src/generated/resources/data/farmersdelight/recipe/cutting/chocolate_pie.json index 2706cdf1f..15867e64e 100644 --- a/src/generated/resources/data/farmersdelight/recipe/cutting/chocolate_pie.json +++ b/src/generated/resources/data/farmersdelight/recipe/cutting/chocolate_pie.json @@ -1,9 +1,7 @@ { "type": "farmersdelight:cutting", "ingredients": [ - { - "item": "farmersdelight:chocolate_pie" - } + "farmersdelight:chocolate_pie" ], "result": [ { @@ -13,13 +11,14 @@ } } ], - "tool": [ - { - "type": "farmersdelight:item_ability", - "action": "knife_dig" - }, - { - "tag": "c:tools/knife" - } - ] + "tool": { + "neoforge:ingredient_type": "neoforge:compound", + "children": [ + { + "neoforge:ingredient_type": "farmersdelight:item_ability", + "action": "knife_dig" + }, + "#c:tools/knife" + ] + } } \ No newline at end of file diff --git a/src/generated/resources/data/farmersdelight/recipe/cutting/clay.json b/src/generated/resources/data/farmersdelight/recipe/cutting/clay.json index c3a258e03..b68b3be35 100644 --- a/src/generated/resources/data/farmersdelight/recipe/cutting/clay.json +++ b/src/generated/resources/data/farmersdelight/recipe/cutting/clay.json @@ -1,9 +1,7 @@ { "type": "farmersdelight:cutting", "ingredients": [ - { - "item": "minecraft:clay" - } + "minecraft:clay" ], "result": [ { @@ -13,13 +11,14 @@ } } ], - "tool": [ - { - "type": "farmersdelight:item_ability", - "action": "shovel_dig" - }, - { - "tag": "minecraft:shovels" - } - ] + "tool": { + "neoforge:ingredient_type": "neoforge:compound", + "children": [ + { + "neoforge:ingredient_type": "farmersdelight:item_ability", + "action": "shovel_dig" + }, + "#minecraft:shovels" + ] + } } \ No newline at end of file diff --git a/src/generated/resources/data/farmersdelight/recipe/cutting/cod.json b/src/generated/resources/data/farmersdelight/recipe/cutting/cod.json index e16cb68cf..eb38f464b 100644 --- a/src/generated/resources/data/farmersdelight/recipe/cutting/cod.json +++ b/src/generated/resources/data/farmersdelight/recipe/cutting/cod.json @@ -1,9 +1,7 @@ { "type": "farmersdelight:cutting", "ingredients": [ - { - "item": "minecraft:cod" - } + "minecraft:cod" ], "result": [ { @@ -14,18 +12,18 @@ }, { "item": { - "count": 1, "id": "minecraft:bone_meal" } } ], - "tool": [ - { - "type": "farmersdelight:item_ability", - "action": "knife_dig" - }, - { - "tag": "c:tools/knife" - } - ] + "tool": { + "neoforge:ingredient_type": "neoforge:compound", + "children": [ + { + "neoforge:ingredient_type": "farmersdelight:item_ability", + "action": "knife_dig" + }, + "#c:tools/knife" + ] + } } \ No newline at end of file diff --git a/src/generated/resources/data/farmersdelight/recipe/cutting/cooked_chicken.json b/src/generated/resources/data/farmersdelight/recipe/cutting/cooked_chicken.json index e4e786a4a..8bd520816 100644 --- a/src/generated/resources/data/farmersdelight/recipe/cutting/cooked_chicken.json +++ b/src/generated/resources/data/farmersdelight/recipe/cutting/cooked_chicken.json @@ -1,9 +1,7 @@ { "type": "farmersdelight:cutting", "ingredients": [ - { - "item": "minecraft:cooked_chicken" - } + "minecraft:cooked_chicken" ], "result": [ { @@ -14,18 +12,18 @@ }, { "item": { - "count": 1, "id": "minecraft:bone_meal" } } ], - "tool": [ - { - "type": "farmersdelight:item_ability", - "action": "knife_dig" - }, - { - "tag": "c:tools/knife" - } - ] + "tool": { + "neoforge:ingredient_type": "neoforge:compound", + "children": [ + { + "neoforge:ingredient_type": "farmersdelight:item_ability", + "action": "knife_dig" + }, + "#c:tools/knife" + ] + } } \ No newline at end of file diff --git a/src/generated/resources/data/farmersdelight/recipe/cutting/cooked_cod.json b/src/generated/resources/data/farmersdelight/recipe/cutting/cooked_cod.json index 28c36ae59..d58e2b091 100644 --- a/src/generated/resources/data/farmersdelight/recipe/cutting/cooked_cod.json +++ b/src/generated/resources/data/farmersdelight/recipe/cutting/cooked_cod.json @@ -1,9 +1,7 @@ { "type": "farmersdelight:cutting", "ingredients": [ - { - "item": "minecraft:cooked_cod" - } + "minecraft:cooked_cod" ], "result": [ { @@ -14,18 +12,18 @@ }, { "item": { - "count": 1, "id": "minecraft:bone_meal" } } ], - "tool": [ - { - "type": "farmersdelight:item_ability", - "action": "knife_dig" - }, - { - "tag": "c:tools/knife" - } - ] + "tool": { + "neoforge:ingredient_type": "neoforge:compound", + "children": [ + { + "neoforge:ingredient_type": "farmersdelight:item_ability", + "action": "knife_dig" + }, + "#c:tools/knife" + ] + } } \ No newline at end of file diff --git a/src/generated/resources/data/farmersdelight/recipe/cutting/cooked_mutton.json b/src/generated/resources/data/farmersdelight/recipe/cutting/cooked_mutton.json index c921a084a..fe5e4c18b 100644 --- a/src/generated/resources/data/farmersdelight/recipe/cutting/cooked_mutton.json +++ b/src/generated/resources/data/farmersdelight/recipe/cutting/cooked_mutton.json @@ -1,9 +1,7 @@ { "type": "farmersdelight:cutting", "ingredients": [ - { - "item": "minecraft:cooked_mutton" - } + "minecraft:cooked_mutton" ], "result": [ { @@ -13,13 +11,14 @@ } } ], - "tool": [ - { - "type": "farmersdelight:item_ability", - "action": "knife_dig" - }, - { - "tag": "c:tools/knife" - } - ] + "tool": { + "neoforge:ingredient_type": "neoforge:compound", + "children": [ + { + "neoforge:ingredient_type": "farmersdelight:item_ability", + "action": "knife_dig" + }, + "#c:tools/knife" + ] + } } \ No newline at end of file diff --git a/src/generated/resources/data/farmersdelight/recipe/cutting/cooked_salmon.json b/src/generated/resources/data/farmersdelight/recipe/cutting/cooked_salmon.json index e9f8a1f01..f37571497 100644 --- a/src/generated/resources/data/farmersdelight/recipe/cutting/cooked_salmon.json +++ b/src/generated/resources/data/farmersdelight/recipe/cutting/cooked_salmon.json @@ -1,9 +1,7 @@ { "type": "farmersdelight:cutting", "ingredients": [ - { - "item": "minecraft:cooked_salmon" - } + "minecraft:cooked_salmon" ], "result": [ { @@ -14,18 +12,18 @@ }, { "item": { - "count": 1, "id": "minecraft:bone_meal" } } ], - "tool": [ - { - "type": "farmersdelight:item_ability", - "action": "knife_dig" - }, - { - "tag": "c:tools/knife" - } - ] + "tool": { + "neoforge:ingredient_type": "neoforge:compound", + "children": [ + { + "neoforge:ingredient_type": "farmersdelight:item_ability", + "action": "knife_dig" + }, + "#c:tools/knife" + ] + } } \ No newline at end of file diff --git a/src/generated/resources/data/farmersdelight/recipe/cutting/cornflower.json b/src/generated/resources/data/farmersdelight/recipe/cutting/cornflower.json index b8f921ea4..69e526582 100644 --- a/src/generated/resources/data/farmersdelight/recipe/cutting/cornflower.json +++ b/src/generated/resources/data/farmersdelight/recipe/cutting/cornflower.json @@ -1,9 +1,7 @@ { "type": "farmersdelight:cutting", "ingredients": [ - { - "item": "minecraft:cornflower" - } + "minecraft:cornflower" ], "result": [ { @@ -13,13 +11,14 @@ } } ], - "tool": [ - { - "type": "farmersdelight:item_ability", - "action": "knife_dig" - }, - { - "tag": "c:tools/knife" - } - ] + "tool": { + "neoforge:ingredient_type": "neoforge:compound", + "children": [ + { + "neoforge:ingredient_type": "farmersdelight:item_ability", + "action": "knife_dig" + }, + "#c:tools/knife" + ] + } } \ No newline at end of file diff --git a/src/generated/resources/data/farmersdelight/recipe/cutting/crimson_hyphae.json b/src/generated/resources/data/farmersdelight/recipe/cutting/crimson_hyphae.json index 4924431bb..0886a380c 100644 --- a/src/generated/resources/data/farmersdelight/recipe/cutting/crimson_hyphae.json +++ b/src/generated/resources/data/farmersdelight/recipe/cutting/crimson_hyphae.json @@ -1,20 +1,16 @@ { "type": "farmersdelight:cutting", "ingredients": [ - { - "item": "minecraft:crimson_hyphae" - } + "minecraft:crimson_hyphae" ], "result": [ { "item": { - "count": 1, "id": "minecraft:stripped_crimson_hyphae" } }, { "item": { - "count": 1, "id": "farmersdelight:tree_bark" } } @@ -22,13 +18,14 @@ "sound": { "sound_id": "minecraft:item.axe.strip" }, - "tool": [ - { - "type": "farmersdelight:item_ability", - "action": "axe_strip" - }, - { - "tag": "minecraft:axes" - } - ] + "tool": { + "neoforge:ingredient_type": "neoforge:compound", + "children": [ + { + "neoforge:ingredient_type": "farmersdelight:item_ability", + "action": "axe_strip" + }, + "#minecraft:axes" + ] + } } \ No newline at end of file diff --git a/src/generated/resources/data/farmersdelight/recipe/cutting/crimson_stem.json b/src/generated/resources/data/farmersdelight/recipe/cutting/crimson_stem.json index 65a6a2709..57c9b523c 100644 --- a/src/generated/resources/data/farmersdelight/recipe/cutting/crimson_stem.json +++ b/src/generated/resources/data/farmersdelight/recipe/cutting/crimson_stem.json @@ -1,20 +1,16 @@ { "type": "farmersdelight:cutting", "ingredients": [ - { - "item": "minecraft:crimson_stem" - } + "minecraft:crimson_stem" ], "result": [ { "item": { - "count": 1, "id": "minecraft:stripped_crimson_stem" } }, { "item": { - "count": 1, "id": "farmersdelight:tree_bark" } } @@ -22,13 +18,14 @@ "sound": { "sound_id": "minecraft:item.axe.strip" }, - "tool": [ - { - "type": "farmersdelight:item_ability", - "action": "axe_strip" - }, - { - "tag": "minecraft:axes" - } - ] + "tool": { + "neoforge:ingredient_type": "neoforge:compound", + "children": [ + { + "neoforge:ingredient_type": "farmersdelight:item_ability", + "action": "axe_strip" + }, + "#minecraft:axes" + ] + } } \ No newline at end of file diff --git a/src/generated/resources/data/farmersdelight/recipe/cutting/dandelion.json b/src/generated/resources/data/farmersdelight/recipe/cutting/dandelion.json index a1b927efe..91d901fd7 100644 --- a/src/generated/resources/data/farmersdelight/recipe/cutting/dandelion.json +++ b/src/generated/resources/data/farmersdelight/recipe/cutting/dandelion.json @@ -1,9 +1,7 @@ { "type": "farmersdelight:cutting", "ingredients": [ - { - "item": "minecraft:dandelion" - } + "minecraft:dandelion" ], "result": [ { @@ -13,13 +11,14 @@ } } ], - "tool": [ - { - "type": "farmersdelight:item_ability", - "action": "knife_dig" - }, - { - "tag": "c:tools/knife" - } - ] + "tool": { + "neoforge:ingredient_type": "neoforge:compound", + "children": [ + { + "neoforge:ingredient_type": "farmersdelight:item_ability", + "action": "knife_dig" + }, + "#c:tools/knife" + ] + } } \ No newline at end of file diff --git a/src/generated/resources/data/farmersdelight/recipe/cutting/dark_oak_log.json b/src/generated/resources/data/farmersdelight/recipe/cutting/dark_oak_log.json index 5680a74ee..dff4f8851 100644 --- a/src/generated/resources/data/farmersdelight/recipe/cutting/dark_oak_log.json +++ b/src/generated/resources/data/farmersdelight/recipe/cutting/dark_oak_log.json @@ -1,20 +1,16 @@ { "type": "farmersdelight:cutting", "ingredients": [ - { - "item": "minecraft:dark_oak_log" - } + "minecraft:dark_oak_log" ], "result": [ { "item": { - "count": 1, "id": "minecraft:stripped_dark_oak_log" } }, { "item": { - "count": 1, "id": "farmersdelight:tree_bark" } } @@ -22,13 +18,14 @@ "sound": { "sound_id": "minecraft:item.axe.strip" }, - "tool": [ - { - "type": "farmersdelight:item_ability", - "action": "axe_strip" - }, - { - "tag": "minecraft:axes" - } - ] + "tool": { + "neoforge:ingredient_type": "neoforge:compound", + "children": [ + { + "neoforge:ingredient_type": "farmersdelight:item_ability", + "action": "axe_strip" + }, + "#minecraft:axes" + ] + } } \ No newline at end of file diff --git a/src/generated/resources/data/farmersdelight/recipe/cutting/dark_oak_wood.json b/src/generated/resources/data/farmersdelight/recipe/cutting/dark_oak_wood.json index 1e2e83257..38822f057 100644 --- a/src/generated/resources/data/farmersdelight/recipe/cutting/dark_oak_wood.json +++ b/src/generated/resources/data/farmersdelight/recipe/cutting/dark_oak_wood.json @@ -1,20 +1,16 @@ { "type": "farmersdelight:cutting", "ingredients": [ - { - "item": "minecraft:dark_oak_wood" - } + "minecraft:dark_oak_wood" ], "result": [ { "item": { - "count": 1, "id": "minecraft:stripped_dark_oak_wood" } }, { "item": { - "count": 1, "id": "farmersdelight:tree_bark" } } @@ -22,13 +18,14 @@ "sound": { "sound_id": "minecraft:item.axe.strip" }, - "tool": [ - { - "type": "farmersdelight:item_ability", - "action": "axe_strip" - }, - { - "tag": "minecraft:axes" - } - ] + "tool": { + "neoforge:ingredient_type": "neoforge:compound", + "children": [ + { + "neoforge:ingredient_type": "farmersdelight:item_ability", + "action": "axe_strip" + }, + "#minecraft:axes" + ] + } } \ No newline at end of file diff --git a/src/generated/resources/data/farmersdelight/recipe/cutting/gravel.json b/src/generated/resources/data/farmersdelight/recipe/cutting/gravel.json index 266e336fc..77fb19c25 100644 --- a/src/generated/resources/data/farmersdelight/recipe/cutting/gravel.json +++ b/src/generated/resources/data/farmersdelight/recipe/cutting/gravel.json @@ -1,32 +1,29 @@ { "type": "farmersdelight:cutting", "ingredients": [ - { - "item": "minecraft:gravel" - } + "minecraft:gravel" ], "result": [ { "item": { - "count": 1, "id": "minecraft:gravel" } }, { "chance": 0.1, "item": { - "count": 1, "id": "minecraft:flint" } } ], - "tool": [ - { - "type": "farmersdelight:item_ability", - "action": "shovel_dig" - }, - { - "tag": "minecraft:shovels" - } - ] + "tool": { + "neoforge:ingredient_type": "neoforge:compound", + "children": [ + { + "neoforge:ingredient_type": "farmersdelight:item_ability", + "action": "shovel_dig" + }, + "#minecraft:shovels" + ] + } } \ No newline at end of file diff --git a/src/generated/resources/data/farmersdelight/recipe/cutting/ham.json b/src/generated/resources/data/farmersdelight/recipe/cutting/ham.json index 3567be6df..aa550b9eb 100644 --- a/src/generated/resources/data/farmersdelight/recipe/cutting/ham.json +++ b/src/generated/resources/data/farmersdelight/recipe/cutting/ham.json @@ -1,9 +1,7 @@ { "type": "farmersdelight:cutting", "ingredients": [ - { - "item": "farmersdelight:ham" - } + "farmersdelight:ham" ], "result": [ { @@ -14,18 +12,18 @@ }, { "item": { - "count": 1, "id": "minecraft:bone" } } ], - "tool": [ - { - "type": "farmersdelight:item_ability", - "action": "knife_dig" - }, - { - "tag": "c:tools/knife" - } - ] + "tool": { + "neoforge:ingredient_type": "neoforge:compound", + "children": [ + { + "neoforge:ingredient_type": "farmersdelight:item_ability", + "action": "knife_dig" + }, + "#c:tools/knife" + ] + } } \ No newline at end of file diff --git a/src/generated/resources/data/farmersdelight/recipe/cutting/ink_sac.json b/src/generated/resources/data/farmersdelight/recipe/cutting/ink_sac.json index 54f2e9ca1..1ed7918b1 100644 --- a/src/generated/resources/data/farmersdelight/recipe/cutting/ink_sac.json +++ b/src/generated/resources/data/farmersdelight/recipe/cutting/ink_sac.json @@ -1,9 +1,7 @@ { "type": "farmersdelight:cutting", "ingredients": [ - { - "item": "minecraft:ink_sac" - } + "minecraft:ink_sac" ], "result": [ { @@ -13,13 +11,14 @@ } } ], - "tool": [ - { - "type": "farmersdelight:item_ability", - "action": "knife_dig" - }, - { - "tag": "c:tools/knife" - } - ] + "tool": { + "neoforge:ingredient_type": "neoforge:compound", + "children": [ + { + "neoforge:ingredient_type": "farmersdelight:item_ability", + "action": "knife_dig" + }, + "#c:tools/knife" + ] + } } \ No newline at end of file diff --git a/src/generated/resources/data/farmersdelight/recipe/cutting/jungle_log.json b/src/generated/resources/data/farmersdelight/recipe/cutting/jungle_log.json index 4ef9c4b39..829445a4a 100644 --- a/src/generated/resources/data/farmersdelight/recipe/cutting/jungle_log.json +++ b/src/generated/resources/data/farmersdelight/recipe/cutting/jungle_log.json @@ -1,20 +1,16 @@ { "type": "farmersdelight:cutting", "ingredients": [ - { - "item": "minecraft:jungle_log" - } + "minecraft:jungle_log" ], "result": [ { "item": { - "count": 1, "id": "minecraft:stripped_jungle_log" } }, { "item": { - "count": 1, "id": "farmersdelight:tree_bark" } } @@ -22,13 +18,14 @@ "sound": { "sound_id": "minecraft:item.axe.strip" }, - "tool": [ - { - "type": "farmersdelight:item_ability", - "action": "axe_strip" - }, - { - "tag": "minecraft:axes" - } - ] + "tool": { + "neoforge:ingredient_type": "neoforge:compound", + "children": [ + { + "neoforge:ingredient_type": "farmersdelight:item_ability", + "action": "axe_strip" + }, + "#minecraft:axes" + ] + } } \ No newline at end of file diff --git a/src/generated/resources/data/farmersdelight/recipe/cutting/jungle_wood.json b/src/generated/resources/data/farmersdelight/recipe/cutting/jungle_wood.json index fd78e397c..1b0b3b704 100644 --- a/src/generated/resources/data/farmersdelight/recipe/cutting/jungle_wood.json +++ b/src/generated/resources/data/farmersdelight/recipe/cutting/jungle_wood.json @@ -1,20 +1,16 @@ { "type": "farmersdelight:cutting", "ingredients": [ - { - "item": "minecraft:jungle_wood" - } + "minecraft:jungle_wood" ], "result": [ { "item": { - "count": 1, "id": "minecraft:stripped_jungle_wood" } }, { "item": { - "count": 1, "id": "farmersdelight:tree_bark" } } @@ -22,13 +18,14 @@ "sound": { "sound_id": "minecraft:item.axe.strip" }, - "tool": [ - { - "type": "farmersdelight:item_ability", - "action": "axe_strip" - }, - { - "tag": "minecraft:axes" - } - ] + "tool": { + "neoforge:ingredient_type": "neoforge:compound", + "children": [ + { + "neoforge:ingredient_type": "farmersdelight:item_ability", + "action": "axe_strip" + }, + "#minecraft:axes" + ] + } } \ No newline at end of file diff --git a/src/generated/resources/data/farmersdelight/recipe/cutting/kelp_roll.json b/src/generated/resources/data/farmersdelight/recipe/cutting/kelp_roll.json index 7a31542c5..15c6f8f99 100644 --- a/src/generated/resources/data/farmersdelight/recipe/cutting/kelp_roll.json +++ b/src/generated/resources/data/farmersdelight/recipe/cutting/kelp_roll.json @@ -1,9 +1,7 @@ { "type": "farmersdelight:cutting", "ingredients": [ - { - "item": "farmersdelight:kelp_roll" - } + "farmersdelight:kelp_roll" ], "result": [ { @@ -13,13 +11,14 @@ } } ], - "tool": [ - { - "type": "farmersdelight:item_ability", - "action": "knife_dig" - }, - { - "tag": "c:tools/knife" - } - ] + "tool": { + "neoforge:ingredient_type": "neoforge:compound", + "children": [ + { + "neoforge:ingredient_type": "farmersdelight:item_ability", + "action": "knife_dig" + }, + "#c:tools/knife" + ] + } } \ No newline at end of file diff --git a/src/generated/resources/data/farmersdelight/recipe/cutting/lily_of_the_valley.json b/src/generated/resources/data/farmersdelight/recipe/cutting/lily_of_the_valley.json index c75cb483d..7a916db2b 100644 --- a/src/generated/resources/data/farmersdelight/recipe/cutting/lily_of_the_valley.json +++ b/src/generated/resources/data/farmersdelight/recipe/cutting/lily_of_the_valley.json @@ -1,9 +1,7 @@ { "type": "farmersdelight:cutting", "ingredients": [ - { - "item": "minecraft:lily_of_the_valley" - } + "minecraft:lily_of_the_valley" ], "result": [ { @@ -13,13 +11,14 @@ } } ], - "tool": [ - { - "type": "farmersdelight:item_ability", - "action": "knife_dig" - }, - { - "tag": "c:tools/knife" - } - ] + "tool": { + "neoforge:ingredient_type": "neoforge:compound", + "children": [ + { + "neoforge:ingredient_type": "farmersdelight:item_ability", + "action": "knife_dig" + }, + "#c:tools/knife" + ] + } } \ No newline at end of file diff --git a/src/generated/resources/data/farmersdelight/recipe/cutting/mangrove_log.json b/src/generated/resources/data/farmersdelight/recipe/cutting/mangrove_log.json index 0836c0b80..392616de2 100644 --- a/src/generated/resources/data/farmersdelight/recipe/cutting/mangrove_log.json +++ b/src/generated/resources/data/farmersdelight/recipe/cutting/mangrove_log.json @@ -1,20 +1,16 @@ { "type": "farmersdelight:cutting", "ingredients": [ - { - "item": "minecraft:mangrove_log" - } + "minecraft:mangrove_log" ], "result": [ { "item": { - "count": 1, "id": "minecraft:stripped_mangrove_log" } }, { "item": { - "count": 1, "id": "farmersdelight:tree_bark" } } @@ -22,13 +18,14 @@ "sound": { "sound_id": "minecraft:item.axe.strip" }, - "tool": [ - { - "type": "farmersdelight:item_ability", - "action": "axe_strip" - }, - { - "tag": "minecraft:axes" - } - ] + "tool": { + "neoforge:ingredient_type": "neoforge:compound", + "children": [ + { + "neoforge:ingredient_type": "farmersdelight:item_ability", + "action": "axe_strip" + }, + "#minecraft:axes" + ] + } } \ No newline at end of file diff --git a/src/generated/resources/data/farmersdelight/recipe/cutting/mangrove_wood.json b/src/generated/resources/data/farmersdelight/recipe/cutting/mangrove_wood.json index 37396fda9..da5ec2eb6 100644 --- a/src/generated/resources/data/farmersdelight/recipe/cutting/mangrove_wood.json +++ b/src/generated/resources/data/farmersdelight/recipe/cutting/mangrove_wood.json @@ -1,20 +1,16 @@ { "type": "farmersdelight:cutting", "ingredients": [ - { - "item": "minecraft:mangrove_wood" - } + "minecraft:mangrove_wood" ], "result": [ { "item": { - "count": 1, "id": "minecraft:stripped_mangrove_wood" } }, { "item": { - "count": 1, "id": "farmersdelight:tree_bark" } } @@ -22,13 +18,14 @@ "sound": { "sound_id": "minecraft:item.axe.strip" }, - "tool": [ - { - "type": "farmersdelight:item_ability", - "action": "axe_strip" - }, - { - "tag": "minecraft:axes" - } - ] + "tool": { + "neoforge:ingredient_type": "neoforge:compound", + "children": [ + { + "neoforge:ingredient_type": "farmersdelight:item_ability", + "action": "axe_strip" + }, + "#minecraft:axes" + ] + } } \ No newline at end of file diff --git a/src/generated/resources/data/farmersdelight/recipe/cutting/melon.json b/src/generated/resources/data/farmersdelight/recipe/cutting/melon.json index dcd566cc8..54c2e28ef 100644 --- a/src/generated/resources/data/farmersdelight/recipe/cutting/melon.json +++ b/src/generated/resources/data/farmersdelight/recipe/cutting/melon.json @@ -1,9 +1,7 @@ { "type": "farmersdelight:cutting", "ingredients": [ - { - "item": "minecraft:melon" - } + "minecraft:melon" ], "result": [ { @@ -13,13 +11,14 @@ } } ], - "tool": [ - { - "type": "farmersdelight:item_ability", - "action": "knife_dig" - }, - { - "tag": "c:tools/knife" - } - ] + "tool": { + "neoforge:ingredient_type": "neoforge:compound", + "children": [ + { + "neoforge:ingredient_type": "farmersdelight:item_ability", + "action": "knife_dig" + }, + "#c:tools/knife" + ] + } } \ No newline at end of file diff --git a/src/generated/resources/data/farmersdelight/recipe/cutting/mutton.json b/src/generated/resources/data/farmersdelight/recipe/cutting/mutton.json index 22ed4dd5c..2e2e59c83 100644 --- a/src/generated/resources/data/farmersdelight/recipe/cutting/mutton.json +++ b/src/generated/resources/data/farmersdelight/recipe/cutting/mutton.json @@ -1,9 +1,7 @@ { "type": "farmersdelight:cutting", "ingredients": [ - { - "item": "minecraft:mutton" - } + "minecraft:mutton" ], "result": [ { @@ -13,13 +11,14 @@ } } ], - "tool": [ - { - "type": "farmersdelight:item_ability", - "action": "knife_dig" - }, - { - "tag": "c:tools/knife" - } - ] + "tool": { + "neoforge:ingredient_type": "neoforge:compound", + "children": [ + { + "neoforge:ingredient_type": "farmersdelight:item_ability", + "action": "knife_dig" + }, + "#c:tools/knife" + ] + } } \ No newline at end of file diff --git a/src/generated/resources/data/farmersdelight/recipe/cutting/oak_log.json b/src/generated/resources/data/farmersdelight/recipe/cutting/oak_log.json index 09c67be07..c54fb1d4d 100644 --- a/src/generated/resources/data/farmersdelight/recipe/cutting/oak_log.json +++ b/src/generated/resources/data/farmersdelight/recipe/cutting/oak_log.json @@ -1,20 +1,16 @@ { "type": "farmersdelight:cutting", "ingredients": [ - { - "item": "minecraft:oak_log" - } + "minecraft:oak_log" ], "result": [ { "item": { - "count": 1, "id": "minecraft:stripped_oak_log" } }, { "item": { - "count": 1, "id": "farmersdelight:tree_bark" } } @@ -22,13 +18,14 @@ "sound": { "sound_id": "minecraft:item.axe.strip" }, - "tool": [ - { - "type": "farmersdelight:item_ability", - "action": "axe_strip" - }, - { - "tag": "minecraft:axes" - } - ] + "tool": { + "neoforge:ingredient_type": "neoforge:compound", + "children": [ + { + "neoforge:ingredient_type": "farmersdelight:item_ability", + "action": "axe_strip" + }, + "#minecraft:axes" + ] + } } \ No newline at end of file diff --git a/src/generated/resources/data/farmersdelight/recipe/cutting/oak_wood.json b/src/generated/resources/data/farmersdelight/recipe/cutting/oak_wood.json index 2f01c9abd..80caff416 100644 --- a/src/generated/resources/data/farmersdelight/recipe/cutting/oak_wood.json +++ b/src/generated/resources/data/farmersdelight/recipe/cutting/oak_wood.json @@ -1,20 +1,16 @@ { "type": "farmersdelight:cutting", "ingredients": [ - { - "item": "minecraft:oak_wood" - } + "minecraft:oak_wood" ], "result": [ { "item": { - "count": 1, "id": "minecraft:stripped_oak_wood" } }, { "item": { - "count": 1, "id": "farmersdelight:tree_bark" } } @@ -22,13 +18,14 @@ "sound": { "sound_id": "minecraft:item.axe.strip" }, - "tool": [ - { - "type": "farmersdelight:item_ability", - "action": "axe_strip" - }, - { - "tag": "minecraft:axes" - } - ] + "tool": { + "neoforge:ingredient_type": "neoforge:compound", + "children": [ + { + "neoforge:ingredient_type": "farmersdelight:item_ability", + "action": "axe_strip" + }, + "#minecraft:axes" + ] + } } \ No newline at end of file diff --git a/src/generated/resources/data/farmersdelight/recipe/cutting/orange_tulip.json b/src/generated/resources/data/farmersdelight/recipe/cutting/orange_tulip.json index db116b867..00c1bde0c 100644 --- a/src/generated/resources/data/farmersdelight/recipe/cutting/orange_tulip.json +++ b/src/generated/resources/data/farmersdelight/recipe/cutting/orange_tulip.json @@ -1,9 +1,7 @@ { "type": "farmersdelight:cutting", "ingredients": [ - { - "item": "minecraft:orange_tulip" - } + "minecraft:orange_tulip" ], "result": [ { @@ -13,13 +11,14 @@ } } ], - "tool": [ - { - "type": "farmersdelight:item_ability", - "action": "knife_dig" - }, - { - "tag": "c:tools/knife" - } - ] + "tool": { + "neoforge:ingredient_type": "neoforge:compound", + "children": [ + { + "neoforge:ingredient_type": "farmersdelight:item_ability", + "action": "knife_dig" + }, + "#c:tools/knife" + ] + } } \ No newline at end of file diff --git a/src/generated/resources/data/farmersdelight/recipe/cutting/oxeye_daisy.json b/src/generated/resources/data/farmersdelight/recipe/cutting/oxeye_daisy.json index 6651c1ad0..84d58db1c 100644 --- a/src/generated/resources/data/farmersdelight/recipe/cutting/oxeye_daisy.json +++ b/src/generated/resources/data/farmersdelight/recipe/cutting/oxeye_daisy.json @@ -1,9 +1,7 @@ { "type": "farmersdelight:cutting", "ingredients": [ - { - "item": "minecraft:oxeye_daisy" - } + "minecraft:oxeye_daisy" ], "result": [ { @@ -13,13 +11,14 @@ } } ], - "tool": [ - { - "type": "farmersdelight:item_ability", - "action": "knife_dig" - }, - { - "tag": "c:tools/knife" - } - ] + "tool": { + "neoforge:ingredient_type": "neoforge:compound", + "children": [ + { + "neoforge:ingredient_type": "farmersdelight:item_ability", + "action": "knife_dig" + }, + "#c:tools/knife" + ] + } } \ No newline at end of file diff --git a/src/generated/resources/data/farmersdelight/recipe/cutting/pink_tulip.json b/src/generated/resources/data/farmersdelight/recipe/cutting/pink_tulip.json index 9846c4803..be58751a9 100644 --- a/src/generated/resources/data/farmersdelight/recipe/cutting/pink_tulip.json +++ b/src/generated/resources/data/farmersdelight/recipe/cutting/pink_tulip.json @@ -1,9 +1,7 @@ { "type": "farmersdelight:cutting", "ingredients": [ - { - "item": "minecraft:pink_tulip" - } + "minecraft:pink_tulip" ], "result": [ { @@ -13,13 +11,14 @@ } } ], - "tool": [ - { - "type": "farmersdelight:item_ability", - "action": "knife_dig" - }, - { - "tag": "c:tools/knife" - } - ] + "tool": { + "neoforge:ingredient_type": "neoforge:compound", + "children": [ + { + "neoforge:ingredient_type": "farmersdelight:item_ability", + "action": "knife_dig" + }, + "#c:tools/knife" + ] + } } \ No newline at end of file diff --git a/src/generated/resources/data/farmersdelight/recipe/cutting/poppy.json b/src/generated/resources/data/farmersdelight/recipe/cutting/poppy.json index c22f59f59..0c6977336 100644 --- a/src/generated/resources/data/farmersdelight/recipe/cutting/poppy.json +++ b/src/generated/resources/data/farmersdelight/recipe/cutting/poppy.json @@ -1,9 +1,7 @@ { "type": "farmersdelight:cutting", "ingredients": [ - { - "item": "minecraft:poppy" - } + "minecraft:poppy" ], "result": [ { @@ -13,13 +11,14 @@ } } ], - "tool": [ - { - "type": "farmersdelight:item_ability", - "action": "knife_dig" - }, - { - "tag": "c:tools/knife" - } - ] + "tool": { + "neoforge:ingredient_type": "neoforge:compound", + "children": [ + { + "neoforge:ingredient_type": "farmersdelight:item_ability", + "action": "knife_dig" + }, + "#c:tools/knife" + ] + } } \ No newline at end of file diff --git a/src/generated/resources/data/farmersdelight/recipe/cutting/porkchop.json b/src/generated/resources/data/farmersdelight/recipe/cutting/porkchop.json index 890208514..7afc4ab4a 100644 --- a/src/generated/resources/data/farmersdelight/recipe/cutting/porkchop.json +++ b/src/generated/resources/data/farmersdelight/recipe/cutting/porkchop.json @@ -1,9 +1,7 @@ { "type": "farmersdelight:cutting", "ingredients": [ - { - "item": "minecraft:porkchop" - } + "minecraft:porkchop" ], "result": [ { @@ -13,13 +11,14 @@ } } ], - "tool": [ - { - "type": "farmersdelight:item_ability", - "action": "knife_dig" - }, - { - "tag": "c:tools/knife" - } - ] + "tool": { + "neoforge:ingredient_type": "neoforge:compound", + "children": [ + { + "neoforge:ingredient_type": "farmersdelight:item_ability", + "action": "knife_dig" + }, + "#c:tools/knife" + ] + } } \ No newline at end of file diff --git a/src/generated/resources/data/farmersdelight/recipe/cutting/pumpkin.json b/src/generated/resources/data/farmersdelight/recipe/cutting/pumpkin.json index 0e1714de2..1322d2c9b 100644 --- a/src/generated/resources/data/farmersdelight/recipe/cutting/pumpkin.json +++ b/src/generated/resources/data/farmersdelight/recipe/cutting/pumpkin.json @@ -1,9 +1,7 @@ { "type": "farmersdelight:cutting", "ingredients": [ - { - "item": "minecraft:pumpkin" - } + "minecraft:pumpkin" ], "result": [ { @@ -13,13 +11,14 @@ } } ], - "tool": [ - { - "type": "farmersdelight:item_ability", - "action": "knife_dig" - }, - { - "tag": "c:tools/knife" - } - ] + "tool": { + "neoforge:ingredient_type": "neoforge:compound", + "children": [ + { + "neoforge:ingredient_type": "farmersdelight:item_ability", + "action": "knife_dig" + }, + "#c:tools/knife" + ] + } } \ No newline at end of file diff --git a/src/generated/resources/data/farmersdelight/recipe/cutting/pumpkin_pie.json b/src/generated/resources/data/farmersdelight/recipe/cutting/pumpkin_pie.json index 1c5566378..105044332 100644 --- a/src/generated/resources/data/farmersdelight/recipe/cutting/pumpkin_pie.json +++ b/src/generated/resources/data/farmersdelight/recipe/cutting/pumpkin_pie.json @@ -1,9 +1,7 @@ { "type": "farmersdelight:cutting", "ingredients": [ - { - "item": "minecraft:pumpkin_pie" - } + "minecraft:pumpkin_pie" ], "result": [ { @@ -13,13 +11,14 @@ } } ], - "tool": [ - { - "type": "farmersdelight:item_ability", - "action": "knife_dig" - }, - { - "tag": "c:tools/knife" - } - ] + "tool": { + "neoforge:ingredient_type": "neoforge:compound", + "children": [ + { + "neoforge:ingredient_type": "farmersdelight:item_ability", + "action": "knife_dig" + }, + "#c:tools/knife" + ] + } } \ No newline at end of file diff --git a/src/generated/resources/data/farmersdelight/recipe/cutting/red_mushroom_colony.json b/src/generated/resources/data/farmersdelight/recipe/cutting/red_mushroom_colony.json index c739e9685..80cbd4c08 100644 --- a/src/generated/resources/data/farmersdelight/recipe/cutting/red_mushroom_colony.json +++ b/src/generated/resources/data/farmersdelight/recipe/cutting/red_mushroom_colony.json @@ -1,9 +1,7 @@ { "type": "farmersdelight:cutting", "ingredients": [ - { - "item": "farmersdelight:red_mushroom_colony" - } + "farmersdelight:red_mushroom_colony" ], "result": [ { @@ -13,13 +11,14 @@ } } ], - "tool": [ - { - "type": "farmersdelight:item_ability", - "action": "knife_dig" - }, - { - "tag": "c:tools/knife" - } - ] + "tool": { + "neoforge:ingredient_type": "neoforge:compound", + "children": [ + { + "neoforge:ingredient_type": "farmersdelight:item_ability", + "action": "knife_dig" + }, + "#c:tools/knife" + ] + } } \ No newline at end of file diff --git a/src/generated/resources/data/farmersdelight/recipe/cutting/red_tulip.json b/src/generated/resources/data/farmersdelight/recipe/cutting/red_tulip.json index f82b425c4..07e4cdadd 100644 --- a/src/generated/resources/data/farmersdelight/recipe/cutting/red_tulip.json +++ b/src/generated/resources/data/farmersdelight/recipe/cutting/red_tulip.json @@ -1,9 +1,7 @@ { "type": "farmersdelight:cutting", "ingredients": [ - { - "item": "minecraft:red_tulip" - } + "minecraft:red_tulip" ], "result": [ { @@ -13,13 +11,14 @@ } } ], - "tool": [ - { - "type": "farmersdelight:item_ability", - "action": "knife_dig" - }, - { - "tag": "c:tools/knife" - } - ] + "tool": { + "neoforge:ingredient_type": "neoforge:compound", + "children": [ + { + "neoforge:ingredient_type": "farmersdelight:item_ability", + "action": "knife_dig" + }, + "#c:tools/knife" + ] + } } \ No newline at end of file diff --git a/src/generated/resources/data/farmersdelight/recipe/cutting/rice_panicle.json b/src/generated/resources/data/farmersdelight/recipe/cutting/rice_panicle.json index 06233324b..068b70792 100644 --- a/src/generated/resources/data/farmersdelight/recipe/cutting/rice_panicle.json +++ b/src/generated/resources/data/farmersdelight/recipe/cutting/rice_panicle.json @@ -1,31 +1,28 @@ { "type": "farmersdelight:cutting", "ingredients": [ - { - "item": "farmersdelight:rice_panicle" - } + "farmersdelight:rice_panicle" ], "result": [ { "item": { - "count": 1, "id": "farmersdelight:rice" } }, { "item": { - "count": 1, "id": "farmersdelight:straw" } } ], - "tool": [ - { - "type": "farmersdelight:item_ability", - "action": "knife_dig" - }, - { - "tag": "c:tools/knife" - } - ] + "tool": { + "neoforge:ingredient_type": "neoforge:compound", + "children": [ + { + "neoforge:ingredient_type": "farmersdelight:item_ability", + "action": "knife_dig" + }, + "#c:tools/knife" + ] + } } \ No newline at end of file diff --git a/src/generated/resources/data/farmersdelight/recipe/cutting/salmon.json b/src/generated/resources/data/farmersdelight/recipe/cutting/salmon.json index ad487f50e..96ac50cb2 100644 --- a/src/generated/resources/data/farmersdelight/recipe/cutting/salmon.json +++ b/src/generated/resources/data/farmersdelight/recipe/cutting/salmon.json @@ -1,9 +1,7 @@ { "type": "farmersdelight:cutting", "ingredients": [ - { - "item": "minecraft:salmon" - } + "minecraft:salmon" ], "result": [ { @@ -14,18 +12,18 @@ }, { "item": { - "count": 1, "id": "minecraft:bone_meal" } } ], - "tool": [ - { - "type": "farmersdelight:item_ability", - "action": "knife_dig" - }, - { - "tag": "c:tools/knife" - } - ] + "tool": { + "neoforge:ingredient_type": "neoforge:compound", + "children": [ + { + "neoforge:ingredient_type": "farmersdelight:item_ability", + "action": "knife_dig" + }, + "#c:tools/knife" + ] + } } \ No newline at end of file diff --git a/src/generated/resources/data/farmersdelight/recipe/cutting/smoked_ham.json b/src/generated/resources/data/farmersdelight/recipe/cutting/smoked_ham.json index 2c56a5b75..5f9c2476b 100644 --- a/src/generated/resources/data/farmersdelight/recipe/cutting/smoked_ham.json +++ b/src/generated/resources/data/farmersdelight/recipe/cutting/smoked_ham.json @@ -1,9 +1,7 @@ { "type": "farmersdelight:cutting", "ingredients": [ - { - "item": "farmersdelight:smoked_ham" - } + "farmersdelight:smoked_ham" ], "result": [ { @@ -14,18 +12,18 @@ }, { "item": { - "count": 1, "id": "minecraft:bone" } } ], - "tool": [ - { - "type": "farmersdelight:item_ability", - "action": "knife_dig" - }, - { - "tag": "c:tools/knife" - } - ] + "tool": { + "neoforge:ingredient_type": "neoforge:compound", + "children": [ + { + "neoforge:ingredient_type": "farmersdelight:item_ability", + "action": "knife_dig" + }, + "#c:tools/knife" + ] + } } \ No newline at end of file diff --git a/src/generated/resources/data/farmersdelight/recipe/cutting/spruce_log.json b/src/generated/resources/data/farmersdelight/recipe/cutting/spruce_log.json index 4c8717a67..5f888b4c9 100644 --- a/src/generated/resources/data/farmersdelight/recipe/cutting/spruce_log.json +++ b/src/generated/resources/data/farmersdelight/recipe/cutting/spruce_log.json @@ -1,20 +1,16 @@ { "type": "farmersdelight:cutting", "ingredients": [ - { - "item": "minecraft:spruce_log" - } + "minecraft:spruce_log" ], "result": [ { "item": { - "count": 1, "id": "minecraft:stripped_spruce_log" } }, { "item": { - "count": 1, "id": "farmersdelight:tree_bark" } } @@ -22,13 +18,14 @@ "sound": { "sound_id": "minecraft:item.axe.strip" }, - "tool": [ - { - "type": "farmersdelight:item_ability", - "action": "axe_strip" - }, - { - "tag": "minecraft:axes" - } - ] + "tool": { + "neoforge:ingredient_type": "neoforge:compound", + "children": [ + { + "neoforge:ingredient_type": "farmersdelight:item_ability", + "action": "axe_strip" + }, + "#minecraft:axes" + ] + } } \ No newline at end of file diff --git a/src/generated/resources/data/farmersdelight/recipe/cutting/spruce_wood.json b/src/generated/resources/data/farmersdelight/recipe/cutting/spruce_wood.json index 858999fb3..07550dba2 100644 --- a/src/generated/resources/data/farmersdelight/recipe/cutting/spruce_wood.json +++ b/src/generated/resources/data/farmersdelight/recipe/cutting/spruce_wood.json @@ -1,20 +1,16 @@ { "type": "farmersdelight:cutting", "ingredients": [ - { - "item": "minecraft:spruce_wood" - } + "minecraft:spruce_wood" ], "result": [ { "item": { - "count": 1, "id": "minecraft:stripped_spruce_wood" } }, { "item": { - "count": 1, "id": "farmersdelight:tree_bark" } } @@ -22,13 +18,14 @@ "sound": { "sound_id": "minecraft:item.axe.strip" }, - "tool": [ - { - "type": "farmersdelight:item_ability", - "action": "axe_strip" - }, - { - "tag": "minecraft:axes" - } - ] + "tool": { + "neoforge:ingredient_type": "neoforge:compound", + "children": [ + { + "neoforge:ingredient_type": "farmersdelight:item_ability", + "action": "axe_strip" + }, + "#minecraft:axes" + ] + } } \ No newline at end of file diff --git a/src/generated/resources/data/farmersdelight/recipe/cutting/sweet_berry_cheesecake.json b/src/generated/resources/data/farmersdelight/recipe/cutting/sweet_berry_cheesecake.json index 0fdc937e0..8c54d24f2 100644 --- a/src/generated/resources/data/farmersdelight/recipe/cutting/sweet_berry_cheesecake.json +++ b/src/generated/resources/data/farmersdelight/recipe/cutting/sweet_berry_cheesecake.json @@ -1,9 +1,7 @@ { "type": "farmersdelight:cutting", "ingredients": [ - { - "item": "farmersdelight:sweet_berry_cheesecake" - } + "farmersdelight:sweet_berry_cheesecake" ], "result": [ { @@ -13,13 +11,14 @@ } } ], - "tool": [ - { - "type": "farmersdelight:item_ability", - "action": "knife_dig" - }, - { - "tag": "c:tools/knife" - } - ] + "tool": { + "neoforge:ingredient_type": "neoforge:compound", + "children": [ + { + "neoforge:ingredient_type": "farmersdelight:item_ability", + "action": "knife_dig" + }, + "#c:tools/knife" + ] + } } \ No newline at end of file diff --git a/src/generated/resources/data/farmersdelight/recipe/cutting/tag_dough.json b/src/generated/resources/data/farmersdelight/recipe/cutting/tag_dough.json index 8d7685c93..f924815a9 100644 --- a/src/generated/resources/data/farmersdelight/recipe/cutting/tag_dough.json +++ b/src/generated/resources/data/farmersdelight/recipe/cutting/tag_dough.json @@ -1,25 +1,23 @@ { "type": "farmersdelight:cutting", "ingredients": [ - { - "tag": "c:foods/dough" - } + "#c:foods/dough" ], "result": [ { "item": { - "count": 1, "id": "farmersdelight:raw_pasta" } } ], - "tool": [ - { - "type": "farmersdelight:item_ability", - "action": "knife_dig" - }, - { - "tag": "c:tools/knife" - } - ] + "tool": { + "neoforge:ingredient_type": "neoforge:compound", + "children": [ + { + "neoforge:ingredient_type": "farmersdelight:item_ability", + "action": "knife_dig" + }, + "#c:tools/knife" + ] + } } \ No newline at end of file diff --git a/src/generated/resources/data/farmersdelight/recipe/cutting/torchflower.json b/src/generated/resources/data/farmersdelight/recipe/cutting/torchflower.json index d6d87958d..d605ebf08 100644 --- a/src/generated/resources/data/farmersdelight/recipe/cutting/torchflower.json +++ b/src/generated/resources/data/farmersdelight/recipe/cutting/torchflower.json @@ -1,9 +1,7 @@ { "type": "farmersdelight:cutting", "ingredients": [ - { - "item": "minecraft:torchflower" - } + "minecraft:torchflower" ], "result": [ { @@ -13,13 +11,14 @@ } } ], - "tool": [ - { - "type": "farmersdelight:item_ability", - "action": "knife_dig" - }, - { - "tag": "c:tools/knife" - } - ] + "tool": { + "neoforge:ingredient_type": "neoforge:compound", + "children": [ + { + "neoforge:ingredient_type": "farmersdelight:item_ability", + "action": "knife_dig" + }, + "#c:tools/knife" + ] + } } \ No newline at end of file diff --git a/src/generated/resources/data/farmersdelight/recipe/cutting/warped_hyphae.json b/src/generated/resources/data/farmersdelight/recipe/cutting/warped_hyphae.json index d654cb0bc..9eb642976 100644 --- a/src/generated/resources/data/farmersdelight/recipe/cutting/warped_hyphae.json +++ b/src/generated/resources/data/farmersdelight/recipe/cutting/warped_hyphae.json @@ -1,20 +1,16 @@ { "type": "farmersdelight:cutting", "ingredients": [ - { - "item": "minecraft:warped_hyphae" - } + "minecraft:warped_hyphae" ], "result": [ { "item": { - "count": 1, "id": "minecraft:stripped_warped_hyphae" } }, { "item": { - "count": 1, "id": "farmersdelight:tree_bark" } } @@ -22,13 +18,14 @@ "sound": { "sound_id": "minecraft:item.axe.strip" }, - "tool": [ - { - "type": "farmersdelight:item_ability", - "action": "axe_strip" - }, - { - "tag": "minecraft:axes" - } - ] + "tool": { + "neoforge:ingredient_type": "neoforge:compound", + "children": [ + { + "neoforge:ingredient_type": "farmersdelight:item_ability", + "action": "axe_strip" + }, + "#minecraft:axes" + ] + } } \ No newline at end of file diff --git a/src/generated/resources/data/farmersdelight/recipe/cutting/warped_stem.json b/src/generated/resources/data/farmersdelight/recipe/cutting/warped_stem.json index 91ef50556..9c0e61a37 100644 --- a/src/generated/resources/data/farmersdelight/recipe/cutting/warped_stem.json +++ b/src/generated/resources/data/farmersdelight/recipe/cutting/warped_stem.json @@ -1,20 +1,16 @@ { "type": "farmersdelight:cutting", "ingredients": [ - { - "item": "minecraft:warped_stem" - } + "minecraft:warped_stem" ], "result": [ { "item": { - "count": 1, "id": "minecraft:stripped_warped_stem" } }, { "item": { - "count": 1, "id": "farmersdelight:tree_bark" } } @@ -22,13 +18,14 @@ "sound": { "sound_id": "minecraft:item.axe.strip" }, - "tool": [ - { - "type": "farmersdelight:item_ability", - "action": "axe_strip" - }, - { - "tag": "minecraft:axes" - } - ] + "tool": { + "neoforge:ingredient_type": "neoforge:compound", + "children": [ + { + "neoforge:ingredient_type": "farmersdelight:item_ability", + "action": "axe_strip" + }, + "#minecraft:axes" + ] + } } \ No newline at end of file diff --git a/src/generated/resources/data/farmersdelight/recipe/cutting/white_tulip.json b/src/generated/resources/data/farmersdelight/recipe/cutting/white_tulip.json index 4c27fbaf7..9c4c23cff 100644 --- a/src/generated/resources/data/farmersdelight/recipe/cutting/white_tulip.json +++ b/src/generated/resources/data/farmersdelight/recipe/cutting/white_tulip.json @@ -1,9 +1,7 @@ { "type": "farmersdelight:cutting", "ingredients": [ - { - "item": "minecraft:white_tulip" - } + "minecraft:white_tulip" ], "result": [ { @@ -13,13 +11,14 @@ } } ], - "tool": [ - { - "type": "farmersdelight:item_ability", - "action": "knife_dig" - }, - { - "tag": "c:tools/knife" - } - ] + "tool": { + "neoforge:ingredient_type": "neoforge:compound", + "children": [ + { + "neoforge:ingredient_type": "farmersdelight:item_ability", + "action": "knife_dig" + }, + "#c:tools/knife" + ] + } } \ No newline at end of file diff --git a/src/generated/resources/data/farmersdelight/recipe/cutting/wild_beetroots.json b/src/generated/resources/data/farmersdelight/recipe/cutting/wild_beetroots.json index d8e82ef5e..19631e3fd 100644 --- a/src/generated/resources/data/farmersdelight/recipe/cutting/wild_beetroots.json +++ b/src/generated/resources/data/farmersdelight/recipe/cutting/wild_beetroots.json @@ -1,31 +1,28 @@ { "type": "farmersdelight:cutting", "ingredients": [ - { - "item": "farmersdelight:wild_beetroots" - } + "farmersdelight:wild_beetroots" ], "result": [ { "item": { - "count": 1, "id": "minecraft:beetroot_seeds" } }, { "item": { - "count": 1, "id": "minecraft:red_dye" } } ], - "tool": [ - { - "type": "farmersdelight:item_ability", - "action": "knife_dig" - }, - { - "tag": "c:tools/knife" - } - ] + "tool": { + "neoforge:ingredient_type": "neoforge:compound", + "children": [ + { + "neoforge:ingredient_type": "farmersdelight:item_ability", + "action": "knife_dig" + }, + "#c:tools/knife" + ] + } } \ No newline at end of file diff --git a/src/generated/resources/data/farmersdelight/recipe/cutting/wild_cabbages.json b/src/generated/resources/data/farmersdelight/recipe/cutting/wild_cabbages.json index 1a6b29095..aaa9fef79 100644 --- a/src/generated/resources/data/farmersdelight/recipe/cutting/wild_cabbages.json +++ b/src/generated/resources/data/farmersdelight/recipe/cutting/wild_cabbages.json @@ -1,14 +1,11 @@ { "type": "farmersdelight:cutting", "ingredients": [ - { - "item": "farmersdelight:wild_cabbages" - } + "farmersdelight:wild_cabbages" ], "result": [ { "item": { - "count": 1, "id": "farmersdelight:cabbage_seeds" } }, @@ -20,13 +17,14 @@ } } ], - "tool": [ - { - "type": "farmersdelight:item_ability", - "action": "knife_dig" - }, - { - "tag": "c:tools/knife" - } - ] + "tool": { + "neoforge:ingredient_type": "neoforge:compound", + "children": [ + { + "neoforge:ingredient_type": "farmersdelight:item_ability", + "action": "knife_dig" + }, + "#c:tools/knife" + ] + } } \ No newline at end of file diff --git a/src/generated/resources/data/farmersdelight/recipe/cutting/wild_carrots.json b/src/generated/resources/data/farmersdelight/recipe/cutting/wild_carrots.json index 3b4e90c97..68e1259d0 100644 --- a/src/generated/resources/data/farmersdelight/recipe/cutting/wild_carrots.json +++ b/src/generated/resources/data/farmersdelight/recipe/cutting/wild_carrots.json @@ -1,14 +1,11 @@ { "type": "farmersdelight:cutting", "ingredients": [ - { - "item": "farmersdelight:wild_carrots" - } + "farmersdelight:wild_carrots" ], "result": [ { "item": { - "count": 1, "id": "minecraft:carrot" } }, @@ -20,13 +17,14 @@ } } ], - "tool": [ - { - "type": "farmersdelight:item_ability", - "action": "knife_dig" - }, - { - "tag": "c:tools/knife" - } - ] + "tool": { + "neoforge:ingredient_type": "neoforge:compound", + "children": [ + { + "neoforge:ingredient_type": "farmersdelight:item_ability", + "action": "knife_dig" + }, + "#c:tools/knife" + ] + } } \ No newline at end of file diff --git a/src/generated/resources/data/farmersdelight/recipe/cutting/wild_onions.json b/src/generated/resources/data/farmersdelight/recipe/cutting/wild_onions.json index dad696ffb..5b27618ba 100644 --- a/src/generated/resources/data/farmersdelight/recipe/cutting/wild_onions.json +++ b/src/generated/resources/data/farmersdelight/recipe/cutting/wild_onions.json @@ -1,14 +1,11 @@ { "type": "farmersdelight:cutting", "ingredients": [ - { - "item": "farmersdelight:wild_onions" - } + "farmersdelight:wild_onions" ], "result": [ { "item": { - "count": 1, "id": "farmersdelight:onion" } }, @@ -21,18 +18,18 @@ { "chance": 0.1, "item": { - "count": 1, "id": "minecraft:lime_dye" } } ], - "tool": [ - { - "type": "farmersdelight:item_ability", - "action": "knife_dig" - }, - { - "tag": "c:tools/knife" - } - ] + "tool": { + "neoforge:ingredient_type": "neoforge:compound", + "children": [ + { + "neoforge:ingredient_type": "farmersdelight:item_ability", + "action": "knife_dig" + }, + "#c:tools/knife" + ] + } } \ No newline at end of file diff --git a/src/generated/resources/data/farmersdelight/recipe/cutting/wild_potatoes.json b/src/generated/resources/data/farmersdelight/recipe/cutting/wild_potatoes.json index 58878c379..be9cd7aa2 100644 --- a/src/generated/resources/data/farmersdelight/recipe/cutting/wild_potatoes.json +++ b/src/generated/resources/data/farmersdelight/recipe/cutting/wild_potatoes.json @@ -1,14 +1,11 @@ { "type": "farmersdelight:cutting", "ingredients": [ - { - "item": "farmersdelight:wild_potatoes" - } + "farmersdelight:wild_potatoes" ], "result": [ { "item": { - "count": 1, "id": "minecraft:potato" } }, @@ -20,13 +17,14 @@ } } ], - "tool": [ - { - "type": "farmersdelight:item_ability", - "action": "knife_dig" - }, - { - "tag": "c:tools/knife" - } - ] + "tool": { + "neoforge:ingredient_type": "neoforge:compound", + "children": [ + { + "neoforge:ingredient_type": "farmersdelight:item_ability", + "action": "knife_dig" + }, + "#c:tools/knife" + ] + } } \ No newline at end of file diff --git a/src/generated/resources/data/farmersdelight/recipe/cutting/wild_rice.json b/src/generated/resources/data/farmersdelight/recipe/cutting/wild_rice.json index 894302784..995244c80 100644 --- a/src/generated/resources/data/farmersdelight/recipe/cutting/wild_rice.json +++ b/src/generated/resources/data/farmersdelight/recipe/cutting/wild_rice.json @@ -1,32 +1,29 @@ { "type": "farmersdelight:cutting", "ingredients": [ - { - "item": "farmersdelight:wild_rice" - } + "farmersdelight:wild_rice" ], "result": [ { "item": { - "count": 1, "id": "farmersdelight:rice" } }, { "chance": 0.5, "item": { - "count": 1, "id": "farmersdelight:straw" } } ], - "tool": [ - { - "type": "farmersdelight:item_ability", - "action": "knife_dig" - }, - { - "tag": "c:tools/knife" - } - ] + "tool": { + "neoforge:ingredient_type": "neoforge:compound", + "children": [ + { + "neoforge:ingredient_type": "farmersdelight:item_ability", + "action": "knife_dig" + }, + "#c:tools/knife" + ] + } } \ No newline at end of file diff --git a/src/generated/resources/data/farmersdelight/recipe/cutting/wild_tomatoes.json b/src/generated/resources/data/farmersdelight/recipe/cutting/wild_tomatoes.json index 260808194..cbcf143f3 100644 --- a/src/generated/resources/data/farmersdelight/recipe/cutting/wild_tomatoes.json +++ b/src/generated/resources/data/farmersdelight/recipe/cutting/wild_tomatoes.json @@ -1,39 +1,35 @@ { "type": "farmersdelight:cutting", "ingredients": [ - { - "item": "farmersdelight:wild_tomatoes" - } + "farmersdelight:wild_tomatoes" ], "result": [ { "item": { - "count": 1, "id": "farmersdelight:tomato_seeds" } }, { "chance": 0.2, "item": { - "count": 1, "id": "farmersdelight:tomato" } }, { "chance": 0.1, "item": { - "count": 1, "id": "minecraft:green_dye" } } ], - "tool": [ - { - "type": "farmersdelight:item_ability", - "action": "knife_dig" - }, - { - "tag": "c:tools/knife" - } - ] + "tool": { + "neoforge:ingredient_type": "neoforge:compound", + "children": [ + { + "neoforge:ingredient_type": "farmersdelight:item_ability", + "action": "knife_dig" + }, + "#c:tools/knife" + ] + } } \ No newline at end of file diff --git a/src/generated/resources/data/farmersdelight/recipe/cutting/wither_rose.json b/src/generated/resources/data/farmersdelight/recipe/cutting/wither_rose.json index 2f2d004bb..a2f6df7da 100644 --- a/src/generated/resources/data/farmersdelight/recipe/cutting/wither_rose.json +++ b/src/generated/resources/data/farmersdelight/recipe/cutting/wither_rose.json @@ -1,9 +1,7 @@ { "type": "farmersdelight:cutting", "ingredients": [ - { - "item": "minecraft:wither_rose" - } + "minecraft:wither_rose" ], "result": [ { @@ -13,13 +11,14 @@ } } ], - "tool": [ - { - "type": "farmersdelight:item_ability", - "action": "knife_dig" - }, - { - "tag": "c:tools/knife" - } - ] + "tool": { + "neoforge:ingredient_type": "neoforge:compound", + "children": [ + { + "neoforge:ingredient_type": "farmersdelight:item_ability", + "action": "knife_dig" + }, + "#c:tools/knife" + ] + } } \ No newline at end of file diff --git a/src/generated/resources/data/farmersdelight/recipe/cutting/wooden_basket.json b/src/generated/resources/data/farmersdelight/recipe/cutting/wooden_basket.json index 7b197f3c1..5dd34dda5 100644 --- a/src/generated/resources/data/farmersdelight/recipe/cutting/wooden_basket.json +++ b/src/generated/resources/data/farmersdelight/recipe/cutting/wooden_basket.json @@ -1,31 +1,28 @@ { "type": "farmersdelight:cutting", "ingredients": [ - { - "item": "farmersdelight:wooden_basket" - } + "farmersdelight:wooden_basket" ], "result": [ { "item": { - "count": 1, "id": "farmersdelight:canvas" } }, { "item": { - "count": 1, "id": "minecraft:stick" } } ], - "tool": [ - { - "type": "farmersdelight:item_ability", - "action": "axe_dig" - }, - { - "tag": "minecraft:axes" - } - ] + "tool": { + "neoforge:ingredient_type": "neoforge:compound", + "children": [ + { + "neoforge:ingredient_type": "farmersdelight:item_ability", + "action": "axe_dig" + }, + "#minecraft:axes" + ] + } } \ No newline at end of file diff --git a/src/generated/resources/data/farmersdelight/recipe/cutting_board.json b/src/generated/resources/data/farmersdelight/recipe/cutting_board.json index 1f19c6fe4..abe2e887a 100644 --- a/src/generated/resources/data/farmersdelight/recipe/cutting_board.json +++ b/src/generated/resources/data/farmersdelight/recipe/cutting_board.json @@ -1,20 +1,14 @@ { "type": "minecraft:crafting_shaped", - "category": "misc", "key": { - "#": { - "tag": "minecraft:planks" - }, - "/": { - "item": "minecraft:stick" - } + "#": "#minecraft:planks", + "/": "minecraft:stick" }, "pattern": [ "/##", "/##" ], "result": { - "count": 1, "id": "farmersdelight:cutting_board" } } \ No newline at end of file diff --git a/src/generated/resources/data/farmersdelight/recipe/cyan_canvas_sign.json b/src/generated/resources/data/farmersdelight/recipe/cyan_canvas_sign.json index 49b88d6be..7d1022dfa 100644 --- a/src/generated/resources/data/farmersdelight/recipe/cyan_canvas_sign.json +++ b/src/generated/resources/data/farmersdelight/recipe/cyan_canvas_sign.json @@ -1,17 +1,11 @@ { "type": "minecraft:crafting_shapeless", - "category": "misc", "group": "fd_canvas_sign", "ingredients": [ - { - "tag": "farmersdelight:canvas_signs" - }, - { - "tag": "c:dyes/cyan" - } + "#farmersdelight:canvas_signs", + "#c:dyes/cyan" ], "result": { - "count": 1, "id": "farmersdelight:cyan_canvas_sign" } } \ No newline at end of file diff --git a/src/generated/resources/data/farmersdelight/recipe/cyan_hanging_canvas_sign.json b/src/generated/resources/data/farmersdelight/recipe/cyan_hanging_canvas_sign.json index f6644f298..88cc0b579 100644 --- a/src/generated/resources/data/farmersdelight/recipe/cyan_hanging_canvas_sign.json +++ b/src/generated/resources/data/farmersdelight/recipe/cyan_hanging_canvas_sign.json @@ -1,17 +1,11 @@ { "type": "minecraft:crafting_shapeless", - "category": "misc", "group": "fd_hanging_canvas_sign", "ingredients": [ - { - "tag": "farmersdelight:hanging_canvas_signs" - }, - { - "tag": "c:dyes/cyan" - } + "#farmersdelight:hanging_canvas_signs", + "#c:dyes/cyan" ], "result": { - "count": 1, "id": "farmersdelight:cyan_hanging_canvas_sign" } } \ No newline at end of file diff --git a/src/generated/resources/data/farmersdelight/recipe/dark_oak_cabinet.json b/src/generated/resources/data/farmersdelight/recipe/dark_oak_cabinet.json index 51f646e99..ebf1157cd 100644 --- a/src/generated/resources/data/farmersdelight/recipe/dark_oak_cabinet.json +++ b/src/generated/resources/data/farmersdelight/recipe/dark_oak_cabinet.json @@ -1,14 +1,9 @@ { "type": "minecraft:crafting_shaped", - "category": "misc", "group": "fd_cabinet", "key": { - "D": { - "item": "minecraft:dark_oak_trapdoor" - }, - "_": { - "item": "minecraft:dark_oak_slab" - } + "D": "minecraft:dark_oak_trapdoor", + "_": "minecraft:dark_oak_slab" }, "pattern": [ "___", @@ -16,7 +11,6 @@ "___" ], "result": { - "count": 1, "id": "farmersdelight:dark_oak_cabinet" } } \ No newline at end of file diff --git a/src/generated/resources/data/farmersdelight/recipe/diamond_knife.json b/src/generated/resources/data/farmersdelight/recipe/diamond_knife.json index d24a5f9da..44d1bf946 100644 --- a/src/generated/resources/data/farmersdelight/recipe/diamond_knife.json +++ b/src/generated/resources/data/farmersdelight/recipe/diamond_knife.json @@ -2,19 +2,14 @@ "type": "minecraft:crafting_shaped", "category": "equipment", "key": { - "m": { - "item": "minecraft:diamond" - }, - "s": { - "item": "minecraft:stick" - } + "m": "minecraft:diamond", + "s": "minecraft:stick" }, "pattern": [ "m", "s" ], "result": { - "count": 1, "id": "farmersdelight:diamond_knife" } } \ No newline at end of file diff --git a/src/generated/resources/data/farmersdelight/recipe/egg_sandwich.json b/src/generated/resources/data/farmersdelight/recipe/egg_sandwich.json index 2aa6176a6..0881965c4 100644 --- a/src/generated/resources/data/farmersdelight/recipe/egg_sandwich.json +++ b/src/generated/resources/data/farmersdelight/recipe/egg_sandwich.json @@ -1,19 +1,11 @@ { "type": "minecraft:crafting_shapeless", - "category": "misc", "ingredients": [ - { - "tag": "c:foods/bread" - }, - { - "tag": "c:foods/cooked_egg" - }, - { - "tag": "c:foods/cooked_egg" - } + "#c:foods/bread", + "#c:foods/cooked_egg", + "#c:foods/cooked_egg" ], "result": { - "count": 1, "id": "farmersdelight:egg_sandwich" } } \ No newline at end of file diff --git a/src/generated/resources/data/farmersdelight/recipe/flint_knife.json b/src/generated/resources/data/farmersdelight/recipe/flint_knife.json index c13f51e1d..f129a737e 100644 --- a/src/generated/resources/data/farmersdelight/recipe/flint_knife.json +++ b/src/generated/resources/data/farmersdelight/recipe/flint_knife.json @@ -2,19 +2,14 @@ "type": "minecraft:crafting_shaped", "category": "equipment", "key": { - "m": { - "item": "minecraft:flint" - }, - "s": { - "item": "minecraft:stick" - } + "m": "minecraft:flint", + "s": "minecraft:stick" }, "pattern": [ "m", "s" ], "result": { - "count": 1, "id": "farmersdelight:flint_knife" } } \ No newline at end of file diff --git a/src/generated/resources/data/farmersdelight/recipe/food_serving.json b/src/generated/resources/data/farmersdelight/recipe/food_serving.json index a10da4da3..f033880fb 100644 --- a/src/generated/resources/data/farmersdelight/recipe/food_serving.json +++ b/src/generated/resources/data/farmersdelight/recipe/food_serving.json @@ -1,4 +1,3 @@ { - "type": "farmersdelight:food_serving", - "category": "misc" + "type": "farmersdelight:food_serving" } \ No newline at end of file diff --git a/src/generated/resources/data/farmersdelight/recipe/fried_egg.json b/src/generated/resources/data/farmersdelight/recipe/fried_egg.json index a5b634cfb..edda0fdb8 100644 --- a/src/generated/resources/data/farmersdelight/recipe/fried_egg.json +++ b/src/generated/resources/data/farmersdelight/recipe/fried_egg.json @@ -1,13 +1,9 @@ { "type": "minecraft:smelting", "category": "food", - "cookingtime": 200, "experience": 0.35, - "ingredient": { - "item": "minecraft:egg" - }, + "ingredient": "minecraft:egg", "result": { - "count": 1, "id": "farmersdelight:fried_egg" } } \ No newline at end of file diff --git a/src/generated/resources/data/farmersdelight/recipe/fried_egg_from_campfire_cooking.json b/src/generated/resources/data/farmersdelight/recipe/fried_egg_from_campfire_cooking.json index 2e548b8d0..7bf02c367 100644 --- a/src/generated/resources/data/farmersdelight/recipe/fried_egg_from_campfire_cooking.json +++ b/src/generated/resources/data/farmersdelight/recipe/fried_egg_from_campfire_cooking.json @@ -3,11 +3,8 @@ "category": "food", "cookingtime": 600, "experience": 0.35, - "ingredient": { - "item": "minecraft:egg" - }, + "ingredient": "minecraft:egg", "result": { - "count": 1, "id": "farmersdelight:fried_egg" } } \ No newline at end of file diff --git a/src/generated/resources/data/farmersdelight/recipe/fried_egg_from_smoking.json b/src/generated/resources/data/farmersdelight/recipe/fried_egg_from_smoking.json index 8be88b4d2..245069f7a 100644 --- a/src/generated/resources/data/farmersdelight/recipe/fried_egg_from_smoking.json +++ b/src/generated/resources/data/farmersdelight/recipe/fried_egg_from_smoking.json @@ -1,13 +1,9 @@ { "type": "minecraft:smoking", "category": "food", - "cookingtime": 100, "experience": 0.35, - "ingredient": { - "item": "minecraft:egg" - }, + "ingredient": "minecraft:egg", "result": { - "count": 1, "id": "farmersdelight:fried_egg" } } \ No newline at end of file diff --git a/src/generated/resources/data/farmersdelight/recipe/fruit_salad.json b/src/generated/resources/data/farmersdelight/recipe/fruit_salad.json index cde8425fd..797f03778 100644 --- a/src/generated/resources/data/farmersdelight/recipe/fruit_salad.json +++ b/src/generated/resources/data/farmersdelight/recipe/fruit_salad.json @@ -1,31 +1,15 @@ { "type": "minecraft:crafting_shapeless", - "category": "misc", "ingredients": [ - { - "item": "minecraft:apple" - }, - { - "item": "minecraft:melon_slice" - }, - { - "item": "minecraft:melon_slice" - }, - { - "tag": "c:foods/berry" - }, - { - "tag": "c:foods/berry" - }, - { - "item": "farmersdelight:pumpkin_slice" - }, - { - "item": "minecraft:bowl" - } + "minecraft:apple", + "minecraft:melon_slice", + "minecraft:melon_slice", + "#c:foods/berry", + "#c:foods/berry", + "farmersdelight:pumpkin_slice", + "minecraft:bowl" ], "result": { - "count": 1, "id": "farmersdelight:fruit_salad" } } \ No newline at end of file diff --git a/src/generated/resources/data/farmersdelight/recipe/full_tatami_mat.json b/src/generated/resources/data/farmersdelight/recipe/full_tatami_mat.json index 66c379ecd..5f75e4bb1 100644 --- a/src/generated/resources/data/farmersdelight/recipe/full_tatami_mat.json +++ b/src/generated/resources/data/farmersdelight/recipe/full_tatami_mat.json @@ -1,11 +1,8 @@ { "type": "minecraft:crafting_shapeless", - "category": "misc", "group": "fd_full_tatami_mat", "ingredients": [ - { - "item": "farmersdelight:tatami" - } + "farmersdelight:tatami" ], "result": { "count": 2, diff --git a/src/generated/resources/data/farmersdelight/recipe/full_tatami_mat_from_halves.json b/src/generated/resources/data/farmersdelight/recipe/full_tatami_mat_from_halves.json index c3ddfb71a..f47518b48 100644 --- a/src/generated/resources/data/farmersdelight/recipe/full_tatami_mat_from_halves.json +++ b/src/generated/resources/data/farmersdelight/recipe/full_tatami_mat_from_halves.json @@ -1,17 +1,11 @@ { "type": "minecraft:crafting_shapeless", - "category": "misc", "group": "fd_full_tatami_mat", "ingredients": [ - { - "item": "farmersdelight:half_tatami_mat" - }, - { - "item": "farmersdelight:half_tatami_mat" - } + "farmersdelight:half_tatami_mat", + "farmersdelight:half_tatami_mat" ], "result": { - "count": 1, "id": "farmersdelight:full_tatami_mat" } } \ No newline at end of file diff --git a/src/generated/resources/data/farmersdelight/recipe/gleaming_salad_block.json b/src/generated/resources/data/farmersdelight/recipe/gleaming_salad_block.json index 8d05d72fa..85b2aa80e 100644 --- a/src/generated/resources/data/farmersdelight/recipe/gleaming_salad_block.json +++ b/src/generated/resources/data/farmersdelight/recipe/gleaming_salad_block.json @@ -1,37 +1,17 @@ { "type": "minecraft:crafting_shapeless", - "category": "misc", "ingredients": [ - { - "item": "minecraft:glow_berries" - }, - { - "item": "minecraft:honey_bottle" - }, - { - "item": "minecraft:glow_berries" - }, - { - "tag": "c:crops/tomato" - }, - { - "item": "minecraft:golden_carrot" - }, - { - "tag": "c:crops/beetroot" - }, - { - "item": "farmersdelight:cabbage" - }, - { - "item": "minecraft:bowl" - }, - { - "item": "farmersdelight:cabbage" - } + "minecraft:glow_berries", + "minecraft:honey_bottle", + "minecraft:glow_berries", + "#c:crops/tomato", + "minecraft:golden_carrot", + "#c:crops/beetroot", + "farmersdelight:cabbage", + "minecraft:bowl", + "farmersdelight:cabbage" ], "result": { - "count": 1, "id": "farmersdelight:gleaming_salad_block" } } \ No newline at end of file diff --git a/src/generated/resources/data/farmersdelight/recipe/gold_nugget_from_blasting_knife.json b/src/generated/resources/data/farmersdelight/recipe/gold_nugget_from_blasting_knife.json index 2bf6d36a1..ec51bdb2c 100644 --- a/src/generated/resources/data/farmersdelight/recipe/gold_nugget_from_blasting_knife.json +++ b/src/generated/resources/data/farmersdelight/recipe/gold_nugget_from_blasting_knife.json @@ -1,13 +1,8 @@ { "type": "minecraft:blasting", - "category": "misc", - "cookingtime": 100, "experience": 0.1, - "ingredient": { - "item": "farmersdelight:golden_knife" - }, + "ingredient": "farmersdelight:golden_knife", "result": { - "count": 1, "id": "minecraft:gold_nugget" } } \ No newline at end of file diff --git a/src/generated/resources/data/farmersdelight/recipe/gold_nugget_from_smelting_knife.json b/src/generated/resources/data/farmersdelight/recipe/gold_nugget_from_smelting_knife.json index 8db8e6979..3557fe27a 100644 --- a/src/generated/resources/data/farmersdelight/recipe/gold_nugget_from_smelting_knife.json +++ b/src/generated/resources/data/farmersdelight/recipe/gold_nugget_from_smelting_knife.json @@ -1,13 +1,8 @@ { "type": "minecraft:smelting", - "category": "misc", - "cookingtime": 200, "experience": 0.1, - "ingredient": { - "item": "farmersdelight:golden_knife" - }, + "ingredient": "farmersdelight:golden_knife", "result": { - "count": 1, "id": "minecraft:gold_nugget" } } \ No newline at end of file diff --git a/src/generated/resources/data/farmersdelight/recipe/golden_knife.json b/src/generated/resources/data/farmersdelight/recipe/golden_knife.json index 0bc073819..fb18e105f 100644 --- a/src/generated/resources/data/farmersdelight/recipe/golden_knife.json +++ b/src/generated/resources/data/farmersdelight/recipe/golden_knife.json @@ -2,19 +2,14 @@ "type": "minecraft:crafting_shaped", "category": "equipment", "key": { - "m": { - "item": "minecraft:gold_ingot" - }, - "s": { - "item": "minecraft:stick" - } + "m": "minecraft:gold_ingot", + "s": "minecraft:stick" }, "pattern": [ "m", "s" ], "result": { - "count": 1, "id": "farmersdelight:golden_knife" } } \ No newline at end of file diff --git a/src/generated/resources/data/farmersdelight/recipe/gray_canvas_sign.json b/src/generated/resources/data/farmersdelight/recipe/gray_canvas_sign.json index 8f5f9473d..30c177878 100644 --- a/src/generated/resources/data/farmersdelight/recipe/gray_canvas_sign.json +++ b/src/generated/resources/data/farmersdelight/recipe/gray_canvas_sign.json @@ -1,17 +1,11 @@ { "type": "minecraft:crafting_shapeless", - "category": "misc", "group": "fd_canvas_sign", "ingredients": [ - { - "tag": "farmersdelight:canvas_signs" - }, - { - "tag": "c:dyes/gray" - } + "#farmersdelight:canvas_signs", + "#c:dyes/gray" ], "result": { - "count": 1, "id": "farmersdelight:gray_canvas_sign" } } \ No newline at end of file diff --git a/src/generated/resources/data/farmersdelight/recipe/gray_hanging_canvas_sign.json b/src/generated/resources/data/farmersdelight/recipe/gray_hanging_canvas_sign.json index 19eddc886..123871f07 100644 --- a/src/generated/resources/data/farmersdelight/recipe/gray_hanging_canvas_sign.json +++ b/src/generated/resources/data/farmersdelight/recipe/gray_hanging_canvas_sign.json @@ -1,17 +1,11 @@ { "type": "minecraft:crafting_shapeless", - "category": "misc", "group": "fd_hanging_canvas_sign", "ingredients": [ - { - "tag": "farmersdelight:hanging_canvas_signs" - }, - { - "tag": "c:dyes/gray" - } + "#farmersdelight:hanging_canvas_signs", + "#c:dyes/gray" ], "result": { - "count": 1, "id": "farmersdelight:gray_hanging_canvas_sign" } } \ No newline at end of file diff --git a/src/generated/resources/data/farmersdelight/recipe/green_canvas_sign.json b/src/generated/resources/data/farmersdelight/recipe/green_canvas_sign.json index bec37321e..678a583b4 100644 --- a/src/generated/resources/data/farmersdelight/recipe/green_canvas_sign.json +++ b/src/generated/resources/data/farmersdelight/recipe/green_canvas_sign.json @@ -1,17 +1,11 @@ { "type": "minecraft:crafting_shapeless", - "category": "misc", "group": "fd_canvas_sign", "ingredients": [ - { - "tag": "farmersdelight:canvas_signs" - }, - { - "tag": "c:dyes/green" - } + "#farmersdelight:canvas_signs", + "#c:dyes/green" ], "result": { - "count": 1, "id": "farmersdelight:green_canvas_sign" } } \ No newline at end of file diff --git a/src/generated/resources/data/farmersdelight/recipe/green_hanging_canvas_sign.json b/src/generated/resources/data/farmersdelight/recipe/green_hanging_canvas_sign.json index 39e7a500a..95b4a9b4e 100644 --- a/src/generated/resources/data/farmersdelight/recipe/green_hanging_canvas_sign.json +++ b/src/generated/resources/data/farmersdelight/recipe/green_hanging_canvas_sign.json @@ -1,17 +1,11 @@ { "type": "minecraft:crafting_shapeless", - "category": "misc", "group": "fd_hanging_canvas_sign", "ingredients": [ - { - "tag": "farmersdelight:hanging_canvas_signs" - }, - { - "tag": "c:dyes/green" - } + "#farmersdelight:hanging_canvas_signs", + "#c:dyes/green" ], "result": { - "count": 1, "id": "farmersdelight:green_hanging_canvas_sign" } } \ No newline at end of file diff --git a/src/generated/resources/data/farmersdelight/recipe/grilled_salmon.json b/src/generated/resources/data/farmersdelight/recipe/grilled_salmon.json index 656d45430..079f31b41 100644 --- a/src/generated/resources/data/farmersdelight/recipe/grilled_salmon.json +++ b/src/generated/resources/data/farmersdelight/recipe/grilled_salmon.json @@ -1,25 +1,13 @@ { "type": "minecraft:crafting_shapeless", - "category": "misc", "ingredients": [ - { - "tag": "c:foods/cooked_salmon" - }, - { - "item": "minecraft:sweet_berries" - }, - { - "item": "minecraft:bowl" - }, - { - "tag": "c:crops/cabbage" - }, - { - "tag": "c:crops/onion" - } + "#c:foods/cooked_salmon", + "minecraft:sweet_berries", + "minecraft:bowl", + "#c:crops/cabbage", + "#c:crops/onion" ], "result": { - "count": 1, "id": "farmersdelight:grilled_salmon" } } \ No newline at end of file diff --git a/src/generated/resources/data/farmersdelight/recipe/half_tatami_mat.json b/src/generated/resources/data/farmersdelight/recipe/half_tatami_mat.json index 75a5410b4..0d3f1436b 100644 --- a/src/generated/resources/data/farmersdelight/recipe/half_tatami_mat.json +++ b/src/generated/resources/data/farmersdelight/recipe/half_tatami_mat.json @@ -1,10 +1,7 @@ { "type": "minecraft:crafting_shapeless", - "category": "misc", "ingredients": [ - { - "item": "farmersdelight:full_tatami_mat" - } + "farmersdelight:full_tatami_mat" ], "result": { "count": 2, diff --git a/src/generated/resources/data/farmersdelight/recipe/hamburger.json b/src/generated/resources/data/farmersdelight/recipe/hamburger.json index 16086ec06..ffff02028 100644 --- a/src/generated/resources/data/farmersdelight/recipe/hamburger.json +++ b/src/generated/resources/data/farmersdelight/recipe/hamburger.json @@ -1,25 +1,13 @@ { "type": "minecraft:crafting_shapeless", - "category": "misc", "ingredients": [ - { - "tag": "c:foods/bread" - }, - { - "item": "farmersdelight:beef_patty" - }, - { - "tag": "c:foods/leafy_green" - }, - { - "tag": "c:crops/tomato" - }, - { - "tag": "c:crops/onion" - } + "#c:foods/bread", + "farmersdelight:beef_patty", + "#c:foods/leafy_green", + "#c:crops/tomato", + "#c:crops/onion" ], "result": { - "count": 1, "id": "farmersdelight:hamburger" } } \ No newline at end of file diff --git a/src/generated/resources/data/farmersdelight/recipe/hanging_canvas_sign.json b/src/generated/resources/data/farmersdelight/recipe/hanging_canvas_sign.json index 84a0504cd..6d72ba3e3 100644 --- a/src/generated/resources/data/farmersdelight/recipe/hanging_canvas_sign.json +++ b/src/generated/resources/data/farmersdelight/recipe/hanging_canvas_sign.json @@ -1,16 +1,9 @@ { "type": "minecraft:crafting_shaped", - "category": "misc", "key": { - "#": { - "item": "farmersdelight:canvas" - }, - "X": { - "item": "minecraft:chain" - }, - "w": { - "tag": "minecraft:logs" - } + "#": "farmersdelight:canvas", + "X": "minecraft:iron_chain", + "w": "#minecraft:logs" }, "pattern": [ "X X", diff --git a/src/generated/resources/data/farmersdelight/recipe/honey_cookie.json b/src/generated/resources/data/farmersdelight/recipe/honey_cookie.json index 2deb25442..f4937e40c 100644 --- a/src/generated/resources/data/farmersdelight/recipe/honey_cookie.json +++ b/src/generated/resources/data/farmersdelight/recipe/honey_cookie.json @@ -1,16 +1,9 @@ { "type": "minecraft:crafting_shapeless", - "category": "misc", "ingredients": [ - { - "item": "minecraft:honey_bottle" - }, - { - "tag": "c:crops/wheat" - }, - { - "tag": "c:crops/wheat" - } + "minecraft:honey_bottle", + "#c:crops/wheat", + "#c:crops/wheat" ], "result": { "count": 8, diff --git a/src/generated/resources/data/farmersdelight/recipe/honey_glazed_ham_block.json b/src/generated/resources/data/farmersdelight/recipe/honey_glazed_ham_block.json index f7d1ed24c..c3b254e6d 100644 --- a/src/generated/resources/data/farmersdelight/recipe/honey_glazed_ham_block.json +++ b/src/generated/resources/data/farmersdelight/recipe/honey_glazed_ham_block.json @@ -1,37 +1,17 @@ { "type": "minecraft:crafting_shapeless", - "category": "misc", "ingredients": [ - { - "item": "minecraft:sweet_berries" - }, - { - "item": "minecraft:honey_bottle" - }, - { - "item": "minecraft:sweet_berries" - }, - { - "item": "minecraft:sweet_berries" - }, - { - "item": "farmersdelight:smoked_ham" - }, - { - "item": "minecraft:sweet_berries" - }, - { - "item": "farmersdelight:cooked_rice" - }, - { - "item": "minecraft:bowl" - }, - { - "item": "farmersdelight:cooked_rice" - } + "minecraft:sweet_berries", + "minecraft:honey_bottle", + "minecraft:sweet_berries", + "minecraft:sweet_berries", + "farmersdelight:smoked_ham", + "minecraft:sweet_berries", + "farmersdelight:cooked_rice", + "minecraft:bowl", + "farmersdelight:cooked_rice" ], "result": { - "count": 1, "id": "farmersdelight:honey_glazed_ham_block" } } \ No newline at end of file diff --git a/src/generated/resources/data/farmersdelight/recipe/horse_feed.json b/src/generated/resources/data/farmersdelight/recipe/horse_feed.json index adeac6ae4..717944cc4 100644 --- a/src/generated/resources/data/farmersdelight/recipe/horse_feed.json +++ b/src/generated/resources/data/farmersdelight/recipe/horse_feed.json @@ -1,27 +1,15 @@ { "type": "minecraft:crafting_shapeless", - "category": "misc", "ingredients": [ [ - { - "item": "minecraft:hay_block" - }, - { - "item": "farmersdelight:rice_bale" - } + "minecraft:hay_block", + "farmersdelight:rice_bale" ], - { - "item": "minecraft:apple" - }, - { - "item": "minecraft:apple" - }, - { - "item": "minecraft:golden_carrot" - } + "minecraft:apple", + "minecraft:apple", + "minecraft:golden_carrot" ], "result": { - "count": 1, "id": "farmersdelight:horse_feed" } } \ No newline at end of file diff --git a/src/generated/resources/data/farmersdelight/recipe/iron_knife.json b/src/generated/resources/data/farmersdelight/recipe/iron_knife.json index 84d092c38..ad8f577af 100644 --- a/src/generated/resources/data/farmersdelight/recipe/iron_knife.json +++ b/src/generated/resources/data/farmersdelight/recipe/iron_knife.json @@ -2,19 +2,14 @@ "type": "minecraft:crafting_shaped", "category": "equipment", "key": { - "m": { - "tag": "c:ingots/iron" - }, - "s": { - "item": "minecraft:stick" - } + "m": "#c:ingots/iron", + "s": "minecraft:stick" }, "pattern": [ "m", "s" ], "result": { - "count": 1, "id": "farmersdelight:iron_knife" } } \ No newline at end of file diff --git a/src/generated/resources/data/farmersdelight/recipe/iron_nugget_from_blasting_knife.json b/src/generated/resources/data/farmersdelight/recipe/iron_nugget_from_blasting_knife.json index 70a594d2d..061e56aa1 100644 --- a/src/generated/resources/data/farmersdelight/recipe/iron_nugget_from_blasting_knife.json +++ b/src/generated/resources/data/farmersdelight/recipe/iron_nugget_from_blasting_knife.json @@ -1,13 +1,8 @@ { "type": "minecraft:blasting", - "category": "misc", - "cookingtime": 100, "experience": 0.1, - "ingredient": { - "item": "farmersdelight:iron_knife" - }, + "ingredient": "farmersdelight:iron_knife", "result": { - "count": 1, "id": "minecraft:iron_nugget" } } \ No newline at end of file diff --git a/src/generated/resources/data/farmersdelight/recipe/iron_nugget_from_smelting_knife.json b/src/generated/resources/data/farmersdelight/recipe/iron_nugget_from_smelting_knife.json index 2feed6c00..265abca6d 100644 --- a/src/generated/resources/data/farmersdelight/recipe/iron_nugget_from_smelting_knife.json +++ b/src/generated/resources/data/farmersdelight/recipe/iron_nugget_from_smelting_knife.json @@ -1,13 +1,8 @@ { "type": "minecraft:smelting", - "category": "misc", - "cookingtime": 200, "experience": 0.1, - "ingredient": { - "item": "farmersdelight:iron_knife" - }, + "ingredient": "farmersdelight:iron_knife", "result": { - "count": 1, "id": "minecraft:iron_nugget" } } \ No newline at end of file diff --git a/src/generated/resources/data/farmersdelight/recipe/jungle_cabinet.json b/src/generated/resources/data/farmersdelight/recipe/jungle_cabinet.json index bf07d1095..8ca90c065 100644 --- a/src/generated/resources/data/farmersdelight/recipe/jungle_cabinet.json +++ b/src/generated/resources/data/farmersdelight/recipe/jungle_cabinet.json @@ -1,14 +1,9 @@ { "type": "minecraft:crafting_shaped", - "category": "misc", "group": "fd_cabinet", "key": { - "D": { - "item": "minecraft:jungle_trapdoor" - }, - "_": { - "item": "minecraft:jungle_slab" - } + "D": "minecraft:jungle_trapdoor", + "_": "minecraft:jungle_slab" }, "pattern": [ "___", @@ -16,7 +11,6 @@ "___" ], "result": { - "count": 1, "id": "farmersdelight:jungle_cabinet" } } \ No newline at end of file diff --git a/src/generated/resources/data/farmersdelight/recipe/kelp_roll.json b/src/generated/resources/data/farmersdelight/recipe/kelp_roll.json index 0404bf1d5..2b89ea8b1 100644 --- a/src/generated/resources/data/farmersdelight/recipe/kelp_roll.json +++ b/src/generated/resources/data/farmersdelight/recipe/kelp_roll.json @@ -1,23 +1,15 @@ { "type": "minecraft:crafting_shaped", - "category": "misc", "key": { - "#": { - "item": "minecraft:dried_kelp" - }, - "R": { - "item": "farmersdelight:cooked_rice" - }, - "X": { - "tag": "c:foods/vegetable" - } + "#": "minecraft:dried_kelp", + "R": "farmersdelight:cooked_rice", + "X": "#c:foods/vegetable" }, "pattern": [ "RXR", "###" ], "result": { - "count": 1, "id": "farmersdelight:kelp_roll" } } \ No newline at end of file diff --git a/src/generated/resources/data/farmersdelight/recipe/lead_from_straw.json b/src/generated/resources/data/farmersdelight/recipe/lead_from_straw.json index 362736023..184d5ee55 100644 --- a/src/generated/resources/data/farmersdelight/recipe/lead_from_straw.json +++ b/src/generated/resources/data/farmersdelight/recipe/lead_from_straw.json @@ -2,9 +2,7 @@ "type": "minecraft:crafting_shaped", "category": "equipment", "key": { - "s": { - "item": "farmersdelight:straw" - } + "s": "farmersdelight:straw" }, "pattern": [ "ss ", @@ -12,7 +10,6 @@ " s" ], "result": { - "count": 1, "id": "minecraft:lead" } } \ No newline at end of file diff --git a/src/generated/resources/data/farmersdelight/recipe/light_blue_canvas_sign.json b/src/generated/resources/data/farmersdelight/recipe/light_blue_canvas_sign.json index feabf8aa9..c3fa7a534 100644 --- a/src/generated/resources/data/farmersdelight/recipe/light_blue_canvas_sign.json +++ b/src/generated/resources/data/farmersdelight/recipe/light_blue_canvas_sign.json @@ -1,17 +1,11 @@ { "type": "minecraft:crafting_shapeless", - "category": "misc", "group": "fd_canvas_sign", "ingredients": [ - { - "tag": "farmersdelight:canvas_signs" - }, - { - "tag": "c:dyes/light_blue" - } + "#farmersdelight:canvas_signs", + "#c:dyes/light_blue" ], "result": { - "count": 1, "id": "farmersdelight:light_blue_canvas_sign" } } \ No newline at end of file diff --git a/src/generated/resources/data/farmersdelight/recipe/light_blue_hanging_canvas_sign.json b/src/generated/resources/data/farmersdelight/recipe/light_blue_hanging_canvas_sign.json index 49c286622..6bd1e1618 100644 --- a/src/generated/resources/data/farmersdelight/recipe/light_blue_hanging_canvas_sign.json +++ b/src/generated/resources/data/farmersdelight/recipe/light_blue_hanging_canvas_sign.json @@ -1,17 +1,11 @@ { "type": "minecraft:crafting_shapeless", - "category": "misc", "group": "fd_hanging_canvas_sign", "ingredients": [ - { - "tag": "farmersdelight:hanging_canvas_signs" - }, - { - "tag": "c:dyes/light_blue" - } + "#farmersdelight:hanging_canvas_signs", + "#c:dyes/light_blue" ], "result": { - "count": 1, "id": "farmersdelight:light_blue_hanging_canvas_sign" } } \ No newline at end of file diff --git a/src/generated/resources/data/farmersdelight/recipe/light_gray_canvas_sign.json b/src/generated/resources/data/farmersdelight/recipe/light_gray_canvas_sign.json index 17f3b2386..edad3975c 100644 --- a/src/generated/resources/data/farmersdelight/recipe/light_gray_canvas_sign.json +++ b/src/generated/resources/data/farmersdelight/recipe/light_gray_canvas_sign.json @@ -1,17 +1,11 @@ { "type": "minecraft:crafting_shapeless", - "category": "misc", "group": "fd_canvas_sign", "ingredients": [ - { - "tag": "farmersdelight:canvas_signs" - }, - { - "tag": "c:dyes/light_gray" - } + "#farmersdelight:canvas_signs", + "#c:dyes/light_gray" ], "result": { - "count": 1, "id": "farmersdelight:light_gray_canvas_sign" } } \ No newline at end of file diff --git a/src/generated/resources/data/farmersdelight/recipe/light_gray_hanging_canvas_sign.json b/src/generated/resources/data/farmersdelight/recipe/light_gray_hanging_canvas_sign.json index d9d4a01f1..f9cf97a4d 100644 --- a/src/generated/resources/data/farmersdelight/recipe/light_gray_hanging_canvas_sign.json +++ b/src/generated/resources/data/farmersdelight/recipe/light_gray_hanging_canvas_sign.json @@ -1,17 +1,11 @@ { "type": "minecraft:crafting_shapeless", - "category": "misc", "group": "fd_hanging_canvas_sign", "ingredients": [ - { - "tag": "farmersdelight:hanging_canvas_signs" - }, - { - "tag": "c:dyes/light_gray" - } + "#farmersdelight:hanging_canvas_signs", + "#c:dyes/light_gray" ], "result": { - "count": 1, "id": "farmersdelight:light_gray_hanging_canvas_sign" } } \ No newline at end of file diff --git a/src/generated/resources/data/farmersdelight/recipe/lime_canvas_sign.json b/src/generated/resources/data/farmersdelight/recipe/lime_canvas_sign.json index b9c551f16..2eb685814 100644 --- a/src/generated/resources/data/farmersdelight/recipe/lime_canvas_sign.json +++ b/src/generated/resources/data/farmersdelight/recipe/lime_canvas_sign.json @@ -1,17 +1,11 @@ { "type": "minecraft:crafting_shapeless", - "category": "misc", "group": "fd_canvas_sign", "ingredients": [ - { - "tag": "farmersdelight:canvas_signs" - }, - { - "tag": "c:dyes/lime" - } + "#farmersdelight:canvas_signs", + "#c:dyes/lime" ], "result": { - "count": 1, "id": "farmersdelight:lime_canvas_sign" } } \ No newline at end of file diff --git a/src/generated/resources/data/farmersdelight/recipe/lime_hanging_canvas_sign.json b/src/generated/resources/data/farmersdelight/recipe/lime_hanging_canvas_sign.json index cf3996be1..410147c35 100644 --- a/src/generated/resources/data/farmersdelight/recipe/lime_hanging_canvas_sign.json +++ b/src/generated/resources/data/farmersdelight/recipe/lime_hanging_canvas_sign.json @@ -1,17 +1,11 @@ { "type": "minecraft:crafting_shapeless", - "category": "misc", "group": "fd_hanging_canvas_sign", "ingredients": [ - { - "tag": "farmersdelight:hanging_canvas_signs" - }, - { - "tag": "c:dyes/lime" - } + "#farmersdelight:hanging_canvas_signs", + "#c:dyes/lime" ], "result": { - "count": 1, "id": "farmersdelight:lime_hanging_canvas_sign" } } \ No newline at end of file diff --git a/src/generated/resources/data/farmersdelight/recipe/magenta_canvas_sign.json b/src/generated/resources/data/farmersdelight/recipe/magenta_canvas_sign.json index 3844586cf..63d7b7dc4 100644 --- a/src/generated/resources/data/farmersdelight/recipe/magenta_canvas_sign.json +++ b/src/generated/resources/data/farmersdelight/recipe/magenta_canvas_sign.json @@ -1,17 +1,11 @@ { "type": "minecraft:crafting_shapeless", - "category": "misc", "group": "fd_canvas_sign", "ingredients": [ - { - "tag": "farmersdelight:canvas_signs" - }, - { - "tag": "c:dyes/magenta" - } + "#farmersdelight:canvas_signs", + "#c:dyes/magenta" ], "result": { - "count": 1, "id": "farmersdelight:magenta_canvas_sign" } } \ No newline at end of file diff --git a/src/generated/resources/data/farmersdelight/recipe/magenta_hanging_canvas_sign.json b/src/generated/resources/data/farmersdelight/recipe/magenta_hanging_canvas_sign.json index 11dfef9a7..695c76409 100644 --- a/src/generated/resources/data/farmersdelight/recipe/magenta_hanging_canvas_sign.json +++ b/src/generated/resources/data/farmersdelight/recipe/magenta_hanging_canvas_sign.json @@ -1,17 +1,11 @@ { "type": "minecraft:crafting_shapeless", - "category": "misc", "group": "fd_hanging_canvas_sign", "ingredients": [ - { - "tag": "farmersdelight:hanging_canvas_signs" - }, - { - "tag": "c:dyes/magenta" - } + "#farmersdelight:hanging_canvas_signs", + "#c:dyes/magenta" ], "result": { - "count": 1, "id": "farmersdelight:magenta_hanging_canvas_sign" } } \ No newline at end of file diff --git a/src/generated/resources/data/farmersdelight/recipe/mangrove_cabinet.json b/src/generated/resources/data/farmersdelight/recipe/mangrove_cabinet.json index 6bb044d83..cd34c0c8a 100644 --- a/src/generated/resources/data/farmersdelight/recipe/mangrove_cabinet.json +++ b/src/generated/resources/data/farmersdelight/recipe/mangrove_cabinet.json @@ -1,14 +1,9 @@ { "type": "minecraft:crafting_shaped", - "category": "misc", "group": "fd_cabinet", "key": { - "D": { - "item": "minecraft:mangrove_trapdoor" - }, - "_": { - "item": "minecraft:mangrove_slab" - } + "D": "minecraft:mangrove_trapdoor", + "_": "minecraft:mangrove_slab" }, "pattern": [ "___", @@ -16,7 +11,6 @@ "___" ], "result": { - "count": 1, "id": "farmersdelight:mangrove_cabinet" } } \ No newline at end of file diff --git a/src/generated/resources/data/farmersdelight/recipe/melon_juice.json b/src/generated/resources/data/farmersdelight/recipe/melon_juice.json index 1b73f6e6d..31d3e3530 100644 --- a/src/generated/resources/data/farmersdelight/recipe/melon_juice.json +++ b/src/generated/resources/data/farmersdelight/recipe/melon_juice.json @@ -1,28 +1,14 @@ { "type": "minecraft:crafting_shapeless", - "category": "misc", "ingredients": [ - { - "item": "minecraft:melon_slice" - }, - { - "item": "minecraft:melon_slice" - }, - { - "item": "minecraft:sugar" - }, - { - "item": "minecraft:melon_slice" - }, - { - "item": "minecraft:melon_slice" - }, - { - "item": "minecraft:glass_bottle" - } + "minecraft:melon_slice", + "minecraft:melon_slice", + "minecraft:sugar", + "minecraft:melon_slice", + "minecraft:melon_slice", + "minecraft:glass_bottle" ], "result": { - "count": 1, "id": "farmersdelight:melon_juice" } } \ No newline at end of file diff --git a/src/generated/resources/data/farmersdelight/recipe/melon_popsicle.json b/src/generated/resources/data/farmersdelight/recipe/melon_popsicle.json index b73e45e7d..0d5c5da3e 100644 --- a/src/generated/resources/data/farmersdelight/recipe/melon_popsicle.json +++ b/src/generated/resources/data/farmersdelight/recipe/melon_popsicle.json @@ -1,16 +1,9 @@ { "type": "minecraft:crafting_shaped", - "category": "misc", "key": { - "-": { - "item": "minecraft:stick" - }, - "i": { - "item": "minecraft:ice" - }, - "m": { - "item": "minecraft:melon_slice" - } + "-": "minecraft:stick", + "i": "minecraft:ice", + "m": "minecraft:melon_slice" }, "pattern": [ " mm", @@ -18,7 +11,6 @@ "-i " ], "result": { - "count": 1, "id": "farmersdelight:melon_popsicle" } } \ No newline at end of file diff --git a/src/generated/resources/data/farmersdelight/recipe/milk_bottle.json b/src/generated/resources/data/farmersdelight/recipe/milk_bottle.json index b256c2dff..674ca47be 100644 --- a/src/generated/resources/data/farmersdelight/recipe/milk_bottle.json +++ b/src/generated/resources/data/farmersdelight/recipe/milk_bottle.json @@ -1,22 +1,11 @@ { "type": "minecraft:crafting_shapeless", - "category": "misc", "ingredients": [ - { - "item": "minecraft:milk_bucket" - }, - { - "item": "minecraft:glass_bottle" - }, - { - "item": "minecraft:glass_bottle" - }, - { - "item": "minecraft:glass_bottle" - }, - { - "item": "minecraft:glass_bottle" - } + "minecraft:milk_bucket", + "minecraft:glass_bottle", + "minecraft:glass_bottle", + "minecraft:glass_bottle", + "minecraft:glass_bottle" ], "result": { "count": 4, diff --git a/src/generated/resources/data/farmersdelight/recipe/milk_bucket_from_bottles.json b/src/generated/resources/data/farmersdelight/recipe/milk_bucket_from_bottles.json index d65fcb170..03bdd35bd 100644 --- a/src/generated/resources/data/farmersdelight/recipe/milk_bucket_from_bottles.json +++ b/src/generated/resources/data/farmersdelight/recipe/milk_bucket_from_bottles.json @@ -1,25 +1,13 @@ { "type": "minecraft:crafting_shapeless", - "category": "misc", "ingredients": [ - { - "item": "minecraft:bucket" - }, - { - "item": "farmersdelight:milk_bottle" - }, - { - "item": "farmersdelight:milk_bottle" - }, - { - "item": "farmersdelight:milk_bottle" - }, - { - "item": "farmersdelight:milk_bottle" - } + "minecraft:bucket", + "farmersdelight:milk_bottle", + "farmersdelight:milk_bottle", + "farmersdelight:milk_bottle", + "farmersdelight:milk_bottle" ], "result": { - "count": 1, "id": "minecraft:milk_bucket" } } \ No newline at end of file diff --git a/src/generated/resources/data/farmersdelight/recipe/mixed_salad.json b/src/generated/resources/data/farmersdelight/recipe/mixed_salad.json index e97c474fc..5146aab14 100644 --- a/src/generated/resources/data/farmersdelight/recipe/mixed_salad.json +++ b/src/generated/resources/data/farmersdelight/recipe/mixed_salad.json @@ -1,22 +1,12 @@ { "type": "minecraft:crafting_shapeless", - "category": "misc", "ingredients": [ - { - "tag": "c:foods/leafy_green" - }, - { - "tag": "c:crops/tomato" - }, - { - "tag": "c:crops/beetroot" - }, - { - "item": "minecraft:bowl" - } + "#c:foods/leafy_green", + "#c:crops/tomato", + "#c:crops/beetroot", + "minecraft:bowl" ], "result": { - "count": 1, "id": "farmersdelight:mixed_salad" } } \ No newline at end of file diff --git a/src/generated/resources/data/farmersdelight/recipe/mutton_wrap.json b/src/generated/resources/data/farmersdelight/recipe/mutton_wrap.json index 52e69298d..f5aba7cb3 100644 --- a/src/generated/resources/data/farmersdelight/recipe/mutton_wrap.json +++ b/src/generated/resources/data/farmersdelight/recipe/mutton_wrap.json @@ -1,22 +1,12 @@ { "type": "minecraft:crafting_shapeless", - "category": "misc", "ingredients": [ - { - "tag": "c:foods/bread" - }, - { - "tag": "c:foods/cooked_mutton" - }, - { - "tag": "c:foods/leafy_green" - }, - { - "tag": "c:crops/onion" - } + "#c:foods/bread", + "#c:foods/cooked_mutton", + "#c:foods/leafy_green", + "#c:crops/onion" ], "result": { - "count": 1, "id": "farmersdelight:mutton_wrap" } } \ No newline at end of file diff --git a/src/generated/resources/data/farmersdelight/recipe/nether_salad.json b/src/generated/resources/data/farmersdelight/recipe/nether_salad.json index 293925d0e..2aa19fda8 100644 --- a/src/generated/resources/data/farmersdelight/recipe/nether_salad.json +++ b/src/generated/resources/data/farmersdelight/recipe/nether_salad.json @@ -1,19 +1,11 @@ { "type": "minecraft:crafting_shapeless", - "category": "misc", "ingredients": [ - { - "item": "minecraft:crimson_fungus" - }, - { - "item": "minecraft:warped_fungus" - }, - { - "item": "minecraft:bowl" - } + "minecraft:crimson_fungus", + "minecraft:warped_fungus", + "minecraft:bowl" ], "result": { - "count": 1, "id": "farmersdelight:nether_salad" } } \ No newline at end of file diff --git a/src/generated/resources/data/farmersdelight/recipe/netherite_knife_smithing.json b/src/generated/resources/data/farmersdelight/recipe/netherite_knife_smithing.json index c7109b848..c5b969b9d 100644 --- a/src/generated/resources/data/farmersdelight/recipe/netherite_knife_smithing.json +++ b/src/generated/resources/data/farmersdelight/recipe/netherite_knife_smithing.json @@ -1,16 +1,9 @@ { "type": "minecraft:smithing_transform", - "addition": { - "item": "minecraft:netherite_ingot" - }, - "base": { - "item": "farmersdelight:diamond_knife" - }, + "addition": "minecraft:netherite_ingot", + "base": "farmersdelight:diamond_knife", "result": { - "count": 1, "id": "farmersdelight:netherite_knife" }, - "template": { - "item": "minecraft:netherite_upgrade_smithing_template" - } + "template": "minecraft:netherite_upgrade_smithing_template" } \ No newline at end of file diff --git a/src/generated/resources/data/farmersdelight/recipe/oak_cabinet.json b/src/generated/resources/data/farmersdelight/recipe/oak_cabinet.json index 9584c81cc..9000ec8ca 100644 --- a/src/generated/resources/data/farmersdelight/recipe/oak_cabinet.json +++ b/src/generated/resources/data/farmersdelight/recipe/oak_cabinet.json @@ -1,14 +1,9 @@ { "type": "minecraft:crafting_shaped", - "category": "misc", "group": "fd_cabinet", "key": { - "D": { - "item": "minecraft:oak_trapdoor" - }, - "_": { - "item": "minecraft:oak_slab" - } + "D": "minecraft:oak_trapdoor", + "_": "minecraft:oak_slab" }, "pattern": [ "___", @@ -16,7 +11,6 @@ "___" ], "result": { - "count": 1, "id": "farmersdelight:oak_cabinet" } } \ No newline at end of file diff --git a/src/generated/resources/data/farmersdelight/recipe/onion.json b/src/generated/resources/data/farmersdelight/recipe/onion.json index 34024f1cd..e23904d4c 100644 --- a/src/generated/resources/data/farmersdelight/recipe/onion.json +++ b/src/generated/resources/data/farmersdelight/recipe/onion.json @@ -1,10 +1,7 @@ { "type": "minecraft:crafting_shapeless", - "category": "misc", "ingredients": [ - { - "item": "farmersdelight:onion_crate" - } + "farmersdelight:onion_crate" ], "result": { "count": 9, diff --git a/src/generated/resources/data/farmersdelight/recipe/onion_crate.json b/src/generated/resources/data/farmersdelight/recipe/onion_crate.json index 4ed39ed21..5a7dbd130 100644 --- a/src/generated/resources/data/farmersdelight/recipe/onion_crate.json +++ b/src/generated/resources/data/farmersdelight/recipe/onion_crate.json @@ -2,9 +2,7 @@ "type": "minecraft:crafting_shaped", "category": "building", "key": { - "#": { - "item": "farmersdelight:onion" - } + "#": "farmersdelight:onion" }, "pattern": [ "###", @@ -12,7 +10,6 @@ "###" ], "result": { - "count": 1, "id": "farmersdelight:onion_crate" } } \ No newline at end of file diff --git a/src/generated/resources/data/farmersdelight/recipe/orange_canvas_sign.json b/src/generated/resources/data/farmersdelight/recipe/orange_canvas_sign.json index 4fb0dcdf8..80f2ca1e5 100644 --- a/src/generated/resources/data/farmersdelight/recipe/orange_canvas_sign.json +++ b/src/generated/resources/data/farmersdelight/recipe/orange_canvas_sign.json @@ -1,17 +1,11 @@ { "type": "minecraft:crafting_shapeless", - "category": "misc", "group": "fd_canvas_sign", "ingredients": [ - { - "tag": "farmersdelight:canvas_signs" - }, - { - "tag": "c:dyes/orange" - } + "#farmersdelight:canvas_signs", + "#c:dyes/orange" ], "result": { - "count": 1, "id": "farmersdelight:orange_canvas_sign" } } \ No newline at end of file diff --git a/src/generated/resources/data/farmersdelight/recipe/orange_hanging_canvas_sign.json b/src/generated/resources/data/farmersdelight/recipe/orange_hanging_canvas_sign.json index 083eaac04..51460e891 100644 --- a/src/generated/resources/data/farmersdelight/recipe/orange_hanging_canvas_sign.json +++ b/src/generated/resources/data/farmersdelight/recipe/orange_hanging_canvas_sign.json @@ -1,17 +1,11 @@ { "type": "minecraft:crafting_shapeless", - "category": "misc", "group": "fd_hanging_canvas_sign", "ingredients": [ - { - "tag": "farmersdelight:hanging_canvas_signs" - }, - { - "tag": "c:dyes/orange" - } + "#farmersdelight:hanging_canvas_signs", + "#c:dyes/orange" ], "result": { - "count": 1, "id": "farmersdelight:orange_hanging_canvas_sign" } } \ No newline at end of file diff --git a/src/generated/resources/data/farmersdelight/recipe/organic_compost_from_rotten_flesh.json b/src/generated/resources/data/farmersdelight/recipe/organic_compost_from_rotten_flesh.json index d06260547..810f467fc 100644 --- a/src/generated/resources/data/farmersdelight/recipe/organic_compost_from_rotten_flesh.json +++ b/src/generated/resources/data/farmersdelight/recipe/organic_compost_from_rotten_flesh.json @@ -3,36 +3,17 @@ "category": "building", "group": "fd_organic_compost", "ingredients": [ - { - "item": "minecraft:dirt" - }, - { - "item": "minecraft:rotten_flesh" - }, - { - "item": "minecraft:rotten_flesh" - }, - { - "item": "farmersdelight:straw" - }, - { - "item": "farmersdelight:straw" - }, - { - "item": "minecraft:bone_meal" - }, - { - "item": "minecraft:bone_meal" - }, - { - "item": "minecraft:bone_meal" - }, - { - "item": "minecraft:bone_meal" - } + "minecraft:dirt", + "minecraft:rotten_flesh", + "minecraft:rotten_flesh", + "farmersdelight:straw", + "farmersdelight:straw", + "minecraft:bone_meal", + "minecraft:bone_meal", + "minecraft:bone_meal", + "minecraft:bone_meal" ], "result": { - "count": 1, "id": "farmersdelight:organic_compost" } } \ No newline at end of file diff --git a/src/generated/resources/data/farmersdelight/recipe/organic_compost_from_tree_bark.json b/src/generated/resources/data/farmersdelight/recipe/organic_compost_from_tree_bark.json index 905977ee0..9887d41df 100644 --- a/src/generated/resources/data/farmersdelight/recipe/organic_compost_from_tree_bark.json +++ b/src/generated/resources/data/farmersdelight/recipe/organic_compost_from_tree_bark.json @@ -3,36 +3,17 @@ "category": "building", "group": "fd_organic_compost", "ingredients": [ - { - "item": "minecraft:dirt" - }, - { - "item": "farmersdelight:straw" - }, - { - "item": "farmersdelight:straw" - }, - { - "item": "minecraft:bone_meal" - }, - { - "item": "minecraft:bone_meal" - }, - { - "item": "farmersdelight:tree_bark" - }, - { - "item": "farmersdelight:tree_bark" - }, - { - "item": "farmersdelight:tree_bark" - }, - { - "item": "farmersdelight:tree_bark" - } + "minecraft:dirt", + "farmersdelight:straw", + "farmersdelight:straw", + "minecraft:bone_meal", + "minecraft:bone_meal", + "farmersdelight:tree_bark", + "farmersdelight:tree_bark", + "farmersdelight:tree_bark", + "farmersdelight:tree_bark" ], "result": { - "count": 1, "id": "farmersdelight:organic_compost" } } \ No newline at end of file diff --git a/src/generated/resources/data/farmersdelight/recipe/packed_mud_from_straw.json b/src/generated/resources/data/farmersdelight/recipe/packed_mud_from_straw.json index 8accc6971..057257690 100644 --- a/src/generated/resources/data/farmersdelight/recipe/packed_mud_from_straw.json +++ b/src/generated/resources/data/farmersdelight/recipe/packed_mud_from_straw.json @@ -2,15 +2,9 @@ "type": "minecraft:crafting_shapeless", "category": "building", "ingredients": [ - { - "item": "farmersdelight:straw" - }, - { - "item": "minecraft:mud" - }, - { - "item": "minecraft:mud" - } + "farmersdelight:straw", + "minecraft:mud", + "minecraft:mud" ], "result": { "count": 2, diff --git a/src/generated/resources/data/farmersdelight/recipe/painting_from_canvas.json b/src/generated/resources/data/farmersdelight/recipe/painting_from_canvas.json index 4153f3175..d032b07ca 100644 --- a/src/generated/resources/data/farmersdelight/recipe/painting_from_canvas.json +++ b/src/generated/resources/data/farmersdelight/recipe/painting_from_canvas.json @@ -1,13 +1,8 @@ { "type": "minecraft:crafting_shaped", - "category": "misc", "key": { - "c": { - "item": "farmersdelight:canvas" - }, - "s": { - "item": "minecraft:stick" - } + "c": "farmersdelight:canvas", + "s": "minecraft:stick" }, "pattern": [ "sss", @@ -15,7 +10,6 @@ "sss" ], "result": { - "count": 1, "id": "minecraft:painting" } } \ No newline at end of file diff --git a/src/generated/resources/data/farmersdelight/recipe/paper_from_tree_bark.json b/src/generated/resources/data/farmersdelight/recipe/paper_from_tree_bark.json index fe700ebba..25760fbd2 100644 --- a/src/generated/resources/data/farmersdelight/recipe/paper_from_tree_bark.json +++ b/src/generated/resources/data/farmersdelight/recipe/paper_from_tree_bark.json @@ -1,19 +1,11 @@ { "type": "minecraft:crafting_shapeless", - "category": "misc", "ingredients": [ - { - "item": "farmersdelight:tree_bark" - }, - { - "item": "farmersdelight:tree_bark" - }, - { - "item": "farmersdelight:tree_bark" - } + "farmersdelight:tree_bark", + "farmersdelight:tree_bark", + "farmersdelight:tree_bark" ], "result": { - "count": 1, "id": "minecraft:paper" } } \ No newline at end of file diff --git a/src/generated/resources/data/farmersdelight/recipe/pie_crust.json b/src/generated/resources/data/farmersdelight/recipe/pie_crust.json index 5c342c2ff..469dcfeee 100644 --- a/src/generated/resources/data/farmersdelight/recipe/pie_crust.json +++ b/src/generated/resources/data/farmersdelight/recipe/pie_crust.json @@ -1,20 +1,14 @@ { "type": "minecraft:crafting_shaped", - "category": "misc", "key": { - "M": { - "tag": "c:drinks/milk" - }, - "w": { - "tag": "c:crops/wheat" - } + "M": "#c:drinks/milk", + "w": "#c:crops/wheat" }, "pattern": [ "wMw", " w " ], "result": { - "count": 1, "id": "farmersdelight:pie_crust" } } \ No newline at end of file diff --git a/src/generated/resources/data/farmersdelight/recipe/pink_canvas_sign.json b/src/generated/resources/data/farmersdelight/recipe/pink_canvas_sign.json index 60655c497..831c9e40f 100644 --- a/src/generated/resources/data/farmersdelight/recipe/pink_canvas_sign.json +++ b/src/generated/resources/data/farmersdelight/recipe/pink_canvas_sign.json @@ -1,17 +1,11 @@ { "type": "minecraft:crafting_shapeless", - "category": "misc", "group": "fd_canvas_sign", "ingredients": [ - { - "tag": "farmersdelight:canvas_signs" - }, - { - "tag": "c:dyes/pink" - } + "#farmersdelight:canvas_signs", + "#c:dyes/pink" ], "result": { - "count": 1, "id": "farmersdelight:pink_canvas_sign" } } \ No newline at end of file diff --git a/src/generated/resources/data/farmersdelight/recipe/pink_hanging_canvas_sign.json b/src/generated/resources/data/farmersdelight/recipe/pink_hanging_canvas_sign.json index 0698c03ff..0d20a7746 100644 --- a/src/generated/resources/data/farmersdelight/recipe/pink_hanging_canvas_sign.json +++ b/src/generated/resources/data/farmersdelight/recipe/pink_hanging_canvas_sign.json @@ -1,17 +1,11 @@ { "type": "minecraft:crafting_shapeless", - "category": "misc", "group": "fd_hanging_canvas_sign", "ingredients": [ - { - "tag": "farmersdelight:hanging_canvas_signs" - }, - { - "tag": "c:dyes/pink" - } + "#farmersdelight:hanging_canvas_signs", + "#c:dyes/pink" ], "result": { - "count": 1, "id": "farmersdelight:pink_hanging_canvas_sign" } } \ No newline at end of file diff --git a/src/generated/resources/data/farmersdelight/recipe/potato_crate.json b/src/generated/resources/data/farmersdelight/recipe/potato_crate.json index ac0d4abe9..19f7855e0 100644 --- a/src/generated/resources/data/farmersdelight/recipe/potato_crate.json +++ b/src/generated/resources/data/farmersdelight/recipe/potato_crate.json @@ -7,9 +7,7 @@ "type": "minecraft:crafting_shaped", "category": "building", "key": { - "#": { - "item": "minecraft:potato" - } + "#": "minecraft:potato" }, "pattern": [ "###", @@ -17,7 +15,6 @@ "###" ], "result": { - "count": 1, "id": "farmersdelight:potato_crate" } } \ No newline at end of file diff --git a/src/generated/resources/data/farmersdelight/recipe/potato_from_crate.json b/src/generated/resources/data/farmersdelight/recipe/potato_from_crate.json index b60cb9dce..a1f8cc617 100644 --- a/src/generated/resources/data/farmersdelight/recipe/potato_from_crate.json +++ b/src/generated/resources/data/farmersdelight/recipe/potato_from_crate.json @@ -1,10 +1,7 @@ { "type": "minecraft:crafting_shapeless", - "category": "misc", "ingredients": [ - { - "item": "farmersdelight:potato_crate" - } + "farmersdelight:potato_crate" ], "result": { "count": 9, diff --git a/src/generated/resources/data/farmersdelight/recipe/pumpkin_from_slices.json b/src/generated/resources/data/farmersdelight/recipe/pumpkin_from_slices.json index cf99468ec..24dba2efb 100644 --- a/src/generated/resources/data/farmersdelight/recipe/pumpkin_from_slices.json +++ b/src/generated/resources/data/farmersdelight/recipe/pumpkin_from_slices.json @@ -2,16 +2,13 @@ "type": "minecraft:crafting_shaped", "category": "building", "key": { - "#": { - "item": "farmersdelight:pumpkin_slice" - } + "#": "farmersdelight:pumpkin_slice" }, "pattern": [ "##", "##" ], "result": { - "count": 1, "id": "minecraft:pumpkin" } } \ No newline at end of file diff --git a/src/generated/resources/data/farmersdelight/recipe/pumpkin_pie_from_pie_crust.json b/src/generated/resources/data/farmersdelight/recipe/pumpkin_pie_from_pie_crust.json index 7bf765807..3c4e16fe7 100644 --- a/src/generated/resources/data/farmersdelight/recipe/pumpkin_pie_from_pie_crust.json +++ b/src/generated/resources/data/farmersdelight/recipe/pumpkin_pie_from_pie_crust.json @@ -1,20 +1,11 @@ { "type": "minecraft:crafting_shaped", - "category": "misc", "group": "fd_pumpkin_pie", "key": { - "O": { - "item": "farmersdelight:pie_crust" - }, - "c": { - "item": "farmersdelight:pumpkin_slice" - }, - "e": { - "tag": "c:eggs" - }, - "s": { - "item": "minecraft:sugar" - } + "O": "farmersdelight:pie_crust", + "c": "farmersdelight:pumpkin_slice", + "e": "#c:eggs", + "s": "minecraft:sugar" }, "pattern": [ "cec", diff --git a/src/generated/resources/data/farmersdelight/recipe/pumpkin_pie_from_slices.json b/src/generated/resources/data/farmersdelight/recipe/pumpkin_pie_from_slices.json index 0e7542fc8..79dd65442 100644 --- a/src/generated/resources/data/farmersdelight/recipe/pumpkin_pie_from_slices.json +++ b/src/generated/resources/data/farmersdelight/recipe/pumpkin_pie_from_slices.json @@ -1,18 +1,14 @@ { "type": "minecraft:crafting_shaped", - "category": "misc", "group": "fd_pumpkin_pie", "key": { - "#": { - "item": "farmersdelight:pumpkin_pie_slice" - } + "#": "farmersdelight:pumpkin_pie_slice" }, "pattern": [ "##", "##" ], "result": { - "count": 1, "id": "minecraft:pumpkin_pie" } } \ No newline at end of file diff --git a/src/generated/resources/data/farmersdelight/recipe/pumpkin_seeds_from_slice.json b/src/generated/resources/data/farmersdelight/recipe/pumpkin_seeds_from_slice.json index f83867ddf..be6e304be 100644 --- a/src/generated/resources/data/farmersdelight/recipe/pumpkin_seeds_from_slice.json +++ b/src/generated/resources/data/farmersdelight/recipe/pumpkin_seeds_from_slice.json @@ -1,13 +1,9 @@ { "type": "minecraft:crafting_shapeless", - "category": "misc", "ingredients": [ - { - "item": "farmersdelight:pumpkin_slice" - } + "farmersdelight:pumpkin_slice" ], "result": { - "count": 1, "id": "minecraft:pumpkin_seeds" } } \ No newline at end of file diff --git a/src/generated/resources/data/farmersdelight/recipe/purple_canvas_sign.json b/src/generated/resources/data/farmersdelight/recipe/purple_canvas_sign.json index 2ba6b50a2..e549a6228 100644 --- a/src/generated/resources/data/farmersdelight/recipe/purple_canvas_sign.json +++ b/src/generated/resources/data/farmersdelight/recipe/purple_canvas_sign.json @@ -1,17 +1,11 @@ { "type": "minecraft:crafting_shapeless", - "category": "misc", "group": "fd_canvas_sign", "ingredients": [ - { - "tag": "farmersdelight:canvas_signs" - }, - { - "tag": "c:dyes/purple" - } + "#farmersdelight:canvas_signs", + "#c:dyes/purple" ], "result": { - "count": 1, "id": "farmersdelight:purple_canvas_sign" } } \ No newline at end of file diff --git a/src/generated/resources/data/farmersdelight/recipe/purple_hanging_canvas_sign.json b/src/generated/resources/data/farmersdelight/recipe/purple_hanging_canvas_sign.json index 53df432d1..718eaecfa 100644 --- a/src/generated/resources/data/farmersdelight/recipe/purple_hanging_canvas_sign.json +++ b/src/generated/resources/data/farmersdelight/recipe/purple_hanging_canvas_sign.json @@ -1,17 +1,11 @@ { "type": "minecraft:crafting_shapeless", - "category": "misc", "group": "fd_hanging_canvas_sign", "ingredients": [ - { - "tag": "farmersdelight:hanging_canvas_signs" - }, - { - "tag": "c:dyes/purple" - } + "#farmersdelight:hanging_canvas_signs", + "#c:dyes/purple" ], "result": { - "count": 1, "id": "farmersdelight:purple_hanging_canvas_sign" } } \ No newline at end of file diff --git a/src/generated/resources/data/farmersdelight/recipe/red_canvas_sign.json b/src/generated/resources/data/farmersdelight/recipe/red_canvas_sign.json index 5f4e6c63a..5a0ea64dd 100644 --- a/src/generated/resources/data/farmersdelight/recipe/red_canvas_sign.json +++ b/src/generated/resources/data/farmersdelight/recipe/red_canvas_sign.json @@ -1,17 +1,11 @@ { "type": "minecraft:crafting_shapeless", - "category": "misc", "group": "fd_canvas_sign", "ingredients": [ - { - "tag": "farmersdelight:canvas_signs" - }, - { - "tag": "c:dyes/red" - } + "#farmersdelight:canvas_signs", + "#c:dyes/red" ], "result": { - "count": 1, "id": "farmersdelight:red_canvas_sign" } } \ No newline at end of file diff --git a/src/generated/resources/data/farmersdelight/recipe/red_hanging_canvas_sign.json b/src/generated/resources/data/farmersdelight/recipe/red_hanging_canvas_sign.json index 5e5e483fa..15bf97e05 100644 --- a/src/generated/resources/data/farmersdelight/recipe/red_hanging_canvas_sign.json +++ b/src/generated/resources/data/farmersdelight/recipe/red_hanging_canvas_sign.json @@ -1,17 +1,11 @@ { "type": "minecraft:crafting_shapeless", - "category": "misc", "group": "fd_hanging_canvas_sign", "ingredients": [ - { - "tag": "farmersdelight:hanging_canvas_signs" - }, - { - "tag": "c:dyes/red" - } + "#farmersdelight:hanging_canvas_signs", + "#c:dyes/red" ], "result": { - "count": 1, "id": "farmersdelight:red_hanging_canvas_sign" } } \ No newline at end of file diff --git a/src/generated/resources/data/farmersdelight/recipe/rice.json b/src/generated/resources/data/farmersdelight/recipe/rice.json index 20083bb0c..1b557d214 100644 --- a/src/generated/resources/data/farmersdelight/recipe/rice.json +++ b/src/generated/resources/data/farmersdelight/recipe/rice.json @@ -1,14 +1,10 @@ { "type": "minecraft:crafting_shapeless", - "category": "misc", "group": "fd_rice", "ingredients": [ - { - "item": "farmersdelight:rice_panicle" - } + "farmersdelight:rice_panicle" ], "result": { - "count": 1, "id": "farmersdelight:rice" } } \ No newline at end of file diff --git a/src/generated/resources/data/farmersdelight/recipe/rice_bag.json b/src/generated/resources/data/farmersdelight/recipe/rice_bag.json index 5ba1548f2..f2da72f03 100644 --- a/src/generated/resources/data/farmersdelight/recipe/rice_bag.json +++ b/src/generated/resources/data/farmersdelight/recipe/rice_bag.json @@ -2,9 +2,7 @@ "type": "minecraft:crafting_shaped", "category": "building", "key": { - "#": { - "item": "farmersdelight:rice" - } + "#": "farmersdelight:rice" }, "pattern": [ "###", @@ -12,7 +10,6 @@ "###" ], "result": { - "count": 1, "id": "farmersdelight:rice_bag" } } \ No newline at end of file diff --git a/src/generated/resources/data/farmersdelight/recipe/rice_bale.json b/src/generated/resources/data/farmersdelight/recipe/rice_bale.json index 7815a26d0..831e3911b 100644 --- a/src/generated/resources/data/farmersdelight/recipe/rice_bale.json +++ b/src/generated/resources/data/farmersdelight/recipe/rice_bale.json @@ -2,9 +2,7 @@ "type": "minecraft:crafting_shaped", "category": "building", "key": { - "#": { - "item": "farmersdelight:rice_panicle" - } + "#": "farmersdelight:rice_panicle" }, "pattern": [ "###", @@ -12,7 +10,6 @@ "###" ], "result": { - "count": 1, "id": "farmersdelight:rice_bale" } } \ No newline at end of file diff --git a/src/generated/resources/data/farmersdelight/recipe/rice_from_bag.json b/src/generated/resources/data/farmersdelight/recipe/rice_from_bag.json index 0c41d6d7b..5fa97ef78 100644 --- a/src/generated/resources/data/farmersdelight/recipe/rice_from_bag.json +++ b/src/generated/resources/data/farmersdelight/recipe/rice_from_bag.json @@ -1,11 +1,8 @@ { "type": "minecraft:crafting_shapeless", - "category": "misc", "group": "fd_rice", "ingredients": [ - { - "item": "farmersdelight:rice_bag" - } + "farmersdelight:rice_bag" ], "result": { "count": 9, diff --git a/src/generated/resources/data/farmersdelight/recipe/rice_panicle.json b/src/generated/resources/data/farmersdelight/recipe/rice_panicle.json index 7f62d7189..9beb9c693 100644 --- a/src/generated/resources/data/farmersdelight/recipe/rice_panicle.json +++ b/src/generated/resources/data/farmersdelight/recipe/rice_panicle.json @@ -1,10 +1,7 @@ { "type": "minecraft:crafting_shapeless", - "category": "misc", "ingredients": [ - { - "item": "farmersdelight:rice_bale" - } + "farmersdelight:rice_bale" ], "result": { "count": 9, diff --git a/src/generated/resources/data/farmersdelight/recipe/rice_roll_medley_block.json b/src/generated/resources/data/farmersdelight/recipe/rice_roll_medley_block.json index 2ac229f29..073c0ccec 100644 --- a/src/generated/resources/data/farmersdelight/recipe/rice_roll_medley_block.json +++ b/src/generated/resources/data/farmersdelight/recipe/rice_roll_medley_block.json @@ -1,37 +1,17 @@ { "type": "minecraft:crafting_shapeless", - "category": "misc", "ingredients": [ - { - "item": "farmersdelight:kelp_roll_slice" - }, - { - "item": "farmersdelight:kelp_roll_slice" - }, - { - "item": "farmersdelight:kelp_roll_slice" - }, - { - "item": "farmersdelight:salmon_roll" - }, - { - "item": "farmersdelight:salmon_roll" - }, - { - "item": "farmersdelight:salmon_roll" - }, - { - "item": "farmersdelight:cod_roll" - }, - { - "item": "minecraft:bowl" - }, - { - "item": "farmersdelight:cod_roll" - } + "farmersdelight:kelp_roll_slice", + "farmersdelight:kelp_roll_slice", + "farmersdelight:kelp_roll_slice", + "farmersdelight:salmon_roll", + "farmersdelight:salmon_roll", + "farmersdelight:salmon_roll", + "farmersdelight:cod_roll", + "minecraft:bowl", + "farmersdelight:cod_roll" ], "result": { - "count": 1, "id": "farmersdelight:rice_roll_medley_block" } } \ No newline at end of file diff --git a/src/generated/resources/data/farmersdelight/recipe/roast_chicken_block.json b/src/generated/resources/data/farmersdelight/recipe/roast_chicken_block.json index 9e15f0614..d638fb2a1 100644 --- a/src/generated/resources/data/farmersdelight/recipe/roast_chicken_block.json +++ b/src/generated/resources/data/farmersdelight/recipe/roast_chicken_block.json @@ -1,37 +1,17 @@ { "type": "minecraft:crafting_shapeless", - "category": "misc", "ingredients": [ - { - "tag": "c:crops/onion" - }, - { - "tag": "c:eggs" - }, - { - "tag": "c:foods/bread" - }, - { - "tag": "c:crops/carrot" - }, - { - "item": "minecraft:cooked_chicken" - }, - { - "item": "minecraft:baked_potato" - }, - { - "tag": "c:crops/carrot" - }, - { - "item": "minecraft:bowl" - }, - { - "item": "minecraft:baked_potato" - } + "#c:crops/onion", + "#c:eggs", + "#c:foods/bread", + "#c:crops/carrot", + "minecraft:cooked_chicken", + "minecraft:baked_potato", + "#c:crops/carrot", + "minecraft:bowl", + "minecraft:baked_potato" ], "result": { - "count": 1, "id": "farmersdelight:roast_chicken_block" } } \ No newline at end of file diff --git a/src/generated/resources/data/farmersdelight/recipe/roasted_mutton_chops.json b/src/generated/resources/data/farmersdelight/recipe/roasted_mutton_chops.json index 1e7cc1347..9f99d8727 100644 --- a/src/generated/resources/data/farmersdelight/recipe/roasted_mutton_chops.json +++ b/src/generated/resources/data/farmersdelight/recipe/roasted_mutton_chops.json @@ -1,25 +1,13 @@ { "type": "minecraft:crafting_shapeless", - "category": "misc", "ingredients": [ - { - "item": "farmersdelight:cooked_mutton_chops" - }, - { - "tag": "c:crops/beetroot" - }, - { - "item": "minecraft:bowl" - }, - { - "item": "farmersdelight:cooked_rice" - }, - { - "tag": "c:crops/tomato" - } + "farmersdelight:cooked_mutton_chops", + "#c:crops/beetroot", + "minecraft:bowl", + "farmersdelight:cooked_rice", + "#c:crops/tomato" ], "result": { - "count": 1, "id": "farmersdelight:roasted_mutton_chops" } } \ No newline at end of file diff --git a/src/generated/resources/data/farmersdelight/recipe/rope.json b/src/generated/resources/data/farmersdelight/recipe/rope.json index 4a7548d09..3491f9416 100644 --- a/src/generated/resources/data/farmersdelight/recipe/rope.json +++ b/src/generated/resources/data/farmersdelight/recipe/rope.json @@ -1,11 +1,8 @@ { "type": "minecraft:crafting_shaped", - "category": "misc", "group": "fd_rope", "key": { - "s": { - "item": "farmersdelight:straw" - } + "s": "farmersdelight:straw" }, "pattern": [ "s", diff --git a/src/generated/resources/data/farmersdelight/recipe/rope_fence.json b/src/generated/resources/data/farmersdelight/recipe/rope_fence.json index 5411b1805..5623aa3a3 100644 --- a/src/generated/resources/data/farmersdelight/recipe/rope_fence.json +++ b/src/generated/resources/data/farmersdelight/recipe/rope_fence.json @@ -1,13 +1,8 @@ { "type": "minecraft:crafting_shaped", - "category": "misc", "key": { - "/": { - "item": "minecraft:stick" - }, - "r": { - "item": "farmersdelight:rope" - } + "/": "minecraft:stick", + "r": "farmersdelight:rope" }, "pattern": [ "r/r", diff --git a/src/generated/resources/data/farmersdelight/recipe/rope_fence_gate.json b/src/generated/resources/data/farmersdelight/recipe/rope_fence_gate.json index 5116696b5..1e851a832 100644 --- a/src/generated/resources/data/farmersdelight/recipe/rope_fence_gate.json +++ b/src/generated/resources/data/farmersdelight/recipe/rope_fence_gate.json @@ -1,20 +1,14 @@ { "type": "minecraft:crafting_shaped", - "category": "misc", "key": { - "/": { - "item": "minecraft:stick" - }, - "r": { - "item": "farmersdelight:rope" - } + "/": "minecraft:stick", + "r": "farmersdelight:rope" }, "pattern": [ "/r/", "/r/" ], "result": { - "count": 1, "id": "farmersdelight:rope_fence_gate" } } \ No newline at end of file diff --git a/src/generated/resources/data/farmersdelight/recipe/rope_from_safety_net.json b/src/generated/resources/data/farmersdelight/recipe/rope_from_safety_net.json index 2f67a012a..b8c51c65b 100644 --- a/src/generated/resources/data/farmersdelight/recipe/rope_from_safety_net.json +++ b/src/generated/resources/data/farmersdelight/recipe/rope_from_safety_net.json @@ -1,11 +1,8 @@ { "type": "minecraft:crafting_shapeless", - "category": "misc", "group": "fd_rope", "ingredients": [ - { - "item": "farmersdelight:safety_net" - } + "farmersdelight:safety_net" ], "result": { "count": 4, diff --git a/src/generated/resources/data/farmersdelight/recipe/safety_net.json b/src/generated/resources/data/farmersdelight/recipe/safety_net.json index 4f8beb3ae..b703fc437 100644 --- a/src/generated/resources/data/farmersdelight/recipe/safety_net.json +++ b/src/generated/resources/data/farmersdelight/recipe/safety_net.json @@ -1,17 +1,13 @@ { "type": "minecraft:crafting_shaped", - "category": "misc", "key": { - "r": { - "item": "farmersdelight:rope" - } + "r": "farmersdelight:rope" }, "pattern": [ "rr", "rr" ], "result": { - "count": 1, "id": "farmersdelight:safety_net" } } \ No newline at end of file diff --git a/src/generated/resources/data/farmersdelight/recipe/salmon_roll.json b/src/generated/resources/data/farmersdelight/recipe/salmon_roll.json index a1381c98e..6300ccabe 100644 --- a/src/generated/resources/data/farmersdelight/recipe/salmon_roll.json +++ b/src/generated/resources/data/farmersdelight/recipe/salmon_roll.json @@ -1,16 +1,9 @@ { "type": "minecraft:crafting_shapeless", - "category": "misc", "ingredients": [ - { - "item": "farmersdelight:salmon_slice" - }, - { - "item": "farmersdelight:salmon_slice" - }, - { - "item": "farmersdelight:cooked_rice" - } + "farmersdelight:salmon_slice", + "farmersdelight:salmon_slice", + "farmersdelight:cooked_rice" ], "result": { "count": 2, diff --git a/src/generated/resources/data/farmersdelight/recipe/salvaging/acacia_chest_boat.json b/src/generated/resources/data/farmersdelight/recipe/salvaging/acacia_chest_boat.json index 144ddbd79..18a902a5c 100644 --- a/src/generated/resources/data/farmersdelight/recipe/salvaging/acacia_chest_boat.json +++ b/src/generated/resources/data/farmersdelight/recipe/salvaging/acacia_chest_boat.json @@ -1,31 +1,28 @@ { "type": "farmersdelight:cutting", "ingredients": [ - { - "item": "minecraft:acacia_chest_boat" - } + "minecraft:acacia_chest_boat" ], "result": [ { "item": { - "count": 1, "id": "minecraft:acacia_boat" } }, { "item": { - "count": 1, "id": "minecraft:chest" } } ], - "tool": [ - { - "type": "farmersdelight:item_ability", - "action": "hoe_dig" - }, - { - "tag": "minecraft:hoes" - } - ] + "tool": { + "neoforge:ingredient_type": "neoforge:compound", + "children": [ + { + "neoforge:ingredient_type": "farmersdelight:item_ability", + "action": "hoe_dig" + }, + "#minecraft:hoes" + ] + } } \ No newline at end of file diff --git a/src/generated/resources/data/farmersdelight/recipe/salvaging/acacia_furniture.json b/src/generated/resources/data/farmersdelight/recipe/salvaging/acacia_furniture.json index b1a175273..ce07978f6 100644 --- a/src/generated/resources/data/farmersdelight/recipe/salvaging/acacia_furniture.json +++ b/src/generated/resources/data/farmersdelight/recipe/salvaging/acacia_furniture.json @@ -1,58 +1,35 @@ { "type": "farmersdelight:cutting", "ingredients": [ - { - "type": "neoforge:compound", - "children": [ - { - "item": "minecraft:acacia_door" - }, - { - "item": "minecraft:acacia_trapdoor" - }, - { - "item": "minecraft:acacia_sign" - }, - { - "item": "minecraft:acacia_hanging_sign" - }, - { - "item": "minecraft:acacia_fence" - }, - { - "item": "minecraft:acacia_fence_gate" - }, - { - "item": "minecraft:acacia_pressure_plate" - }, - { - "item": "minecraft:acacia_button" - }, - { - "item": "minecraft:acacia_boat" - }, - { - "item": "farmersdelight:acacia_cabinet" - } - ] - } + [ + "minecraft:acacia_door", + "minecraft:acacia_trapdoor", + "minecraft:acacia_sign", + "minecraft:acacia_hanging_sign", + "minecraft:acacia_fence", + "minecraft:acacia_fence_gate", + "minecraft:acacia_pressure_plate", + "minecraft:acacia_button", + "minecraft:acacia_boat", + "farmersdelight:acacia_cabinet" + ] ], "result": [ { "chance": 0.75, "item": { - "count": 1, "id": "minecraft:acacia_planks" } } ], - "tool": [ - { - "type": "farmersdelight:item_ability", - "action": "axe_dig" - }, - { - "tag": "minecraft:axes" - } - ] + "tool": { + "neoforge:ingredient_type": "neoforge:compound", + "children": [ + { + "neoforge:ingredient_type": "farmersdelight:item_ability", + "action": "axe_dig" + }, + "#minecraft:axes" + ] + } } \ No newline at end of file diff --git a/src/generated/resources/data/farmersdelight/recipe/salvaging/amethyst_block.json b/src/generated/resources/data/farmersdelight/recipe/salvaging/amethyst_block.json index af998f544..602810ccd 100644 --- a/src/generated/resources/data/farmersdelight/recipe/salvaging/amethyst_block.json +++ b/src/generated/resources/data/farmersdelight/recipe/salvaging/amethyst_block.json @@ -1,9 +1,7 @@ { "type": "farmersdelight:cutting", "ingredients": [ - { - "item": "minecraft:amethyst_block" - } + "minecraft:amethyst_block" ], "result": [ { @@ -13,13 +11,14 @@ } } ], - "tool": [ - { - "type": "farmersdelight:item_ability", - "action": "pickaxe_dig" - }, - { - "tag": "minecraft:pickaxes" - } - ] + "tool": { + "neoforge:ingredient_type": "neoforge:compound", + "children": [ + { + "neoforge:ingredient_type": "farmersdelight:item_ability", + "action": "pickaxe_dig" + }, + "#minecraft:pickaxes" + ] + } } \ No newline at end of file diff --git a/src/generated/resources/data/farmersdelight/recipe/salvaging/bamboo_chest_raft.json b/src/generated/resources/data/farmersdelight/recipe/salvaging/bamboo_chest_raft.json index 36dbea051..3095e3eb1 100644 --- a/src/generated/resources/data/farmersdelight/recipe/salvaging/bamboo_chest_raft.json +++ b/src/generated/resources/data/farmersdelight/recipe/salvaging/bamboo_chest_raft.json @@ -1,31 +1,28 @@ { "type": "farmersdelight:cutting", "ingredients": [ - { - "item": "minecraft:bamboo_chest_raft" - } + "minecraft:bamboo_chest_raft" ], "result": [ { "item": { - "count": 1, "id": "minecraft:bamboo_raft" } }, { "item": { - "count": 1, "id": "minecraft:chest" } } ], - "tool": [ - { - "type": "farmersdelight:item_ability", - "action": "hoe_dig" - }, - { - "tag": "minecraft:hoes" - } - ] + "tool": { + "neoforge:ingredient_type": "neoforge:compound", + "children": [ + { + "neoforge:ingredient_type": "farmersdelight:item_ability", + "action": "hoe_dig" + }, + "#minecraft:hoes" + ] + } } \ No newline at end of file diff --git a/src/generated/resources/data/farmersdelight/recipe/salvaging/bamboo_furniture.json b/src/generated/resources/data/farmersdelight/recipe/salvaging/bamboo_furniture.json index 5601be1ed..b4e7982ad 100644 --- a/src/generated/resources/data/farmersdelight/recipe/salvaging/bamboo_furniture.json +++ b/src/generated/resources/data/farmersdelight/recipe/salvaging/bamboo_furniture.json @@ -1,58 +1,35 @@ { "type": "farmersdelight:cutting", "ingredients": [ - { - "type": "neoforge:compound", - "children": [ - { - "item": "minecraft:bamboo_door" - }, - { - "item": "minecraft:bamboo_trapdoor" - }, - { - "item": "minecraft:bamboo_sign" - }, - { - "item": "minecraft:bamboo_hanging_sign" - }, - { - "item": "minecraft:bamboo_fence" - }, - { - "item": "minecraft:bamboo_fence_gate" - }, - { - "item": "minecraft:bamboo_pressure_plate" - }, - { - "item": "minecraft:bamboo_button" - }, - { - "item": "minecraft:bamboo_raft" - }, - { - "item": "farmersdelight:bamboo_cabinet" - } - ] - } + [ + "minecraft:bamboo_door", + "minecraft:bamboo_trapdoor", + "minecraft:bamboo_sign", + "minecraft:bamboo_hanging_sign", + "minecraft:bamboo_fence", + "minecraft:bamboo_fence_gate", + "minecraft:bamboo_pressure_plate", + "minecraft:bamboo_button", + "minecraft:bamboo_raft", + "farmersdelight:bamboo_cabinet" + ] ], "result": [ { "chance": 0.75, "item": { - "count": 1, "id": "minecraft:bamboo_planks" } } ], - "tool": [ - { - "type": "farmersdelight:item_ability", - "action": "axe_dig" - }, - { - "tag": "minecraft:axes" - } - ] + "tool": { + "neoforge:ingredient_type": "neoforge:compound", + "children": [ + { + "neoforge:ingredient_type": "farmersdelight:item_ability", + "action": "axe_dig" + }, + "#minecraft:axes" + ] + } } \ No newline at end of file diff --git a/src/generated/resources/data/farmersdelight/recipe/salvaging/birch_chest_boat.json b/src/generated/resources/data/farmersdelight/recipe/salvaging/birch_chest_boat.json index f5d4d2301..240899a9a 100644 --- a/src/generated/resources/data/farmersdelight/recipe/salvaging/birch_chest_boat.json +++ b/src/generated/resources/data/farmersdelight/recipe/salvaging/birch_chest_boat.json @@ -1,31 +1,28 @@ { "type": "farmersdelight:cutting", "ingredients": [ - { - "item": "minecraft:birch_chest_boat" - } + "minecraft:birch_chest_boat" ], "result": [ { "item": { - "count": 1, "id": "minecraft:birch_boat" } }, { "item": { - "count": 1, "id": "minecraft:chest" } } ], - "tool": [ - { - "type": "farmersdelight:item_ability", - "action": "hoe_dig" - }, - { - "tag": "minecraft:hoes" - } - ] + "tool": { + "neoforge:ingredient_type": "neoforge:compound", + "children": [ + { + "neoforge:ingredient_type": "farmersdelight:item_ability", + "action": "hoe_dig" + }, + "#minecraft:hoes" + ] + } } \ No newline at end of file diff --git a/src/generated/resources/data/farmersdelight/recipe/salvaging/birch_furniture.json b/src/generated/resources/data/farmersdelight/recipe/salvaging/birch_furniture.json index 0d159820f..0a59b078f 100644 --- a/src/generated/resources/data/farmersdelight/recipe/salvaging/birch_furniture.json +++ b/src/generated/resources/data/farmersdelight/recipe/salvaging/birch_furniture.json @@ -1,58 +1,35 @@ { "type": "farmersdelight:cutting", "ingredients": [ - { - "type": "neoforge:compound", - "children": [ - { - "item": "minecraft:birch_door" - }, - { - "item": "minecraft:birch_trapdoor" - }, - { - "item": "minecraft:birch_sign" - }, - { - "item": "minecraft:birch_hanging_sign" - }, - { - "item": "minecraft:birch_fence" - }, - { - "item": "minecraft:birch_fence_gate" - }, - { - "item": "minecraft:birch_pressure_plate" - }, - { - "item": "minecraft:birch_button" - }, - { - "item": "minecraft:birch_boat" - }, - { - "item": "farmersdelight:birch_cabinet" - } - ] - } + [ + "minecraft:birch_door", + "minecraft:birch_trapdoor", + "minecraft:birch_sign", + "minecraft:birch_hanging_sign", + "minecraft:birch_fence", + "minecraft:birch_fence_gate", + "minecraft:birch_pressure_plate", + "minecraft:birch_button", + "minecraft:birch_boat", + "farmersdelight:birch_cabinet" + ] ], "result": [ { "chance": 0.75, "item": { - "count": 1, "id": "minecraft:birch_planks" } } ], - "tool": [ - { - "type": "farmersdelight:item_ability", - "action": "axe_dig" - }, - { - "tag": "minecraft:axes" - } - ] + "tool": { + "neoforge:ingredient_type": "neoforge:compound", + "children": [ + { + "neoforge:ingredient_type": "farmersdelight:item_ability", + "action": "axe_dig" + }, + "#minecraft:axes" + ] + } } \ No newline at end of file diff --git a/src/generated/resources/data/farmersdelight/recipe/salvaging/bricks.json b/src/generated/resources/data/farmersdelight/recipe/salvaging/bricks.json index f49f8da50..e9d786335 100644 --- a/src/generated/resources/data/farmersdelight/recipe/salvaging/bricks.json +++ b/src/generated/resources/data/farmersdelight/recipe/salvaging/bricks.json @@ -1,9 +1,7 @@ { "type": "farmersdelight:cutting", "ingredients": [ - { - "item": "minecraft:bricks" - } + "minecraft:bricks" ], "result": [ { @@ -13,13 +11,14 @@ } } ], - "tool": [ - { - "type": "farmersdelight:item_ability", - "action": "pickaxe_dig" - }, - { - "tag": "minecraft:pickaxes" - } - ] + "tool": { + "neoforge:ingredient_type": "neoforge:compound", + "children": [ + { + "neoforge:ingredient_type": "farmersdelight:item_ability", + "action": "pickaxe_dig" + }, + "#minecraft:pickaxes" + ] + } } \ No newline at end of file diff --git a/src/generated/resources/data/farmersdelight/recipe/salvaging/cherry_chest_boat.json b/src/generated/resources/data/farmersdelight/recipe/salvaging/cherry_chest_boat.json index f00f9df9a..fc1e29b0c 100644 --- a/src/generated/resources/data/farmersdelight/recipe/salvaging/cherry_chest_boat.json +++ b/src/generated/resources/data/farmersdelight/recipe/salvaging/cherry_chest_boat.json @@ -1,31 +1,28 @@ { "type": "farmersdelight:cutting", "ingredients": [ - { - "item": "minecraft:cherry_chest_boat" - } + "minecraft:cherry_chest_boat" ], "result": [ { "item": { - "count": 1, "id": "minecraft:cherry_boat" } }, { "item": { - "count": 1, "id": "minecraft:chest" } } ], - "tool": [ - { - "type": "farmersdelight:item_ability", - "action": "hoe_dig" - }, - { - "tag": "minecraft:hoes" - } - ] + "tool": { + "neoforge:ingredient_type": "neoforge:compound", + "children": [ + { + "neoforge:ingredient_type": "farmersdelight:item_ability", + "action": "hoe_dig" + }, + "#minecraft:hoes" + ] + } } \ No newline at end of file diff --git a/src/generated/resources/data/farmersdelight/recipe/salvaging/cherry_furniture.json b/src/generated/resources/data/farmersdelight/recipe/salvaging/cherry_furniture.json index 3cedef1f1..ba630ebb4 100644 --- a/src/generated/resources/data/farmersdelight/recipe/salvaging/cherry_furniture.json +++ b/src/generated/resources/data/farmersdelight/recipe/salvaging/cherry_furniture.json @@ -1,58 +1,35 @@ { "type": "farmersdelight:cutting", "ingredients": [ - { - "type": "neoforge:compound", - "children": [ - { - "item": "minecraft:cherry_door" - }, - { - "item": "minecraft:cherry_trapdoor" - }, - { - "item": "minecraft:cherry_sign" - }, - { - "item": "minecraft:cherry_hanging_sign" - }, - { - "item": "minecraft:cherry_fence" - }, - { - "item": "minecraft:cherry_fence_gate" - }, - { - "item": "minecraft:cherry_pressure_plate" - }, - { - "item": "minecraft:cherry_button" - }, - { - "item": "minecraft:cherry_boat" - }, - { - "item": "farmersdelight:cherry_cabinet" - } - ] - } + [ + "minecraft:cherry_door", + "minecraft:cherry_trapdoor", + "minecraft:cherry_sign", + "minecraft:cherry_hanging_sign", + "minecraft:cherry_fence", + "minecraft:cherry_fence_gate", + "minecraft:cherry_pressure_plate", + "minecraft:cherry_button", + "minecraft:cherry_boat", + "farmersdelight:cherry_cabinet" + ] ], "result": [ { "chance": 0.75, "item": { - "count": 1, "id": "minecraft:cherry_planks" } } ], - "tool": [ - { - "type": "farmersdelight:item_ability", - "action": "axe_dig" - }, - { - "tag": "minecraft:axes" - } - ] + "tool": { + "neoforge:ingredient_type": "neoforge:compound", + "children": [ + { + "neoforge:ingredient_type": "farmersdelight:item_ability", + "action": "axe_dig" + }, + "#minecraft:axes" + ] + } } \ No newline at end of file diff --git a/src/generated/resources/data/farmersdelight/recipe/salvaging/chest_minecart.json b/src/generated/resources/data/farmersdelight/recipe/salvaging/chest_minecart.json index 380340865..3d93c0a2f 100644 --- a/src/generated/resources/data/farmersdelight/recipe/salvaging/chest_minecart.json +++ b/src/generated/resources/data/farmersdelight/recipe/salvaging/chest_minecart.json @@ -1,20 +1,16 @@ { "type": "farmersdelight:cutting", "ingredients": [ - { - "item": "minecraft:chest_minecart" - } + "minecraft:chest_minecart" ], "result": [ { "item": { - "count": 1, "id": "minecraft:minecart" } }, { "item": { - "count": 1, "id": "minecraft:chest" } } @@ -22,13 +18,14 @@ "sound": { "sound_id": "minecraft:block.metal.break" }, - "tool": [ - { - "type": "farmersdelight:item_ability", - "action": "hoe_dig" - }, - { - "tag": "minecraft:hoes" - } - ] + "tool": { + "neoforge:ingredient_type": "neoforge:compound", + "children": [ + { + "neoforge:ingredient_type": "farmersdelight:item_ability", + "action": "hoe_dig" + }, + "#minecraft:hoes" + ] + } } \ No newline at end of file diff --git a/src/generated/resources/data/farmersdelight/recipe/salvaging/crimson_furniture.json b/src/generated/resources/data/farmersdelight/recipe/salvaging/crimson_furniture.json index 532ac4e4e..03d528d6c 100644 --- a/src/generated/resources/data/farmersdelight/recipe/salvaging/crimson_furniture.json +++ b/src/generated/resources/data/farmersdelight/recipe/salvaging/crimson_furniture.json @@ -1,55 +1,34 @@ { "type": "farmersdelight:cutting", "ingredients": [ - { - "type": "neoforge:compound", - "children": [ - { - "item": "minecraft:crimson_door" - }, - { - "item": "minecraft:crimson_trapdoor" - }, - { - "item": "minecraft:crimson_sign" - }, - { - "item": "minecraft:crimson_hanging_sign" - }, - { - "item": "minecraft:crimson_fence" - }, - { - "item": "minecraft:crimson_fence_gate" - }, - { - "item": "minecraft:crimson_pressure_plate" - }, - { - "item": "minecraft:crimson_button" - }, - { - "item": "farmersdelight:crimson_cabinet" - } - ] - } + [ + "minecraft:crimson_door", + "minecraft:crimson_trapdoor", + "minecraft:crimson_sign", + "minecraft:crimson_hanging_sign", + "minecraft:crimson_fence", + "minecraft:crimson_fence_gate", + "minecraft:crimson_pressure_plate", + "minecraft:crimson_button", + "farmersdelight:crimson_cabinet" + ] ], "result": [ { "chance": 0.75, "item": { - "count": 1, "id": "minecraft:crimson_planks" } } ], - "tool": [ - { - "type": "farmersdelight:item_ability", - "action": "axe_dig" - }, - { - "tag": "minecraft:axes" - } - ] + "tool": { + "neoforge:ingredient_type": "neoforge:compound", + "children": [ + { + "neoforge:ingredient_type": "farmersdelight:item_ability", + "action": "axe_dig" + }, + "#minecraft:axes" + ] + } } \ No newline at end of file diff --git a/src/generated/resources/data/farmersdelight/recipe/salvaging/dark_oak_chest_boat.json b/src/generated/resources/data/farmersdelight/recipe/salvaging/dark_oak_chest_boat.json index 9a8bbb10c..ae7962a8c 100644 --- a/src/generated/resources/data/farmersdelight/recipe/salvaging/dark_oak_chest_boat.json +++ b/src/generated/resources/data/farmersdelight/recipe/salvaging/dark_oak_chest_boat.json @@ -1,31 +1,28 @@ { "type": "farmersdelight:cutting", "ingredients": [ - { - "item": "minecraft:dark_oak_chest_boat" - } + "minecraft:dark_oak_chest_boat" ], "result": [ { "item": { - "count": 1, "id": "minecraft:dark_oak_boat" } }, { "item": { - "count": 1, "id": "minecraft:chest" } } ], - "tool": [ - { - "type": "farmersdelight:item_ability", - "action": "hoe_dig" - }, - { - "tag": "minecraft:hoes" - } - ] + "tool": { + "neoforge:ingredient_type": "neoforge:compound", + "children": [ + { + "neoforge:ingredient_type": "farmersdelight:item_ability", + "action": "hoe_dig" + }, + "#minecraft:hoes" + ] + } } \ No newline at end of file diff --git a/src/generated/resources/data/farmersdelight/recipe/salvaging/dark_oak_furniture.json b/src/generated/resources/data/farmersdelight/recipe/salvaging/dark_oak_furniture.json index 54c1fb3b6..ff8811f9b 100644 --- a/src/generated/resources/data/farmersdelight/recipe/salvaging/dark_oak_furniture.json +++ b/src/generated/resources/data/farmersdelight/recipe/salvaging/dark_oak_furniture.json @@ -1,58 +1,35 @@ { "type": "farmersdelight:cutting", "ingredients": [ - { - "type": "neoforge:compound", - "children": [ - { - "item": "minecraft:dark_oak_door" - }, - { - "item": "minecraft:dark_oak_trapdoor" - }, - { - "item": "minecraft:dark_oak_sign" - }, - { - "item": "minecraft:dark_oak_hanging_sign" - }, - { - "item": "minecraft:dark_oak_fence" - }, - { - "item": "minecraft:dark_oak_fence_gate" - }, - { - "item": "minecraft:dark_oak_pressure_plate" - }, - { - "item": "minecraft:dark_oak_button" - }, - { - "item": "minecraft:dark_oak_boat" - }, - { - "item": "farmersdelight:dark_oak_cabinet" - } - ] - } + [ + "minecraft:dark_oak_door", + "minecraft:dark_oak_trapdoor", + "minecraft:dark_oak_sign", + "minecraft:dark_oak_hanging_sign", + "minecraft:dark_oak_fence", + "minecraft:dark_oak_fence_gate", + "minecraft:dark_oak_pressure_plate", + "minecraft:dark_oak_button", + "minecraft:dark_oak_boat", + "farmersdelight:dark_oak_cabinet" + ] ], "result": [ { "chance": 0.75, "item": { - "count": 1, "id": "minecraft:dark_oak_planks" } } ], - "tool": [ - { - "type": "farmersdelight:item_ability", - "action": "axe_dig" - }, - { - "tag": "minecraft:axes" - } - ] + "tool": { + "neoforge:ingredient_type": "neoforge:compound", + "children": [ + { + "neoforge:ingredient_type": "farmersdelight:item_ability", + "action": "axe_dig" + }, + "#minecraft:axes" + ] + } } \ No newline at end of file diff --git a/src/generated/resources/data/farmersdelight/recipe/salvaging/deepslate.json b/src/generated/resources/data/farmersdelight/recipe/salvaging/deepslate.json index ce86e10c0..c6efb4de5 100644 --- a/src/generated/resources/data/farmersdelight/recipe/salvaging/deepslate.json +++ b/src/generated/resources/data/farmersdelight/recipe/salvaging/deepslate.json @@ -1,25 +1,23 @@ { "type": "farmersdelight:cutting", "ingredients": [ - { - "item": "minecraft:deepslate" - } + "minecraft:deepslate" ], "result": [ { "item": { - "count": 1, "id": "minecraft:cobbled_deepslate" } } ], - "tool": [ - { - "type": "farmersdelight:item_ability", - "action": "pickaxe_dig" - }, - { - "tag": "minecraft:pickaxes" - } - ] + "tool": { + "neoforge:ingredient_type": "neoforge:compound", + "children": [ + { + "neoforge:ingredient_type": "farmersdelight:item_ability", + "action": "pickaxe_dig" + }, + "#minecraft:pickaxes" + ] + } } \ No newline at end of file diff --git a/src/generated/resources/data/farmersdelight/recipe/salvaging/furnace_minecart.json b/src/generated/resources/data/farmersdelight/recipe/salvaging/furnace_minecart.json index 9c309e243..053b714eb 100644 --- a/src/generated/resources/data/farmersdelight/recipe/salvaging/furnace_minecart.json +++ b/src/generated/resources/data/farmersdelight/recipe/salvaging/furnace_minecart.json @@ -1,20 +1,16 @@ { "type": "farmersdelight:cutting", "ingredients": [ - { - "item": "minecraft:furnace_minecart" - } + "minecraft:furnace_minecart" ], "result": [ { "item": { - "count": 1, "id": "minecraft:minecart" } }, { "item": { - "count": 1, "id": "minecraft:furnace" } } @@ -22,13 +18,14 @@ "sound": { "sound_id": "minecraft:block.metal.break" }, - "tool": [ - { - "type": "farmersdelight:item_ability", - "action": "hoe_dig" - }, - { - "tag": "minecraft:hoes" - } - ] + "tool": { + "neoforge:ingredient_type": "neoforge:compound", + "children": [ + { + "neoforge:ingredient_type": "farmersdelight:item_ability", + "action": "hoe_dig" + }, + "#minecraft:hoes" + ] + } } \ No newline at end of file diff --git a/src/generated/resources/data/farmersdelight/recipe/salvaging/hopper_minecart.json b/src/generated/resources/data/farmersdelight/recipe/salvaging/hopper_minecart.json index 630509c03..c63f05adb 100644 --- a/src/generated/resources/data/farmersdelight/recipe/salvaging/hopper_minecart.json +++ b/src/generated/resources/data/farmersdelight/recipe/salvaging/hopper_minecart.json @@ -1,20 +1,16 @@ { "type": "farmersdelight:cutting", "ingredients": [ - { - "item": "minecraft:hopper_minecart" - } + "minecraft:hopper_minecart" ], "result": [ { "item": { - "count": 1, "id": "minecraft:minecart" } }, { "item": { - "count": 1, "id": "minecraft:hopper" } } @@ -22,13 +18,14 @@ "sound": { "sound_id": "minecraft:block.metal.break" }, - "tool": [ - { - "type": "farmersdelight:item_ability", - "action": "hoe_dig" - }, - { - "tag": "minecraft:hoes" - } - ] + "tool": { + "neoforge:ingredient_type": "neoforge:compound", + "children": [ + { + "neoforge:ingredient_type": "farmersdelight:item_ability", + "action": "hoe_dig" + }, + "#minecraft:hoes" + ] + } } \ No newline at end of file diff --git a/src/generated/resources/data/farmersdelight/recipe/salvaging/jungle_chest_boat.json b/src/generated/resources/data/farmersdelight/recipe/salvaging/jungle_chest_boat.json index 6f2609641..ff3576c8a 100644 --- a/src/generated/resources/data/farmersdelight/recipe/salvaging/jungle_chest_boat.json +++ b/src/generated/resources/data/farmersdelight/recipe/salvaging/jungle_chest_boat.json @@ -1,31 +1,28 @@ { "type": "farmersdelight:cutting", "ingredients": [ - { - "item": "minecraft:jungle_chest_boat" - } + "minecraft:jungle_chest_boat" ], "result": [ { "item": { - "count": 1, "id": "minecraft:jungle_boat" } }, { "item": { - "count": 1, "id": "minecraft:chest" } } ], - "tool": [ - { - "type": "farmersdelight:item_ability", - "action": "hoe_dig" - }, - { - "tag": "minecraft:hoes" - } - ] + "tool": { + "neoforge:ingredient_type": "neoforge:compound", + "children": [ + { + "neoforge:ingredient_type": "farmersdelight:item_ability", + "action": "hoe_dig" + }, + "#minecraft:hoes" + ] + } } \ No newline at end of file diff --git a/src/generated/resources/data/farmersdelight/recipe/salvaging/jungle_furniture.json b/src/generated/resources/data/farmersdelight/recipe/salvaging/jungle_furniture.json index 6bd3e7f71..de0e23fd8 100644 --- a/src/generated/resources/data/farmersdelight/recipe/salvaging/jungle_furniture.json +++ b/src/generated/resources/data/farmersdelight/recipe/salvaging/jungle_furniture.json @@ -1,58 +1,35 @@ { "type": "farmersdelight:cutting", "ingredients": [ - { - "type": "neoforge:compound", - "children": [ - { - "item": "minecraft:jungle_door" - }, - { - "item": "minecraft:jungle_trapdoor" - }, - { - "item": "minecraft:jungle_sign" - }, - { - "item": "minecraft:jungle_hanging_sign" - }, - { - "item": "minecraft:jungle_fence" - }, - { - "item": "minecraft:jungle_fence_gate" - }, - { - "item": "minecraft:jungle_pressure_plate" - }, - { - "item": "minecraft:jungle_button" - }, - { - "item": "minecraft:jungle_boat" - }, - { - "item": "farmersdelight:jungle_cabinet" - } - ] - } + [ + "minecraft:jungle_door", + "minecraft:jungle_trapdoor", + "minecraft:jungle_sign", + "minecraft:jungle_hanging_sign", + "minecraft:jungle_fence", + "minecraft:jungle_fence_gate", + "minecraft:jungle_pressure_plate", + "minecraft:jungle_button", + "minecraft:jungle_boat", + "farmersdelight:jungle_cabinet" + ] ], "result": [ { "chance": 0.75, "item": { - "count": 1, "id": "minecraft:jungle_planks" } } ], - "tool": [ - { - "type": "farmersdelight:item_ability", - "action": "axe_dig" - }, - { - "tag": "minecraft:axes" - } - ] + "tool": { + "neoforge:ingredient_type": "neoforge:compound", + "children": [ + { + "neoforge:ingredient_type": "farmersdelight:item_ability", + "action": "axe_dig" + }, + "#minecraft:axes" + ] + } } \ No newline at end of file diff --git a/src/generated/resources/data/farmersdelight/recipe/salvaging/leather_armor.json b/src/generated/resources/data/farmersdelight/recipe/salvaging/leather_armor.json index a282aff99..33fee6c53 100644 --- a/src/generated/resources/data/farmersdelight/recipe/salvaging/leather_armor.json +++ b/src/generated/resources/data/farmersdelight/recipe/salvaging/leather_armor.json @@ -1,39 +1,28 @@ { "type": "farmersdelight:cutting", "ingredients": [ - { - "type": "neoforge:compound", - "children": [ - { - "item": "minecraft:leather_helmet" - }, - { - "item": "minecraft:leather_chestplate" - }, - { - "item": "minecraft:leather_leggings" - }, - { - "item": "minecraft:leather_boots" - } - ] - } + [ + "minecraft:leather_helmet", + "minecraft:leather_chestplate", + "minecraft:leather_leggings", + "minecraft:leather_boots" + ] ], "result": [ { "item": { - "count": 1, "id": "minecraft:leather" } } ], - "tool": [ - { - "type": "farmersdelight:item_ability", - "action": "shears_dig" - }, - { - "tag": "c:tools/shear" - } - ] + "tool": { + "neoforge:ingredient_type": "neoforge:compound", + "children": [ + { + "neoforge:ingredient_type": "farmersdelight:item_ability", + "action": "shears_dig" + }, + "#c:tools/shear" + ] + } } \ No newline at end of file diff --git a/src/generated/resources/data/farmersdelight/recipe/salvaging/leather_horse_armor.json b/src/generated/resources/data/farmersdelight/recipe/salvaging/leather_horse_armor.json index e1fe28d49..7801cbc92 100644 --- a/src/generated/resources/data/farmersdelight/recipe/salvaging/leather_horse_armor.json +++ b/src/generated/resources/data/farmersdelight/recipe/salvaging/leather_horse_armor.json @@ -1,9 +1,7 @@ { "type": "farmersdelight:cutting", "ingredients": [ - { - "item": "minecraft:leather_horse_armor" - } + "minecraft:leather_horse_armor" ], "result": [ { @@ -13,13 +11,14 @@ } } ], - "tool": [ - { - "type": "farmersdelight:item_ability", - "action": "shears_dig" - }, - { - "tag": "c:tools/shear" - } - ] + "tool": { + "neoforge:ingredient_type": "neoforge:compound", + "children": [ + { + "neoforge:ingredient_type": "farmersdelight:item_ability", + "action": "shears_dig" + }, + "#c:tools/shear" + ] + } } \ No newline at end of file diff --git a/src/generated/resources/data/farmersdelight/recipe/salvaging/mangrove_chest_boat.json b/src/generated/resources/data/farmersdelight/recipe/salvaging/mangrove_chest_boat.json index 80644a9a9..769c4ea80 100644 --- a/src/generated/resources/data/farmersdelight/recipe/salvaging/mangrove_chest_boat.json +++ b/src/generated/resources/data/farmersdelight/recipe/salvaging/mangrove_chest_boat.json @@ -1,31 +1,28 @@ { "type": "farmersdelight:cutting", "ingredients": [ - { - "item": "minecraft:mangrove_chest_boat" - } + "minecraft:mangrove_chest_boat" ], "result": [ { "item": { - "count": 1, "id": "minecraft:mangrove_boat" } }, { "item": { - "count": 1, "id": "minecraft:chest" } } ], - "tool": [ - { - "type": "farmersdelight:item_ability", - "action": "hoe_dig" - }, - { - "tag": "minecraft:hoes" - } - ] + "tool": { + "neoforge:ingredient_type": "neoforge:compound", + "children": [ + { + "neoforge:ingredient_type": "farmersdelight:item_ability", + "action": "hoe_dig" + }, + "#minecraft:hoes" + ] + } } \ No newline at end of file diff --git a/src/generated/resources/data/farmersdelight/recipe/salvaging/mangrove_furniture.json b/src/generated/resources/data/farmersdelight/recipe/salvaging/mangrove_furniture.json index 6a0d2bd76..bee69a4af 100644 --- a/src/generated/resources/data/farmersdelight/recipe/salvaging/mangrove_furniture.json +++ b/src/generated/resources/data/farmersdelight/recipe/salvaging/mangrove_furniture.json @@ -1,58 +1,35 @@ { "type": "farmersdelight:cutting", "ingredients": [ - { - "type": "neoforge:compound", - "children": [ - { - "item": "minecraft:mangrove_door" - }, - { - "item": "minecraft:mangrove_trapdoor" - }, - { - "item": "minecraft:mangrove_sign" - }, - { - "item": "minecraft:mangrove_hanging_sign" - }, - { - "item": "minecraft:mangrove_fence" - }, - { - "item": "minecraft:mangrove_fence_gate" - }, - { - "item": "minecraft:mangrove_pressure_plate" - }, - { - "item": "minecraft:mangrove_button" - }, - { - "item": "minecraft:mangrove_boat" - }, - { - "item": "farmersdelight:mangrove_cabinet" - } - ] - } + [ + "minecraft:mangrove_door", + "minecraft:mangrove_trapdoor", + "minecraft:mangrove_sign", + "minecraft:mangrove_hanging_sign", + "minecraft:mangrove_fence", + "minecraft:mangrove_fence_gate", + "minecraft:mangrove_pressure_plate", + "minecraft:mangrove_button", + "minecraft:mangrove_boat", + "farmersdelight:mangrove_cabinet" + ] ], "result": [ { "chance": 0.75, "item": { - "count": 1, "id": "minecraft:mangrove_planks" } } ], - "tool": [ - { - "type": "farmersdelight:item_ability", - "action": "axe_dig" - }, - { - "tag": "minecraft:axes" - } - ] + "tool": { + "neoforge:ingredient_type": "neoforge:compound", + "children": [ + { + "neoforge:ingredient_type": "farmersdelight:item_ability", + "action": "axe_dig" + }, + "#minecraft:axes" + ] + } } \ No newline at end of file diff --git a/src/generated/resources/data/farmersdelight/recipe/salvaging/nether_bricks.json b/src/generated/resources/data/farmersdelight/recipe/salvaging/nether_bricks.json index 4481dc0bc..d4f76c1d2 100644 --- a/src/generated/resources/data/farmersdelight/recipe/salvaging/nether_bricks.json +++ b/src/generated/resources/data/farmersdelight/recipe/salvaging/nether_bricks.json @@ -1,9 +1,7 @@ { "type": "farmersdelight:cutting", "ingredients": [ - { - "item": "minecraft:nether_bricks" - } + "minecraft:nether_bricks" ], "result": [ { @@ -13,13 +11,14 @@ } } ], - "tool": [ - { - "type": "farmersdelight:item_ability", - "action": "pickaxe_dig" - }, - { - "tag": "minecraft:pickaxes" - } - ] + "tool": { + "neoforge:ingredient_type": "neoforge:compound", + "children": [ + { + "neoforge:ingredient_type": "farmersdelight:item_ability", + "action": "pickaxe_dig" + }, + "#minecraft:pickaxes" + ] + } } \ No newline at end of file diff --git a/src/generated/resources/data/farmersdelight/recipe/salvaging/oak_chest_boat.json b/src/generated/resources/data/farmersdelight/recipe/salvaging/oak_chest_boat.json index 8a225c14c..31f8adabc 100644 --- a/src/generated/resources/data/farmersdelight/recipe/salvaging/oak_chest_boat.json +++ b/src/generated/resources/data/farmersdelight/recipe/salvaging/oak_chest_boat.json @@ -1,31 +1,28 @@ { "type": "farmersdelight:cutting", "ingredients": [ - { - "item": "minecraft:oak_chest_boat" - } + "minecraft:oak_chest_boat" ], "result": [ { "item": { - "count": 1, "id": "minecraft:oak_boat" } }, { "item": { - "count": 1, "id": "minecraft:chest" } } ], - "tool": [ - { - "type": "farmersdelight:item_ability", - "action": "hoe_dig" - }, - { - "tag": "minecraft:hoes" - } - ] + "tool": { + "neoforge:ingredient_type": "neoforge:compound", + "children": [ + { + "neoforge:ingredient_type": "farmersdelight:item_ability", + "action": "hoe_dig" + }, + "#minecraft:hoes" + ] + } } \ No newline at end of file diff --git a/src/generated/resources/data/farmersdelight/recipe/salvaging/oak_furniture.json b/src/generated/resources/data/farmersdelight/recipe/salvaging/oak_furniture.json index 1d22c7284..a292bc73d 100644 --- a/src/generated/resources/data/farmersdelight/recipe/salvaging/oak_furniture.json +++ b/src/generated/resources/data/farmersdelight/recipe/salvaging/oak_furniture.json @@ -1,58 +1,35 @@ { "type": "farmersdelight:cutting", "ingredients": [ - { - "type": "neoforge:compound", - "children": [ - { - "item": "minecraft:oak_door" - }, - { - "item": "minecraft:oak_trapdoor" - }, - { - "item": "minecraft:oak_sign" - }, - { - "item": "minecraft:oak_hanging_sign" - }, - { - "item": "minecraft:oak_fence" - }, - { - "item": "minecraft:oak_fence_gate" - }, - { - "item": "minecraft:oak_pressure_plate" - }, - { - "item": "minecraft:oak_button" - }, - { - "item": "minecraft:oak_boat" - }, - { - "item": "farmersdelight:oak_cabinet" - } - ] - } + [ + "minecraft:oak_door", + "minecraft:oak_trapdoor", + "minecraft:oak_sign", + "minecraft:oak_hanging_sign", + "minecraft:oak_fence", + "minecraft:oak_fence_gate", + "minecraft:oak_pressure_plate", + "minecraft:oak_button", + "minecraft:oak_boat", + "farmersdelight:oak_cabinet" + ] ], "result": [ { "chance": 0.75, "item": { - "count": 1, "id": "minecraft:oak_planks" } } ], - "tool": [ - { - "type": "farmersdelight:item_ability", - "action": "axe_dig" - }, - { - "tag": "minecraft:axes" - } - ] + "tool": { + "neoforge:ingredient_type": "neoforge:compound", + "children": [ + { + "neoforge:ingredient_type": "farmersdelight:item_ability", + "action": "axe_dig" + }, + "#minecraft:axes" + ] + } } \ No newline at end of file diff --git a/src/generated/resources/data/farmersdelight/recipe/salvaging/quartz_block.json b/src/generated/resources/data/farmersdelight/recipe/salvaging/quartz_block.json index 4ee6487fb..3fa8d7c05 100644 --- a/src/generated/resources/data/farmersdelight/recipe/salvaging/quartz_block.json +++ b/src/generated/resources/data/farmersdelight/recipe/salvaging/quartz_block.json @@ -1,9 +1,7 @@ { "type": "farmersdelight:cutting", "ingredients": [ - { - "item": "minecraft:quartz_block" - } + "minecraft:quartz_block" ], "result": [ { @@ -13,13 +11,14 @@ } } ], - "tool": [ - { - "type": "farmersdelight:item_ability", - "action": "pickaxe_dig" - }, - { - "tag": "minecraft:pickaxes" - } - ] + "tool": { + "neoforge:ingredient_type": "neoforge:compound", + "children": [ + { + "neoforge:ingredient_type": "farmersdelight:item_ability", + "action": "pickaxe_dig" + }, + "#minecraft:pickaxes" + ] + } } \ No newline at end of file diff --git a/src/generated/resources/data/farmersdelight/recipe/salvaging/saddle.json b/src/generated/resources/data/farmersdelight/recipe/salvaging/saddle.json index e6b17ae47..9fabf6e6c 100644 --- a/src/generated/resources/data/farmersdelight/recipe/salvaging/saddle.json +++ b/src/generated/resources/data/farmersdelight/recipe/salvaging/saddle.json @@ -1,9 +1,7 @@ { "type": "farmersdelight:cutting", "ingredients": [ - { - "item": "minecraft:saddle" - } + "minecraft:saddle" ], "result": [ { @@ -20,13 +18,14 @@ } } ], - "tool": [ - { - "type": "farmersdelight:item_ability", - "action": "shears_dig" - }, - { - "tag": "c:tools/shear" - } - ] + "tool": { + "neoforge:ingredient_type": "neoforge:compound", + "children": [ + { + "neoforge:ingredient_type": "farmersdelight:item_ability", + "action": "shears_dig" + }, + "#c:tools/shear" + ] + } } \ No newline at end of file diff --git a/src/generated/resources/data/farmersdelight/recipe/salvaging/spruce_chest_boat.json b/src/generated/resources/data/farmersdelight/recipe/salvaging/spruce_chest_boat.json index b58ae6bb9..5bcbd2feb 100644 --- a/src/generated/resources/data/farmersdelight/recipe/salvaging/spruce_chest_boat.json +++ b/src/generated/resources/data/farmersdelight/recipe/salvaging/spruce_chest_boat.json @@ -1,31 +1,28 @@ { "type": "farmersdelight:cutting", "ingredients": [ - { - "item": "minecraft:spruce_chest_boat" - } + "minecraft:spruce_chest_boat" ], "result": [ { "item": { - "count": 1, "id": "minecraft:spruce_boat" } }, { "item": { - "count": 1, "id": "minecraft:chest" } } ], - "tool": [ - { - "type": "farmersdelight:item_ability", - "action": "hoe_dig" - }, - { - "tag": "minecraft:hoes" - } - ] + "tool": { + "neoforge:ingredient_type": "neoforge:compound", + "children": [ + { + "neoforge:ingredient_type": "farmersdelight:item_ability", + "action": "hoe_dig" + }, + "#minecraft:hoes" + ] + } } \ No newline at end of file diff --git a/src/generated/resources/data/farmersdelight/recipe/salvaging/spruce_furniture.json b/src/generated/resources/data/farmersdelight/recipe/salvaging/spruce_furniture.json index aaf8255be..1a8b3c736 100644 --- a/src/generated/resources/data/farmersdelight/recipe/salvaging/spruce_furniture.json +++ b/src/generated/resources/data/farmersdelight/recipe/salvaging/spruce_furniture.json @@ -1,58 +1,35 @@ { "type": "farmersdelight:cutting", "ingredients": [ - { - "type": "neoforge:compound", - "children": [ - { - "item": "minecraft:spruce_door" - }, - { - "item": "minecraft:spruce_trapdoor" - }, - { - "item": "minecraft:spruce_sign" - }, - { - "item": "minecraft:spruce_hanging_sign" - }, - { - "item": "minecraft:spruce_fence" - }, - { - "item": "minecraft:spruce_fence_gate" - }, - { - "item": "minecraft:spruce_pressure_plate" - }, - { - "item": "minecraft:spruce_button" - }, - { - "item": "minecraft:spruce_boat" - }, - { - "item": "farmersdelight:spruce_cabinet" - } - ] - } + [ + "minecraft:spruce_door", + "minecraft:spruce_trapdoor", + "minecraft:spruce_sign", + "minecraft:spruce_hanging_sign", + "minecraft:spruce_fence", + "minecraft:spruce_fence_gate", + "minecraft:spruce_pressure_plate", + "minecraft:spruce_button", + "minecraft:spruce_boat", + "farmersdelight:spruce_cabinet" + ] ], "result": [ { "chance": 0.75, "item": { - "count": 1, "id": "minecraft:spruce_planks" } } ], - "tool": [ - { - "type": "farmersdelight:item_ability", - "action": "axe_dig" - }, - { - "tag": "minecraft:axes" - } - ] + "tool": { + "neoforge:ingredient_type": "neoforge:compound", + "children": [ + { + "neoforge:ingredient_type": "farmersdelight:item_ability", + "action": "axe_dig" + }, + "#minecraft:axes" + ] + } } \ No newline at end of file diff --git a/src/generated/resources/data/farmersdelight/recipe/salvaging/stone.json b/src/generated/resources/data/farmersdelight/recipe/salvaging/stone.json index 8ca4edf40..be4abf898 100644 --- a/src/generated/resources/data/farmersdelight/recipe/salvaging/stone.json +++ b/src/generated/resources/data/farmersdelight/recipe/salvaging/stone.json @@ -1,25 +1,23 @@ { "type": "farmersdelight:cutting", "ingredients": [ - { - "item": "minecraft:stone" - } + "minecraft:stone" ], "result": [ { "item": { - "count": 1, "id": "minecraft:cobblestone" } } ], - "tool": [ - { - "type": "farmersdelight:item_ability", - "action": "pickaxe_dig" - }, - { - "tag": "minecraft:pickaxes" - } - ] + "tool": { + "neoforge:ingredient_type": "neoforge:compound", + "children": [ + { + "neoforge:ingredient_type": "farmersdelight:item_ability", + "action": "pickaxe_dig" + }, + "#minecraft:pickaxes" + ] + } } \ No newline at end of file diff --git a/src/generated/resources/data/farmersdelight/recipe/salvaging/tnt_minecart.json b/src/generated/resources/data/farmersdelight/recipe/salvaging/tnt_minecart.json index f9b7bfd1c..431650435 100644 --- a/src/generated/resources/data/farmersdelight/recipe/salvaging/tnt_minecart.json +++ b/src/generated/resources/data/farmersdelight/recipe/salvaging/tnt_minecart.json @@ -1,20 +1,16 @@ { "type": "farmersdelight:cutting", "ingredients": [ - { - "item": "minecraft:tnt_minecart" - } + "minecraft:tnt_minecart" ], "result": [ { "item": { - "count": 1, "id": "minecraft:minecart" } }, { "item": { - "count": 1, "id": "minecraft:tnt" } } @@ -22,13 +18,14 @@ "sound": { "sound_id": "minecraft:block.metal.break" }, - "tool": [ - { - "type": "farmersdelight:item_ability", - "action": "hoe_dig" - }, - { - "tag": "minecraft:hoes" - } - ] + "tool": { + "neoforge:ingredient_type": "neoforge:compound", + "children": [ + { + "neoforge:ingredient_type": "farmersdelight:item_ability", + "action": "hoe_dig" + }, + "#minecraft:hoes" + ] + } } \ No newline at end of file diff --git a/src/generated/resources/data/farmersdelight/recipe/salvaging/warped_furniture.json b/src/generated/resources/data/farmersdelight/recipe/salvaging/warped_furniture.json index 097062ecc..764b3419b 100644 --- a/src/generated/resources/data/farmersdelight/recipe/salvaging/warped_furniture.json +++ b/src/generated/resources/data/farmersdelight/recipe/salvaging/warped_furniture.json @@ -1,55 +1,34 @@ { "type": "farmersdelight:cutting", "ingredients": [ - { - "type": "neoforge:compound", - "children": [ - { - "item": "minecraft:warped_door" - }, - { - "item": "minecraft:warped_trapdoor" - }, - { - "item": "minecraft:warped_sign" - }, - { - "item": "minecraft:warped_hanging_sign" - }, - { - "item": "minecraft:warped_fence" - }, - { - "item": "minecraft:warped_fence_gate" - }, - { - "item": "minecraft:warped_pressure_plate" - }, - { - "item": "minecraft:warped_button" - }, - { - "item": "farmersdelight:warped_cabinet" - } - ] - } + [ + "minecraft:warped_door", + "minecraft:warped_trapdoor", + "minecraft:warped_sign", + "minecraft:warped_hanging_sign", + "minecraft:warped_fence", + "minecraft:warped_fence_gate", + "minecraft:warped_pressure_plate", + "minecraft:warped_button", + "farmersdelight:warped_cabinet" + ] ], "result": [ { "chance": 0.75, "item": { - "count": 1, "id": "minecraft:warped_planks" } } ], - "tool": [ - { - "type": "farmersdelight:item_ability", - "action": "axe_dig" - }, - { - "tag": "minecraft:axes" - } - ] + "tool": { + "neoforge:ingredient_type": "neoforge:compound", + "children": [ + { + "neoforge:ingredient_type": "farmersdelight:item_ability", + "action": "axe_dig" + }, + "#minecraft:axes" + ] + } } \ No newline at end of file diff --git a/src/generated/resources/data/farmersdelight/recipe/scaffolding_from_canvas.json b/src/generated/resources/data/farmersdelight/recipe/scaffolding_from_canvas.json index 3271ab1b3..ce4d0963e 100644 --- a/src/generated/resources/data/farmersdelight/recipe/scaffolding_from_canvas.json +++ b/src/generated/resources/data/farmersdelight/recipe/scaffolding_from_canvas.json @@ -1,13 +1,8 @@ { "type": "minecraft:crafting_shaped", - "category": "misc", "key": { - "#": { - "item": "farmersdelight:canvas" - }, - "b": { - "item": "minecraft:bamboo" - } + "#": "farmersdelight:canvas", + "b": "minecraft:bamboo" }, "pattern": [ "b#b", diff --git a/src/generated/resources/data/farmersdelight/recipe/shepherds_pie_block.json b/src/generated/resources/data/farmersdelight/recipe/shepherds_pie_block.json index f8a2098cc..b054d70cf 100644 --- a/src/generated/resources/data/farmersdelight/recipe/shepherds_pie_block.json +++ b/src/generated/resources/data/farmersdelight/recipe/shepherds_pie_block.json @@ -1,37 +1,17 @@ { "type": "minecraft:crafting_shapeless", - "category": "misc", "ingredients": [ - { - "item": "minecraft:baked_potato" - }, - { - "tag": "c:drinks/milk" - }, - { - "item": "minecraft:baked_potato" - }, - { - "tag": "c:foods/cooked_mutton" - }, - { - "tag": "c:foods/cooked_mutton" - }, - { - "tag": "c:foods/cooked_mutton" - }, - { - "tag": "c:crops/onion" - }, - { - "item": "minecraft:bowl" - }, - { - "tag": "c:crops/onion" - } + "minecraft:baked_potato", + "#c:drinks/milk", + "minecraft:baked_potato", + "#c:foods/cooked_mutton", + "#c:foods/cooked_mutton", + "#c:foods/cooked_mutton", + "#c:crops/onion", + "minecraft:bowl", + "#c:crops/onion" ], "result": { - "count": 1, "id": "farmersdelight:shepherds_pie_block" } } \ No newline at end of file diff --git a/src/generated/resources/data/farmersdelight/recipe/skillet.json b/src/generated/resources/data/farmersdelight/recipe/skillet.json index 2cfd29ea6..4d73fdfa6 100644 --- a/src/generated/resources/data/farmersdelight/recipe/skillet.json +++ b/src/generated/resources/data/farmersdelight/recipe/skillet.json @@ -1,13 +1,8 @@ { "type": "minecraft:crafting_shaped", - "category": "misc", "key": { - "#": { - "tag": "c:ingots/iron" - }, - "/": { - "item": "minecraft:brick" - } + "#": "#c:ingots/iron", + "/": "minecraft:brick" }, "pattern": [ " ##", @@ -15,7 +10,6 @@ "/ " ], "result": { - "count": 1, "id": "farmersdelight:skillet" } } \ No newline at end of file diff --git a/src/generated/resources/data/farmersdelight/recipe/smoked_ham.json b/src/generated/resources/data/farmersdelight/recipe/smoked_ham.json index 8ec1ec579..8aeb5ff41 100644 --- a/src/generated/resources/data/farmersdelight/recipe/smoked_ham.json +++ b/src/generated/resources/data/farmersdelight/recipe/smoked_ham.json @@ -3,11 +3,8 @@ "category": "food", "cookingtime": 200, "experience": 0.35, - "ingredient": { - "item": "farmersdelight:ham" - }, + "ingredient": "farmersdelight:ham", "result": { - "count": 1, "id": "farmersdelight:smoked_ham" } } \ No newline at end of file diff --git a/src/generated/resources/data/farmersdelight/recipe/spruce_cabinet.json b/src/generated/resources/data/farmersdelight/recipe/spruce_cabinet.json index 2112159c5..8213a50db 100644 --- a/src/generated/resources/data/farmersdelight/recipe/spruce_cabinet.json +++ b/src/generated/resources/data/farmersdelight/recipe/spruce_cabinet.json @@ -1,14 +1,9 @@ { "type": "minecraft:crafting_shaped", - "category": "misc", "group": "fd_cabinet", "key": { - "D": { - "item": "minecraft:spruce_trapdoor" - }, - "_": { - "item": "minecraft:spruce_slab" - } + "D": "minecraft:spruce_trapdoor", + "_": "minecraft:spruce_slab" }, "pattern": [ "___", @@ -16,7 +11,6 @@ "___" ], "result": { - "count": 1, "id": "farmersdelight:spruce_cabinet" } } \ No newline at end of file diff --git a/src/generated/resources/data/farmersdelight/recipe/steak_and_potatoes.json b/src/generated/resources/data/farmersdelight/recipe/steak_and_potatoes.json index 9159a4d8a..2c3cc93d4 100644 --- a/src/generated/resources/data/farmersdelight/recipe/steak_and_potatoes.json +++ b/src/generated/resources/data/farmersdelight/recipe/steak_and_potatoes.json @@ -1,25 +1,13 @@ { "type": "minecraft:crafting_shapeless", - "category": "misc", "ingredients": [ - { - "item": "minecraft:baked_potato" - }, - { - "item": "minecraft:cooked_beef" - }, - { - "item": "minecraft:bowl" - }, - { - "tag": "c:crops/onion" - }, - { - "item": "farmersdelight:cooked_rice" - } + "minecraft:baked_potato", + "minecraft:cooked_beef", + "minecraft:bowl", + "#c:crops/onion", + "farmersdelight:cooked_rice" ], "result": { - "count": 1, "id": "farmersdelight:steak_and_potatoes" } } \ No newline at end of file diff --git a/src/generated/resources/data/farmersdelight/recipe/stove.json b/src/generated/resources/data/farmersdelight/recipe/stove.json index 8eb626861..3ba8ea8e6 100644 --- a/src/generated/resources/data/farmersdelight/recipe/stove.json +++ b/src/generated/resources/data/farmersdelight/recipe/stove.json @@ -1,16 +1,9 @@ { "type": "minecraft:crafting_shaped", - "category": "misc", "key": { - "B": { - "item": "minecraft:bricks" - }, - "C": { - "item": "minecraft:campfire" - }, - "i": { - "tag": "c:ingots/iron" - } + "B": "minecraft:bricks", + "C": "minecraft:campfire", + "i": "#c:ingots/iron" }, "pattern": [ "iii", @@ -18,7 +11,6 @@ "BCB" ], "result": { - "count": 1, "id": "farmersdelight:stove" } } \ No newline at end of file diff --git a/src/generated/resources/data/farmersdelight/recipe/straw.json b/src/generated/resources/data/farmersdelight/recipe/straw.json index d72a1a7cf..cbea27989 100644 --- a/src/generated/resources/data/farmersdelight/recipe/straw.json +++ b/src/generated/resources/data/farmersdelight/recipe/straw.json @@ -1,10 +1,7 @@ { "type": "minecraft:crafting_shapeless", - "category": "misc", "ingredients": [ - { - "item": "farmersdelight:straw_bale" - } + "farmersdelight:straw_bale" ], "result": { "count": 9, diff --git a/src/generated/resources/data/farmersdelight/recipe/straw_bale.json b/src/generated/resources/data/farmersdelight/recipe/straw_bale.json index cc64c80c4..780465f0e 100644 --- a/src/generated/resources/data/farmersdelight/recipe/straw_bale.json +++ b/src/generated/resources/data/farmersdelight/recipe/straw_bale.json @@ -2,9 +2,7 @@ "type": "minecraft:crafting_shaped", "category": "building", "key": { - "#": { - "item": "farmersdelight:straw" - } + "#": "farmersdelight:straw" }, "pattern": [ "###", @@ -12,7 +10,6 @@ "###" ], "result": { - "count": 1, "id": "farmersdelight:straw_bale" } } \ No newline at end of file diff --git a/src/generated/resources/data/farmersdelight/recipe/stuffed_potato.json b/src/generated/resources/data/farmersdelight/recipe/stuffed_potato.json index 8c2ba854b..db416da4b 100644 --- a/src/generated/resources/data/farmersdelight/recipe/stuffed_potato.json +++ b/src/generated/resources/data/farmersdelight/recipe/stuffed_potato.json @@ -1,19 +1,11 @@ { "type": "minecraft:crafting_shapeless", - "category": "misc", "ingredients": [ - { - "item": "minecraft:baked_potato" - }, - { - "tag": "c:foods/cooked_beef" - }, - { - "tag": "c:drinks/milk" - } + "minecraft:baked_potato", + "#c:foods/cooked_beef", + "#c:drinks/milk" ], "result": { - "count": 1, "id": "farmersdelight:stuffed_potato" } } \ No newline at end of file diff --git a/src/generated/resources/data/farmersdelight/recipe/sweet_berry_cheesecake.json b/src/generated/resources/data/farmersdelight/recipe/sweet_berry_cheesecake.json index 22a9b456b..0c1b96fa0 100644 --- a/src/generated/resources/data/farmersdelight/recipe/sweet_berry_cheesecake.json +++ b/src/generated/resources/data/farmersdelight/recipe/sweet_berry_cheesecake.json @@ -1,17 +1,10 @@ { "type": "minecraft:crafting_shaped", - "category": "misc", "group": "fd_sweet_berry_cheesecake", "key": { - "O": { - "item": "farmersdelight:pie_crust" - }, - "m": { - "tag": "c:drinks/milk" - }, - "s": { - "item": "minecraft:sweet_berries" - } + "O": "farmersdelight:pie_crust", + "m": "#c:drinks/milk", + "s": "minecraft:sweet_berries" }, "pattern": [ "sss", @@ -19,7 +12,6 @@ "mOm" ], "result": { - "count": 1, "id": "farmersdelight:sweet_berry_cheesecake" } } \ No newline at end of file diff --git a/src/generated/resources/data/farmersdelight/recipe/sweet_berry_cheesecake_from_slices.json b/src/generated/resources/data/farmersdelight/recipe/sweet_berry_cheesecake_from_slices.json index 6dbdab944..1e0f18cd3 100644 --- a/src/generated/resources/data/farmersdelight/recipe/sweet_berry_cheesecake_from_slices.json +++ b/src/generated/resources/data/farmersdelight/recipe/sweet_berry_cheesecake_from_slices.json @@ -1,18 +1,14 @@ { "type": "minecraft:crafting_shaped", - "category": "misc", "group": "fd_sweet_berry_cheesecake", "key": { - "#": { - "item": "farmersdelight:sweet_berry_cheesecake_slice" - } + "#": "farmersdelight:sweet_berry_cheesecake_slice" }, "pattern": [ "##", "##" ], "result": { - "count": 1, "id": "farmersdelight:sweet_berry_cheesecake" } } \ No newline at end of file diff --git a/src/generated/resources/data/farmersdelight/recipe/sweet_berry_cookie.json b/src/generated/resources/data/farmersdelight/recipe/sweet_berry_cookie.json index 14b3c1649..ea615aa47 100644 --- a/src/generated/resources/data/farmersdelight/recipe/sweet_berry_cookie.json +++ b/src/generated/resources/data/farmersdelight/recipe/sweet_berry_cookie.json @@ -1,16 +1,9 @@ { "type": "minecraft:crafting_shapeless", - "category": "misc", "ingredients": [ - { - "item": "minecraft:sweet_berries" - }, - { - "tag": "c:crops/wheat" - }, - { - "tag": "c:crops/wheat" - } + "minecraft:sweet_berries", + "#c:crops/wheat", + "#c:crops/wheat" ], "result": { "count": 8, diff --git a/src/generated/resources/data/farmersdelight/recipe/tatami.json b/src/generated/resources/data/farmersdelight/recipe/tatami.json index f295a2a5c..7d9a33304 100644 --- a/src/generated/resources/data/farmersdelight/recipe/tatami.json +++ b/src/generated/resources/data/farmersdelight/recipe/tatami.json @@ -3,12 +3,8 @@ "category": "building", "group": "fd_tatami", "key": { - "c": { - "item": "farmersdelight:canvas" - }, - "s": { - "item": "farmersdelight:straw" - } + "c": "farmersdelight:canvas", + "s": "farmersdelight:straw" }, "pattern": [ "cs", diff --git a/src/generated/resources/data/farmersdelight/recipe/tatami_block_from_full.json b/src/generated/resources/data/farmersdelight/recipe/tatami_block_from_full.json index cdfbad8ef..099bfb99b 100644 --- a/src/generated/resources/data/farmersdelight/recipe/tatami_block_from_full.json +++ b/src/generated/resources/data/farmersdelight/recipe/tatami_block_from_full.json @@ -3,15 +3,10 @@ "category": "building", "group": "fd_tatami", "ingredients": [ - { - "item": "farmersdelight:full_tatami_mat" - }, - { - "item": "farmersdelight:full_tatami_mat" - } + "farmersdelight:full_tatami_mat", + "farmersdelight:full_tatami_mat" ], "result": { - "count": 1, "id": "farmersdelight:tatami" } } \ No newline at end of file diff --git a/src/generated/resources/data/farmersdelight/recipe/tomato.json b/src/generated/resources/data/farmersdelight/recipe/tomato.json index 534d214a3..59138c256 100644 --- a/src/generated/resources/data/farmersdelight/recipe/tomato.json +++ b/src/generated/resources/data/farmersdelight/recipe/tomato.json @@ -1,10 +1,7 @@ { "type": "minecraft:crafting_shapeless", - "category": "misc", "ingredients": [ - { - "item": "farmersdelight:tomato_crate" - } + "farmersdelight:tomato_crate" ], "result": { "count": 9, diff --git a/src/generated/resources/data/farmersdelight/recipe/tomato_crate.json b/src/generated/resources/data/farmersdelight/recipe/tomato_crate.json index 4ea52a1fb..eb5267953 100644 --- a/src/generated/resources/data/farmersdelight/recipe/tomato_crate.json +++ b/src/generated/resources/data/farmersdelight/recipe/tomato_crate.json @@ -2,9 +2,7 @@ "type": "minecraft:crafting_shaped", "category": "building", "key": { - "#": { - "item": "farmersdelight:tomato" - } + "#": "farmersdelight:tomato" }, "pattern": [ "###", @@ -12,7 +10,6 @@ "###" ], "result": { - "count": 1, "id": "farmersdelight:tomato_crate" } } \ No newline at end of file diff --git a/src/generated/resources/data/farmersdelight/recipe/tomato_seeds.json b/src/generated/resources/data/farmersdelight/recipe/tomato_seeds.json index b8e95c4cc..fb131cf99 100644 --- a/src/generated/resources/data/farmersdelight/recipe/tomato_seeds.json +++ b/src/generated/resources/data/farmersdelight/recipe/tomato_seeds.json @@ -1,18 +1,12 @@ { "type": "minecraft:crafting_shapeless", - "category": "misc", "ingredients": [ [ - { - "item": "farmersdelight:tomato" - }, - { - "item": "farmersdelight:rotten_tomato" - } + "farmersdelight:tomato", + "farmersdelight:rotten_tomato" ] ], "result": { - "count": 1, "id": "farmersdelight:tomato_seeds" } } \ No newline at end of file diff --git a/src/generated/resources/data/farmersdelight/recipe/warped_cabinet.json b/src/generated/resources/data/farmersdelight/recipe/warped_cabinet.json index 8c5de8753..4b3ae843a 100644 --- a/src/generated/resources/data/farmersdelight/recipe/warped_cabinet.json +++ b/src/generated/resources/data/farmersdelight/recipe/warped_cabinet.json @@ -1,14 +1,9 @@ { "type": "minecraft:crafting_shaped", - "category": "misc", "group": "fd_cabinet", "key": { - "D": { - "item": "minecraft:warped_trapdoor" - }, - "_": { - "item": "minecraft:warped_slab" - } + "D": "minecraft:warped_trapdoor", + "_": "minecraft:warped_slab" }, "pattern": [ "___", @@ -16,7 +11,6 @@ "___" ], "result": { - "count": 1, "id": "farmersdelight:warped_cabinet" } } \ No newline at end of file diff --git a/src/generated/resources/data/farmersdelight/recipe/wheat_dough_from_egg.json b/src/generated/resources/data/farmersdelight/recipe/wheat_dough_from_egg.json index f4147e94d..7a37a2e86 100644 --- a/src/generated/resources/data/farmersdelight/recipe/wheat_dough_from_egg.json +++ b/src/generated/resources/data/farmersdelight/recipe/wheat_dough_from_egg.json @@ -1,20 +1,11 @@ { "type": "minecraft:crafting_shapeless", - "category": "misc", "group": "fd_dough", "ingredients": [ - { - "tag": "c:crops/wheat" - }, - { - "tag": "c:crops/wheat" - }, - { - "tag": "c:crops/wheat" - }, - { - "tag": "c:eggs" - } + "#c:crops/wheat", + "#c:crops/wheat", + "#c:crops/wheat", + "#c:eggs" ], "result": { "count": 3, diff --git a/src/generated/resources/data/farmersdelight/recipe/wheat_dough_from_water.json b/src/generated/resources/data/farmersdelight/recipe/wheat_dough_from_water.json index a0e08d877..dfe94274e 100644 --- a/src/generated/resources/data/farmersdelight/recipe/wheat_dough_from_water.json +++ b/src/generated/resources/data/farmersdelight/recipe/wheat_dough_from_water.json @@ -1,4 +1,3 @@ { - "type": "farmersdelight:dough", - "category": "misc" + "type": "farmersdelight:dough" } \ No newline at end of file diff --git a/src/generated/resources/data/farmersdelight/recipe/white_canvas_sign.json b/src/generated/resources/data/farmersdelight/recipe/white_canvas_sign.json index 373bf063b..63954a74c 100644 --- a/src/generated/resources/data/farmersdelight/recipe/white_canvas_sign.json +++ b/src/generated/resources/data/farmersdelight/recipe/white_canvas_sign.json @@ -1,17 +1,11 @@ { "type": "minecraft:crafting_shapeless", - "category": "misc", "group": "fd_canvas_sign", "ingredients": [ - { - "tag": "farmersdelight:canvas_signs" - }, - { - "tag": "c:dyes/white" - } + "#farmersdelight:canvas_signs", + "#c:dyes/white" ], "result": { - "count": 1, "id": "farmersdelight:white_canvas_sign" } } \ No newline at end of file diff --git a/src/generated/resources/data/farmersdelight/recipe/white_hanging_canvas_sign.json b/src/generated/resources/data/farmersdelight/recipe/white_hanging_canvas_sign.json index 3d23e0aed..ca2f59786 100644 --- a/src/generated/resources/data/farmersdelight/recipe/white_hanging_canvas_sign.json +++ b/src/generated/resources/data/farmersdelight/recipe/white_hanging_canvas_sign.json @@ -1,17 +1,11 @@ { "type": "minecraft:crafting_shapeless", - "category": "misc", "group": "fd_hanging_canvas_sign", "ingredients": [ - { - "tag": "farmersdelight:hanging_canvas_signs" - }, - { - "tag": "c:dyes/white" - } + "#farmersdelight:hanging_canvas_signs", + "#c:dyes/white" ], "result": { - "count": 1, "id": "farmersdelight:white_hanging_canvas_sign" } } \ No newline at end of file diff --git a/src/generated/resources/data/farmersdelight/recipe/wooden_basket.json b/src/generated/resources/data/farmersdelight/recipe/wooden_basket.json index e5f3f84d9..d6676d25e 100644 --- a/src/generated/resources/data/farmersdelight/recipe/wooden_basket.json +++ b/src/generated/resources/data/farmersdelight/recipe/wooden_basket.json @@ -1,13 +1,8 @@ { "type": "minecraft:crafting_shaped", - "category": "misc", "key": { - "#": { - "item": "farmersdelight:canvas" - }, - "/": { - "item": "minecraft:stick" - } + "#": "farmersdelight:canvas", + "/": "minecraft:stick" }, "pattern": [ "/ /", @@ -15,7 +10,6 @@ "/#/" ], "result": { - "count": 1, "id": "farmersdelight:wooden_basket" } } \ No newline at end of file diff --git a/src/generated/resources/data/farmersdelight/recipe/yellow_canvas_sign.json b/src/generated/resources/data/farmersdelight/recipe/yellow_canvas_sign.json index b3a602bb5..068c341e4 100644 --- a/src/generated/resources/data/farmersdelight/recipe/yellow_canvas_sign.json +++ b/src/generated/resources/data/farmersdelight/recipe/yellow_canvas_sign.json @@ -1,17 +1,11 @@ { "type": "minecraft:crafting_shapeless", - "category": "misc", "group": "fd_canvas_sign", "ingredients": [ - { - "tag": "farmersdelight:canvas_signs" - }, - { - "tag": "c:dyes/yellow" - } + "#farmersdelight:canvas_signs", + "#c:dyes/yellow" ], "result": { - "count": 1, "id": "farmersdelight:yellow_canvas_sign" } } \ No newline at end of file diff --git a/src/generated/resources/data/farmersdelight/recipe/yellow_hanging_canvas_sign.json b/src/generated/resources/data/farmersdelight/recipe/yellow_hanging_canvas_sign.json index 9ca76d65b..b57899069 100644 --- a/src/generated/resources/data/farmersdelight/recipe/yellow_hanging_canvas_sign.json +++ b/src/generated/resources/data/farmersdelight/recipe/yellow_hanging_canvas_sign.json @@ -1,17 +1,11 @@ { "type": "minecraft:crafting_shapeless", - "category": "misc", "group": "fd_hanging_canvas_sign", "ingredients": [ - { - "tag": "farmersdelight:hanging_canvas_signs" - }, - { - "tag": "c:dyes/yellow" - } + "#farmersdelight:hanging_canvas_signs", + "#c:dyes/yellow" ], "result": { - "count": 1, "id": "farmersdelight:yellow_hanging_canvas_sign" } } \ No newline at end of file diff --git a/src/generated/resources/data/farmersdelight/tags/block/drops_cake_slice.json b/src/generated/resources/data/farmersdelight/tags/block/drops_cake_slice.json index f7d0a93fe..7bb664267 100644 --- a/src/generated/resources/data/farmersdelight/tags/block/drops_cake_slice.json +++ b/src/generated/resources/data/farmersdelight/tags/block/drops_cake_slice.json @@ -1,21 +1,5 @@ { "values": [ - "minecraft:candle_cake", - "minecraft:white_candle_cake", - "minecraft:orange_candle_cake", - "minecraft:magenta_candle_cake", - "minecraft:light_blue_candle_cake", - "minecraft:yellow_candle_cake", - "minecraft:lime_candle_cake", - "minecraft:pink_candle_cake", - "minecraft:gray_candle_cake", - "minecraft:light_gray_candle_cake", - "minecraft:cyan_candle_cake", - "minecraft:purple_candle_cake", - "minecraft:blue_candle_cake", - "minecraft:brown_candle_cake", - "minecraft:green_candle_cake", - "minecraft:red_candle_cake", - "minecraft:black_candle_cake" + "#minecraft:candle_cakes" ] } \ No newline at end of file diff --git a/src/generated/resources/data/farmersdelight/tags/block/unaffected_by_rich_soil.json b/src/generated/resources/data/farmersdelight/tags/block/unaffected_by_rich_soil.json index af08c92c5..00184b9bc 100644 --- a/src/generated/resources/data/farmersdelight/tags/block/unaffected_by_rich_soil.json +++ b/src/generated/resources/data/farmersdelight/tags/block/unaffected_by_rich_soil.json @@ -14,6 +14,6 @@ "farmersdelight:sandy_shrub", "#farmersdelight:mushroom_colonies", "#farmersdelight:wild_crops", - "#minecraft:tall_flowers" + "#minecraft:flowers" ] } \ No newline at end of file diff --git a/src/generated/resources/data/farmersdelight/worldgen/configured_feature/patch_sandy_shrub.json b/src/generated/resources/data/farmersdelight/worldgen/configured_feature/patch_sandy_shrub.json index 7092dc200..6554567d9 100644 --- a/src/generated/resources/data/farmersdelight/worldgen/configured_feature/patch_sandy_shrub.json +++ b/src/generated/resources/data/farmersdelight/worldgen/configured_feature/patch_sandy_shrub.json @@ -1,7 +1,43 @@ { - "type": "minecraft:random_patch", + "type": "farmersdelight:wild_crop", "config": { - "feature": { + "primary_feature": { + "feature": { + "type": "minecraft:simple_block", + "config": { + "to_place": { + "type": "minecraft:simple_state_provider", + "state": { + "Name": "farmersdelight:sandy_shrub" + } + } + } + }, + "placement": [ + { + "type": "minecraft:block_predicate_filter", + "predicate": { + "type": "minecraft:all_of", + "predicates": [ + { + "type": "minecraft:matching_blocks", + "blocks": "minecraft:air" + }, + { + "type": "minecraft:matching_block_tag", + "offset": [ + 0, + -1, + 0 + ], + "tag": "minecraft:sand" + } + ] + } + } + ] + }, + "secondary_feature": { "feature": { "type": "minecraft:simple_block", "config": { diff --git a/src/generated/resources/data/farmersdelight/worldgen/configured_feature/patch_wild_rice.json b/src/generated/resources/data/farmersdelight/worldgen/configured_feature/patch_wild_rice.json index 4a82b591a..3341b5710 100644 --- a/src/generated/resources/data/farmersdelight/worldgen/configured_feature/patch_wild_rice.json +++ b/src/generated/resources/data/farmersdelight/worldgen/configured_feature/patch_wild_rice.json @@ -1,46 +1,6 @@ { "type": "farmersdelight:wild_rice", "config": { - "feature": { - "feature": { - "type": "minecraft:simple_block", - "config": { - "to_place": { - "type": "minecraft:simple_state_provider", - "state": { - "Name": "farmersdelight:wild_rice", - "Properties": { - "half": "lower", - "waterlogged": "true" - } - } - } - } - }, - "placement": [ - { - "type": "minecraft:block_predicate_filter", - "predicate": { - "type": "minecraft:all_of", - "predicates": [ - { - "type": "minecraft:matching_blocks", - "blocks": "minecraft:air" - }, - { - "type": "minecraft:matching_block_tag", - "offset": [ - 0, - -1, - 0 - ], - "tag": "minecraft:dirt" - } - ] - } - } - ] - }, "tries": 96, "xz_spread": 7, "y_spread": 3 diff --git a/src/generated/resources/data/minecraft/tags/block/tall_flowers.json b/src/generated/resources/data/minecraft/tags/block/flowers.json similarity index 100% rename from src/generated/resources/data/minecraft/tags/block/tall_flowers.json rename to src/generated/resources/data/minecraft/tags/block/flowers.json diff --git a/src/generated/resources/data/minecraft/tags/block/mushroom_grow_block.json b/src/generated/resources/data/minecraft/tags/block/huge_brown_mushroom_can_place_on.json similarity index 100% rename from src/generated/resources/data/minecraft/tags/block/mushroom_grow_block.json rename to src/generated/resources/data/minecraft/tags/block/huge_brown_mushroom_can_place_on.json diff --git a/src/generated/resources/data/minecraft/tags/block/bamboo_plantable_on.json b/src/generated/resources/data/minecraft/tags/block/supports_bamboo.json similarity index 100% rename from src/generated/resources/data/minecraft/tags/block/bamboo_plantable_on.json rename to src/generated/resources/data/minecraft/tags/block/supports_bamboo.json diff --git a/src/generated/resources/data/minecraft/tags/item/enchantable/sword.json b/src/generated/resources/data/minecraft/tags/item/enchantable/sword.json deleted file mode 100644 index 53304a5a5..000000000 --- a/src/generated/resources/data/minecraft/tags/item/enchantable/sword.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "values": [ - "#farmersdelight:tools/knives", - "farmersdelight:skillet" - ] -} \ No newline at end of file diff --git a/src/generated/resources/data/minecraft/tags/item/small_flowers.json b/src/generated/resources/data/minecraft/tags/item/small_flowers.json deleted file mode 100644 index 909a76dc7..000000000 --- a/src/generated/resources/data/minecraft/tags/item/small_flowers.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "values": [ - "farmersdelight:wild_carrots", - "farmersdelight:wild_potatoes", - "farmersdelight:wild_beetroots", - "farmersdelight:wild_cabbages", - "farmersdelight:wild_tomatoes", - "farmersdelight:wild_onions" - ] -} \ No newline at end of file diff --git a/src/generated/resources/data/minecraft/tags/item/tall_flowers.json b/src/generated/resources/data/minecraft/tags/item/tall_flowers.json deleted file mode 100644 index 64b40ddb4..000000000 --- a/src/generated/resources/data/minecraft/tags/item/tall_flowers.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "values": [ - "farmersdelight:wild_rice" - ] -} \ No newline at end of file diff --git a/src/generated/resources/data/neoforge/loot_modifiers/global_loot_modifiers.json b/src/generated/resources/data/neoforge/loot_modifiers/global_loot_modifiers.json deleted file mode 100644 index e8f288dc4..000000000 --- a/src/generated/resources/data/neoforge/loot_modifiers/global_loot_modifiers.json +++ /dev/null @@ -1,42 +0,0 @@ -{ - "entries": [ - "farmersdelight:add_loot_abandoned_mineshaft", - "farmersdelight:add_loot_bastion_hoglin_stable", - "farmersdelight:add_loot_bastion_treasure", - "farmersdelight:add_loot_end_city_treasure", - "farmersdelight:add_loot_pillager_outpost", - "farmersdelight:add_loot_ruined_portal", - "farmersdelight:add_loot_shipwreck_supply", - "farmersdelight:add_loot_simple_dungeon", - "farmersdelight:add_loot_village_butcher", - "farmersdelight:add_loot_village_desert_house", - "farmersdelight:add_loot_village_plains_house", - "farmersdelight:add_loot_village_savanna_house", - "farmersdelight:add_loot_village_snowy_house", - "farmersdelight:add_loot_village_taiga_house", - "farmersdelight:add_onion_to_illagers", - "farmersdelight:add_onion_to_zombies", - "farmersdelight:scavenging_feather", - "farmersdelight:scavenging_ham_from_hoglin", - "farmersdelight:scavenging_ham_from_pig", - "farmersdelight:scavenging_leather", - "farmersdelight:scavenging_rabbit_hide", - "farmersdelight:scavenging_shulker_shell", - "farmersdelight:scavenging_smoked_ham_from_hoglin", - "farmersdelight:scavenging_smoked_ham_from_pig", - "farmersdelight:scavenging_string", - "farmersdelight:scavenging_pumpkin", - "farmersdelight:slicing_apple_pie", - "farmersdelight:slicing_cake", - "farmersdelight:slicing_chocolate_pie", - "farmersdelight:slicing_pumpkin_pie", - "farmersdelight:slicing_sweet_berry_cheesecake", - "farmersdelight:slicing_candle_cake", - "farmersdelight:straw_from_grass", - "farmersdelight:straw_from_mature_rice", - "farmersdelight:straw_from_mature_wheat", - "farmersdelight:straw_from_sandy_shrub", - "farmersdelight:straw_from_tall_grass" - ], - "replace": false -} \ No newline at end of file diff --git a/src/main/java/vectorwing/farmersdelight/FarmersDelight.java b/src/main/java/vectorwing/farmersdelight/FarmersDelight.java index 5e5ee3a9e..be5180336 100644 --- a/src/main/java/vectorwing/farmersdelight/FarmersDelight.java +++ b/src/main/java/vectorwing/farmersdelight/FarmersDelight.java @@ -5,6 +5,7 @@ import net.neoforged.fml.common.Mod; import net.neoforged.fml.config.ModConfig; import net.neoforged.fml.loading.FMLEnvironment; +import net.neoforged.api.distmarker.Dist; import net.neoforged.neoforge.client.gui.ConfigurationScreen; import net.neoforged.neoforge.client.gui.IConfigScreenFactory; import net.neoforged.neoforge.common.NeoForge; @@ -25,8 +26,9 @@ public class FarmersDelight public FarmersDelight(IEventBus modEventBus, ModContainer modContainer) { modEventBus.addListener(CommonSetup::init); - if (FMLEnvironment.dist.isClient()) { + if (FMLEnvironment.getDist() == Dist.CLIENT) { modEventBus.addListener(ClientSetupEvents::init); + modEventBus.addListener(ClientSetupEvents::registerRecipeBookSearchCategories); modContainer.registerExtensionPoint(IConfigScreenFactory.class, ConfigurationScreen::new); } @@ -45,6 +47,7 @@ public FarmersDelight(IEventBus modEventBus, ModContainer modContainer) { ModMenuTypes.MENU_TYPES.register(modEventBus); ModRecipeTypes.RECIPE_TYPES.register(modEventBus); ModRecipeSerializers.RECIPE_SERIALIZERS.register(modEventBus); + ModRecipeBookCategories.RECIPE_BOOK_CATEGORIES.register(modEventBus); ModBiomeFeatures.FEATURES.register(modEventBus); ModCreativeTabs.CREATIVE_TABS.register(modEventBus); ModPlacementModifiers.PLACEMENT_MODIFIERS.register(modEventBus); diff --git a/src/main/java/vectorwing/farmersdelight/client/event/ClientSetupEvents.java b/src/main/java/vectorwing/farmersdelight/client/event/ClientSetupEvents.java index 38dc17a2e..b569be2c4 100644 --- a/src/main/java/vectorwing/farmersdelight/client/event/ClientSetupEvents.java +++ b/src/main/java/vectorwing/farmersdelight/client/event/ClientSetupEvents.java @@ -1,23 +1,14 @@ package vectorwing.farmersdelight.client.event; -import net.minecraft.client.model.HumanoidModel; -import net.minecraft.client.renderer.BlockEntityWithoutLevelRenderer; import net.minecraft.client.renderer.entity.ThrownItemRenderer; -import net.minecraft.client.renderer.item.ItemProperties; -import net.minecraft.resources.ResourceLocation; -import net.minecraft.world.InteractionHand; -import net.minecraft.world.entity.LivingEntity; -import net.minecraft.world.item.ItemStack; import net.neoforged.api.distmarker.Dist; import net.neoforged.bus.api.EventPriority; import net.neoforged.bus.api.SubscribeEvent; import net.neoforged.fml.common.EventBusSubscriber; import net.neoforged.fml.event.lifecycle.FMLClientSetupEvent; +import net.neoforged.neoforge.client.event.RegisterRecipeBookSearchCategoriesEvent; import net.neoforged.neoforge.client.event.*; -import net.neoforged.neoforge.client.extensions.common.IClientItemExtensions; -import net.neoforged.neoforge.client.extensions.common.RegisterClientExtensionsEvent; -import org.jetbrains.annotations.NotNull; -import org.jetbrains.annotations.Nullable; +import net.minecraft.resources.Identifier; import vectorwing.farmersdelight.FarmersDelight; import vectorwing.farmersdelight.client.gui.CookingPotScreen; import vectorwing.farmersdelight.client.gui.CookingPotTooltip; @@ -26,42 +17,25 @@ import vectorwing.farmersdelight.client.particle.StarParticle; import vectorwing.farmersdelight.client.particle.SteamParticle; import vectorwing.farmersdelight.client.recipebook.RecipeCategories; -import vectorwing.farmersdelight.client.renderer.*; -import vectorwing.farmersdelight.common.EnumParameters; -import vectorwing.farmersdelight.common.block.entity.StoveBlockEntity; -import vectorwing.farmersdelight.common.item.component.ItemStackWrapper; +import vectorwing.farmersdelight.client.renderer.CuttingBoardRenderer; +import vectorwing.farmersdelight.client.renderer.DefaultStoveRenderer; +import vectorwing.farmersdelight.client.renderer.CanvasSignRenderer; +import vectorwing.farmersdelight.client.renderer.HangingCanvasSignRenderer; +import vectorwing.farmersdelight.client.renderer.SkilletItemRenderer; +import vectorwing.farmersdelight.client.renderer.SkilletRenderer; import vectorwing.farmersdelight.common.registry.*; @EventBusSubscriber(modid = FarmersDelight.MODID, value = Dist.CLIENT) public class ClientSetupEvents { public static void init(final FMLClientSetupEvent event) { - event.enqueueWork(() -> ItemProperties.register(ModItems.SKILLET.get(), ResourceLocation.withDefaultNamespace("cooking"), - (stack, world, entity, s) -> stack.getOrDefault(ModDataComponents.SKILLET_INGREDIENT, ItemStackWrapper.EMPTY).getStack().isEmpty() ? 0 : 1) - ); } - @SubscribeEvent - public static void registerClientExtensions(RegisterClientExtensionsEvent event) { - event.registerItem(new IClientItemExtensions() - { - BlockEntityWithoutLevelRenderer renderer = new SkilletItemRenderer(); - - @Override - public @NotNull BlockEntityWithoutLevelRenderer getCustomRenderer() { - return renderer; - } - - @Override - public HumanoidModel.@Nullable ArmPose getArmPose(LivingEntity living, InteractionHand hand, ItemStack stack) { - return stack.has(ModDataComponents.SKILLET_FLIP_TIMESTAMP.get()) ? EnumParameters.PROXY_SKILLET_FLIP.getValue() : null; - } - }, ModItems.SKILLET.get()); - } - - @SubscribeEvent - public static void registerRecipeBookCategories(RegisterRecipeBookCategoriesEvent event) { - RecipeCategories.init(event); + public static void registerRecipeBookSearchCategories(RegisterRecipeBookSearchCategoriesEvent event) { + event.register(RecipeCategories.COOKING_SEARCH, + ModRecipeBookCategories.COOKING_MEALS.get(), + ModRecipeBookCategories.COOKING_DRINKS.get(), + ModRecipeBookCategories.COOKING_MISC.get()); } @SubscribeEvent @@ -74,14 +48,19 @@ public static void registerGuiLayers(RegisterGuiLayersEvent event) { HUDOverlays.register(event); } + @SubscribeEvent + public static void registerSpecialModelRenderers(RegisterSpecialModelRendererEvent event) { + event.register(Identifier.fromNamespaceAndPath(FarmersDelight.MODID, "skillet_ingredient"), SkilletItemRenderer.Unbaked.MAP_CODEC); + } + @SubscribeEvent public static void onRegisterRenderers(EntityRenderersEvent.RegisterRenderers event) { event.registerEntityRenderer(ModEntityTypes.ROTTEN_TOMATO.get(), ThrownItemRenderer::new); - event.registerBlockEntityRenderer(ModBlockEntityTypes.STOVE.get(), DefaultStoveRenderer::new); event.registerBlockEntityRenderer(ModBlockEntityTypes.CUTTING_BOARD.get(), CuttingBoardRenderer::new); + event.registerBlockEntityRenderer(ModBlockEntityTypes.SKILLET.get(), SkilletRenderer::new); + event.registerBlockEntityRenderer(ModBlockEntityTypes.STOVE.get(), DefaultStoveRenderer::new); event.registerBlockEntityRenderer(ModBlockEntityTypes.CANVAS_SIGN.get(), CanvasSignRenderer::new); event.registerBlockEntityRenderer(ModBlockEntityTypes.HANGING_CANVAS_SIGN.get(), HangingCanvasSignRenderer::new); - event.registerBlockEntityRenderer(ModBlockEntityTypes.SKILLET.get(), SkilletRenderer::new); } @SubscribeEvent @@ -89,7 +68,7 @@ public static void registerMenuScreens(RegisterMenuScreensEvent event) { event.register(ModMenuTypes.COOKING_POT.get(), CookingPotScreen::new); } - @SubscribeEvent(priority = EventPriority.LOWEST) + @SubscribeEvent public static void registerParticles(RegisterParticleProvidersEvent event) { event.registerSpriteSet(ModParticleTypes.STAR.get(), StarParticle.Factory::new); event.registerSpriteSet(ModParticleTypes.STEAM.get(), SteamParticle.Factory::new); diff --git a/src/main/java/vectorwing/farmersdelight/client/event/KeybindEvents.java b/src/main/java/vectorwing/farmersdelight/client/event/KeybindEvents.java index c8dbfa311..6e0b189be 100644 --- a/src/main/java/vectorwing/farmersdelight/client/event/KeybindEvents.java +++ b/src/main/java/vectorwing/farmersdelight/client/event/KeybindEvents.java @@ -7,7 +7,7 @@ import net.neoforged.bus.api.SubscribeEvent; import net.neoforged.fml.common.EventBusSubscriber; import net.neoforged.neoforge.client.event.ClientTickEvent; -import net.neoforged.neoforge.network.PacketDistributor; +import net.neoforged.neoforge.client.network.ClientPacketDistributor; import vectorwing.farmersdelight.FarmersDelight; import vectorwing.farmersdelight.common.item.SkilletItem; import vectorwing.farmersdelight.common.network.payload.FlipSkilletPayload; @@ -24,7 +24,7 @@ public static void preClientTick(ClientTickEvent.Pre event) { // Run this on pre ItemStack useItem = player.getUseItem(); if (useItem.getItem() instanceof SkilletItem && !useItem.has(ModDataComponents.SKILLET_FLIP_TIMESTAMP.get())) { while (mc.options.keyAttack.consumeClick()) { - PacketDistributor.sendToServer(FlipSkilletPayload.INSTANCE); + ClientPacketDistributor.sendToServer(FlipSkilletPayload.INSTANCE); } } } diff --git a/src/main/java/vectorwing/farmersdelight/client/event/TooltipEvents.java b/src/main/java/vectorwing/farmersdelight/client/event/TooltipEvents.java index 06e00ac46..2e3a70d62 100644 --- a/src/main/java/vectorwing/farmersdelight/client/event/TooltipEvents.java +++ b/src/main/java/vectorwing/farmersdelight/client/event/TooltipEvents.java @@ -1,12 +1,6 @@ package vectorwing.farmersdelight.client.event; -import com.mojang.datafixers.util.Pair; -import net.minecraft.network.chat.Component; -import net.minecraft.network.chat.MutableComponent; import net.minecraft.world.effect.MobEffectInstance; -import net.minecraft.world.effect.MobEffectUtil; -import net.minecraft.world.entity.player.Player; -import net.minecraft.world.food.FoodProperties; import net.minecraft.world.item.Item; import net.minecraft.world.item.Items; import net.neoforged.api.distmarker.Dist; @@ -18,8 +12,6 @@ import vectorwing.farmersdelight.common.FoodValues; import vectorwing.farmersdelight.common.utility.TextUtils; -import java.util.List; - @EventBusSubscriber(modid = FarmersDelight.MODID, value = Dist.CLIENT) public class TooltipEvents { @@ -35,19 +27,10 @@ public static void addTooltipToVanillaSoups(ItemTooltipEvent event) { return; } - FoodProperties soupEffects = FoodValues.VANILLA_SOUP_EFFECTS.get(food); + MobEffectInstance soupEffect = FoodValues.VANILLA_SOUP_EFFECTS.get(food); - if (soupEffects != null) { - List tooltip = event.getToolTip(); - for (FoodProperties.PossibleEffect effect : soupEffects.effects()) { - MobEffectInstance effectInstance = effect.effect(); - MutableComponent effectText = Component.translatable(effectInstance.getDescriptionId()); - Player player = event.getEntity(); - if (effectInstance.getDuration() > 20) { - effectText = Component.translatable("potion.withDuration", effectText, MobEffectUtil.formatDuration(effectInstance, 1, player == null ? 20 : player.level().tickRateManager().tickrate())); - } - tooltip.add(effectText.withStyle(effectInstance.getEffect().value().getCategory().getTooltipFormatting())); - } + if (soupEffect != null) { + TextUtils.addEffectTooltip(soupEffect, event.getToolTip()::add, 1.0F, event.getContext().tickRate()); } } } diff --git a/src/main/java/vectorwing/farmersdelight/client/gui/CanvasSignEditScreen.java b/src/main/java/vectorwing/farmersdelight/client/gui/CanvasSignEditScreen.java index 70139f1d2..a57f0f3e7 100644 --- a/src/main/java/vectorwing/farmersdelight/client/gui/CanvasSignEditScreen.java +++ b/src/main/java/vectorwing/farmersdelight/client/gui/CanvasSignEditScreen.java @@ -1,58 +1,58 @@ package vectorwing.farmersdelight.client.gui; -import com.mojang.blaze3d.vertex.VertexConsumer; -import com.mojang.math.Axis; -import net.minecraft.client.gui.GuiGraphics; +import net.minecraft.client.gui.GuiGraphicsExtractor; import net.minecraft.client.gui.screens.inventory.SignEditScreen; -import net.minecraft.client.renderer.blockentity.SignRenderer; -import net.minecraft.client.renderer.texture.OverlayTexture; -import net.minecraft.client.resources.model.Material; +import net.minecraft.client.renderer.RenderPipelines; +import net.minecraft.resources.Identifier; import net.minecraft.world.item.DyeColor; -import net.minecraft.world.level.block.Block; import net.minecraft.world.level.block.StandingSignBlock; import net.minecraft.world.level.block.entity.SignBlockEntity; import net.minecraft.world.level.block.state.BlockState; +import vectorwing.farmersdelight.FarmersDelight; import vectorwing.farmersdelight.common.block.state.CanvasSign; -import vectorwing.farmersdelight.common.registry.ModAtlases; - -import javax.annotation.Nullable; public class CanvasSignEditScreen extends SignEditScreen { - @Nullable - protected SignRenderer.SignModel signModel; - @Nullable - protected DyeColor dye; - protected final boolean isFrontText; + private static final String TEXTURE_PATH = "textures/block/"; + private static final int TEXTURE_SIZE = 32; + private static final int BOARD_U = 0; + private static final int FRONT_BOARD_V = 2; + private static final int BACK_BOARD_V = 16; + private static final int BOARD_WIDTH = 24; + private static final int BOARD_HEIGHT = 12; + private static final int POST_U = 28; + private static final int FRONT_POST_V = 0; + private static final int BACK_POST_V = 16; + private static final int POST_WIDTH = 2; + private static final int POST_HEIGHT = 14; + + private final Identifier texture; + private final boolean showPost; + private final boolean isFront; public CanvasSignEditScreen(SignBlockEntity signBlockEntity, boolean isFront, boolean isTextFilteringEnabled) { super(signBlockEntity, isFront, isTextFilteringEnabled); - Block block = signBlockEntity.getBlockState().getBlock(); - if (block instanceof CanvasSign canvasSign) { - this.dye = canvasSign.getBackgroundColor(); - } - this.isFrontText = isFront; + BlockState state = signBlockEntity.getBlockState(); + this.texture = getTexture(state); + this.showPost = state.getBlock() instanceof StandingSignBlock; + this.isFront = isFront; } @Override - protected void init() { - super.init(); - this.signModel = SignRenderer.createSignModel(this.minecraft.getEntityModels(), this.woodType); + protected void extractSignBackground(GuiGraphicsExtractor graphics) { + graphics.pose().translate(0.0F, 27.0F); + graphics.pose().scale(MAGIC_BACKGROUND_SCALE, MAGIC_BACKGROUND_SCALE); + int boardV = this.isFront ? FRONT_BOARD_V : BACK_BOARD_V; + graphics.blit(RenderPipelines.GUI_TEXTURED, this.texture, -12, -13, BOARD_U, boardV, BOARD_WIDTH, BOARD_HEIGHT, TEXTURE_SIZE, TEXTURE_SIZE); + if (this.showPost) { + int postV = this.isFront ? FRONT_POST_V : BACK_POST_V; + graphics.blit(RenderPipelines.GUI_TEXTURED, this.texture, -1, -1, POST_U, postV, POST_WIDTH, POST_HEIGHT, TEXTURE_SIZE, TEXTURE_SIZE); + } } - @Override - protected void renderSignBackground(GuiGraphics guiGraphics, BlockState state) { - if (this.signModel != null) { - boolean flag = state.getBlock() instanceof StandingSignBlock; - guiGraphics.pose().translate(0.0F, 31.0F, 0.0F); - if (!isFrontText) { - guiGraphics.pose().mulPose(Axis.YP.rotationDegrees(180)); - } - guiGraphics.pose().scale(MAGIC_SCALE_NUMBER, MAGIC_SCALE_NUMBER, -MAGIC_SCALE_NUMBER); - Material material = ModAtlases.getCanvasSignMaterial(dye); - VertexConsumer vertexconsumer = material.buffer(guiGraphics.bufferSource(), this.signModel::renderType); - this.signModel.stick.visible = flag; - this.signModel.root.render(guiGraphics.pose(), vertexconsumer, 15728880, OverlayTexture.NO_OVERLAY); - } + private static Identifier getTexture(BlockState state) { + DyeColor backgroundColor = state.getBlock() instanceof CanvasSign canvasSign ? canvasSign.getBackgroundColor() : null; + String textureName = backgroundColor != null ? backgroundColor.getName() + "_canvas_sign" : "canvas_sign"; + return Identifier.fromNamespaceAndPath(FarmersDelight.MODID, TEXTURE_PATH + textureName + ".png"); } } diff --git a/src/main/java/vectorwing/farmersdelight/client/gui/CookingPotRecipeBookComponent.java b/src/main/java/vectorwing/farmersdelight/client/gui/CookingPotRecipeBookComponent.java index 574172063..4b6511a6b 100644 --- a/src/main/java/vectorwing/farmersdelight/client/gui/CookingPotRecipeBookComponent.java +++ b/src/main/java/vectorwing/farmersdelight/client/gui/CookingPotRecipeBookComponent.java @@ -1,58 +1,60 @@ package vectorwing.farmersdelight.client.gui; import net.minecraft.client.gui.components.WidgetSprites; +import net.minecraft.client.gui.screens.recipebook.GhostSlots; import net.minecraft.client.gui.screens.recipebook.RecipeBookComponent; +import net.minecraft.client.gui.screens.recipebook.RecipeCollection; import net.minecraft.network.chat.Component; -import net.minecraft.resources.ResourceLocation; +import net.minecraft.resources.Identifier; +import net.minecraft.util.context.ContextMap; +import net.minecraft.world.entity.player.StackedItemContents; import net.minecraft.world.inventory.Slot; -import net.minecraft.world.item.ItemStack; -import net.minecraft.world.item.crafting.Ingredient; -import net.minecraft.world.item.crafting.RecipeHolder; -import vectorwing.farmersdelight.FarmersDelight; -import vectorwing.farmersdelight.common.crafting.CookingPotRecipe; -import vectorwing.farmersdelight.common.utility.TextUtils; +import net.minecraft.world.item.crafting.display.RecipeDisplay; +import net.minecraft.world.item.crafting.display.ShapelessCraftingRecipeDisplay; +import vectorwing.farmersdelight.client.recipebook.RecipeCategories; +import vectorwing.farmersdelight.common.block.entity.container.CookingPotMenu; -import javax.annotation.Nonnull; -import java.util.List; - -public class CookingPotRecipeBookComponent extends RecipeBookComponent +public class CookingPotRecipeBookComponent extends RecipeBookComponent { - protected static final WidgetSprites RECIPE_BOOK_BUTTONS = new WidgetSprites( - ResourceLocation.fromNamespaceAndPath(FarmersDelight.MODID, "recipe_book/cooking_pot_enabled"), - ResourceLocation.fromNamespaceAndPath(FarmersDelight.MODID, "recipe_book/cooking_pot_disabled"), - ResourceLocation.fromNamespaceAndPath(FarmersDelight.MODID, "recipe_book/cooking_pot_enabled_highlighted"), - ResourceLocation.fromNamespaceAndPath(FarmersDelight.MODID, "recipe_book/cooking_pot_disabled_highlighted")); - - @Override - protected void initFilterButtonTextures() { - this.filterButton.initTextureValues(RECIPE_BOOK_BUTTONS); + private static final WidgetSprites FILTER_SPRITES = new WidgetSprites( + Identifier.withDefaultNamespace("recipe_book/furnace_filter_enabled"), + Identifier.withDefaultNamespace("recipe_book/furnace_filter_disabled"), + Identifier.withDefaultNamespace("recipe_book/furnace_filter_enabled_highlighted"), + Identifier.withDefaultNamespace("recipe_book/furnace_filter_disabled_highlighted") + ); + private static final Component FILTER_NAME = Component.translatable("gui.recipebook.toggleRecipes.cookable"); + + public CookingPotRecipeBookComponent(CookingPotMenu menu) { + super(menu, RecipeCategories.cookingPotTabs()); } - public void hide() { - this.setVisible(false); + @Override + protected WidgetSprites getFilterButtonTextures() { + return FILTER_SPRITES; } @Override - @Nonnull - protected Component getRecipeFilterName() { - return TextUtils.container("recipe_book.cookable"); + protected boolean isCraftingSlot(Slot slot) { + return slot.index >= 0 && slot.index < CookingPotMenu.INDEX_MEAL; } @Override - public void setupGhostRecipe(RecipeHolder recipe, List slots) { - ItemStack resultStack = recipe.value().getResultItem(this.minecraft.level.registryAccess()); - this.ghostRecipe.setRecipe(recipe); - if (slots.get(6).getItem().isEmpty()) { - this.ghostRecipe.addIngredient(Ingredient.of(resultStack), (slots.get(6)).x, (slots.get(6)).y); - } - - if (recipe.value() instanceof CookingPotRecipe cookingRecipe) { - ItemStack containerStack = cookingRecipe.getOutputContainer(); - if (!containerStack.isEmpty()) { - this.ghostRecipe.addIngredient(Ingredient.of(containerStack), (slots.get(7)).x, (slots.get(7)).y); + protected void fillGhostRecipe(GhostSlots ghostSlots, RecipeDisplay recipe, ContextMap context) { + ghostSlots.setResult(this.menu.slots.get(CookingPotMenu.INDEX_OUTPUT), context, recipe.result()); + if (recipe instanceof ShapelessCraftingRecipeDisplay cookingRecipe) { + for (int i = 0; i < cookingRecipe.ingredients().size() && i < CookingPotMenu.INDEX_MEAL; i++) { + ghostSlots.setInput(this.menu.slots.get(i), context, cookingRecipe.ingredients().get(i)); } } + } + + @Override + protected Component getRecipeFilterName() { + return FILTER_NAME; + } - this.placeRecipe(this.menu.getGridWidth(), this.menu.getGridHeight(), this.menu.getResultSlotIndex(), recipe, recipe.value().getIngredients().iterator(), 0); + @Override + protected void selectMatchingRecipes(RecipeCollection collection, StackedItemContents stackedContents) { + collection.selectRecipes(stackedContents, display -> display instanceof ShapelessCraftingRecipeDisplay); } } diff --git a/src/main/java/vectorwing/farmersdelight/client/gui/CookingPotScreen.java b/src/main/java/vectorwing/farmersdelight/client/gui/CookingPotScreen.java index b2e53719e..f6640a957 100644 --- a/src/main/java/vectorwing/farmersdelight/client/gui/CookingPotScreen.java +++ b/src/main/java/vectorwing/farmersdelight/client/gui/CookingPotScreen.java @@ -1,177 +1,209 @@ package vectorwing.farmersdelight.client.gui; -import com.mojang.blaze3d.systems.RenderSystem; import net.minecraft.ChatFormatting; -import net.minecraft.client.gui.GuiGraphics; +import net.minecraft.client.gui.GuiGraphicsExtractor; import net.minecraft.client.gui.components.ImageButton; -import net.minecraft.client.gui.components.WidgetSprites; import net.minecraft.client.gui.screens.inventory.AbstractContainerScreen; import net.minecraft.client.gui.screens.recipebook.RecipeBookComponent; import net.minecraft.client.gui.screens.recipebook.RecipeUpdateListener; +import net.minecraft.client.input.CharacterEvent; +import net.minecraft.client.input.KeyEvent; +import net.minecraft.client.input.MouseButtonEvent; +import net.minecraft.client.renderer.RenderPipelines; import net.minecraft.network.chat.Component; -import net.minecraft.network.chat.MutableComponent; -import net.minecraft.resources.ResourceLocation; +import net.minecraft.resources.Identifier; import net.minecraft.world.entity.player.Inventory; -import net.minecraft.world.inventory.ClickType; +import net.minecraft.world.inventory.ContainerInput; import net.minecraft.world.inventory.Slot; import net.minecraft.world.item.ItemStack; +import net.minecraft.world.item.crafting.display.RecipeDisplay; import vectorwing.farmersdelight.FarmersDelight; import vectorwing.farmersdelight.common.Configuration; import vectorwing.farmersdelight.common.block.entity.container.CookingPotMenu; import vectorwing.farmersdelight.common.utility.TextUtils; -import javax.annotation.Nonnull; import javax.annotation.ParametersAreNonnullByDefault; -import java.awt.*; import java.util.ArrayList; import java.util.List; @ParametersAreNonnullByDefault public class CookingPotScreen extends AbstractContainerScreen implements RecipeUpdateListener { - private static final WidgetSprites RECIPE_BUTTON = new WidgetSprites(ResourceLocation.withDefaultNamespace("recipe_book/button"), ResourceLocation.withDefaultNamespace("recipe_book/button")); - private static final ResourceLocation BACKGROUND_TEXTURE = ResourceLocation.fromNamespaceAndPath(FarmersDelight.MODID, "textures/gui/cooking_pot.png"); - private static final Rectangle HEAT_ICON = new Rectangle(47, 55, 17, 15); - private static final Rectangle PROGRESS_ARROW = new Rectangle(89, 25, 0, 17); - - private final CookingPotRecipeBookComponent recipeBookComponent = new CookingPotRecipeBookComponent(); + private static final Identifier BACKGROUND_TEXTURE = Identifier.fromNamespaceAndPath(FarmersDelight.MODID, "textures/gui/cooking_pot.png"); + private static final int HEAT_ICON_X = 47; + private static final int HEAT_ICON_Y = 55; + private static final int HEAT_ICON_WIDTH = 17; + private static final int HEAT_ICON_HEIGHT = 15; + private static final int PROGRESS_ARROW_X = 89; + private static final int PROGRESS_ARROW_Y = 25; + private static final int PROGRESS_ARROW_HEIGHT = 17; + + private final CookingPotRecipeBookComponent recipeBookComponent; private boolean widthTooNarrow; + private boolean recipeBookEnabled; - public CookingPotScreen(CookingPotMenu screenContainer, Inventory inv, Component titleIn) { - super(screenContainer, inv, titleIn); + public CookingPotScreen(CookingPotMenu menu, Inventory inventory, Component title) { + super(menu, inventory, title); + this.recipeBookComponent = new CookingPotRecipeBookComponent(menu); } @Override - public void init() { + protected void init() { super.init(); this.widthTooNarrow = this.width < 379; + this.recipeBookEnabled = Configuration.ENABLE_COOKING_POT_RECIPE_BOOK.get(); this.titleLabelX = 28; - this.recipeBookComponent.init(this.width, this.height, this.minecraft, this.widthTooNarrow, this.menu); - this.leftPos = this.recipeBookComponent.updateScreenPosition(this.width, this.imageWidth); - if (Configuration.ENABLE_COOKING_POT_RECIPE_BOOK.get()) { - this.addRenderableWidget(new ImageButton(this.leftPos + 5, this.height / 2 - 49, 20, 18, RECIPE_BUTTON, (button) -> - { + if (this.recipeBookEnabled) { + this.recipeBookComponent.init(this.width, this.height, this.minecraft, this.widthTooNarrow); + this.leftPos = this.recipeBookComponent.updateScreenPosition(this.width, this.imageWidth); + this.addRenderableWidget(new ImageButton(this.leftPos + 5, this.height / 2 - 49, 20, 18, RecipeBookComponent.RECIPE_BUTTON_SPRITES, button -> { this.recipeBookComponent.toggleVisibility(); this.leftPos = this.recipeBookComponent.updateScreenPosition(this.width, this.imageWidth); button.setPosition(this.leftPos + 5, this.height / 2 - 49); })); - } else { - this.recipeBookComponent.hide(); - this.leftPos = this.recipeBookComponent.updateScreenPosition(this.width, this.imageWidth); + this.addWidget(this.recipeBookComponent); } - this.addWidget(this.recipeBookComponent); - this.setInitialFocus(this.recipeBookComponent); } @Override - protected void containerTick() { - super.containerTick(); - this.recipeBookComponent.tick(); + public void extractRenderState(GuiGraphicsExtractor graphics, int mouseX, int mouseY, float a) { + if (this.recipeBookEnabled && this.recipeBookComponent.isVisible() && this.widthTooNarrow) { + this.extractBackground(graphics, mouseX, mouseY, a); + } else { + super.extractContents(graphics, mouseX, mouseY, a); + } + + graphics.nextStratum(); + if (this.recipeBookEnabled) { + this.recipeBookComponent.extractRenderState(graphics, mouseX, mouseY, a); + graphics.nextStratum(); + } + this.extractCarriedItem(graphics, mouseX, mouseY); + this.extractTooltip(graphics, mouseX, mouseY); + if (this.recipeBookEnabled) { + this.recipeBookComponent.extractTooltip(graphics, mouseX, mouseY, this.hoveredSlot); + } } @Override - public void render(GuiGraphics gui, final int mouseX, final int mouseY, float partialTicks) { - if (this.recipeBookComponent.isVisible() && this.widthTooNarrow) { - this.renderBackground(gui, mouseX, mouseY, partialTicks); - this.recipeBookComponent.render(gui, mouseX, mouseY, partialTicks); - } else { - super.render(gui, mouseX, mouseY, partialTicks); - this.recipeBookComponent.render(gui, mouseX, mouseY, partialTicks); - this.recipeBookComponent.renderGhostRecipe(gui, this.leftPos, this.topPos, false, partialTicks); + public void extractBackground(GuiGraphicsExtractor graphics, int mouseX, int mouseY, float a) { + super.extractBackground(graphics, mouseX, mouseY, a); + graphics.blit(RenderPipelines.GUI_TEXTURED, BACKGROUND_TEXTURE, this.leftPos, this.topPos, 0.0F, 0.0F, this.imageWidth, this.imageHeight, 256, 256); + + if (this.menu.isHeated()) { + graphics.blit(RenderPipelines.GUI_TEXTURED, BACKGROUND_TEXTURE, this.leftPos + HEAT_ICON_X, this.topPos + HEAT_ICON_Y, 176.0F, 0.0F, HEAT_ICON_WIDTH, HEAT_ICON_HEIGHT, 256, 256); } - this.renderMealDisplayTooltip(gui, mouseX, mouseY); - this.renderHeatIndicatorTooltip(gui, mouseX, mouseY); - this.recipeBookComponent.renderTooltip(gui, this.leftPos, this.topPos, mouseX, mouseY); + int progress = this.menu.getCookProgressionScaled(); + graphics.blit(RenderPipelines.GUI_TEXTURED, BACKGROUND_TEXTURE, this.leftPos + PROGRESS_ARROW_X, this.topPos + PROGRESS_ARROW_Y, 176.0F, 15.0F, progress + 1, PROGRESS_ARROW_HEIGHT, 256, 256); } - private void renderHeatIndicatorTooltip(GuiGraphics gui, int mouseX, int mouseY) { - if (this.isHovering(HEAT_ICON.x, HEAT_ICON.y, HEAT_ICON.width, HEAT_ICON.height, mouseX, mouseY)) { - String key = "cooking_pot." + (this.menu.isHeated() ? "heated" : "not_heated"); - gui.renderTooltip(this.font, TextUtils.container(key), mouseX, mouseY); + @Override + protected void extractLabels(GuiGraphicsExtractor gui, int mouseX, int mouseY) { + gui.text(this.font, this.title, this.titleLabelX, this.titleLabelY, 4210752, false); + gui.text(this.font, this.playerInventoryTitle, this.inventoryLabelX, this.inventoryLabelY, 4210752, false); + } + + @Override + protected void extractSlots(GuiGraphicsExtractor graphics, int mouseX, int mouseY) { + super.extractSlots(graphics, mouseX, mouseY); + if (this.recipeBookEnabled) { + this.recipeBookComponent.extractGhostRecipe(graphics, false); } } - protected void renderMealDisplayTooltip(GuiGraphics gui, int mouseX, int mouseY) { + @Override + protected void extractTooltip(GuiGraphicsExtractor graphics, int mouseX, int mouseY) { if (this.minecraft != null && this.minecraft.player != null && this.menu.getCarried().isEmpty() && this.hoveredSlot != null && this.hoveredSlot.hasItem()) { - if (this.hoveredSlot.index == 6) { - List tooltip = new ArrayList<>(); + if (this.hoveredSlot.index == CookingPotMenu.INDEX_MEAL) { + graphics.setComponentTooltipForNextFrame(this.font, this.getMealDisplayTooltip(), mouseX, mouseY); + } else { + super.extractTooltip(graphics, mouseX, mouseY); + } + } else { + super.extractTooltip(graphics, mouseX, mouseY); + } - ItemStack mealStack = this.hoveredSlot.getItem(); - tooltip.add(((MutableComponent) mealStack.getItem().getDescription()).withStyle(mealStack.getRarity().getStyleModifier())); + if (this.isHovering(HEAT_ICON_X, HEAT_ICON_Y, HEAT_ICON_WIDTH, HEAT_ICON_HEIGHT, mouseX, mouseY)) { + String key = "cooking_pot." + (this.menu.isHeated() ? "heated" : "not_heated"); + graphics.setTooltipForNextFrame(this.font, TextUtils.container(key), mouseX, mouseY); + } + } - ItemStack containerStack = this.menu.blockEntity.getContainer(); - if (!containerStack.isEmpty()) { - String container = !containerStack.isEmpty() ? containerStack.getItem().getDescription().getString() : ""; - tooltip.add(TextUtils.container("cooking_pot.served_on", container).withStyle(ChatFormatting.GRAY)); - } + private List getMealDisplayTooltip() { + List tooltip = new ArrayList<>(); + ItemStack mealStack = this.hoveredSlot.getItem(); + tooltip.add(mealStack.getHoverName()); - gui.renderComponentTooltip(font, tooltip, mouseX, mouseY); - } else { - gui.renderTooltip(font, this.hoveredSlot.getItem(), mouseX, mouseY); - } + ItemStack containerStack = this.menu.blockEntity.getContainer(); + if (!containerStack.isEmpty()) { + tooltip.add(TextUtils.container("cooking_pot.served_on", containerStack.getHoverName().getString()).withStyle(ChatFormatting.GRAY)); } + return tooltip; } @Override - protected void renderLabels(GuiGraphics gui, int mouseX, int mouseY) { - super.renderLabels(gui, mouseX, mouseY); - gui.drawString(this.font, this.playerInventoryTitle, 8, (this.imageHeight - 96 + 2), 4210752, false); + protected boolean isHovering(int left, int top, int width, int height, double mouseX, double mouseY) { + return (!this.recipeBookEnabled || !this.widthTooNarrow || !this.recipeBookComponent.isVisible()) && super.isHovering(left, top, width, height, mouseX, mouseY); } @Override - protected void renderBg(GuiGraphics gui, float partialTicks, int mouseX, int mouseY) { - // Render UI background - RenderSystem.setShaderColor(1.0f, 1.0f, 1.0f, 1.0f); - if (this.minecraft == null) - return; - - gui.blit(BACKGROUND_TEXTURE, this.leftPos, this.topPos, 0, 0, this.imageWidth, this.imageHeight); - - // Render heat icon - if (this.menu.isHeated()) { - gui.blit(BACKGROUND_TEXTURE, this.leftPos + HEAT_ICON.x, this.topPos + HEAT_ICON.y, 176, 0, HEAT_ICON.width, HEAT_ICON.height); + public boolean mouseClicked(MouseButtonEvent event, boolean doubleClick) { + if (this.recipeBookEnabled && this.recipeBookComponent.mouseClicked(event, doubleClick)) { + this.setFocused(this.recipeBookComponent); + return true; } + return this.recipeBookEnabled && this.widthTooNarrow && this.recipeBookComponent.isVisible() || super.mouseClicked(event, doubleClick); + } + + @Override + public boolean mouseDragged(MouseButtonEvent event, double dx, double dy) { + return this.recipeBookEnabled && this.recipeBookComponent.mouseDragged(event, dx, dy) || super.mouseDragged(event, dx, dy); + } - // Render progress arrow - int l = this.menu.getCookProgressionScaled(); - gui.blit(BACKGROUND_TEXTURE, this.leftPos + PROGRESS_ARROW.x, this.topPos + PROGRESS_ARROW.y, 176, 15, l + 1, PROGRESS_ARROW.height); + @Override + public boolean keyPressed(KeyEvent event) { + return this.recipeBookEnabled && this.recipeBookComponent.keyPressed(event) || super.keyPressed(event); } @Override - protected boolean isHovering(int x, int y, int width, int height, double mouseX, double mouseY) { - return (!this.widthTooNarrow || !this.recipeBookComponent.isVisible()) && super.isHovering(x, y, width, height, mouseX, mouseY); + public boolean charTyped(CharacterEvent event) { + return this.recipeBookEnabled && this.recipeBookComponent.charTyped(event) || super.charTyped(event); } @Override - public boolean mouseClicked(double mouseX, double mouseY, int buttonId) { - if (this.recipeBookComponent.mouseClicked(mouseX, mouseY, buttonId)) { - this.setFocused(this.recipeBookComponent); - return true; - } - return this.widthTooNarrow && this.recipeBookComponent.isVisible() || super.mouseClicked(mouseX, mouseY, buttonId); + protected boolean hasClickedOutside(double mouseX, double mouseY, int left, int top) { + return super.hasClickedOutside(mouseX, mouseY, left, top) + && (!this.recipeBookEnabled || this.recipeBookComponent.hasClickedOutside(mouseX, mouseY, this.leftPos, this.topPos, this.imageWidth, this.imageHeight)); } @Override - protected boolean hasClickedOutside(double mouseX, double mouseY, int x, int y, int buttonIdx) { - boolean flag = mouseX < (double) x || mouseY < (double) y || mouseX >= (double) (x + this.imageWidth) || mouseY >= (double) (y + this.imageHeight); - return flag && this.recipeBookComponent.hasClickedOutside(mouseX, mouseY, this.leftPos, this.topPos, this.imageWidth, this.imageHeight, buttonIdx); + protected void slotClicked(Slot slot, int slotId, int buttonNum, ContainerInput containerInput) { + super.slotClicked(slot, slotId, buttonNum, containerInput); + if (this.recipeBookEnabled) { + this.recipeBookComponent.slotClicked(slot); + } } @Override - protected void slotClicked(Slot slot, int mouseX, int mouseY, ClickType clickType) { - super.slotClicked(slot, mouseX, mouseY, clickType); - this.recipeBookComponent.slotClicked(slot); + protected void containerTick() { + super.containerTick(); + if (this.recipeBookEnabled) { + this.recipeBookComponent.tick(); + } } @Override public void recipesUpdated() { - this.recipeBookComponent.recipesUpdated(); + if (this.recipeBookEnabled) { + this.recipeBookComponent.recipesUpdated(); + } } @Override - @Nonnull - public RecipeBookComponent getRecipeBookComponent() { - return this.recipeBookComponent; + public void fillGhostRecipe(RecipeDisplay display) { + if (this.recipeBookEnabled) { + this.recipeBookComponent.fillGhostRecipe(display); + } } } diff --git a/src/main/java/vectorwing/farmersdelight/client/gui/CookingPotTooltip.java b/src/main/java/vectorwing/farmersdelight/client/gui/CookingPotTooltip.java index 5af3fd208..2bdd93720 100644 --- a/src/main/java/vectorwing/farmersdelight/client/gui/CookingPotTooltip.java +++ b/src/main/java/vectorwing/farmersdelight/client/gui/CookingPotTooltip.java @@ -3,13 +3,11 @@ import net.minecraft.ChatFormatting; import net.minecraft.client.Minecraft; import net.minecraft.client.gui.Font; -import net.minecraft.client.gui.GuiGraphics; +import net.minecraft.client.gui.GuiGraphicsExtractor; import net.minecraft.client.gui.screens.inventory.tooltip.ClientTooltipComponent; -import net.minecraft.client.renderer.MultiBufferSource; import net.minecraft.network.chat.MutableComponent; import net.minecraft.world.inventory.tooltip.TooltipComponent; import net.minecraft.world.item.ItemStack; -import org.joml.Matrix4f; import vectorwing.farmersdelight.common.utility.TextUtils; public class CookingPotTooltip implements ClientTooltipComponent @@ -25,7 +23,7 @@ public CookingPotTooltip(CookingPotTooltipComponent tooltip) { } @Override - public int getHeight() { + public int getHeight(Font font) { return mealStack.isEmpty() ? textSpacing : textSpacing + ITEM_SIZE; } @@ -42,14 +40,14 @@ public int getWidth(Font font) { } @Override - public void renderImage(Font font, int mouseX, int mouseY, GuiGraphics gui) { + public void extractImage(Font font, int mouseX, int mouseY, int width, int height, GuiGraphicsExtractor gui) { if (mealStack.isEmpty()) return; - gui.renderItem(mealStack, mouseX, mouseY + textSpacing, 0); + gui.item(mealStack, mouseX, mouseY + textSpacing, 0); } @Override - public void renderText(Font font, int x, int y, Matrix4f matrix4f, MultiBufferSource.BufferSource bufferSource) { - Integer color = ChatFormatting.GRAY.getColor(); + public void extractText(GuiGraphicsExtractor gui, Font font, int x, int y) { + Integer color = 0x555555; int gray = color == null ? -1 : color; if (!mealStack.isEmpty()) { @@ -57,11 +55,11 @@ public void renderText(Font font, int x, int y, Matrix4f matrix4f, MultiBufferSo ? TextUtils.tooltip("cooking_pot.single_serving") : TextUtils.tooltip("cooking_pot.many_servings", mealStack.getCount()); - font.drawInBatch(textServingsOf, (float) x, (float) y, gray, true, matrix4f, bufferSource, Font.DisplayMode.NORMAL, 0, 15728880); - font.drawInBatch(mealStack.getHoverName(), x + ITEM_SIZE + MARGIN, y + textSpacing + MARGIN, -1, true, matrix4f, bufferSource, Font.DisplayMode.NORMAL, 0, 15728880); + gui.text(font, textServingsOf, x, y, gray, true); + gui.text(font, mealStack.getHoverName(), x + ITEM_SIZE + MARGIN, y + textSpacing + MARGIN, -1, true); } else { MutableComponent textEmpty = TextUtils.tooltip("cooking_pot.empty"); - font.drawInBatch(textEmpty, x, y, gray, true, matrix4f, bufferSource, Font.DisplayMode.NORMAL, 0, 15728880); + gui.text(font, textEmpty, x, y, gray, true); } } diff --git a/src/main/java/vectorwing/farmersdelight/client/gui/HUDOverlays.java b/src/main/java/vectorwing/farmersdelight/client/gui/HUDOverlays.java index 0997fe7a6..e4516908f 100644 --- a/src/main/java/vectorwing/farmersdelight/client/gui/HUDOverlays.java +++ b/src/main/java/vectorwing/farmersdelight/client/gui/HUDOverlays.java @@ -1,87 +1,84 @@ package vectorwing.farmersdelight.client.gui; -import com.mojang.blaze3d.systems.RenderSystem; import net.minecraft.client.DeltaTracker; import net.minecraft.client.Minecraft; -import net.minecraft.client.gui.GuiGraphics; -import net.minecraft.client.gui.LayeredDraw; -import net.minecraft.resources.ResourceLocation; +import net.minecraft.client.gui.GuiGraphicsExtractor; +import net.minecraft.client.renderer.RenderPipelines; +import net.minecraft.resources.Identifier; import net.minecraft.util.Mth; import net.minecraft.world.effect.MobEffects; import net.minecraft.world.entity.ai.attributes.AttributeInstance; import net.minecraft.world.entity.ai.attributes.Attributes; import net.minecraft.world.entity.player.Player; import net.minecraft.world.food.FoodData; -import net.minecraft.world.level.GameRules; import net.neoforged.neoforge.client.event.RegisterGuiLayersEvent; +import net.neoforged.neoforge.client.gui.GuiLayer; import net.neoforged.neoforge.client.gui.VanillaGuiLayers; -import org.jetbrains.annotations.NotNull; import vectorwing.farmersdelight.FarmersDelight; import vectorwing.farmersdelight.common.Configuration; import vectorwing.farmersdelight.common.registry.ModEffects; import java.util.Random; - /** - * Credits to squeek502 (AppleSkin) for the implementation reference! - * ... + * Credits to squeek502 (AppleSkin) for the implementation reference. */ - public class HUDOverlays { public static int healthIconsOffset; public static int foodIconsOffset; - private static final ResourceLocation MOD_ICONS_TEXTURE = ResourceLocation.fromNamespaceAndPath(FarmersDelight.MODID, "textures/gui/fd_icons.png"); + private static final Identifier MOD_ICONS_TEXTURE = Identifier.fromNamespaceAndPath(FarmersDelight.MODID, "textures/gui/fd_icons.png"); + private static final int MOD_ICONS_TEXTURE_WIDTH = 256; + private static final int MOD_ICONS_TEXTURE_HEIGHT = 256; public static void register(RegisterGuiLayersEvent event) { event.registerBelow( VanillaGuiLayers.PLAYER_HEALTH, - ResourceLocation.fromNamespaceAndPath(FarmersDelight.MODID, "health_offset"), - (guiGraphics, deltaTracker) -> healthIconsOffset = Minecraft.getInstance().gui.leftHeight + Identifier.fromNamespaceAndPath(FarmersDelight.MODID, "health_offset"), + (guiGraphics, deltaTracker) -> healthIconsOffset = Minecraft.getInstance().gui.hud.leftHeight ); event.registerBelow( VanillaGuiLayers.FOOD_LEVEL, - ResourceLocation.fromNamespaceAndPath(FarmersDelight.MODID, "food_offset"), - (guiGraphics, deltaTracker) -> foodIconsOffset = Minecraft.getInstance().gui.rightHeight + Identifier.fromNamespaceAndPath(FarmersDelight.MODID, "food_offset"), + (guiGraphics, deltaTracker) -> foodIconsOffset = Minecraft.getInstance().gui.hud.rightHeight ); event.registerAbove(VanillaGuiLayers.PLAYER_HEALTH, ComfortOverlay.ID, new ComfortOverlay()); event.registerAbove(VanillaGuiLayers.FOOD_LEVEL, NourishmentOverlay.ID, new NourishmentOverlay()); } - public static abstract class BaseOverlay implements LayeredDraw.Layer + public static abstract class BaseOverlay implements GuiLayer { - public abstract void render(Minecraft mc, Player player, GuiGraphics guiGraphics, int left, int right, int top, int guiTicks); + public abstract void render(Minecraft minecraft, Player player, GuiGraphicsExtractor guiGraphics, int left, int right, int top, int guiTicks); @Override - public final void render(@NotNull GuiGraphics guiGraphics, @NotNull DeltaTracker deltaTracker) { + public final void render(GuiGraphicsExtractor guiGraphics, DeltaTracker deltaTracker) { Minecraft minecraft = Minecraft.getInstance(); - if (minecraft.player == null || !shouldRenderOverlay(minecraft, minecraft.player, guiGraphics, minecraft.gui.getGuiTicks())) + if (minecraft.player == null || !shouldRenderOverlay(minecraft, minecraft.player, guiGraphics, minecraft.gui.hud.getGuiTicks())) { return; + } int top = guiGraphics.guiHeight(); - int left = guiGraphics.guiWidth() / 2 - 91; // left of health bar - int right = guiGraphics.guiWidth() / 2 + 91; // right of food bar + int left = guiGraphics.guiWidth() / 2 - 91; + int right = guiGraphics.guiWidth() / 2 + 91; - render(minecraft, minecraft.player, guiGraphics, left, right, top, minecraft.gui.getGuiTicks()); + render(minecraft, minecraft.player, guiGraphics, left, right, top, minecraft.gui.hud.getGuiTicks()); } - public boolean shouldRenderOverlay(Minecraft minecraft, Player player, GuiGraphics guiGraphics, int guiTicks) { - return !minecraft.options.hideGui && minecraft.gameMode != null && minecraft.gameMode.canHurtPlayer(); + public boolean shouldRenderOverlay(Minecraft minecraft, Player player, GuiGraphicsExtractor guiGraphics, int guiTicks) { + return !minecraft.gui.hud.isHidden() && minecraft.gameMode != null && minecraft.gameMode.canHurtPlayer(); } } public static class NourishmentOverlay extends BaseOverlay { - public static final ResourceLocation ID = ResourceLocation.fromNamespaceAndPath(FarmersDelight.MODID, "nourishment"); + public static final Identifier ID = Identifier.fromNamespaceAndPath(FarmersDelight.MODID, "nourishment"); @Override - public void render(Minecraft minecraft, Player player, GuiGraphics guiGraphics, int left, int right, int top, int guiTicks) { + public void render(Minecraft minecraft, Player player, GuiGraphicsExtractor guiGraphics, int left, int right, int top, int guiTicks) { FoodData stats = player.getFoodData(); boolean isPlayerHealingWithSaturation = - player.level().getGameRules().getBoolean(GameRules.RULE_NATURAL_REGENERATION) - && player.isHurt() + player.isHurt() && stats.getSaturationLevel() > 0.0; if (player.getEffect(ModEffects.NOURISHMENT) != null) { @@ -90,20 +87,18 @@ public void render(Minecraft minecraft, Player player, GuiGraphics guiGraphics, } @Override - public boolean shouldRenderOverlay(Minecraft mc, Player player, GuiGraphics guiGraphics, int guiTicks) { - if (!super.shouldRenderOverlay(mc, player, guiGraphics, guiTicks)) - return false; - - return Configuration.ENABLE_NOURISHMENT_HUNGER_OVERLAY.get(); + public boolean shouldRenderOverlay(Minecraft minecraft, Player player, GuiGraphicsExtractor guiGraphics, int guiTicks) { + return super.shouldRenderOverlay(minecraft, player, guiGraphics, guiTicks) + && Configuration.ENABLE_NOURISHMENT_HUNGER_OVERLAY.get(); } } public static class ComfortOverlay extends BaseOverlay { - public static final ResourceLocation ID = ResourceLocation.fromNamespaceAndPath(FarmersDelight.MODID, "comfort"); + public static final Identifier ID = Identifier.fromNamespaceAndPath(FarmersDelight.MODID, "comfort"); @Override - public void render(Minecraft minecraft, Player player, GuiGraphics guiGraphics, int left, int right, int top, int guiTicks) { + public void render(Minecraft minecraft, Player player, GuiGraphicsExtractor guiGraphics, int left, int right, int top, int guiTicks) { FoodData stats = player.getFoodData(); boolean isPlayerEligibleForComfort = stats.getSaturationLevel() == 0.0F @@ -116,59 +111,54 @@ public void render(Minecraft minecraft, Player player, GuiGraphics guiGraphics, } @Override - public boolean shouldRenderOverlay(Minecraft mc, Player player, GuiGraphics guiGraphics, int guiTicks) { - if (!super.shouldRenderOverlay(mc, player, guiGraphics, guiTicks)) - return false; - - return Configuration.ENABLE_COMFORT_HEALTH_OVERLAY.get(); + public boolean shouldRenderOverlay(Minecraft minecraft, Player player, GuiGraphicsExtractor guiGraphics, int guiTicks) { + return super.shouldRenderOverlay(minecraft, player, guiGraphics, guiTicks) + && Configuration.ENABLE_COMFORT_HEALTH_OVERLAY.get(); } } - public static void drawNourishmentOverlay(FoodData foodData, Minecraft minecraft, GuiGraphics graphics, int right, int top, boolean naturalHealing) { + public static void drawNourishmentOverlay(FoodData foodData, Minecraft minecraft, GuiGraphicsExtractor graphics, int right, int top, boolean naturalHealing) { float saturation = foodData.getSaturationLevel(); int foodLevel = foodData.getFoodLevel(); - int ticks = minecraft.gui.getGuiTicks(); - Random rand = new Random(); - rand.setSeed(ticks * 312871); - - RenderSystem.enableBlend(); + int ticks = minecraft.gui.hud.getGuiTicks(); + Random random = new Random(); + random.setSeed(ticks * 312871L); for (int j = 0; j < 10; ++j) { int x = right - j * 8 - 9; int y = top; if (saturation <= 0.0F && ticks % (foodLevel * 3 + 1) == 0) { - y = top + (rand.nextInt(3) - 1); + y = top + (random.nextInt(3) - 1); } - // Background texture - graphics.blit(MOD_ICONS_TEXTURE, x, y, 0, 0, 9, 9); + blitIcon(graphics, x, y, 0, 0, 9, 9); - float effectiveHungerOfBar = (foodData.getFoodLevel()) / 2.0F - j; + float effectiveHungerOfBar = foodData.getFoodLevel() / 2.0F - j; int naturalHealingOffset = naturalHealing ? 18 : 0; - // Gilded hunger icons - if (effectiveHungerOfBar >= 1) - graphics.blit(MOD_ICONS_TEXTURE, x, y, 18 + naturalHealingOffset, 0, 9, 9); - else if (effectiveHungerOfBar >= .5) - graphics.blit(MOD_ICONS_TEXTURE, x, y, 9 + naturalHealingOffset, 0, 9, 9); + if (effectiveHungerOfBar >= 1) { + blitIcon(graphics, x, y, 18 + naturalHealingOffset, 0, 9, 9); + } else if (effectiveHungerOfBar >= .5) { + blitIcon(graphics, x, y, 9 + naturalHealingOffset, 0, 9, 9); + } } - - RenderSystem.disableBlend(); } - public static void drawComfortOverlay(Player player, Minecraft minecraft, GuiGraphics graphics, int left, int top) { - int ticks = minecraft.gui.getGuiTicks(); - Random rand = new Random(); - rand.setSeed((long) (ticks * 312871)); + public static void drawComfortOverlay(Player player, Minecraft minecraft, GuiGraphicsExtractor graphics, int left, int top) { + int ticks = minecraft.gui.hud.getGuiTicks(); + Random random = new Random(); + random.setSeed(ticks * 312871L); int health = Mth.ceil(player.getHealth()); float absorb = Mth.ceil(player.getAbsorptionAmount()); AttributeInstance attrMaxHealth = player.getAttribute(Attributes.MAX_HEALTH); - float healthMax = (float) attrMaxHealth.getValue(); + float healthMax = attrMaxHealth == null ? player.getMaxHealth() : (float) attrMaxHealth.getValue(); int regen = -1; - if (player.hasEffect(MobEffects.REGENERATION)) regen = ticks % 25; + if (player.hasEffect(MobEffects.REGENERATION)) { + regen = ticks % 25; + } int healthRows = Mth.ceil((healthMax + absorb) / 2.0F / 10.0F); int rowHeight = Math.max(10 - (healthRows - 2), 3); @@ -177,27 +167,31 @@ public static void drawComfortOverlay(Player player, Minecraft minecraft, GuiGra int comfortHeartFrame = comfortSheen % 2; int[] textureWidth = {5, 9}; - RenderSystem.enableBlend(); - int healthMaxSingleRow = Mth.ceil(Math.min(healthMax, 20) / 2.0F); - int leftHeightOffset = ((healthRows - 1) * rowHeight); // This keeps the overlay on the bottommost row of hearts + int leftHeightOffset = (healthRows - 1) * rowHeight; for (int i = 0; i < healthMaxSingleRow; ++i) { int column = i % 10; int x = left + column * 8; int y = top + leftHeightOffset; - if (health <= 4) y += rand.nextInt(2); - if (i == regen) y -= 2; + if (health <= 4) { + y += random.nextInt(2); + } + if (i == regen) { + y -= 2; + } if (column == comfortSheen / 2) { - graphics.blit(MOD_ICONS_TEXTURE, x, y, 0, 9, textureWidth[comfortHeartFrame], 9); + blitIcon(graphics, x, y, 0, 9, textureWidth[comfortHeartFrame], 9); } if (column == (comfortSheen / 2) - 1 && comfortHeartFrame == 0) { - graphics.blit(MOD_ICONS_TEXTURE, x + 5, y, 5, 9, 4, 9); + blitIcon(graphics, x + 5, y, 5, 9, 4, 9); } } + } - RenderSystem.disableBlend(); + private static void blitIcon(GuiGraphicsExtractor graphics, int x, int y, int u, int v, int width, int height) { + graphics.blit(RenderPipelines.GUI_TEXTURED, MOD_ICONS_TEXTURE, x, y, u, v, width, height, MOD_ICONS_TEXTURE_WIDTH, MOD_ICONS_TEXTURE_HEIGHT); } } diff --git a/src/main/java/vectorwing/farmersdelight/client/gui/HangingCanvasSignEditScreen.java b/src/main/java/vectorwing/farmersdelight/client/gui/HangingCanvasSignEditScreen.java index 07abe686c..f043f83df 100644 --- a/src/main/java/vectorwing/farmersdelight/client/gui/HangingCanvasSignEditScreen.java +++ b/src/main/java/vectorwing/farmersdelight/client/gui/HangingCanvasSignEditScreen.java @@ -1,48 +1,36 @@ package vectorwing.farmersdelight.client.gui; -import net.minecraft.client.gui.GuiGraphics; -import net.minecraft.client.gui.screens.inventory.AbstractSignEditScreen; -import net.minecraft.network.chat.Component; -import net.minecraft.resources.ResourceLocation; +import net.minecraft.client.gui.GuiGraphicsExtractor; +import net.minecraft.client.gui.screens.inventory.HangingSignEditScreen; +import net.minecraft.client.renderer.RenderPipelines; +import net.minecraft.resources.Identifier; import net.minecraft.world.item.DyeColor; -import net.minecraft.world.level.block.Block; import net.minecraft.world.level.block.entity.SignBlockEntity; import net.minecraft.world.level.block.state.BlockState; -import org.joml.Vector3f; import vectorwing.farmersdelight.FarmersDelight; import vectorwing.farmersdelight.common.block.state.CanvasSign; -public class HangingCanvasSignEditScreen extends AbstractSignEditScreen +public class HangingCanvasSignEditScreen extends HangingSignEditScreen { - private static final Vector3f TEXT_SCALE = new Vector3f(0.9F, 0.9F, 0.9F); + private static final String TEXTURE_PATH = "textures/gui/hanging_signs/"; - protected DyeColor dye; - private final ResourceLocation texture; + private final Identifier texture; - public HangingCanvasSignEditScreen(SignBlockEntity signBlockEntity, boolean isFrontText, boolean isTextFilteringEnabled) { - super(signBlockEntity, isFrontText, isTextFilteringEnabled, Component.translatable("hanging_sign.edit")); - Block block = signBlockEntity.getBlockState().getBlock(); - if (block instanceof CanvasSign canvasSign) { - this.dye = canvasSign.getBackgroundColor(); - } - String dyeName = dye != null ? "_" + dye.getName() : ""; - this.texture = ResourceLocation.fromNamespaceAndPath(FarmersDelight.MODID, "canvas" + dyeName + ".png").withPrefix("textures/gui/hanging_signs/"); + public HangingCanvasSignEditScreen(SignBlockEntity signBlockEntity, boolean isFront, boolean isTextFilteringEnabled) { + super(signBlockEntity, isFront, isTextFilteringEnabled); + this.texture = getTexture(signBlockEntity.getBlockState()); } @Override - protected void offsetSign(GuiGraphics gui, BlockState state) { - gui.pose().translate((float) this.width / 2.0F, 125.0F, 50.0F); + protected void extractSignBackground(GuiGraphicsExtractor graphics) { + graphics.pose().translate(0.0F, -13.0F); + graphics.pose().scale(MAGIC_BACKGROUND_SCALE, MAGIC_BACKGROUND_SCALE); + graphics.blit(RenderPipelines.GUI_TEXTURED, this.texture, -8, -8, 0.0F, 0.0F, 16, 16, 16, 16); } - @Override - protected void renderSignBackground(GuiGraphics gui, BlockState p_250054_) { - gui.pose().translate(0.0F, -13.0F, 0.0F); - gui.pose().scale(4.5F, 4.5F, 1.0F); - gui.blit(this.texture, -8, -8, 0.0F, 0.0F, 16, 16, 16, 16); - } - - @Override - protected Vector3f getSignTextScale() { - return TEXT_SCALE; + private static Identifier getTexture(BlockState state) { + DyeColor backgroundColor = state.getBlock() instanceof CanvasSign canvasSign ? canvasSign.getBackgroundColor() : null; + String textureName = backgroundColor != null ? "canvas_" + backgroundColor.getName() : "canvas"; + return Identifier.fromNamespaceAndPath(FarmersDelight.MODID, TEXTURE_PATH + textureName + ".png"); } } diff --git a/src/main/java/vectorwing/farmersdelight/client/particle/SparkleParticle.java b/src/main/java/vectorwing/farmersdelight/client/particle/SparkleParticle.java index 56dcf0160..d3bbf515e 100644 --- a/src/main/java/vectorwing/farmersdelight/client/particle/SparkleParticle.java +++ b/src/main/java/vectorwing/farmersdelight/client/particle/SparkleParticle.java @@ -3,20 +3,21 @@ import net.minecraft.client.multiplayer.ClientLevel; import net.minecraft.client.particle.*; import net.minecraft.core.particles.SimpleParticleType; +import net.minecraft.util.RandomSource; -public class SparkleParticle extends TextureSheetParticle +public class SparkleParticle extends SingleQuadParticle { private final SpriteSet sprites; protected SparkleParticle(ClientLevel level, double x, double y, double z, SpriteSet sprites, float gravity) { - super(level, x, y, z, 0.0, 0.0, 0.0); + super(level, x, y, z, 0.0, 0.0, 0.0, sprites.get(level.getRandom())); this.lifetime = 4; this.quadSize *= 0.75F; this.sprites = sprites; this.setSpriteFromAge(sprites); } - public int getLightColor(float partialTick) { + public int getLightCoords(float partialTick) { return 15728880; } @@ -32,8 +33,8 @@ public void tick() { } @Override - public ParticleRenderType getRenderType() { - return ParticleRenderType.PARTICLE_SHEET_LIT; + protected SingleQuadParticle.Layer getLayer() { + return SingleQuadParticle.Layer.OPAQUE_TERRAIN; } public static class Factory implements ParticleProvider @@ -44,7 +45,7 @@ public Factory(SpriteSet sprites) { this.sprites = sprites; } - public Particle createParticle(SimpleParticleType type, ClientLevel level, double x, double y, double z, double xSpeed, double ySpeed, double zSpeed) { + public Particle createParticle(SimpleParticleType type, ClientLevel level, double x, double y, double z, double xSpeed, double ySpeed, double zSpeed, RandomSource random) { return new SparkleParticle(level, x, y, z, this.sprites, 0.0F); } } diff --git a/src/main/java/vectorwing/farmersdelight/client/particle/StarParticle.java b/src/main/java/vectorwing/farmersdelight/client/particle/StarParticle.java index 9634dccc3..15a8cc43f 100644 --- a/src/main/java/vectorwing/farmersdelight/client/particle/StarParticle.java +++ b/src/main/java/vectorwing/farmersdelight/client/particle/StarParticle.java @@ -4,11 +4,12 @@ import net.minecraft.client.particle.*; import net.minecraft.core.particles.SimpleParticleType; import net.minecraft.util.Mth; +import net.minecraft.util.RandomSource; -public class StarParticle extends TextureSheetParticle +public class StarParticle extends SingleQuadParticle { - protected StarParticle(ClientLevel level, double posX, double posY, double posZ) { - super(level, posX, posY, posZ, 0.0D, 0.0D, 0.0D); + protected StarParticle(ClientLevel level, double posX, double posY, double posZ, SpriteSet sprites) { + super(level, posX, posY, posZ, 0.0D, 0.0D, 0.0D, sprites.get(level.getRandom())); this.xd *= 0.01F; this.yd *= 0.01F; this.zd *= 0.01F; @@ -19,8 +20,8 @@ protected StarParticle(ClientLevel level, double posX, double posY, double posZ) } @Override - public ParticleRenderType getRenderType() { - return ParticleRenderType.PARTICLE_SHEET_OPAQUE; + protected SingleQuadParticle.Layer getLayer() { + return SingleQuadParticle.Layer.OPAQUE_TERRAIN; } @Override @@ -62,9 +63,9 @@ public Factory(SpriteSet sprite) { } @Override - public Particle createParticle(SimpleParticleType type, ClientLevel level, double x, double y, double z, double xSpeed, double ySpeed, double zSpeed) { - StarParticle particle = new StarParticle(level, x, y + 0.3D, z); - particle.pickSprite(this.spriteSet); + public Particle createParticle(SimpleParticleType type, ClientLevel level, double x, double y, double z, double xSpeed, double ySpeed, double zSpeed, RandomSource random) { + StarParticle particle = new StarParticle(level, x, y + 0.3D, z, this.spriteSet); + particle.setSpriteFromAge(this.spriteSet); particle.setColor(1.0F, 1.0F, 1.0F); return particle; } diff --git a/src/main/java/vectorwing/farmersdelight/client/particle/SteamParticle.java b/src/main/java/vectorwing/farmersdelight/client/particle/SteamParticle.java index f7c5cc25a..90ec369e9 100644 --- a/src/main/java/vectorwing/farmersdelight/client/particle/SteamParticle.java +++ b/src/main/java/vectorwing/farmersdelight/client/particle/SteamParticle.java @@ -3,15 +3,17 @@ import net.minecraft.client.multiplayer.ClientLevel; import net.minecraft.client.particle.*; import net.minecraft.core.particles.SimpleParticleType; +import net.minecraft.util.RandomSource; import javax.annotation.Nonnull; -public class SteamParticle extends TextureSheetParticle +public class SteamParticle extends SingleQuadParticle { - protected SteamParticle(ClientLevel level, double x, double y, double z, double motionX, double motionY, double motionZ) { - super(level, x, y, z); + protected SteamParticle(ClientLevel level, double x, double y, double z, double motionX, double motionY, double motionZ, SpriteSet sprites) { + super(level, x, y, z, motionX, motionY, motionZ, sprites.get(level.getRandom())); this.scale(2.0F); this.setSize(0.25F, 0.25F); + this.setSpriteFromAge(sprites); this.lifetime = this.random.nextInt(50) + 80; @@ -23,8 +25,8 @@ protected SteamParticle(ClientLevel level, double x, double y, double z, double @Override @Nonnull - public ParticleRenderType getRenderType() { - return ParticleRenderType.PARTICLE_SHEET_TRANSLUCENT; + protected SingleQuadParticle.Layer getLayer() { + return SingleQuadParticle.Layer.TRANSLUCENT_TERRAIN; } public void tick() { @@ -53,10 +55,9 @@ public Factory(SpriteSet sprite) { } @Override - public Particle createParticle(SimpleParticleType type, ClientLevel level, double x, double y, double z, double xSpeed, double ySpeed, double zSpeed) { - SteamParticle particle = new SteamParticle(level, x, y + 0.3D, z, xSpeed, ySpeed, zSpeed); + public Particle createParticle(SimpleParticleType type, ClientLevel level, double x, double y, double z, double xSpeed, double ySpeed, double zSpeed, RandomSource random) { + SteamParticle particle = new SteamParticle(level, x, y + 0.3D, z, xSpeed, ySpeed, zSpeed, this.spriteSet); particle.setAlpha(0.6F); - particle.pickSprite(this.spriteSet); return particle; } } diff --git a/src/main/java/vectorwing/farmersdelight/client/particle/package-info.java b/src/main/java/vectorwing/farmersdelight/client/particle/package-info.java index 93c060f8d..c8139d861 100644 --- a/src/main/java/vectorwing/farmersdelight/client/particle/package-info.java +++ b/src/main/java/vectorwing/farmersdelight/client/particle/package-info.java @@ -1,7 +1,5 @@ @ParametersAreNonnullByDefault -@MethodsReturnNonnullByDefault package vectorwing.farmersdelight.client.particle; -import net.minecraft.MethodsReturnNonnullByDefault; import javax.annotation.ParametersAreNonnullByDefault; diff --git a/src/main/java/vectorwing/farmersdelight/client/recipebook/RecipeCategories.java b/src/main/java/vectorwing/farmersdelight/client/recipebook/RecipeCategories.java index 6845f16c4..a60d8f4fa 100644 --- a/src/main/java/vectorwing/farmersdelight/client/recipebook/RecipeCategories.java +++ b/src/main/java/vectorwing/farmersdelight/client/recipebook/RecipeCategories.java @@ -1,35 +1,24 @@ package vectorwing.farmersdelight.client.recipebook; -import com.google.common.collect.ImmutableList; -import net.minecraft.client.RecipeBookCategories; -import net.minecraft.world.inventory.RecipeBookType; -import net.neoforged.neoforge.client.event.RegisterRecipeBookCategoriesEvent; -import vectorwing.farmersdelight.common.crafting.CookingPotRecipe; -import vectorwing.farmersdelight.common.registry.ModRecipeTypes; +import net.minecraft.client.gui.screens.recipebook.RecipeBookComponent; +import net.minecraft.world.item.crafting.ExtendedRecipeBookCategory; +import net.minecraft.world.item.ItemStack; +import vectorwing.farmersdelight.common.registry.ModItems; +import vectorwing.farmersdelight.common.registry.ModRecipeBookCategories; -public class RecipeCategories +import java.util.List; +import java.util.Optional; + +public enum RecipeCategories implements ExtendedRecipeBookCategory { - public static RecipeBookCategories COOKING_SEARCH = RecipeBookCategories.valueOf("FARMERSDELIGHT_COOKING_SEARCH"); - public static RecipeBookCategories COOKING_MEALS = RecipeBookCategories.valueOf("FARMERSDELIGHT_COOKING_MEALS"); - public static RecipeBookCategories COOKING_DRINKS = RecipeBookCategories.valueOf("FARMERSDELIGHT_COOKING_DRINKS"); - public static RecipeBookCategories COOKING_MISC = RecipeBookCategories.valueOf("FARMERSDELIGHT_COOKING_MISC"); + COOKING_SEARCH; - public static void init(RegisterRecipeBookCategoriesEvent event) { - event.registerBookCategories(RecipeBookType.valueOf("FARMERSDELIGHT_COOKING"), ImmutableList.of(COOKING_SEARCH, COOKING_MEALS, COOKING_DRINKS, COOKING_MISC)); - event.registerAggregateCategory(COOKING_SEARCH, ImmutableList.of(COOKING_MEALS, COOKING_DRINKS, COOKING_MISC)); - event.registerRecipeCategoryFinder(ModRecipeTypes.COOKING.get(), recipe -> - { - if (recipe.value() instanceof CookingPotRecipe cookingRecipe) { - CookingPotRecipeBookTab tab = cookingRecipe.getRecipeBookTab(); - if (tab != null) { - return switch (tab) { - case MEALS -> COOKING_MEALS; - case DRINKS -> COOKING_DRINKS; - case MISC -> COOKING_MISC; - }; - } - } - return COOKING_MISC; - }); + public static List cookingPotTabs() { + return List.of( + new RecipeBookComponent.TabInfo(new ItemStack(ModItems.COOKING_POT.get()), Optional.empty(), COOKING_SEARCH), + new RecipeBookComponent.TabInfo(ModItems.COOKING_POT.get(), ModItems.BEEF_STEW.get(), ModRecipeBookCategories.COOKING_MEALS.get()), + new RecipeBookComponent.TabInfo(ModItems.COOKING_POT.get(), ModItems.HOT_COCOA.get(), ModRecipeBookCategories.COOKING_DRINKS.get()), + new RecipeBookComponent.TabInfo(ModItems.COOKING_POT.get(), ModItems.WHEAT_DOUGH.get(), ModRecipeBookCategories.COOKING_MISC.get()) + ); } } diff --git a/src/main/java/vectorwing/farmersdelight/client/renderer/CanvasSignRenderer.java b/src/main/java/vectorwing/farmersdelight/client/renderer/CanvasSignRenderer.java index 7478093a7..12bf26fcc 100644 --- a/src/main/java/vectorwing/farmersdelight/client/renderer/CanvasSignRenderer.java +++ b/src/main/java/vectorwing/farmersdelight/client/renderer/CanvasSignRenderer.java @@ -1,186 +1,11 @@ package vectorwing.farmersdelight.client.renderer; -import com.mojang.blaze3d.vertex.PoseStack; -import com.mojang.blaze3d.vertex.VertexConsumer; -import com.mojang.math.Axis; -import net.minecraft.client.Minecraft; -import net.minecraft.client.gui.Font; -import net.minecraft.client.model.Model; -import net.minecraft.client.model.geom.ModelLayers; -import net.minecraft.client.player.LocalPlayer; -import net.minecraft.client.renderer.MultiBufferSource; import net.minecraft.client.renderer.blockentity.BlockEntityRendererProvider; -import net.minecraft.client.renderer.blockentity.SignRenderer; -import net.minecraft.client.resources.model.Material; -import net.minecraft.core.BlockPos; -import net.minecraft.util.FastColor; -import net.minecraft.util.FormattedCharSequence; -import net.minecraft.util.Mth; -import net.minecraft.world.entity.Entity; -import net.minecraft.world.item.DyeColor; -import net.minecraft.world.level.block.SignBlock; -import net.minecraft.world.level.block.StandingSignBlock; -import net.minecraft.world.level.block.entity.SignBlockEntity; -import net.minecraft.world.level.block.entity.SignText; -import net.minecraft.world.level.block.state.BlockState; -import net.minecraft.world.level.block.state.properties.WoodType; -import net.minecraft.world.phys.Vec3; -import vectorwing.farmersdelight.common.block.state.CanvasSign; -import vectorwing.farmersdelight.common.registry.ModAtlases; +import net.minecraft.client.renderer.blockentity.StandingSignRenderer; -import javax.annotation.Nullable; -import java.util.List; - -public class CanvasSignRenderer extends SignRenderer +public class CanvasSignRenderer extends StandingSignRenderer { - public static final Vec3 TEXT_OFFSET = new Vec3(0.0D, (double) 0.33333334F, (double) 0.046666667F); - private static final int OUTLINE_RENDER_DISTANCE = Mth.square(16); - - private final SignModel signModel; - private final Font font; - public CanvasSignRenderer(BlockEntityRendererProvider.Context context) { super(context); - - this.signModel = new SignRenderer.SignModel(context.bakeLayer(ModelLayers.createSignModelName(WoodType.SPRUCE))); - this.font = context.getFont(); - } - - @Override - public void render(SignBlockEntity sign, float partialTick, PoseStack poseStack, MultiBufferSource bufferSource, int packedLight, int packedOverlay) { - BlockState state = sign.getBlockState(); - SignBlock block = (SignBlock) state.getBlock(); - SignRenderer.SignModel model = signModel; - model.stick.visible = block instanceof StandingSignBlock; - - DyeColor dye = null; - if (block instanceof CanvasSign canvasSign) { - dye = canvasSign.getBackgroundColor(); - } - - renderSignWithText(sign, poseStack, bufferSource, packedLight, packedOverlay, state, block, dye, model); - } - - protected void renderSignWithText(SignBlockEntity sign, PoseStack poseStack, MultiBufferSource bufferSource, int packedLight, int packedOverlay, BlockState state, SignBlock block, @Nullable DyeColor dye, Model model) { - poseStack.pushPose(); - translateSign(poseStack, -block.getYRotationDegrees(state), state); - renderSign(poseStack, bufferSource, packedLight, packedOverlay, dye, model); - renderSignText(sign.getBlockPos(), sign.getFrontText(), poseStack, bufferSource, packedLight, sign.getTextLineHeight(), sign.getMaxTextLineWidth(), true); - renderSignText(sign.getBlockPos(), sign.getBackText(), poseStack, bufferSource, packedLight, sign.getTextLineHeight(), sign.getMaxTextLineWidth(), false); - poseStack.popPose(); - } - - protected void translateSign(PoseStack poseStack, float angle, BlockState state) { - poseStack.translate(0.5F, 0.75F * this.getSignModelRenderScale(), 0.5F); - poseStack.mulPose(Axis.YP.rotationDegrees(angle)); - if (!(state.getBlock() instanceof StandingSignBlock)) { - poseStack.translate(0.0F, -0.3125F, -0.4375F); - } - } - - protected void renderSign(PoseStack poseStack, MultiBufferSource bufferSource, int packedLight, int packedOverlay, @Nullable DyeColor dye, Model model) { - poseStack.pushPose(); - float rootScale = getSignModelRenderScale(); - poseStack.scale(rootScale, -rootScale, -rootScale); - Material material = getCanvasSignMaterial(dye); - VertexConsumer vertexConsumer = material.buffer(bufferSource, model::renderType); - this.renderSignModel(poseStack, packedLight, packedOverlay, model, vertexConsumer); - poseStack.popPose(); - } - - protected void renderSignModel(PoseStack poseStack, int packedLight, int packedOverlay, Model model, VertexConsumer vertexConsumer) { - SignRenderer.SignModel signModel = (SignRenderer.SignModel) model; - signModel.root.render(poseStack, vertexConsumer, packedLight, packedOverlay); - } - - protected void renderSignText(BlockPos pos, SignText text, PoseStack poseStack, MultiBufferSource bufferSource, int packedLight, int textLineHeight, int maxTextLineWidth, boolean isFrontText) { - poseStack.pushPose(); - translateSignText(poseStack, isFrontText, this.getTextOffset()); - - FormattedCharSequence[] formattedCharSequenceList = text.getRenderMessages(Minecraft.getInstance().isTextFilteringEnabled(), (component) -> { - List list = this.font.split(component, maxTextLineWidth); - return list.isEmpty() ? FormattedCharSequence.EMPTY : list.get(0); - }); - - int darkColor; - int baseColor; - boolean hasOutline; - int light; - if (text.hasGlowingText()) { - darkColor = getDarkColor(text, true); - baseColor = text.getColor().getTextColor(); - hasOutline = isOutlineVisible(pos, baseColor); - light = 15728880; - } else { - darkColor = getDarkColor(text, false); - baseColor = darkColor; - hasOutline = false; - light = packedLight; - } - - int verticalOffset = 2 * textLineHeight + this.getCustomVerticalOffset(); - - for (int i = 0; i < 4; ++i) { - FormattedCharSequence formattedCharSequence = formattedCharSequenceList[i]; - float x = (float) (-this.font.width(formattedCharSequence) / 2); - float y = i * textLineHeight - verticalOffset; - if (hasOutline) { - this.font.drawInBatch8xOutline(formattedCharSequence, x, y, baseColor, darkColor, poseStack.last().pose(), bufferSource, light); - } else { - this.font.drawInBatch(formattedCharSequence, x, y, baseColor, false, poseStack.last().pose(), bufferSource, Font.DisplayMode.POLYGON_OFFSET, 0, light); - } - } - - poseStack.popPose(); - } - - private void translateSignText(PoseStack poseStack, boolean isFrontText, Vec3 pos) { - if (!isFrontText) { - poseStack.mulPose(Axis.YP.rotationDegrees(180.0F)); - } - - float textScale = 0.015625F * this.getSignTextRenderScale(); - poseStack.translate(pos.x, pos.y, pos.z); - poseStack.scale(textScale, -textScale, textScale); - } - - public static boolean isOutlineVisible(BlockPos pos, int textColor) { - if (textColor == DyeColor.BLACK.getTextColor()) { - return true; - } else { - Minecraft minecraft = Minecraft.getInstance(); - LocalPlayer localPlayer = minecraft.player; - if (localPlayer != null && minecraft.options.getCameraType().isFirstPerson() && localPlayer.isScoping()) { - return true; - } else { - Entity entity = minecraft.getCameraEntity(); - return entity != null && entity.distanceToSqr(Vec3.atCenterOf(pos)) < (double) OUTLINE_RENDER_DISTANCE; - } - } - } - - protected static int getDarkColor(SignText text, boolean isOutlineVisible) { - int textColor = text.getColor().getTextColor(); - if (textColor == DyeColor.BLACK.getTextColor() && text.hasGlowingText()) { - return -988212; - } else { - double brightness = isOutlineVisible ? 0.4D : 0.6D; - int red = (int) ((double) FastColor.ARGB32.red(textColor) * brightness); - int green = (int) ((double) FastColor.ARGB32.green(textColor) * brightness); - int blue = (int) ((double) FastColor.ARGB32.blue(textColor) * brightness); - return FastColor.ARGB32.color(0, red, green, blue); - } - } - - Vec3 getTextOffset() { - return TEXT_OFFSET; - } - - public int getCustomVerticalOffset() { - return -1; - } - - public Material getCanvasSignMaterial(@Nullable DyeColor dyeColor) { - return ModAtlases.getCanvasSignMaterial(dyeColor); } } diff --git a/src/main/java/vectorwing/farmersdelight/client/renderer/CuttingBoardRenderer.java b/src/main/java/vectorwing/farmersdelight/client/renderer/CuttingBoardRenderer.java index f6193803b..7b9bd17a6 100644 --- a/src/main/java/vectorwing/farmersdelight/client/renderer/CuttingBoardRenderer.java +++ b/src/main/java/vectorwing/farmersdelight/client/renderer/CuttingBoardRenderer.java @@ -2,123 +2,153 @@ import com.mojang.blaze3d.vertex.PoseStack; import com.mojang.math.Axis; -import net.minecraft.client.Minecraft; -import net.minecraft.client.renderer.MultiBufferSource; +import net.minecraft.client.renderer.SubmitNodeCollector; import net.minecraft.client.renderer.blockentity.BlockEntityRenderer; import net.minecraft.client.renderer.blockentity.BlockEntityRendererProvider; -import net.minecraft.client.renderer.entity.ItemRenderer; +import net.minecraft.client.renderer.blockentity.state.BlockEntityRenderState; +import net.minecraft.client.renderer.feature.ModelFeatureRenderer; +import net.minecraft.client.renderer.item.ItemModelResolver; +import net.minecraft.client.renderer.item.ItemStackRenderState; +import net.minecraft.client.renderer.state.level.CameraRenderState; +import net.minecraft.client.renderer.texture.OverlayTexture; import net.minecraft.core.Direction; +import net.minecraft.tags.ItemTags; import net.minecraft.util.Mth; -import net.minecraft.world.item.*; +import net.minecraft.world.item.BlockItem; +import net.minecraft.world.item.Item; +import net.minecraft.world.item.ItemDisplayContext; +import net.minecraft.world.item.ItemStack; +import net.minecraft.world.item.TridentItem; +import net.minecraft.world.phys.Vec3; +import org.jspecify.annotations.Nullable; import vectorwing.farmersdelight.common.block.CuttingBoardBlock; import vectorwing.farmersdelight.common.block.entity.CuttingBoardBlockEntity; import vectorwing.farmersdelight.common.tag.ModTags; +import java.util.ArrayList; +import java.util.Collections; +import java.util.List; import java.util.Random; -public class CuttingBoardRenderer implements BlockEntityRenderer +public class CuttingBoardRenderer implements BlockEntityRenderer { + private final ItemModelResolver itemModelResolver; private final Random random = new Random(); public CuttingBoardRenderer(BlockEntityRendererProvider.Context context) { + this.itemModelResolver = context.itemModelResolver(); } @Override - public void render(CuttingBoardBlockEntity cuttingBoard, float partialTicks, PoseStack poseStack, MultiBufferSource buffer, int packedLight, int packedOverlay) { - ItemStack itemStack = cuttingBoard.getStoredItem(); - if (itemStack.isEmpty()) { + public CuttingBoardRenderState createRenderState() { + return new CuttingBoardRenderState(); + } + + @Override + public void extractRenderState(CuttingBoardBlockEntity cuttingBoard, CuttingBoardRenderState state, float partialTicks, Vec3 cameraPosition, + ModelFeatureRenderer.@Nullable CrumblingOverlay breakProgress) { + BlockEntityRenderer.super.extractRenderState(cuttingBoard, state, partialTicks, cameraPosition, breakProgress); + state.direction = cuttingBoard.getBlockState().getValue(CuttingBoardBlock.FACING).getOpposite(); + + ItemStack stack = cuttingBoard.getStoredItem(); + if (stack.isEmpty()) { + state.items = Collections.emptyList(); return; } - Direction direction = cuttingBoard.getBlockState().getValue(CuttingBoardBlock.FACING).getOpposite(); - int posLong = (int) cuttingBoard.getBlockPos().asLong(); - int seed = itemStack.isEmpty() ? 187 : Item.getId(itemStack.getItem()) + itemStack.getDamageValue(); + int modelCount = this.getModelCount(stack); + int seed = Item.getId(stack.getItem()) + stack.getDamageValue(); this.random.setSeed(seed); - ItemRenderer itemRenderer = Minecraft.getInstance().getItemRenderer(); - int itemRenderCount = this.getModelCount(itemStack); + List items = new ArrayList<>(modelCount); + for (int i = 0; i < modelCount; ++i) { + float xOffset = modelCount == 1 ? 0.0F : (this.random.nextFloat() * 2.0F - 1.0F) * 0.15F * 0.5F; + float zOffset = modelCount == 1 ? 0.0F : (this.random.nextFloat() * 2.0F - 1.0F) * 0.15F * 0.5F; - for (int i = 0; i < itemRenderCount; i++) { - poseStack.pushPose(); + ItemStackRenderState itemState = new ItemStackRenderState(); + this.itemModelResolver.updateForTopItem(itemState, stack, ItemDisplayContext.FIXED, cuttingBoard.getLevel(), null, seed + i); + items.add(new RenderedItem(itemState, getPoseType(stack, cuttingBoard.isItemCarvingBoard()), xOffset, zOffset, getCarvedToolPoseAngle(stack))); + } + state.items = items; + } + @Override + public void submit(CuttingBoardRenderState state, PoseStack poseStack, SubmitNodeCollector submitNodeCollector, CameraRenderState camera) { + for (int i = 0; i < state.items.size(); ++i) { + RenderedItem item = state.items.get(i); poseStack.pushPose(); - boolean isBlockItem = itemRenderer.getModel(itemStack, cuttingBoard.getLevel(), null, 0).applyTransform(ItemDisplayContext.FIXED, poseStack, false).isGui3d(); - poseStack.popPose(); - - float xOffset = itemRenderCount == 1 ? 0 : (this.random.nextFloat() * 2.0F - 1.0F) * 0.15F * 0.5F; - float zOffset = itemRenderCount == 1 ? 0 : (this.random.nextFloat() * 2.0F - 1.0F) * 0.15F * 0.5F; - - if (cuttingBoard.isItemCarvingBoard()) { - renderItemCarved(poseStack, direction, itemStack); - } else if (isBlockItem && !itemStack.is(ModTags.Items.FLAT_ON_CUTTING_BOARD)) { - renderBlock(poseStack, direction, xOffset, i, zOffset); - } else { - renderItemLayingDown(poseStack, direction, xOffset, i, zOffset); - } - - Minecraft.getInstance().getItemRenderer().renderStatic(itemStack, ItemDisplayContext.FIXED, packedLight, packedOverlay, poseStack, buffer, cuttingBoard.getLevel(), posLong); + this.applyPose(poseStack, state.direction, item, i); + item.itemState.submit(poseStack, submitNodeCollector, state.lightCoords, OverlayTexture.NO_OVERLAY, 0); poseStack.popPose(); } } - public void renderItemLayingDown(PoseStack matrixStackIn, Direction direction, float xOffset, int yIndex, float zOffset) { - // Center item above the cutting board - matrixStackIn.translate(0.5D + xOffset, 0.08D + 0.03 * (yIndex + 1), 0.5D + zOffset); - - // Rotate item to face the cutting board's front side - float f = -direction.toYRot(); - matrixStackIn.mulPose(Axis.YP.rotationDegrees(f)); - - // Rotate item flat on the cutting board. Use X and Y from now on - matrixStackIn.mulPose(Axis.XP.rotationDegrees(90.0F)); + private static PoseType getPoseType(ItemStack stack, boolean isItemCarvingBoard) { + if (isItemCarvingBoard) { + return PoseType.CARVED_TOOL; + } + if (stack.getItem() instanceof BlockItem && !stack.is(ModTags.Items.FLAT_ON_CUTTING_BOARD)) { + return PoseType.BLOCK; + } + return PoseType.FLAT_ITEM; + } - // Resize the item - matrixStackIn.scale(0.6F, 0.6F, 0.6F); + private void applyPose(PoseStack poseStack, Direction direction, RenderedItem item, int index) { + switch (item.poseType) { + case CARVED_TOOL -> this.applyCarvedToolPose(poseStack, direction, item.poseAngle); + case BLOCK -> this.applyBlockPose(poseStack, direction, item.xOffset, index, item.zOffset); + case FLAT_ITEM -> this.applyFlatItemPose(poseStack, direction, item.xOffset, index, item.zOffset); + } } - public void renderBlock(PoseStack matrixStackIn, Direction direction, float xOffset, int yIndex, float zOffset) { - // Center block above the cutting board - matrixStackIn.translate(0.5D + xOffset, 0.27D + 0.03 * (yIndex + 1), 0.5D + zOffset); + private void applyFlatItemPose(PoseStack poseStack, Direction direction, float xOffset, int yIndex, float zOffset) { + poseStack.translate(0.5D + xOffset, 0.08D + 0.03D * (yIndex + 1), 0.5D + zOffset); + poseStack.mulPose(Axis.YP.rotationDegrees(-direction.toYRot())); + poseStack.mulPose(Axis.XP.rotationDegrees(90.0F)); + poseStack.scale(0.6F, 0.6F, 0.6F); + } - // Rotate block to face the cutting board's front side - float f = -direction.toYRot(); - matrixStackIn.mulPose(Axis.YP.rotationDegrees(f)); + private void applyBlockPose(PoseStack poseStack, Direction direction, float xOffset, int yIndex, float zOffset) { + poseStack.translate(0.5D + xOffset, 0.27D + 0.03D * (yIndex + 1), 0.5D + zOffset); + poseStack.mulPose(Axis.YP.rotationDegrees(-direction.toYRot())); + poseStack.scale(0.8F, 0.8F, 0.8F); + } - // Resize the block - matrixStackIn.scale(0.8F, 0.8F, 0.8F); + private void applyCarvedToolPose(PoseStack poseStack, Direction direction, float poseAngle) { + poseStack.translate(0.5D, 0.23D, 0.5D); + poseStack.mulPose(Axis.YP.rotationDegrees(-direction.toYRot() + 180.0F)); + poseStack.mulPose(Axis.ZP.rotationDegrees(poseAngle)); + poseStack.scale(0.6F, 0.6F, 0.6F); } - public void renderItemCarved(PoseStack matrixStackIn, Direction direction, ItemStack itemStack) { - // Center item above the cutting board - matrixStackIn.translate(0.5D, 0.23D, 0.5D); - - // Rotate item to face the cutting board's front side - float f = -direction.toYRot() + 180; - matrixStackIn.mulPose(Axis.YP.rotationDegrees(f)); - - // Rotate item to be carved on the surface, A little less so for hoes and pickaxes. - Item toolItem = itemStack.getItem(); - float poseAngle; - if (toolItem instanceof PickaxeItem || toolItem instanceof HoeItem) { - poseAngle = 225.0F; - } else if (toolItem instanceof TridentItem) { - poseAngle = 135.0F; - } else { - poseAngle = 180.0F; + private static float getCarvedToolPoseAngle(ItemStack stack) { + Item item = stack.getItem(); + if (stack.is(ItemTags.PICKAXES) || stack.is(ItemTags.HOES)) { + return 225.0F; } - matrixStackIn.mulPose(Axis.ZP.rotationDegrees(poseAngle)); - - // Resize the item - matrixStackIn.scale(0.6F, 0.6F, 0.6F); + return item instanceof TridentItem ? 135.0F : 180.0F; } - protected int getModelCount(ItemStack stack) { + private int getModelCount(ItemStack stack) { int modelCount = 1; - if (stack.getCount() > 1) { - modelCount += Mth.ceil(((float) stack.getCount() / stack.getMaxStackSize()) * 4); + modelCount += Mth.ceil(((float) stack.getCount() / stack.getMaxStackSize()) * 4.0F); } - return modelCount; } + + public static class CuttingBoardRenderState extends BlockEntityRenderState + { + public List items = Collections.emptyList(); + public Direction direction = Direction.NORTH; + } + + public record RenderedItem(ItemStackRenderState itemState, PoseType poseType, float xOffset, float zOffset, float poseAngle) {} + + public enum PoseType + { + FLAT_ITEM, + BLOCK, + CARVED_TOOL + } } diff --git a/src/main/java/vectorwing/farmersdelight/client/renderer/DefaultStoveRenderer.java b/src/main/java/vectorwing/farmersdelight/client/renderer/DefaultStoveRenderer.java index 1e0920377..28cf2d422 100644 --- a/src/main/java/vectorwing/farmersdelight/client/renderer/DefaultStoveRenderer.java +++ b/src/main/java/vectorwing/farmersdelight/client/renderer/DefaultStoveRenderer.java @@ -2,61 +2,82 @@ import com.mojang.blaze3d.vertex.PoseStack; import com.mojang.math.Axis; -import net.minecraft.client.Minecraft; -import net.minecraft.client.renderer.LevelRenderer; -import net.minecraft.client.renderer.MultiBufferSource; +import net.minecraft.client.renderer.SubmitNodeCollector; import net.minecraft.client.renderer.blockentity.BlockEntityRenderer; import net.minecraft.client.renderer.blockentity.BlockEntityRendererProvider; -import net.minecraft.client.renderer.entity.ItemRenderer; +import net.minecraft.client.renderer.blockentity.state.BlockEntityRenderState; +import net.minecraft.client.renderer.feature.ModelFeatureRenderer; +import net.minecraft.client.renderer.item.ItemModelResolver; +import net.minecraft.client.renderer.item.ItemStackRenderState; +import net.minecraft.client.renderer.state.level.CameraRenderState; +import net.minecraft.client.renderer.texture.OverlayTexture; import net.minecraft.core.Direction; -import net.minecraft.core.NonNullList; import net.minecraft.world.item.ItemDisplayContext; import net.minecraft.world.item.ItemStack; +import net.minecraft.world.level.Level; import net.minecraft.world.phys.Vec2; -import vectorwing.farmersdelight.common.block.StoveBlock; -import vectorwing.farmersdelight.common.block.entity.AbstractStoveBlockEntity; +import net.minecraft.world.phys.Vec3; +import org.jspecify.annotations.Nullable; +import vectorwing.farmersdelight.common.block.AbstractStoveBlock; +import vectorwing.farmersdelight.common.block.entity.StoveBlockEntity; -public class DefaultStoveRenderer implements BlockEntityRenderer +import java.util.ArrayList; +import java.util.Collections; +import java.util.List; + +public class DefaultStoveRenderer implements BlockEntityRenderer { - private static final float SIZE = 0.375F; - private final ItemRenderer itemRenderer; + private final ItemModelResolver itemModelResolver; public DefaultStoveRenderer(BlockEntityRendererProvider.Context context) { - this.itemRenderer = context.getItemRenderer(); + this.itemModelResolver = context.itemModelResolver(); } @Override - public void render(T stove, float partialTicks, PoseStack poseStack, MultiBufferSource buffer, int packedLight, int packedOverlay) { - Direction direction = stove.getBlockState().getValue(StoveBlock.FACING).getOpposite(); + public StoveRenderState createRenderState() { + return new StoveRenderState(); + } - var items = stove.getItems(); - int posLong = (int) stove.getBlockPos().asLong(); + @Override + public void extractRenderState(StoveBlockEntity stove, StoveRenderState state, float partialTicks, Vec3 cameraPosition, + ModelFeatureRenderer.@Nullable CrumblingOverlay breakProgress) { + BlockEntityRenderer.super.extractRenderState(stove, state, partialTicks, cameraPosition, breakProgress); + state.direction = stove.getBlockState().getValue(AbstractStoveBlock.FACING).getOpposite(); - for (int i = 0; i < items.getSlots(); ++i) { - ItemStack stoveStack = items.getStackInSlot(i); - if (stoveStack.isEmpty()) continue; + Level level = stove.getLevel(); + var inventory = stove.getItems(); + List items = new ArrayList<>(); + for (int i = 0; i < inventory.getSlots(); ++i) { + ItemStack stack = inventory.getStackInSlot(i); + if (stack.isEmpty()) { + continue; + } + ItemStackRenderState itemState = new ItemStackRenderState(); + this.itemModelResolver.updateForTopItem(itemState, stack, ItemDisplayContext.FIXED, level, null, (int) stove.getBlockPos().asLong() + i); + items.add(new RenderedItem(itemState, stove.getStoveItemOffset(i))); + } + state.items = items.isEmpty() ? Collections.emptyList() : items; + } + @Override + public void submit(StoveRenderState state, PoseStack poseStack, SubmitNodeCollector submitNodeCollector, CameraRenderState camera) { + for (RenderedItem item : state.items) { poseStack.pushPose(); - - // Center item above the stove poseStack.translate(0.5D, 1.02D, 0.5D); - - // Rotate item to face the stove's front side - float f = -direction.toYRot(); - poseStack.mulPose(Axis.YP.rotationDegrees(f)); - - // Rotate item flat on the stove. Use X and Y from now on + poseStack.mulPose(Axis.YP.rotationDegrees(-state.direction.toYRot())); poseStack.mulPose(Axis.XP.rotationDegrees(90.0F)); - - // Neatly align items according to their index - Vec2 itemOffset = stove.getStoveItemOffset(i); - poseStack.translate(itemOffset.x, itemOffset.y, 0.0D); - - // Resize the items - poseStack.scale(SIZE, SIZE, SIZE); - - itemRenderer.renderStatic(stoveStack, ItemDisplayContext.FIXED, LevelRenderer.getLightColor(stove.getLevel(), stove.getBlockPos().above()), packedOverlay, poseStack, buffer, stove.getLevel(), posLong + i); + poseStack.translate(item.offset.x, item.offset.y, 0.0D); + poseStack.scale(0.375F, 0.375F, 0.375F); + item.itemState.submit(poseStack, submitNodeCollector, state.lightCoords, OverlayTexture.NO_OVERLAY, 0); poseStack.popPose(); } } -} \ No newline at end of file + + public static class StoveRenderState extends BlockEntityRenderState + { + public List items = Collections.emptyList(); + public Direction direction = Direction.NORTH; + } + + public record RenderedItem(ItemStackRenderState itemState, Vec2 offset) {} +} diff --git a/src/main/java/vectorwing/farmersdelight/client/renderer/HangingCanvasSignRenderer.java b/src/main/java/vectorwing/farmersdelight/client/renderer/HangingCanvasSignRenderer.java index bd9c1031f..32f111d29 100644 --- a/src/main/java/vectorwing/farmersdelight/client/renderer/HangingCanvasSignRenderer.java +++ b/src/main/java/vectorwing/farmersdelight/client/renderer/HangingCanvasSignRenderer.java @@ -1,83 +1,11 @@ package vectorwing.farmersdelight.client.renderer; -import com.mojang.blaze3d.vertex.PoseStack; -import com.mojang.blaze3d.vertex.VertexConsumer; -import com.mojang.math.Axis; -import net.minecraft.client.model.Model; -import net.minecraft.client.model.geom.ModelLayers; -import net.minecraft.client.renderer.MultiBufferSource; import net.minecraft.client.renderer.blockentity.BlockEntityRendererProvider; import net.minecraft.client.renderer.blockentity.HangingSignRenderer; -import net.minecraft.client.resources.model.Material; -import net.minecraft.world.item.DyeColor; -import net.minecraft.world.level.block.SignBlock; -import net.minecraft.world.level.block.entity.SignBlockEntity; -import net.minecraft.world.level.block.state.BlockState; -import net.minecraft.world.level.block.state.properties.WoodType; -import net.minecraft.world.phys.Vec3; -import vectorwing.farmersdelight.common.block.state.CanvasSign; -import vectorwing.farmersdelight.common.registry.ModAtlases; -import javax.annotation.Nullable; - -public class HangingCanvasSignRenderer extends CanvasSignRenderer +public class HangingCanvasSignRenderer extends HangingSignRenderer { - private static final Vec3 TEXT_OFFSET = new Vec3(0.0D, (double) -0.32F, (double) 0.073F); - private final HangingSignRenderer.HangingSignModel signModel; - public HangingCanvasSignRenderer(BlockEntityRendererProvider.Context context) { super(context); - this.signModel = new HangingSignRenderer.HangingSignModel(context.bakeLayer(ModelLayers.createHangingSignModelName(WoodType.SPRUCE))); - } - - public float getSignModelRenderScale() { - return 1.0F; - } - - public float getSignTextRenderScale() { - return 0.8F; - } - - @Override - public void render(SignBlockEntity sign, float partialTick, PoseStack poseStack, MultiBufferSource bufferSource, int packedLight, int packedOverlay) { - BlockState state = sign.getBlockState(); - SignBlock block = (SignBlock) state.getBlock(); - HangingSignRenderer.HangingSignModel model = signModel; - model.evaluateVisibleParts(state); - - DyeColor dye = null; - if (block instanceof CanvasSign canvasSign) { - dye = canvasSign.getBackgroundColor(); - } - - renderSignWithText(sign, poseStack, bufferSource, packedLight, packedOverlay, state, block, dye, model); - } - - @Override - protected void translateSign(PoseStack poseStack, float angle, BlockState state) { - poseStack.translate(0.5D, 0.9375D, 0.5D); - poseStack.mulPose(Axis.YP.rotationDegrees(angle)); - poseStack.translate(0.0F, -0.3125F, 0.0F); - } - - @Override - protected void renderSignModel(PoseStack poseStack, int packedLight, int packedOverlay, Model model, VertexConsumer vertexConsumer) { - HangingSignRenderer.HangingSignModel hangingSignModel = (HangingSignRenderer.HangingSignModel) model; - hangingSignModel.root.render(poseStack, vertexConsumer, packedLight, packedOverlay); - } - - @Override - public Material getCanvasSignMaterial(@Nullable DyeColor dyeColor) { - return ModAtlases.getHangingCanvasSignMaterial(dyeColor); - } - - @Override - public int getCustomVerticalOffset() { - return 0; - } - - @Override - Vec3 getTextOffset() { - return TEXT_OFFSET; } } diff --git a/src/main/java/vectorwing/farmersdelight/client/renderer/SkilletItemRenderer.java b/src/main/java/vectorwing/farmersdelight/client/renderer/SkilletItemRenderer.java index 26bbd4345..192eef01b 100644 --- a/src/main/java/vectorwing/farmersdelight/client/renderer/SkilletItemRenderer.java +++ b/src/main/java/vectorwing/farmersdelight/client/renderer/SkilletItemRenderer.java @@ -2,103 +2,66 @@ import com.mojang.blaze3d.vertex.PoseStack; import com.mojang.math.Axis; +import com.mojang.serialization.MapCodec; import net.minecraft.client.Minecraft; -import net.minecraft.client.model.HumanoidModel; -import net.minecraft.client.renderer.BlockEntityWithoutLevelRenderer; -import net.minecraft.client.renderer.MultiBufferSource; -import net.minecraft.util.Mth; -import net.minecraft.world.InteractionHand; -import net.minecraft.world.entity.HumanoidArm; -import net.minecraft.world.entity.LivingEntity; -import net.minecraft.world.item.BlockItem; +import net.minecraft.client.renderer.SubmitNodeCollector; +import net.minecraft.client.renderer.item.ItemStackRenderState; +import net.minecraft.client.renderer.special.SpecialModelRenderer; +import net.minecraft.client.renderer.texture.OverlayTexture; +import net.minecraft.world.item.Item; import net.minecraft.world.item.ItemDisplayContext; import net.minecraft.world.item.ItemStack; -import net.minecraft.world.item.Items; -import net.minecraft.world.level.block.state.BlockState; -import net.neoforged.neoforge.client.IArmPoseTransformer; -import vectorwing.farmersdelight.common.item.SkilletItem; +import org.joml.Vector3fc; +import org.jspecify.annotations.Nullable; import vectorwing.farmersdelight.common.item.component.ItemStackWrapper; import vectorwing.farmersdelight.common.registry.ModDataComponents; -public class SkilletItemRenderer extends BlockEntityWithoutLevelRenderer +import java.util.function.Consumer; + +public class SkilletItemRenderer implements SpecialModelRenderer { - public SkilletItemRenderer() { - super(Minecraft.getInstance().getBlockEntityRenderDispatcher(), Minecraft.getInstance().getEntityModels()); + @Override + public @Nullable ItemStack extractArgument(ItemStack stack) { + ItemStack ingredient = stack.getOrDefault(ModDataComponents.SKILLET_INGREDIENT, ItemStackWrapper.EMPTY).getStack(); + return ingredient.isEmpty() ? null : ingredient.copy(); } @Override - public void renderByItem(ItemStack stack, ItemDisplayContext displayContext, PoseStack poseStack, MultiBufferSource buffer, int packedLight, int packedOverlay) { - //render block - BlockItem item = ((BlockItem) stack.getItem()); - BlockState state = item.getBlock().defaultBlockState(); - - - Minecraft mc = Minecraft.getInstance(); - - ItemStackWrapper stackWrapper = stack.getOrDefault(ModDataComponents.SKILLET_INGREDIENT.get(), ItemStackWrapper.EMPTY); - ItemStack ingredientStack = stackWrapper.getStack(); - - float animation = 0; - - if (!ingredientStack.isEmpty()) { - poseStack.pushPose(); - poseStack.translate(0.5, 1 / 16f, 0.5); - - long gameTime = mc.level.getGameTime(); - if (stack.has(ModDataComponents.SKILLET_FLIP_TIMESTAMP.get()) && displayContext != ItemDisplayContext.GUI) { - long time = stack.get(ModDataComponents.SKILLET_FLIP_TIMESTAMP.get()); - float partialTicks = mc.getTimer().getGameTimeDeltaPartialTick(false); - animation = ((gameTime - time) + partialTicks) / SkilletItem.FLIP_TIME; - animation = Mth.clamp(animation, 0, 1); - float maxH = 0.4F; - poseStack.translate(0, maxH * Mth.sin(animation * Mth.PI), 0); - float rotationAnimation = stack.getOrDefault(ModDataComponents.SKILLET_FLIPPED.get(), false) ? animation + 1.0F : animation; - poseStack.mulPose(Axis.XP.rotationDegrees(180 * rotationAnimation)); - } else { - poseStack.mulPose(Axis.XP.rotationDegrees(stack.getOrDefault(ModDataComponents.SKILLET_FLIPPED.get(), false) ? 180 : 0)); - } - - poseStack.mulPose(Axis.XP.rotationDegrees(90)); - poseStack.scale(0.5F, 0.5F, 0.5F); - - if (displayContext != ItemDisplayContext.GUI) { - var itemRenderer = mc.getItemRenderer(); - itemRenderer.renderStatic(ingredientStack, ItemDisplayContext.FIXED, packedLight, - packedOverlay, poseStack, buffer, null, 0); - } - - poseStack.popPose(); + public void submit(@Nullable ItemStack ingredient, PoseStack poseStack, SubmitNodeCollector submitNodeCollector, int lightCoords, int overlayCoords, + boolean hasFoil, int outlineColor) { + if (ingredient == null || ingredient.isEmpty()) { + return; } - poseStack.pushPose(); - - if (animation != 0 && displayContext.firstPerson()) { - poseStack.translate(0, 0, 1); - poseStack.mulPose(Axis.XN.rotationDegrees(Mth.sin(animation * Mth.TWO_PI) * 15)); - poseStack.translate(0F, 0, -1); - poseStack.translate(0, 0, -Mth.sin(animation * Mth.PI) * 0.2); - } - mc.getBlockRenderer().renderSingleBlock(state, poseStack, buffer, packedLight, packedOverlay); + ItemStackRenderState ingredientState = new ItemStackRenderState(); + int seed = Item.getId(ingredient.getItem()) + ingredient.getDamageValue(); + Minecraft minecraft = Minecraft.getInstance(); + minecraft.getItemModelResolver().updateForTopItem(ingredientState, ingredient, ItemDisplayContext.FIXED, minecraft.level, null, seed); + poseStack.pushPose(); + poseStack.translate(0.5D, 1.0D / 16.0D, 0.5D); + poseStack.mulPose(Axis.XP.rotationDegrees(90.0F)); + poseStack.scale(0.5F, 0.5F, 0.5F); + ingredientState.submit(poseStack, submitNodeCollector, lightCoords, OverlayTexture.NO_OVERLAY, outlineColor); poseStack.popPose(); } - public static class ArmPoseTransformer implements IArmPoseTransformer { + @Override + public void getExtents(Consumer output) { + } + + public record Unbaked() implements SpecialModelRenderer.Unbaked + { + public static final MapCodec MAP_CODEC = MapCodec.unit(new SkilletItemRenderer.Unbaked()); + @Override - public void applyTransform(HumanoidModel model, LivingEntity entity, HumanoidArm arm) { - ItemStack stack = entity.getUseItem(); - if (stack.has(ModDataComponents.SKILLET_FLIP_TIMESTAMP.get())) { - long time = stack.get(ModDataComponents.SKILLET_FLIP_TIMESTAMP.get()); - float partialTicks = Minecraft.getInstance().getTimer().getGameTimeDeltaPartialTick(false); - float animation = ((entity.level().getGameTime() - time) + partialTicks) / SkilletItem.FLIP_TIME; - animation = Mth.clamp(animation, 0, 1); + public @Nullable SkilletItemRenderer bake(SpecialModelRenderer.BakingContext context) { + return new SkilletItemRenderer(); + } - if (arm == HumanoidArm.LEFT) { - model.leftArm.xRot = (-Mth.sin(animation * Mth.TWO_PI) * 15 - 20) * (float) (Math.PI / 180.0); - } else { - model.rightArm.xRot = (-Mth.sin(animation * Mth.TWO_PI) * 15 - 20) * (float) (Math.PI / 180.0); - } - } + @Override + public MapCodec type() { + return MAP_CODEC; } } } diff --git a/src/main/java/vectorwing/farmersdelight/client/renderer/SkilletRenderer.java b/src/main/java/vectorwing/farmersdelight/client/renderer/SkilletRenderer.java index 0a0d27e74..4998388a8 100644 --- a/src/main/java/vectorwing/farmersdelight/client/renderer/SkilletRenderer.java +++ b/src/main/java/vectorwing/farmersdelight/client/renderer/SkilletRenderer.java @@ -2,72 +2,104 @@ import com.mojang.blaze3d.vertex.PoseStack; import com.mojang.math.Axis; -import net.minecraft.client.Minecraft; -import net.minecraft.client.renderer.MultiBufferSource; +import net.minecraft.client.renderer.SubmitNodeCollector; import net.minecraft.client.renderer.blockentity.BlockEntityRenderer; import net.minecraft.client.renderer.blockentity.BlockEntityRendererProvider; +import net.minecraft.client.renderer.blockentity.state.BlockEntityRenderState; +import net.minecraft.client.renderer.feature.ModelFeatureRenderer; +import net.minecraft.client.renderer.item.ItemModelResolver; +import net.minecraft.client.renderer.item.ItemStackRenderState; +import net.minecraft.client.renderer.state.level.CameraRenderState; +import net.minecraft.client.renderer.texture.OverlayTexture; import net.minecraft.core.Direction; -import net.minecraft.util.Mth; import net.minecraft.world.item.Item; import net.minecraft.world.item.ItemDisplayContext; import net.minecraft.world.item.ItemStack; -import net.neoforged.neoforge.items.IItemHandler; -import vectorwing.farmersdelight.common.block.StoveBlock; +import net.minecraft.world.phys.Vec3; +import org.jspecify.annotations.Nullable; +import vectorwing.farmersdelight.common.block.SkilletBlock; import vectorwing.farmersdelight.common.block.entity.SkilletBlockEntity; +import java.util.ArrayList; +import java.util.Collections; +import java.util.List; import java.util.Random; -public class SkilletRenderer implements BlockEntityRenderer +public class SkilletRenderer implements BlockEntityRenderer { + private final ItemModelResolver itemModelResolver; private final Random random = new Random(); public SkilletRenderer(BlockEntityRendererProvider.Context context) { + this.itemModelResolver = context.itemModelResolver(); } @Override - public void render(SkilletBlockEntity skillet, float partialTicks, PoseStack poseStack, MultiBufferSource buffer, int packedLight, int packedOverlay) { - Direction direction = skillet.getBlockState().getValue(StoveBlock.FACING); - IItemHandler inventory = skillet.getInventory(); - int posLong = (int) skillet.getBlockPos().asLong(); - - ItemStack stack = inventory.getStackInSlot(0); - int seed = stack.isEmpty() ? 187 : Item.getId(stack.getItem()) + stack.getDamageValue(); - this.random.setSeed(seed); - - if (!stack.isEmpty()) { - int itemRenderCount = this.getModelCount(stack); - for (int i = 0; i < itemRenderCount; i++) { - poseStack.pushPose(); + public SkilletRenderState createRenderState() { + return new SkilletRenderState(); + } - // Stack up items in the skillet, with a slight offset per item - float xOffset = (this.random.nextFloat() * 2.0F - 1.0F) * 0.15F * 0.5F; - float zOffset = (this.random.nextFloat() * 2.0F - 1.0F) * 0.15F * 0.5F; - poseStack.translate(0.5D + xOffset, 0.1D + 0.03 * (i + 1), 0.5D + zOffset); + @Override + public void extractRenderState(SkilletBlockEntity skillet, SkilletRenderState state, float partialTicks, Vec3 cameraPosition, + ModelFeatureRenderer.@Nullable CrumblingOverlay breakProgress) { + BlockEntityRenderer.super.extractRenderState(skillet, state, partialTicks, cameraPosition, breakProgress); + state.facing = skillet.getBlockState().getValue(SkilletBlock.FACING); - // Rotate item to face the skillet's front side - float degrees = -direction.toYRot(); - poseStack.mulPose(Axis.YP.rotationDegrees(degrees)); + ItemStack stack = skillet.getStoredStack(); + if (stack.isEmpty()) { + state.items = Collections.emptyList(); + return; + } - // Rotate item flat on the skillet. Use X and Y from now on - poseStack.mulPose(Axis.XP.rotationDegrees(90.0F)); + int modelCount = this.getModelCount(stack); + int seed = Item.getId(stack.getItem()) + stack.getDamageValue(); + this.random.setSeed(seed); - // Resize the items - poseStack.scale(0.5F, 0.5F, 0.5F); + List items = new ArrayList<>(modelCount); + for (int i = 0; i < modelCount; ++i) { + ItemStackRenderState itemState = new ItemStackRenderState(); + this.itemModelResolver.updateForTopItem(itemState, stack, ItemDisplayContext.FIXED, skillet.getLevel(), null, seed + i); + items.add(new RenderedItem(itemState, this.randomOffset(), this.randomOffset())); + } + state.items = items; + } - if (skillet.getLevel() != null) - Minecraft.getInstance().getItemRenderer().renderStatic(stack, ItemDisplayContext.FIXED, packedLight, packedOverlay, poseStack, buffer, skillet.getLevel(), posLong); - poseStack.popPose(); - } + @Override + public void submit(SkilletRenderState state, PoseStack poseStack, SubmitNodeCollector submitNodeCollector, CameraRenderState camera) { + for (int i = 0; i < state.items.size(); ++i) { + RenderedItem item = state.items.get(i); + poseStack.pushPose(); + poseStack.translate(0.5D + item.xOffset, 0.1D + 0.03D * (i + 1), 0.5D + item.zOffset); + poseStack.mulPose(Axis.YP.rotationDegrees(-state.facing.toYRot())); + poseStack.mulPose(Axis.XP.rotationDegrees(90.0F)); + poseStack.scale(0.5F, 0.5F, 0.5F); + item.itemState.submit(poseStack, submitNodeCollector, state.lightCoords, OverlayTexture.NO_OVERLAY, 0); + poseStack.popPose(); } } - protected int getModelCount(ItemStack stack) { - int modelCount = 1; + private float randomOffset() { + return (this.random.nextFloat() - 0.5F) * 0.2F; + } - if (stack.getCount() > 1) { - modelCount += Mth.ceil(((float) stack.getCount() / stack.getMaxStackSize()) * 4); + private int getModelCount(ItemStack stack) { + int count = stack.getCount(); + if (count > 48) { + return 5; + } else if (count > 32) { + return 4; + } else if (count > 16) { + return 3; + } else { + return count > 1 ? 2 : 1; } + } - return modelCount; + public static class SkilletRenderState extends BlockEntityRenderState + { + public List items = Collections.emptyList(); + public Direction facing = Direction.NORTH; } + + public record RenderedItem(ItemStackRenderState itemState, float xOffset, float zOffset) {} } diff --git a/src/main/java/vectorwing/farmersdelight/client/renderer/package-info.java b/src/main/java/vectorwing/farmersdelight/client/renderer/package-info.java index 3f4ba16bd..2557050ca 100644 --- a/src/main/java/vectorwing/farmersdelight/client/renderer/package-info.java +++ b/src/main/java/vectorwing/farmersdelight/client/renderer/package-info.java @@ -1,7 +1,5 @@ @ParametersAreNonnullByDefault -@MethodsReturnNonnullByDefault package vectorwing.farmersdelight.client.renderer; -import net.minecraft.MethodsReturnNonnullByDefault; import javax.annotation.ParametersAreNonnullByDefault; diff --git a/src/main/java/vectorwing/farmersdelight/common/CommonSetup.java b/src/main/java/vectorwing/farmersdelight/common/CommonSetup.java index d5a686d88..6ba966dad 100644 --- a/src/main/java/vectorwing/farmersdelight/common/CommonSetup.java +++ b/src/main/java/vectorwing/farmersdelight/common/CommonSetup.java @@ -1,23 +1,14 @@ package vectorwing.farmersdelight.common; -import com.google.common.collect.ImmutableMap; -import com.google.common.collect.ImmutableSet; -import com.google.common.collect.Sets; -import net.minecraft.world.entity.npc.Villager; -import net.minecraft.world.item.Item; import net.minecraft.world.level.block.DispenserBlock; import net.neoforged.fml.event.lifecycle.FMLCommonSetupEvent; import vectorwing.farmersdelight.common.registry.ModItems; -import java.util.HashMap; -import java.util.Set; - public class CommonSetup { public static void init(final FMLCommonSetupEvent event) { event.enqueueWork(() -> { registerDispenserBehaviors(); - registerItemSetAdditions(); }); } @@ -25,25 +16,4 @@ public static void registerDispenserBehaviors() { DispenserBlock.registerProjectileBehavior(ModItems.ROTTEN_TOMATO.get()); } - public static void registerItemSetAdditions() { - Set newWantedItems = Sets.newHashSet( - ModItems.CABBAGE.get(), - ModItems.TOMATO.get(), - ModItems.ONION.get(), - ModItems.RICE.get(), - ModItems.CABBAGE_SEEDS.get(), - ModItems.TOMATO_SEEDS.get(), - ModItems.RICE_PANICLE.get()); - newWantedItems.addAll(Villager.WANTED_ITEMS); - Villager.WANTED_ITEMS = ImmutableSet.copyOf(newWantedItems); - - HashMap newFoodPoints = new HashMap<>(); - newFoodPoints.put(ModItems.CABBAGE.get(), 1); - newFoodPoints.put(ModItems.TOMATO.get(), 1); - newFoodPoints.put(ModItems.ONION.get(), 1); - newFoodPoints.put(ModItems.RICE.get(), 2); - newFoodPoints.putAll(Villager.FOOD_POINTS); - - Villager.FOOD_POINTS = ImmutableMap.copyOf(newFoodPoints); - } } diff --git a/src/main/java/vectorwing/farmersdelight/common/Configuration.java b/src/main/java/vectorwing/farmersdelight/common/Configuration.java index 837ff49ec..2d5c6e04c 100644 --- a/src/main/java/vectorwing/farmersdelight/common/Configuration.java +++ b/src/main/java/vectorwing/farmersdelight/common/Configuration.java @@ -13,8 +13,6 @@ public class Configuration // COMMON public static final String CATEGORY_SETTINGS = "settings"; - public static Supplier ENABLE_FARMERS_BUY_FD_CROPS; - public static Supplier ENABLE_WANDERING_TRADER_SELLS_FD_ITEMS; public static Supplier ENABLE_ROPE_REELING; public static Supplier> CANVAS_SIGN_DARK_BACKGROUND_LIST; @@ -55,10 +53,6 @@ public class Configuration ModConfigSpec.Builder COMMON_BUILDER = new ModConfigSpec.Builder(); COMMON_BUILDER.push(CATEGORY_SETTINGS); - ENABLE_FARMERS_BUY_FD_CROPS = COMMON_BUILDER.comment("If enabled, Novice and Apprentice Farmer villagers will have a chance to buy crops from this mod.") - .define("enableFarmerFDTrades", true); - ENABLE_WANDERING_TRADER_SELLS_FD_ITEMS = COMMON_BUILDER.comment("If enabled, the Wandering Trader will have a chance to sell seeds and plantables from this mod.") - .define("enableWanderingTraderFDTrades", true); ENABLE_ROPE_REELING = COMMON_BUILDER.comment("If enabled, players will be able to reel back rope, bottom to top, when sneak-using with an empty hand on them.") .define("enableRopeReeling", true); CANVAS_SIGN_DARK_BACKGROUND_LIST = COMMON_BUILDER.comment("A list of dye colors that, when used as the background color of a Canvas Sign, should default to white text when placed.", @@ -135,10 +129,6 @@ public class Configuration // Backwards compatibility configs. @Deprecated(forRemoval = true) - public static ModConfigSpec.BooleanValue FARMERS_BUY_FD_CROPS = (ModConfigSpec.BooleanValue) ENABLE_FARMERS_BUY_FD_CROPS; - @Deprecated(forRemoval = true) - public static ModConfigSpec.BooleanValue WANDERING_TRADER_SELLS_FD_ITEMS = (ModConfigSpec.BooleanValue) ENABLE_WANDERING_TRADER_SELLS_FD_ITEMS; - @Deprecated(forRemoval = true) public static ModConfigSpec.BooleanValue ENABLE_RECIPE_BOOK_COOKING_POT = (ModConfigSpec.BooleanValue) ENABLE_COOKING_POT_RECIPE_BOOK; @Deprecated(forRemoval = true) public static ModConfigSpec.BooleanValue VANILLA_SOUP_EXTRA_EFFECTS = (ModConfigSpec.BooleanValue) ENABLE_VANILLA_SOUP_EXTRA_EFFECTS; diff --git a/src/main/java/vectorwing/farmersdelight/common/EnumParameters.java b/src/main/java/vectorwing/farmersdelight/common/EnumParameters.java index ec8c2f0dc..b38cdf287 100644 --- a/src/main/java/vectorwing/farmersdelight/common/EnumParameters.java +++ b/src/main/java/vectorwing/farmersdelight/common/EnumParameters.java @@ -1,34 +1,12 @@ package vectorwing.farmersdelight.common; -import net.minecraft.client.RecipeBookCategories; import net.minecraft.client.model.HumanoidModel; -import net.minecraft.world.entity.HumanoidArm; -import net.minecraft.world.entity.LivingEntity; -import net.minecraft.world.item.ItemStack; -import net.minecraft.world.item.Items; import net.neoforged.fml.common.asm.enumextension.EnumProxy; import net.neoforged.neoforge.client.IArmPoseTransformer; -import vectorwing.farmersdelight.client.renderer.SkilletItemRenderer; -import vectorwing.farmersdelight.common.registry.ModItems; - -import java.util.List; -import java.util.function.Supplier; public class EnumParameters { - public static final EnumProxy PROXY_COOKING_SEARCH = new EnumProxy<>( - RecipeBookCategories.class, (Supplier>) () -> List.of(new ItemStack(Items.COMPASS)) - ); - public static final EnumProxy PROXY_COOKING_MEALS = new EnumProxy<>( - RecipeBookCategories.class, (Supplier>) () -> List.of(new ItemStack(ModItems.VEGETABLE_NOODLES.get())) - ); - public static final EnumProxy PROXY_COOKING_DRINKS = new EnumProxy<>( - RecipeBookCategories.class, (Supplier>) () -> List.of(new ItemStack(ModItems.APPLE_CIDER.get())) - ); - public static final EnumProxy PROXY_COOKING_MISC = new EnumProxy<>( - RecipeBookCategories.class, (Supplier>) () -> List.of(new ItemStack(ModItems.DUMPLINGS.get()), new ItemStack(ModItems.TOMATO_SAUCE.get())) - ); public static final EnumProxy PROXY_SKILLET_FLIP = new EnumProxy<>( - HumanoidModel.ArmPose.class, false, new SkilletItemRenderer.ArmPoseTransformer() + HumanoidModel.ArmPose.class, false, false, (IArmPoseTransformer) (model, renderState, arm) -> {} ); } diff --git a/src/main/java/vectorwing/farmersdelight/common/FoodValues.java b/src/main/java/vectorwing/farmersdelight/common/FoodValues.java index e9baff68b..ba39c9ac6 100644 --- a/src/main/java/vectorwing/farmersdelight/common/FoodValues.java +++ b/src/main/java/vectorwing/farmersdelight/common/FoodValues.java @@ -5,15 +5,21 @@ import net.minecraft.world.effect.MobEffects; import net.minecraft.world.food.FoodProperties; import net.minecraft.world.item.Item; +import net.minecraft.world.item.component.Consumable; +import net.minecraft.world.item.component.Consumables; +import net.minecraft.world.item.consume_effects.ApplyStatusEffectsConsumeEffect; import net.minecraft.world.item.Items; import vectorwing.farmersdelight.common.registry.ModEffects; +import java.util.Collections; +import java.util.IdentityHashMap; import java.util.List; import java.util.Map; -import java.util.Optional; public class FoodValues { + public record FoodEffect(MobEffectInstance effect, float probability) {} + public static final int BRIEF_DURATION = 600; // 30 seconds public static final int SHORT_DURATION = 1200; // 1 minute public static final int MEDIUM_DURATION = 3600; // 3 minutes @@ -33,7 +39,7 @@ public static MobEffectInstance nourishment(int duration) { // Drinks (mostly for effects) public static final FoodProperties APPLE_CIDER = (new FoodProperties.Builder()) - .alwaysEdible().effect(() -> new MobEffectInstance(MobEffects.ABSORPTION, 1200, 0), 1.0F).build(); + .alwaysEdible().build(); // Basic Foods public static final FoodProperties FRIED_EGG = (new FoodProperties.Builder()) @@ -41,39 +47,39 @@ public static MobEffectInstance nourishment(int duration) { public static final FoodProperties TOMATO_SAUCE = (new FoodProperties.Builder()) .nutrition(4).saturationModifier(0.4f).build(); public static final FoodProperties WHEAT_DOUGH = (new FoodProperties.Builder()) - .nutrition(2).saturationModifier(0.3f).effect(() -> new MobEffectInstance(MobEffects.HUNGER, 600, 0), 0.3F).build(); + .nutrition(2).saturationModifier(0.3f).build(); public static final FoodProperties RAW_PASTA = (new FoodProperties.Builder()) - .nutrition(2).saturationModifier(0.3F).effect(() -> new MobEffectInstance(MobEffects.HUNGER, 600, 0), 0.3F).build(); + .nutrition(2).saturationModifier(0.3F).build(); public static final FoodProperties PIE_CRUST = (new FoodProperties.Builder()) .nutrition(2).saturationModifier(0.2f).build(); public static final FoodProperties PUMPKIN_SLICE = (new FoodProperties.Builder()) .nutrition(3).saturationModifier(0.3f).build(); public static final FoodProperties CABBAGE_LEAF = (new FoodProperties.Builder()) - .nutrition(1).saturationModifier(0.4f).fast().build(); + .nutrition(1).saturationModifier(0.4f).build(); public static final FoodProperties MINCED_BEEF = (new FoodProperties.Builder()) - .nutrition(2).saturationModifier(0.3f).fast().build(); + .nutrition(2).saturationModifier(0.3f).build(); public static final FoodProperties BEEF_PATTY = (new FoodProperties.Builder()) - .nutrition(4).saturationModifier(0.8f).fast().build(); + .nutrition(4).saturationModifier(0.8f).build(); public static final FoodProperties CHICKEN_CUTS = (new FoodProperties.Builder()) - .nutrition(1).saturationModifier(0.3f).effect(() -> new MobEffectInstance(MobEffects.HUNGER, 600, 0), 0.3F).fast().build(); + .nutrition(1).saturationModifier(0.3f).build(); public static final FoodProperties COOKED_CHICKEN_CUTS = (new FoodProperties.Builder()) - .nutrition(3).saturationModifier(0.6f).fast().build(); + .nutrition(3).saturationModifier(0.6f).build(); public static final FoodProperties BACON = (new FoodProperties.Builder()) - .nutrition(2).saturationModifier(0.3f).fast().build(); + .nutrition(2).saturationModifier(0.3f).build(); public static final FoodProperties COOKED_BACON = (new FoodProperties.Builder()) - .nutrition(4).saturationModifier(0.8f).fast().build(); + .nutrition(4).saturationModifier(0.8f).build(); public static final FoodProperties COD_SLICE = (new FoodProperties.Builder()) - .nutrition(1).saturationModifier(0.1f).fast().build(); + .nutrition(1).saturationModifier(0.1f).build(); public static final FoodProperties COOKED_COD_SLICE = (new FoodProperties.Builder()) - .nutrition(3).saturationModifier(0.5f).fast().build(); + .nutrition(3).saturationModifier(0.5f).build(); public static final FoodProperties SALMON_SLICE = (new FoodProperties.Builder()) - .nutrition(1).saturationModifier(0.1f).fast().build(); + .nutrition(1).saturationModifier(0.1f).build(); public static final FoodProperties COOKED_SALMON_SLICE = (new FoodProperties.Builder()) - .nutrition(3).saturationModifier(0.8f).fast().build(); + .nutrition(3).saturationModifier(0.8f).build(); public static final FoodProperties MUTTON_CHOPS = (new FoodProperties.Builder()) - .nutrition(1).saturationModifier(0.3f).fast().build(); + .nutrition(1).saturationModifier(0.3f).build(); public static final FoodProperties COOKED_MUTTON_CHOPS = (new FoodProperties.Builder()) - .nutrition(3).saturationModifier(0.8f).fast().build(); + .nutrition(3).saturationModifier(0.8f).build(); public static final FoodProperties HAM = (new FoodProperties.Builder()) .nutrition(5).saturationModifier(0.3f).build(); public static final FoodProperties SMOKED_HAM = (new FoodProperties.Builder()) @@ -81,29 +87,29 @@ public static MobEffectInstance nourishment(int duration) { // Sweets public static final FoodProperties POPSICLE = (new FoodProperties.Builder()) - .nutrition(3).saturationModifier(0.2f).fast().alwaysEdible().build(); + .nutrition(3).saturationModifier(0.2f).alwaysEdible().build(); public static final FoodProperties COOKIES = (new FoodProperties.Builder()) - .nutrition(2).saturationModifier(0.1f).fast().build(); + .nutrition(2).saturationModifier(0.1f).build(); public static final FoodProperties CAKE_SLICE = (new FoodProperties.Builder()) - .nutrition(2).saturationModifier(0.1f).fast() - .effect(() -> new MobEffectInstance(MobEffects.MOVEMENT_SPEED, 400, 0, false, false), 1.0F).build(); + .nutrition(2).saturationModifier(0.1f) + .build(); public static final FoodProperties PIE_SLICE = (new FoodProperties.Builder()) - .nutrition(3).saturationModifier(0.3f).fast() - .effect(() -> new MobEffectInstance(MobEffects.MOVEMENT_SPEED, 600, 0, false, false), 1.0F).build(); + .nutrition(3).saturationModifier(0.3f) + .build(); public static final FoodProperties FRUIT_SALAD = (new FoodProperties.Builder()) .nutrition(6).saturationModifier(0.6f) - .effect(() -> new MobEffectInstance(MobEffects.REGENERATION, 100, 0), 1.0F).build(); + .build(); public static final FoodProperties GLOW_BERRY_CUSTARD = (new FoodProperties.Builder()) .nutrition(7).saturationModifier(0.6f).alwaysEdible() - .effect(() -> new MobEffectInstance(MobEffects.GLOWING, 100, 0), 1.0F).build(); + .build(); // Handheld Foods public static final FoodProperties MIXED_SALAD = (new FoodProperties.Builder()) .nutrition(6).saturationModifier(0.6f) - .effect(() -> new MobEffectInstance(MobEffects.REGENERATION, 100, 0), 1.0F).build(); + .build(); public static final FoodProperties NETHER_SALAD = (new FoodProperties.Builder()) .nutrition(5).saturationModifier(0.4f) - .effect(() -> new MobEffectInstance(MobEffects.CONFUSION, 240, 0), 0.3F).build(); + .build(); public static final FoodProperties BARBECUE_STICK = (new FoodProperties.Builder()) .nutrition(8).saturationModifier(0.9f).build(); public static final FoodProperties EGG_SANDWICH = (new FoodProperties.Builder()) @@ -126,107 +132,174 @@ public static MobEffectInstance nourishment(int duration) { .nutrition(7).saturationModifier(0.6f).build(); public static final FoodProperties COD_ROLL = (new FoodProperties.Builder()) .nutrition(7).saturationModifier(0.6f).build(); - public static final FoodProperties KELP_ROLL = new FoodProperties(12, 12, false, 2.4f, Optional.empty(), List.of()); + public static final FoodProperties KELP_ROLL = new FoodProperties(12, 2.4f, false); public static final FoodProperties KELP_ROLL_SLICE = (new FoodProperties.Builder()) - .nutrition(6).saturationModifier(0.5f).fast().build(); + .nutrition(6).saturationModifier(0.5f).build(); // Bowl Foods public static final FoodProperties COOKED_RICE = (new FoodProperties.Builder()) .nutrition(6).saturationModifier(0.4f) - .effect(() -> nourishment(BRIEF_DURATION), 1.0F).build(); + .build(); public static final FoodProperties BONE_BROTH = (new FoodProperties.Builder()) .nutrition(8).saturationModifier(0.7f) - .effect(() -> nourishment(SHORT_DURATION), 1.0F).build(); + .build(); public static final FoodProperties BEEF_STEW = (new FoodProperties.Builder()) .nutrition(12).saturationModifier(0.8f) - .effect(() -> nourishment(MEDIUM_DURATION), 1.0F).build(); + .build(); public static final FoodProperties VEGETABLE_SOUP = (new FoodProperties.Builder()) .nutrition(12).saturationModifier(0.8f) - .effect(() -> nourishment(MEDIUM_DURATION), 1.0F).build(); + .build(); public static final FoodProperties FISH_STEW = (new FoodProperties.Builder()) .nutrition(12).saturationModifier(0.8f) - .effect(() -> nourishment(MEDIUM_DURATION), 1.0F).build(); + .build(); public static final FoodProperties ONION_SOUP = (new FoodProperties.Builder()) .nutrition(12).saturationModifier(0.8f) - .effect(() -> nourishment(MEDIUM_DURATION), 1.0F).build(); + .build(); public static final FoodProperties CHICKEN_SOUP = (new FoodProperties.Builder()) .nutrition(12).saturationModifier(0.8f) - .effect(() -> nourishment(MEDIUM_DURATION), 1.0F).build(); + .build(); public static final FoodProperties FRIED_RICE = (new FoodProperties.Builder()) .nutrition(12).saturationModifier(0.8f) - .effect(() -> nourishment(MEDIUM_DURATION), 1.0F).build(); + .build(); public static final FoodProperties PUMPKIN_SOUP = (new FoodProperties.Builder()) .nutrition(14).saturationModifier(0.75f) - .effect(() -> nourishment(LONG_DURATION), 1.0F).build(); + .build(); public static final FoodProperties BAKED_COD_STEW = (new FoodProperties.Builder()) .nutrition(14).saturationModifier(0.75f) - .effect(() -> nourishment(LONG_DURATION), 1.0F).build(); + .build(); public static final FoodProperties NOODLE_SOUP = (new FoodProperties.Builder()) .nutrition(14).saturationModifier(0.75f) - .effect(() -> nourishment(LONG_DURATION), 1.0F).build(); + .build(); // Plated Foods public static final FoodProperties BACON_AND_EGGS = (new FoodProperties.Builder()) .nutrition(10).saturationModifier(0.6f) - .effect(() -> nourishment(SHORT_DURATION), 1.0F).build(); + .build(); public static final FoodProperties RATATOUILLE = (new FoodProperties.Builder()) .nutrition(10).saturationModifier(0.6f) - .effect(() -> nourishment(SHORT_DURATION), 1.0F).build(); + .build(); public static final FoodProperties STEAK_AND_POTATOES = (new FoodProperties.Builder()) .nutrition(12).saturationModifier(0.8f) - .effect(() -> nourishment(MEDIUM_DURATION), 1.0F).build(); + .build(); public static final FoodProperties PASTA_WITH_MEATBALLS = (new FoodProperties.Builder()) .nutrition(12).saturationModifier(0.8f) - .effect(() -> nourishment(MEDIUM_DURATION), 1.0F).build(); + .build(); public static final FoodProperties PASTA_WITH_MUTTON_CHOP = (new FoodProperties.Builder()) .nutrition(12).saturationModifier(0.8f) - .effect(() -> nourishment(MEDIUM_DURATION), 1.0F).build(); + .build(); public static final FoodProperties MUSHROOM_RICE = (new FoodProperties.Builder()) .nutrition(12).saturationModifier(0.8f) - .effect(() -> nourishment(MEDIUM_DURATION), 1.0F).build(); + .build(); public static final FoodProperties ROASTED_MUTTON_CHOPS = (new FoodProperties.Builder()) .nutrition(14).saturationModifier(0.75f) - .effect(() -> nourishment(LONG_DURATION), 1.0F).build(); + .build(); public static final FoodProperties VEGETABLE_NOODLES = (new FoodProperties.Builder()) .nutrition(14).saturationModifier(0.75f) - .effect(() -> nourishment(LONG_DURATION), 1.0F).build(); + .build(); public static final FoodProperties SQUID_INK_PASTA = (new FoodProperties.Builder()) .nutrition(14).saturationModifier(0.75f) - .effect(() -> nourishment(LONG_DURATION), 1.0F).build(); + .build(); public static final FoodProperties GRILLED_SALMON = (new FoodProperties.Builder()) .nutrition(14).saturationModifier(0.75f) - .effect(() -> nourishment(MEDIUM_DURATION), 1.0F).build(); + .build(); // Feast Portions public static final FoodProperties ROAST_CHICKEN = (new FoodProperties.Builder()) .nutrition(14).saturationModifier(0.75f) - .effect(() -> nourishment(LONG_DURATION), 1.0F).build(); + .build(); public static final FoodProperties STUFFED_PUMPKIN = (new FoodProperties.Builder()) .nutrition(14).saturationModifier(0.75f) - .effect(() -> nourishment(LONG_DURATION), 1.0F).build(); + .build(); public static final FoodProperties HONEY_GLAZED_HAM = (new FoodProperties.Builder()) .nutrition(14).saturationModifier(0.75f) - .effect(() -> nourishment(LONG_DURATION), 1.0F).build(); + .build(); public static final FoodProperties SHEPHERDS_PIE = (new FoodProperties.Builder()) .nutrition(14).saturationModifier(0.75f) - .effect(() -> nourishment(LONG_DURATION), 1.0F).build(); + .build(); public static final FoodProperties GLEAMING_SALAD = (new FoodProperties.Builder()) .nutrition(14).saturationModifier(0.75f) - .effect(() -> nourishment(LONG_DURATION), 1.0F).build(); + .build(); public static final FoodProperties DOG_FOOD = (new FoodProperties.Builder()) .nutrition(4).saturationModifier(0.2f).build(); // Vanilla SoupItems - public static final Map VANILLA_SOUP_EFFECTS = (new ImmutableMap.Builder()) - .put(Items.MUSHROOM_STEW, (new FoodProperties.Builder()) - .effect(() -> nourishment(MEDIUM_DURATION), 1.0F).build()) - .put(Items.BEETROOT_SOUP, (new FoodProperties.Builder()) - .effect(() -> nourishment(MEDIUM_DURATION), 1.0F).build()) - .put(Items.RABBIT_STEW, (new FoodProperties.Builder()) - .effect(() -> nourishment(LONG_DURATION), 1.0F).build()) + public static final Map VANILLA_SOUP_EFFECTS = (new ImmutableMap.Builder()) + .put(Items.MUSHROOM_STEW, nourishment(MEDIUM_DURATION)) + .put(Items.BEETROOT_SOUP, nourishment(MEDIUM_DURATION)) + .put(Items.RABBIT_STEW, nourishment(LONG_DURATION)) .build(); public static final FoodProperties RABBIT_STEW_BUFF = (new FoodProperties.Builder()) - .nutrition(14).saturationModifier(0.75f).effect(() -> nourishment(LONG_DURATION), 1.0F).usingConvertsTo(Items.BOWL).build(); + .nutrition(14).saturationModifier(0.75f).build(); + + private static final Map> FOOD_EFFECTS = createFoodEffects(); + + public static List effects(FoodProperties food) { + return FOOD_EFFECTS.getOrDefault(food, List.of()); + } + + public static Consumable consumable(FoodProperties food) { + return addEffects(Consumables.defaultFood(), food).build(); + } + + public static Consumable drinkConsumable(FoodProperties food) { + return addEffects(Consumables.defaultDrink(), food).build(); + } + + private static Consumable.Builder addEffects(Consumable.Builder builder, FoodProperties food) { + for (FoodEffect effect : effects(food)) { + builder.onConsume(new ApplyStatusEffectsConsumeEffect(effect.effect(), effect.probability())); + } + return builder; + } + + private static Map> createFoodEffects() { + IdentityHashMap> effects = new IdentityHashMap<>(); + effects.put(APPLE_CIDER, effect(new MobEffectInstance(MobEffects.ABSORPTION, 1200, 0))); + effects.put(WHEAT_DOUGH, effect(new MobEffectInstance(MobEffects.HUNGER, 600, 0), 0.3F)); + effects.put(RAW_PASTA, effect(new MobEffectInstance(MobEffects.HUNGER, 600, 0), 0.3F)); + effects.put(CHICKEN_CUTS, effect(new MobEffectInstance(MobEffects.HUNGER, 600, 0), 0.3F)); + effects.put(CAKE_SLICE, effect(new MobEffectInstance(MobEffects.SPEED, 400, 0, false, false))); + effects.put(PIE_SLICE, effect(new MobEffectInstance(MobEffects.SPEED, 600, 0, false, false))); + effects.put(FRUIT_SALAD, effect(new MobEffectInstance(MobEffects.REGENERATION, 100, 0))); + effects.put(GLOW_BERRY_CUSTARD, effect(new MobEffectInstance(MobEffects.GLOWING, 100, 0))); + effects.put(MIXED_SALAD, effect(new MobEffectInstance(MobEffects.REGENERATION, 100, 0))); + effects.put(NETHER_SALAD, effect(new MobEffectInstance(MobEffects.NAUSEA, 240, 0), 0.3F)); + effects.put(COOKED_RICE, effect(nourishment(BRIEF_DURATION))); + effects.put(BONE_BROTH, effect(nourishment(SHORT_DURATION))); + effects.put(BEEF_STEW, effect(nourishment(MEDIUM_DURATION))); + effects.put(VEGETABLE_SOUP, effect(nourishment(MEDIUM_DURATION))); + effects.put(FISH_STEW, effect(nourishment(MEDIUM_DURATION))); + effects.put(CHICKEN_SOUP, effect(nourishment(LONG_DURATION))); + effects.put(FRIED_RICE, effect(nourishment(LONG_DURATION))); + effects.put(PUMPKIN_SOUP, effect(nourishment(LONG_DURATION))); + effects.put(BAKED_COD_STEW, effect(nourishment(LONG_DURATION))); + effects.put(NOODLE_SOUP, effect(nourishment(LONG_DURATION))); + effects.put(BACON_AND_EGGS, effect(nourishment(SHORT_DURATION))); + effects.put(RATATOUILLE, effect(nourishment(SHORT_DURATION))); + effects.put(STEAK_AND_POTATOES, effect(nourishment(MEDIUM_DURATION))); + effects.put(PASTA_WITH_MEATBALLS, effect(nourishment(MEDIUM_DURATION))); + effects.put(PASTA_WITH_MUTTON_CHOP, effect(nourishment(MEDIUM_DURATION))); + effects.put(MUSHROOM_RICE, effect(nourishment(MEDIUM_DURATION))); + effects.put(ROASTED_MUTTON_CHOPS, effect(nourishment(LONG_DURATION))); + effects.put(VEGETABLE_NOODLES, effect(nourishment(LONG_DURATION))); + effects.put(SQUID_INK_PASTA, effect(nourishment(LONG_DURATION))); + effects.put(GRILLED_SALMON, effect(nourishment(MEDIUM_DURATION))); + effects.put(ROAST_CHICKEN, effect(nourishment(LONG_DURATION))); + effects.put(STUFFED_PUMPKIN, effect(nourishment(LONG_DURATION))); + effects.put(HONEY_GLAZED_HAM, effect(nourishment(LONG_DURATION))); + effects.put(SHEPHERDS_PIE, effect(nourishment(LONG_DURATION))); + effects.put(GLEAMING_SALAD, effect(nourishment(LONG_DURATION))); + effects.put(RABBIT_STEW_BUFF, effect(nourishment(LONG_DURATION))); + return Collections.unmodifiableMap(effects); + } + + private static List effect(MobEffectInstance effect) { + return effect(effect, 1.0F); + } + + private static List effect(MobEffectInstance effect, float probability) { + return List.of(new FoodEffect(effect, probability)); + } } diff --git a/src/main/java/vectorwing/farmersdelight/common/advancement/CuttingBoardTrigger.java b/src/main/java/vectorwing/farmersdelight/common/advancement/CuttingBoardTrigger.java index ac961372e..a2398b031 100644 --- a/src/main/java/vectorwing/farmersdelight/common/advancement/CuttingBoardTrigger.java +++ b/src/main/java/vectorwing/farmersdelight/common/advancement/CuttingBoardTrigger.java @@ -2,10 +2,10 @@ import com.mojang.serialization.Codec; import com.mojang.serialization.codecs.RecordCodecBuilder; -import net.minecraft.advancements.Criterion; -import net.minecraft.advancements.critereon.ContextAwarePredicate; -import net.minecraft.advancements.critereon.EntityPredicate; -import net.minecraft.advancements.critereon.SimpleCriterionTrigger; +import net.minecraft.advancements.triggers.Criterion; +import net.minecraft.advancements.predicates.ContextAwarePredicate; +import net.minecraft.advancements.predicates.entity.EntityPredicate; +import net.minecraft.advancements.triggers.SimpleCriterionTrigger; import net.minecraft.server.level.ServerPlayer; import vectorwing.farmersdelight.common.registry.ModAdvancements; diff --git a/src/main/java/vectorwing/farmersdelight/common/advancement/package-info.java b/src/main/java/vectorwing/farmersdelight/common/advancement/package-info.java index d3d9c9efd..f2fc3e9e9 100644 --- a/src/main/java/vectorwing/farmersdelight/common/advancement/package-info.java +++ b/src/main/java/vectorwing/farmersdelight/common/advancement/package-info.java @@ -1,7 +1,5 @@ @ParametersAreNonnullByDefault -@MethodsReturnNonnullByDefault package vectorwing.farmersdelight.common.advancement; -import net.minecraft.MethodsReturnNonnullByDefault; import javax.annotation.ParametersAreNonnullByDefault; diff --git a/src/main/java/vectorwing/farmersdelight/common/block/AbstractStoveBlock.java b/src/main/java/vectorwing/farmersdelight/common/block/AbstractStoveBlock.java index 6032eff51..9120ad463 100644 --- a/src/main/java/vectorwing/farmersdelight/common/block/AbstractStoveBlock.java +++ b/src/main/java/vectorwing/farmersdelight/common/block/AbstractStoveBlock.java @@ -6,8 +6,9 @@ import net.minecraft.sounds.SoundSource; import net.minecraft.world.Containers; import net.minecraft.world.InteractionHand; -import net.minecraft.world.ItemInteractionResult; +import net.minecraft.world.InteractionResult; import net.minecraft.world.entity.Entity; +import net.minecraft.world.entity.EquipmentSlot; import net.minecraft.world.entity.LivingEntity; import net.minecraft.world.entity.Mob; import net.minecraft.world.entity.player.Player; @@ -29,7 +30,7 @@ import net.minecraft.world.level.block.state.StateDefinition; import net.minecraft.world.level.block.state.properties.BlockStateProperties; import net.minecraft.world.level.block.state.properties.BooleanProperty; -import net.minecraft.world.level.block.state.properties.DirectionProperty; +import net.minecraft.world.level.block.state.properties.EnumProperty; import net.minecraft.world.level.gameevent.GameEvent; import net.minecraft.world.level.pathfinder.PathType; import net.minecraft.world.phys.BlockHitResult; @@ -50,7 +51,7 @@ @SuppressWarnings("deprecation") public abstract class AbstractStoveBlock extends BaseEntityBlock { - public static final DirectionProperty FACING = HorizontalDirectionalBlock.FACING; + public static final EnumProperty FACING = HorizontalDirectionalBlock.FACING; public static final BooleanProperty LIT = BlockStateProperties.LIT; private static final VoxelShape GRILLING_AREA = Block.box(3.0F, 0.0F, 3.0F, 13.0F, 1.0F, 13.0F); @@ -64,19 +65,19 @@ public AbstractStoveBlock(BlockBehaviour.Properties properties) { ); } @Override - public ItemInteractionResult useItemOn(ItemStack heldStack, BlockState state, Level level, BlockPos pos, Player player, InteractionHand hand, BlockHitResult hit) { + public InteractionResult useItemOn(ItemStack heldStack, BlockState state, Level level, BlockPos pos, Player player, InteractionHand hand, BlockHitResult hit) { if (state.getValue(LIT)) { var extinguishResult = tryToExtinguish(heldStack, state, level, pos, player, hand, hit); - if (extinguishResult != ItemInteractionResult.PASS_TO_DEFAULT_BLOCK_INTERACTION) return extinguishResult; + if (extinguishResult != InteractionResult.PASS) return extinguishResult; } else { var igniteResult = tryToIgnite(heldStack, state, level, pos, player, hand, hit); - if (igniteResult != ItemInteractionResult.PASS_TO_DEFAULT_BLOCK_INTERACTION) return igniteResult; + if (igniteResult != InteractionResult.PASS) return igniteResult; } return tryToPlaceFoodItem(heldStack, state, level, pos, player, hand, hit); } - protected ItemInteractionResult tryToIgnite(ItemStack heldStack, BlockState state, Level level, BlockPos pos, Player player, InteractionHand hand, BlockHitResult hit) { + protected InteractionResult tryToIgnite(ItemStack heldStack, BlockState state, Level level, BlockPos pos, Player player, InteractionHand hand, BlockHitResult hit) { Item heldItem = heldStack.getItem(); if (heldItem instanceof FlintAndSteelItem) { @@ -84,8 +85,8 @@ protected ItemInteractionResult tryToIgnite(ItemStack heldStack, BlockState stat level.playSound(null, pos, SoundEvents.FLINTANDSTEEL_USE, SoundSource.BLOCKS, 1.0F, MathUtils.RAND.nextFloat() * 0.4F + 0.8F); } ignite(player, level, pos, state); - heldStack.hurtAndBreak(1, player, LivingEntity.getSlotForHand(hand)); - return ItemInteractionResult.SUCCESS; + heldStack.hurtAndBreak(1, player, hand == InteractionHand.MAIN_HAND ? EquipmentSlot.MAINHAND : EquipmentSlot.OFFHAND); + return InteractionResult.SUCCESS; } if (heldItem instanceof FireChargeItem) { @@ -96,20 +97,20 @@ protected ItemInteractionResult tryToIgnite(ItemStack heldStack, BlockState stat if (!player.getAbilities().instabuild) { heldStack.shrink(1); } - return ItemInteractionResult.SUCCESS; + return InteractionResult.SUCCESS; } - return ItemInteractionResult.PASS_TO_DEFAULT_BLOCK_INTERACTION; + return InteractionResult.PASS; } - protected ItemInteractionResult tryToExtinguish(ItemStack heldStack, BlockState state, Level level, BlockPos pos, Player player, InteractionHand hand, BlockHitResult hit) { - if (heldStack.canPerformAction(ItemAbilities.SHOVEL_DIG)) { + protected InteractionResult tryToExtinguish(ItemStack heldStack, BlockState state, Level level, BlockPos pos, Player player, InteractionHand hand, BlockHitResult hit) { + if (heldStack.canPerformAction(ItemAbilities.SHOVEL_DOUSE)) { if (!level.isClientSide()) { level.levelEvent(null, LevelEvent.SOUND_EXTINGUISH_FIRE, pos, 0); } extinguish(player, level, pos, state); - heldStack.hurtAndBreak(1, player, LivingEntity.getSlotForHand(hand)); - return ItemInteractionResult.sidedSuccess(level.isClientSide()); + heldStack.hurtAndBreak(1, player, hand == InteractionHand.MAIN_HAND ? EquipmentSlot.MAINHAND : EquipmentSlot.OFFHAND); + return InteractionResult.SUCCESS; } if (heldStack.is(Tags.Items.BUCKETS_WATER)) { @@ -117,24 +118,24 @@ protected ItemInteractionResult tryToExtinguish(ItemStack heldStack, BlockState level.playSound(null, pos, SoundEvents.GENERIC_EXTINGUISH_FIRE, SoundSource.BLOCKS, 1.0F, 1.0F); } extinguish(player, level, pos, state); - if (!player.getAbilities().instabuild) player.setItemInHand(hand, heldStack.getCraftingRemainingItem()); - return ItemInteractionResult.sidedSuccess(level.isClientSide()); + if (!player.getAbilities().instabuild) player.setItemInHand(hand, ItemUtils.getCraftingRemainingItem(heldStack)); + return InteractionResult.SUCCESS; } - return ItemInteractionResult.PASS_TO_DEFAULT_BLOCK_INTERACTION; + return InteractionResult.PASS; } - protected ItemInteractionResult tryToPlaceFoodItem(ItemStack heldStack, BlockState state, Level level, BlockPos pos, Player player, InteractionHand hand, BlockHitResult hit) { - if (isStoveTopCovered(level, pos, state)) return ItemInteractionResult.PASS_TO_DEFAULT_BLOCK_INTERACTION; - if (!(level.getBlockEntity(pos) instanceof AbstractStoveBlockEntity stoveEntity)) return ItemInteractionResult.PASS_TO_DEFAULT_BLOCK_INTERACTION; + protected InteractionResult tryToPlaceFoodItem(ItemStack heldStack, BlockState state, Level level, BlockPos pos, Player player, InteractionHand hand, BlockHitResult hit) { + if (isStoveTopCovered(level, pos, state)) return InteractionResult.PASS; + if (!(level.getBlockEntity(pos) instanceof AbstractStoveBlockEntity stoveEntity)) return InteractionResult.PASS; var maybeRecipe = stoveEntity.getCookingRecipe(heldStack); - if (maybeRecipe.isEmpty()) return ItemInteractionResult.PASS_TO_DEFAULT_BLOCK_INTERACTION; - if (level.isClientSide) return ItemInteractionResult.CONSUME; + if (maybeRecipe.isEmpty()) return InteractionResult.PASS; + if (level.isClientSide()) return InteractionResult.CONSUME; boolean placeFoodSuccess = stoveEntity.placeFood(player, player.getAbilities().instabuild ? heldStack.copy() : heldStack, maybeRecipe.get()); - if (!placeFoodSuccess) return ItemInteractionResult.CONSUME; + if (!placeFoodSuccess) return InteractionResult.CONSUME; level.playSound(null, pos, SoundEvents.LANTERN_PLACE, SoundSource.BLOCKS, 0.5F, 1.0F); - return ItemInteractionResult.SUCCESS; + return InteractionResult.SUCCESS; } public void ignite(@Nullable Entity entity, LevelAccessor level, BlockPos pos, BlockState state) { @@ -186,12 +187,11 @@ protected void burnEntitySteppingOnStove(Level level, BlockPos pos, BlockState s } @Override - public void onRemove(BlockState state, Level level, BlockPos pos, BlockState newState, boolean isMoving) { - if (state.is(newState.getBlock())) return; + public void destroy(LevelAccessor level, BlockPos pos, BlockState state) { if (level.getBlockEntity(pos) instanceof AbstractStoveBlockEntity stoveEntity) { - ItemUtils.dropItems(level, pos, stoveEntity.getItems()); + ItemUtils.dropItems((Level) level, pos, stoveEntity.getTransferItems()); } - super.onRemove(state, level, pos, newState, isMoving); + super.destroy(level, pos, state); } /** @@ -212,14 +212,14 @@ protected void createBlockStateDefinition(final StateDefinition.Builder BlockEntityTicker createStoveTicker(Level level, BlockEntityType serverType, BlockEntityType clientType) { - if (level.isClientSide) return null; + if (level.isClientSide()) return null; return createTickerHelper(serverType, clientType, AbstractStoveBlockEntity::serverTick); } @Nullable @Override public PathType getBlockPathType(BlockState state, BlockGetter level, BlockPos pos, @Nullable Mob entity) { - return state.getValue(LIT) ? PathType.DAMAGE_FIRE : null; + return state.getValue(LIT) ? PathType.DAMAGING : null; } @Override diff --git a/src/main/java/vectorwing/farmersdelight/common/block/BasketBlock.java b/src/main/java/vectorwing/farmersdelight/common/block/BasketBlock.java index 60e079bff..98f50d73e 100644 --- a/src/main/java/vectorwing/farmersdelight/common/block/BasketBlock.java +++ b/src/main/java/vectorwing/farmersdelight/common/block/BasketBlock.java @@ -15,6 +15,8 @@ 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.ScheduledTickAccess; import net.minecraft.world.level.block.*; import net.minecraft.world.level.block.entity.BlockEntity; import net.minecraft.world.level.block.entity.BlockEntityTicker; @@ -24,10 +26,12 @@ import net.minecraft.world.level.block.state.StateDefinition; import net.minecraft.world.level.block.state.properties.BlockStateProperties; import net.minecraft.world.level.block.state.properties.BooleanProperty; -import net.minecraft.world.level.block.state.properties.DirectionProperty; +import net.minecraft.world.level.block.state.properties.EnumProperty; import net.minecraft.world.level.material.FluidState; import net.minecraft.world.level.material.Fluids; import net.minecraft.world.level.pathfinder.PathComputationType; +import net.minecraft.world.level.redstone.Orientation; +import net.minecraft.util.RandomSource; import net.minecraft.world.phys.BlockHitResult; import net.minecraft.world.phys.shapes.BooleanOp; import net.minecraft.world.phys.shapes.CollisionContext; @@ -43,7 +47,7 @@ public class BasketBlock extends BaseEntityBlock implements SimpleWaterloggedBlo { public static final MapCodec CODEC = simpleCodec(BasketBlock::new); - public static final DirectionProperty FACING = BlockStateProperties.FACING; + public static final EnumProperty FACING = BlockStateProperties.FACING; public static final BooleanProperty ENABLED = BlockStateProperties.ENABLED; public static final BooleanProperty WATERLOGGED = BlockStateProperties.WATERLOGGED; @@ -80,7 +84,7 @@ protected void createBlockStateDefinition(StateDefinition.Builder BlockEntityTicker getTicker(Level level, BlockState state, BlockEntityType blockEntityType) { - return level.isClientSide ? null : createTickerHelper(blockEntityType, ModBlockEntityTypes.BASKET.get(), BasketBlockEntity::pushItemsTick); + return level.isClientSide() ? null : createTickerHelper(blockEntityType, ModBlockEntityTypes.BASKET.get(), BasketBlockEntity::pushItemsTick); } @Override diff --git a/src/main/java/vectorwing/farmersdelight/common/block/BuddingBushBlock.java b/src/main/java/vectorwing/farmersdelight/common/block/BuddingBushBlock.java index 850d2ebc7..3c7424556 100644 --- a/src/main/java/vectorwing/farmersdelight/common/block/BuddingBushBlock.java +++ b/src/main/java/vectorwing/farmersdelight/common/block/BuddingBushBlock.java @@ -6,6 +6,7 @@ import net.minecraft.server.level.ServerLevel; import net.minecraft.util.RandomSource; import net.minecraft.world.entity.Entity; +import net.minecraft.world.entity.InsideBlockEffectApplier; import net.minecraft.world.entity.monster.Ravager; import net.minecraft.world.item.ItemStack; import net.minecraft.world.level.BlockGetter; @@ -14,14 +15,14 @@ import net.minecraft.world.level.LevelReader; import net.minecraft.world.level.block.Block; import net.minecraft.world.level.block.BushBlock; -import net.minecraft.world.level.block.FarmBlock; +import net.minecraft.world.level.block.FarmlandBlock; import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.block.state.StateDefinition; import net.minecraft.world.level.block.state.properties.IntegerProperty; import net.minecraft.world.phys.shapes.CollisionContext; import net.minecraft.world.phys.shapes.VoxelShape; import net.neoforged.neoforge.common.CommonHooks; -import net.neoforged.neoforge.common.util.TriState; +import net.minecraft.util.TriState; import net.neoforged.neoforge.event.EventHooks; import vectorwing.farmersdelight.common.registry.ModItems; @@ -48,18 +49,19 @@ public BuddingBushBlock(Properties properties) { } @Override - protected MapCodec codec() { - return CODEC; + @SuppressWarnings("unchecked") + public MapCodec codec() { + return (MapCodec) (MapCodec) CODEC; } @Override - public VoxelShape getShape(BlockState state, BlockGetter level, BlockPos pos, CollisionContext context) { + protected VoxelShape getShape(BlockState state, BlockGetter level, BlockPos pos, CollisionContext context) { return SHAPE_BY_AGE[state.getValue(getAgeProperty())]; } @Override protected boolean mayPlaceOn(BlockState state, BlockGetter level, BlockPos pos) { - return state.getBlock() instanceof FarmBlock; + return state.getBlock() instanceof FarmlandBlock; } public IntegerProperty getAgeProperty() { @@ -83,12 +85,12 @@ public boolean isMaxAge(BlockState state) { } @Override - public boolean isRandomlyTicking(BlockState state) { + protected boolean isRandomlyTicking(BlockState state) { return canGrowPastMaxAge() || !isMaxAge(state); } @Override - public void randomTick(BlockState state, ServerLevel level, BlockPos pos, RandomSource random) { + protected void randomTick(BlockState state, ServerLevel level, BlockPos pos, RandomSource random) { if (!level.isAreaLoaded(pos, 1)) return; if (level.getRawBrightness(pos, 0) >= 9) { int age = getAge(state); @@ -160,7 +162,7 @@ protected static float getGrowthSpeed(BlockState state, BlockGetter level, Block } @Override - public boolean canSurvive(BlockState state, LevelReader level, BlockPos pos) { + protected boolean canSurvive(BlockState state, LevelReader level, BlockPos pos) { TriState soilDecision = level.getBlockState(pos.below()).canSustainPlant(level, pos.below(), Direction.UP, state); if (!soilDecision.isDefault()) { return soilDecision.isTrue(); @@ -174,12 +176,12 @@ public static boolean hasSufficientLight(LevelReader level, BlockPos pos) { } @Override - public void entityInside(BlockState state, Level level, BlockPos pos, Entity entity) { - if (entity instanceof Ravager && EventHooks.canEntityGrief(level, entity)) { + protected void entityInside(BlockState state, Level level, BlockPos pos, Entity entity, InsideBlockEffectApplier effectApplier, boolean isInside) { + if (entity instanceof Ravager && level instanceof ServerLevel serverLevel && EventHooks.canEntityGrief(serverLevel, entity)) { level.destroyBlock(pos, true, entity); } - super.entityInside(state, level, pos, entity); + super.entityInside(state, level, pos, entity, effectApplier, isInside); } protected ItemLike getBaseSeedId() { @@ -187,7 +189,7 @@ protected ItemLike getBaseSeedId() { } @Override - public ItemStack getCloneItemStack(LevelReader level, BlockPos pos, BlockState state) { + protected ItemStack getCloneItemStack(LevelReader level, BlockPos pos, BlockState state, boolean includeData) { return new ItemStack(getBaseSeedId()); } diff --git a/src/main/java/vectorwing/farmersdelight/common/block/BuddingTomatoBlock.java b/src/main/java/vectorwing/farmersdelight/common/block/BuddingTomatoBlock.java index 1cc9cd805..3d1705895 100644 --- a/src/main/java/vectorwing/farmersdelight/common/block/BuddingTomatoBlock.java +++ b/src/main/java/vectorwing/farmersdelight/common/block/BuddingTomatoBlock.java @@ -8,6 +8,7 @@ import net.minecraft.world.level.Level; import net.minecraft.world.level.LevelAccessor; import net.minecraft.world.level.LevelReader; +import net.minecraft.world.level.ScheduledTickAccess; import net.minecraft.world.level.block.BonemealableBlock; import net.minecraft.world.level.block.state.BlockState; import vectorwing.farmersdelight.common.registry.ModBlocks; @@ -19,11 +20,13 @@ public BuddingTomatoBlock(Properties properties) { } @Override - public BlockState updateShape(BlockState state, Direction facing, BlockState facingState, LevelAccessor level, BlockPos currentPos, BlockPos facingPos) { + protected BlockState updateShape(BlockState state, LevelReader level, ScheduledTickAccess tickAccess, BlockPos currentPos, Direction facing, BlockPos facingPos, BlockState facingState, RandomSource random) { if (state.getValue(BuddingBushBlock.AGE) == 4) { - level.setBlock(currentPos, ModBlocks.TOMATO_CROP.get().defaultBlockState(), 3); + if (level instanceof LevelAccessor levelAccessor) { + levelAccessor.setBlock(currentPos, ModBlocks.TOMATO_CROP.get().defaultBlockState(), 3); + } } - return super.updateShape(state, facing, facingState, level, currentPos, facingPos); + return super.updateShape(state, level, tickAccess, currentPos, facing, facingPos, facingState, random); } @Override @@ -47,7 +50,7 @@ public boolean isBonemealSuccess(Level level, RandomSource random, BlockPos pos, } protected int getBonemealAgeIncrease(Level level) { - return Mth.nextInt(level.random, 1, 4); + return Mth.nextInt(level.getRandom(), 1, 4); } @Override diff --git a/src/main/java/vectorwing/farmersdelight/common/block/CabinetBlock.java b/src/main/java/vectorwing/farmersdelight/common/block/CabinetBlock.java index 5d4f93f9d..a34d1aa0a 100644 --- a/src/main/java/vectorwing/farmersdelight/common/block/CabinetBlock.java +++ b/src/main/java/vectorwing/farmersdelight/common/block/CabinetBlock.java @@ -14,13 +14,15 @@ import net.minecraft.world.inventory.AbstractContainerMenu; import net.minecraft.world.item.context.BlockPlaceContext; import net.minecraft.world.level.Level; +import net.minecraft.world.level.LevelAccessor; import net.minecraft.world.level.block.*; import net.minecraft.world.level.block.entity.BlockEntity; import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.block.state.StateDefinition; import net.minecraft.world.level.block.state.properties.BlockStateProperties; import net.minecraft.world.level.block.state.properties.BooleanProperty; -import net.minecraft.world.level.block.state.properties.DirectionProperty; +import net.minecraft.world.level.block.state.properties.EnumProperty; +import net.minecraft.world.level.redstone.Orientation; import net.minecraft.world.phys.BlockHitResult; import vectorwing.farmersdelight.common.block.entity.CabinetBlockEntity; import vectorwing.farmersdelight.common.registry.ModBlockEntityTypes; @@ -32,7 +34,7 @@ public class CabinetBlock extends BaseEntityBlock { public static final MapCodec CODEC = simpleCodec(CabinetBlock::new); - public static final DirectionProperty FACING = BlockStateProperties.HORIZONTAL_FACING; + public static final EnumProperty FACING = BlockStateProperties.HORIZONTAL_FACING; public static final BooleanProperty OPEN = BlockStateProperties.OPEN; public CabinetBlock(Properties properties) { @@ -47,25 +49,25 @@ protected MapCodec codec() { @Override public InteractionResult useWithoutItem(BlockState state, Level level, BlockPos pos, Player player, BlockHitResult hit) { - if (level.isClientSide) { + if (level.isClientSide()) { return InteractionResult.SUCCESS; } if (level.getBlockEntity(pos) instanceof CabinetBlockEntity cabinet) { player.openMenu(cabinet); - PiglinAi.angerNearbyPiglins(player, true); + if (level instanceof ServerLevel serverLevel) { + PiglinAi.angerNearbyPiglins(serverLevel, player, true); + } } return InteractionResult.CONSUME; } @Override - public void onRemove(BlockState state, Level level, BlockPos pos, BlockState newState, boolean isMoving) { - if (!state.is(newState.getBlock())) { - if (level.getBlockEntity(pos) instanceof Container container) { - Containers.dropContents(level, pos, container); - level.updateNeighbourForOutputSignal(pos, this); - } - super.onRemove(state, level, pos, newState, isMoving); + public void destroy(LevelAccessor level, BlockPos pos, BlockState state) { + if (level instanceof Level realLevel && realLevel.getBlockEntity(pos) instanceof Container container) { + Containers.dropContents(realLevel, pos, container); + realLevel.updateNeighbourForOutputSignal(pos, this); } + super.destroy(level, pos, state); } @Override @@ -86,12 +88,12 @@ protected void createBlockStateDefinition(final StateDefinition.Builder CODEC = simpleCodec(CookingPotBlock::new); - public static final DirectionProperty FACING = BlockStateProperties.HORIZONTAL_FACING; + public static final EnumProperty FACING = BlockStateProperties.HORIZONTAL_FACING; public static final EnumProperty SUPPORT = EnumProperty.create("support", CookingPotSupport.class); public static final BooleanProperty WATERLOGGED = BlockStateProperties.WATERLOGGED; @@ -69,12 +70,12 @@ protected MapCodec codec() { } @Override - public ItemInteractionResult useItemOn(ItemStack heldStack, BlockState state, Level level, BlockPos pos, Player player, InteractionHand hand, BlockHitResult result) { + public InteractionResult useItemOn(ItemStack heldStack, BlockState state, Level level, BlockPos pos, Player player, InteractionHand hand, BlockHitResult result) { if (heldStack.isEmpty() && player.isShiftKeyDown()) { level.setBlockAndUpdate(pos, state.setValue(SUPPORT, state.getValue(SUPPORT).equals(CookingPotSupport.HANDLE) ? getTrayState(level, pos) : CookingPotSupport.HANDLE)); level.playSound(null, pos, SoundEvents.LANTERN_PLACE, SoundSource.BLOCKS, 0.7F, 1.0F); - } else if (!level.isClientSide) { + } else if (!level.isClientSide()) { BlockEntity tileEntity = level.getBlockEntity(pos); if (tileEntity instanceof CookingPotBlockEntity cookingPot) { ItemStack servingStack = cookingPot.useHeldItemOnMeal(heldStack); @@ -87,9 +88,9 @@ public ItemInteractionResult useItemOn(ItemStack heldStack, BlockState state, Le player.openMenu(cookingPot, pos); } } - return ItemInteractionResult.SUCCESS; + return InteractionResult.SUCCESS; } - return ItemInteractionResult.SUCCESS; + return InteractionResult.SUCCESS; } @Override @@ -98,12 +99,12 @@ public RenderShape getRenderShape(BlockState state) { } @Override - public VoxelShape getShape(BlockState state, BlockGetter level, BlockPos pos, CollisionContext context) { + protected VoxelShape getShape(BlockState state, BlockGetter level, BlockPos pos, CollisionContext context) { return SHAPE; } @Override - public VoxelShape getCollisionShape(BlockState state, BlockGetter level, BlockPos pos, CollisionContext context) { + protected VoxelShape getCollisionShape(BlockState state, BlockGetter level, BlockPos pos, CollisionContext context) { return state.getValue(SUPPORT).equals(CookingPotSupport.TRAY) ? SHAPE_WITH_TRAY : SHAPE; } @@ -124,9 +125,9 @@ public BlockState getStateForPlacement(BlockPlaceContext context) { } @Override - public BlockState updateShape(BlockState state, Direction facing, BlockState facingState, LevelAccessor level, BlockPos currentPos, BlockPos facingPos) { + protected BlockState updateShape(BlockState state, LevelReader level, ScheduledTickAccess tickAccess, BlockPos currentPos, Direction facing, BlockPos facingPos, BlockState facingState, RandomSource random) { if (state.getValue(WATERLOGGED)) { - level.scheduleTick(currentPos, Fluids.WATER, Fluids.WATER.getTickDelay(level)); + tickAccess.scheduleTick(currentPos, Fluids.WATER, Fluids.WATER.getTickDelay(level)); } if (facing.getAxis().equals(Direction.Axis.Y) && !state.getValue(SUPPORT).equals(CookingPotSupport.HANDLE)) { return state.setValue(SUPPORT, getTrayState(level, currentPos)); @@ -134,7 +135,7 @@ public BlockState updateShape(BlockState state, Direction facing, BlockState fac return state; } - private CookingPotSupport getTrayState(LevelAccessor level, BlockPos pos) { + private CookingPotSupport getTrayState(LevelReader level, BlockPos pos) { if (level.getBlockState(pos.below()).is(ModTags.Blocks.TRAY_HEAT_SOURCES)) { return CookingPotSupport.TRAY; } @@ -142,8 +143,8 @@ private CookingPotSupport getTrayState(LevelAccessor level, BlockPos pos) { } @Override - public ItemStack getCloneItemStack(LevelReader level, BlockPos pos, BlockState state) { - ItemStack stack = super.getCloneItemStack(level, pos, state); + protected ItemStack getCloneItemStack(LevelReader level, BlockPos pos, BlockState state, boolean includeData) { + ItemStack stack = super.getCloneItemStack(level, pos, state, includeData); Optional cookingPot = level.getBlockEntity(pos, ModBlockEntityTypes.COOKING_POT.get()); if (cookingPot.isPresent()) { @@ -154,16 +155,13 @@ public ItemStack getCloneItemStack(LevelReader level, BlockPos pos, BlockState s } @Override - public void onRemove(BlockState state, Level level, BlockPos pos, BlockState newState, boolean isMoving) { - if (!state.is(newState.getBlock())) { - if (level.getBlockEntity(pos) instanceof CookingPotBlockEntity cookingPot) { - Containers.dropContents(level, pos, cookingPot.getDroppableInventory()); - cookingPot.getUsedRecipesAndPopExperience(level, Vec3.atCenterOf(pos)); - level.updateNeighbourForOutputSignal(pos, this); - } - - super.onRemove(state, level, pos, newState, isMoving); + public void destroy(LevelAccessor level, BlockPos pos, BlockState state) { + if (level instanceof Level realLevel && realLevel.getBlockEntity(pos) instanceof CookingPotBlockEntity cookingPot) { + Containers.dropContents(realLevel, pos, cookingPot.getDroppableInventory()); + cookingPot.getUsedRecipesAndPopExperience(realLevel, Vec3.atCenterOf(pos)); + realLevel.updateNeighbourForOutputSignal(pos, this); } + super.destroy(level, pos, state); } @Override @@ -188,21 +186,20 @@ public void animateTick(BlockState state, Level level, BlockPos pos, RandomSourc } @Override - public boolean hasAnalogOutputSignal(BlockState state) { + protected boolean hasAnalogOutputSignal(BlockState state) { return true; } @Override - public int getAnalogOutputSignal(BlockState state, Level level, BlockPos pos) { + protected int getAnalogOutputSignal(BlockState state, Level level, BlockPos pos, Direction direction) { if (level.getBlockEntity(pos) instanceof CookingPotBlockEntity cookingPot) { - ItemStackHandler inventory = cookingPot.getInventory(); - return MathUtils.calcRedstoneFromItemHandler(inventory); + return MathUtils.calcRedstoneFromItemHandler(cookingPot.getTransferInventory()); } return 0; } @Override - public FluidState getFluidState(BlockState state) { + protected FluidState getFluidState(BlockState state) { return state.getValue(WATERLOGGED) ? Fluids.WATER.getSource(false) : super.getFluidState(state); } @@ -214,7 +211,7 @@ public BlockEntity newBlockEntity(BlockPos pos, BlockState state) { @Nullable public BlockEntityTicker getTicker(Level level, BlockState state, BlockEntityType blockEntity) { - if (level.isClientSide) { + if (level.isClientSide()) { return createTickerHelper(blockEntity, ModBlockEntityTypes.COOKING_POT.get(), CookingPotBlockEntity::animationTick); } return createTickerHelper(blockEntity, ModBlockEntityTypes.COOKING_POT.get(), CookingPotBlockEntity::cookingTick); diff --git a/src/main/java/vectorwing/farmersdelight/common/block/CuttingBoardBlock.java b/src/main/java/vectorwing/farmersdelight/common/block/CuttingBoardBlock.java index 67e840ea2..497962800 100644 --- a/src/main/java/vectorwing/farmersdelight/common/block/CuttingBoardBlock.java +++ b/src/main/java/vectorwing/farmersdelight/common/block/CuttingBoardBlock.java @@ -8,7 +8,6 @@ import net.minecraft.world.Containers; import net.minecraft.world.InteractionHand; import net.minecraft.world.InteractionResult; -import net.minecraft.world.ItemInteractionResult; import net.minecraft.world.entity.EquipmentSlot; import net.minecraft.world.entity.player.Player; import net.minecraft.world.item.ItemStack; @@ -17,6 +16,7 @@ import net.minecraft.world.level.Level; import net.minecraft.world.level.LevelAccessor; import net.minecraft.world.level.LevelReader; +import net.minecraft.world.level.ScheduledTickAccess; import net.minecraft.world.level.block.*; import net.minecraft.world.level.block.entity.BlockEntity; import net.minecraft.world.level.block.state.BlockBehaviour; @@ -24,9 +24,10 @@ import net.minecraft.world.level.block.state.StateDefinition; import net.minecraft.world.level.block.state.properties.BlockStateProperties; import net.minecraft.world.level.block.state.properties.BooleanProperty; -import net.minecraft.world.level.block.state.properties.DirectionProperty; +import net.minecraft.world.level.block.state.properties.EnumProperty; import net.minecraft.world.level.material.FluidState; import net.minecraft.world.level.material.Fluids; +import net.minecraft.util.RandomSource; import net.minecraft.world.phys.BlockHitResult; import net.minecraft.world.phys.Vec3; import net.minecraft.world.phys.shapes.CollisionContext; @@ -46,7 +47,7 @@ public class CuttingBoardBlock extends BaseEntityBlock implements SimpleWaterlog { public static final MapCodec CODEC = simpleCodec(CuttingBoardBlock::new); - public static final DirectionProperty FACING = BlockStateProperties.HORIZONTAL_FACING; + public static final EnumProperty FACING = BlockStateProperties.HORIZONTAL_FACING; public static final BooleanProperty WATERLOGGED = BlockStateProperties.WATERLOGGED; protected static final VoxelShape SHAPE = Block.box(1.0D, 0.0D, 1.0D, 15.0D, 1.0D, 15.0D); @@ -62,56 +63,52 @@ protected MapCodec codec() { } @Override - public ItemInteractionResult useItemOn(ItemStack stack, BlockState state, Level level, BlockPos pos, Player player, InteractionHand hand, BlockHitResult hit) { + public InteractionResult useItemOn(ItemStack stack, BlockState state, Level level, BlockPos pos, Player player, InteractionHand hand, BlockHitResult hit) { if (!(level.getBlockEntity(pos) instanceof CuttingBoardBlockEntity cuttingBoard)) { - return ItemInteractionResult.PASS_TO_DEFAULT_BLOCK_INTERACTION; + return InteractionResult.PASS; } ItemStack mainHandStack = player.getMainHandItem(); if (mainHandStack.isEmpty()) { - if (cuttingBoard.isEmpty() || level.isClientSide) { - return ItemInteractionResult.CONSUME; + if (cuttingBoard.isEmpty() || level.isClientSide()) { + return InteractionResult.CONSUME; } ItemStack removedStack = cuttingBoard.removeItem(); if (!player.isCreative()) { player.getInventory().add(removedStack); } - Vec3 centerPos = pos.getCenter(); + Vec3 centerPos = Vec3.atCenterOf(pos); level.playSound(null, centerPos.x(), centerPos.y(), centerPos.z(), ModSounds.BLOCK_CUTTING_BOARD_REMOVE.get(), SoundSource.BLOCKS, 0.25F, 0.5F); - return ItemInteractionResult.SUCCESS; + return InteractionResult.SUCCESS; } if (cuttingBoard.canAddItem(mainHandStack)) { - if (level.isClientSide) { - return ItemInteractionResult.CONSUME; + if (level.isClientSide()) { + return InteractionResult.CONSUME; } ItemStack remainderStack = cuttingBoard.addItem(player.getAbilities().instabuild ? mainHandStack.copy() : mainHandStack); if (!player.isCreative()) { player.setItemSlot(EquipmentSlot.MAINHAND, remainderStack); } - Vec3 centerPos = pos.getCenter(); + Vec3 centerPos = Vec3.atCenterOf(pos); level.playSound(null, centerPos.x(), centerPos.y(), centerPos.z(), ModSounds.BLOCK_CUTTING_BOARD_PLACE.get(), SoundSource.BLOCKS, 1.0F, 0.8F); - return ItemInteractionResult.SUCCESS; + return InteractionResult.SUCCESS; } else { if (cuttingBoard.processStoredItemUsingTool(mainHandStack, player)) { - return ItemInteractionResult.SUCCESS; + return InteractionResult.SUCCESS; } } - return ItemInteractionResult.CONSUME; + return InteractionResult.CONSUME; } @Override - public void onRemove(BlockState state, Level level, BlockPos pos, BlockState newState, boolean isMoving) { - if (state.is(newState.getBlock())) { - return; + public void destroy(LevelAccessor level, BlockPos pos, BlockState state) { + if (level instanceof Level realLevel && realLevel.getBlockEntity(pos) instanceof CuttingBoardBlockEntity cuttingBoard) { + Containers.dropItemStack(realLevel, pos.getX(), pos.getY(), pos.getZ(), cuttingBoard.getStoredItem()); + realLevel.updateNeighbourForOutputSignal(pos, this); } - if (level.getBlockEntity(pos) instanceof CuttingBoardBlockEntity cuttingBoard) { - Containers.dropItemStack(level, pos.getX(), pos.getY(), pos.getZ(), cuttingBoard.getStoredItem()); - level.updateNeighbourForOutputSignal(pos, this); - } - - super.onRemove(state, level, pos, newState, isMoving); + super.destroy(level, pos, state); } @Override @@ -127,17 +124,17 @@ public BlockState getStateForPlacement(BlockPlaceContext context) { } @Override - public BlockState updateShape(BlockState state, Direction facing, BlockState facingState, LevelAccessor level, BlockPos currentPos, BlockPos facingPos) { + protected BlockState updateShape(BlockState state, LevelReader level, ScheduledTickAccess tickAccess, BlockPos currentPos, Direction facing, BlockPos facingPos, BlockState facingState, RandomSource random) { if (state.getValue(WATERLOGGED)) { - level.scheduleTick(currentPos, Fluids.WATER, Fluids.WATER.getTickDelay(level)); + tickAccess.scheduleTick(currentPos, Fluids.WATER, Fluids.WATER.getTickDelay(level)); } return facing == Direction.DOWN && !state.canSurvive(level, currentPos) ? Blocks.AIR.defaultBlockState() - : super.updateShape(state, facing, facingState, level, currentPos, facingPos); + : super.updateShape(state, level, tickAccess, currentPos, facing, facingPos, facingState, random); } @Override - public boolean canSurvive(BlockState state, LevelReader level, BlockPos pos) { + protected boolean canSurvive(BlockState state, LevelReader level, BlockPos pos) { BlockPos floorPos = pos.below(); return canSupportRigidBlock(level, floorPos) || canSupportCenter(level, floorPos, Direction.UP); } @@ -149,17 +146,17 @@ protected void createBlockStateDefinition(final StateDefinition.Builder FACING = BlockStateProperties.HORIZONTAL_FACING; public static final IntegerProperty SERVINGS = IntegerProperty.create("servings", 0, 4); public final Supplier servingItem; @@ -85,38 +88,39 @@ public ItemStack getServingItem(BlockState state) { } @Override - public VoxelShape getShape(BlockState state, BlockGetter level, BlockPos pos, CollisionContext context) { + protected VoxelShape getShape(BlockState state, BlockGetter level, BlockPos pos, CollisionContext context) { return SHAPES[state.getValue(SERVINGS)]; } @Override - public ItemInteractionResult useItemOn(ItemStack heldStack, BlockState state, Level level, BlockPos pos, Player player, InteractionHand hand, BlockHitResult hit) { - if (level.isClientSide) { + protected InteractionResult useItemOn(ItemStack heldStack, BlockState state, Level level, BlockPos pos, Player player, InteractionHand hand, BlockHitResult hit) { + if (level.isClientSide()) { if (this.takeServing(level, pos, state, player, hand).consumesAction()) { - return ItemInteractionResult.SUCCESS; + return InteractionResult.SUCCESS; } } return this.takeServing(level, pos, state, player, hand); } - protected ItemInteractionResult takeServing(LevelAccessor level, BlockPos pos, BlockState state, Player player, InteractionHand hand) { + protected InteractionResult takeServing(LevelAccessor level, BlockPos pos, BlockState state, Player player, InteractionHand hand) { int servings = state.getValue(getServingsProperty()); if (servings == 0) { level.playSound(null, pos, SoundEvents.WOOD_BREAK, SoundSource.PLAYERS, 0.8F, 0.8F); level.destroyBlock(pos, true); - return ItemInteractionResult.SUCCESS; + return InteractionResult.SUCCESS; } ItemStack serving = this.getServingItem(state); ItemStack heldStack = player.getItemInHand(hand); if (servings > 0) { - if (!serving.hasCraftingRemainingItem() || ItemStack.isSameItem(heldStack, serving.getCraftingRemainingItem())) { + ItemStack craftingRemainingItem = ItemUtils.getCraftingRemainingItem(serving); + if (craftingRemainingItem.isEmpty() || ItemStack.isSameItem(heldStack, craftingRemainingItem)) { level.setBlock(pos, state.setValue(getServingsProperty(), servings - 1), 3); player.awardStat(Stats.ITEM_USED.get(heldStack.getItem())); - if (!player.getAbilities().instabuild && serving.hasCraftingRemainingItem()) { + if (!player.getAbilities().instabuild && !craftingRemainingItem.isEmpty()) { heldStack.shrink(1); } if (!player.getInventory().add(serving)) { @@ -129,12 +133,12 @@ protected ItemInteractionResult takeServing(LevelAccessor level, BlockPos pos, B if (hasServingParticles && level instanceof ServerLevel serverLevel) { serverLevel.sendParticles(new BlockParticleOption(ParticleTypes.BLOCK, state), pos.getX() + 0.5, pos.getY() + 0.5, pos.getZ() + 0.5, 3, 0.1, 0.1, 0.1, 0.001D); } - return ItemInteractionResult.SUCCESS; + return InteractionResult.SUCCESS; } else { - player.displayClientMessage(TextUtils.block("feast.use_container", serving.getCraftingRemainingItem().getHoverName()), true); + player.sendOverlayMessage(TextUtils.block("feast.use_container", craftingRemainingItem.getHoverName())); } } - return ItemInteractionResult.PASS_TO_DEFAULT_BLOCK_INTERACTION; + return InteractionResult.PASS; } @Override @@ -143,12 +147,12 @@ public BlockState getStateForPlacement(BlockPlaceContext context) { } @Override - public BlockState updateShape(BlockState state, Direction facing, BlockState facingState, LevelAccessor level, BlockPos currentPos, BlockPos facingPos) { - return facing == Direction.DOWN && !state.canSurvive(level, currentPos) ? Blocks.AIR.defaultBlockState() : super.updateShape(state, facing, facingState, level, currentPos, facingPos); + protected BlockState updateShape(BlockState state, LevelReader level, ScheduledTickAccess scheduledTickAccess, BlockPos currentPos, Direction facing, BlockPos facingPos, BlockState facingState, RandomSource random) { + return facing == Direction.DOWN && !state.canSurvive(level, currentPos) ? Blocks.AIR.defaultBlockState() : super.updateShape(state, level, scheduledTickAccess, currentPos, facing, facingPos, facingState, random); } @Override - public boolean canSurvive(BlockState state, LevelReader level, BlockPos pos) { + protected boolean canSurvive(BlockState state, LevelReader level, BlockPos pos) { return canSupportRigidBlock(level, pos.below()); } @@ -158,17 +162,17 @@ protected void createBlockStateDefinition(StateDefinition.Builder blockReference.value()) + .orElse(ModBlocks.ROPE.get()); BlockState finalRopeState = configuredRopeBlock.equals(ModBlocks.ROPE.get()) ? RopeBlock.getStateWithConnections(ModBlocks.ROPE.get().defaultBlockState(), level, pos, Direction.UP) : configuredRopeBlock.defaultBlockState(); - return level.setBlock(pos, finalRopeState, level.isClientSide ? 11 : 3); + return level.setBlock(pos, finalRopeState, level.isClientSide() ? 11 : 3); } @Override diff --git a/src/main/java/vectorwing/farmersdelight/common/block/MushroomColonyBlock.java b/src/main/java/vectorwing/farmersdelight/common/block/MushroomColonyBlock.java index 6fb0ea99b..01ebb25cf 100644 --- a/src/main/java/vectorwing/farmersdelight/common/block/MushroomColonyBlock.java +++ b/src/main/java/vectorwing/farmersdelight/common/block/MushroomColonyBlock.java @@ -15,8 +15,6 @@ import net.minecraft.util.RandomSource; import net.minecraft.world.InteractionHand; import net.minecraft.world.InteractionResult; -import net.minecraft.world.ItemInteractionResult; -import net.minecraft.world.entity.LivingEntity; import net.minecraft.world.entity.player.Player; import net.minecraft.world.item.Item; import net.minecraft.world.item.ItemStack; @@ -65,21 +63,21 @@ public MushroomColonyBlock(Holder mushroomType, Properties properties) { } @Override - public ItemInteractionResult useItemOn(ItemStack heldStack, BlockState state, Level level, BlockPos pos, Player player, InteractionHand hand, BlockHitResult hit) { + protected InteractionResult useItemOn(ItemStack heldStack, BlockState state, Level level, BlockPos pos, Player player, InteractionHand hand, BlockHitResult hit) { int age = state.getValue(COLONY_AGE); if (age > 0) { - ItemStack mushroomStack = getCloneItemStack(level, pos, state); + ItemStack mushroomStack = getCloneItemStack(level, pos, state, false); if (ItemUtils.isValidTool(heldStack, ItemAbilities.SHEARS_HARVEST, Tags.Items.TOOLS_SHEAR)) { level.setBlock(pos, state.setValue(COLONY_AGE, age - 1), 2); level.playSound(null, pos, SoundEvents.SHEEP_SHEAR, SoundSource.BLOCKS, 1.0F, 1.0F); popResource(level, pos, mushroomStack); - if (!level.isClientSide) { - heldStack.hurtAndBreak(1, player, LivingEntity.getSlotForHand(hand)); + if (!level.isClientSide()) { + heldStack.hurtAndBreak(1, player, hand); ((ServerLevel) level).sendParticles(new BlockParticleOption(ParticleTypes.BLOCK, state), pos.getX() + 0.5, pos.getY() + 0.5, pos.getZ() + 0.5, 3, 0.1, 0.1, 0.1, 0.001D); } - return ItemInteractionResult.sidedSuccess(level.isClientSide); + return InteractionResult.SUCCESS; } if (ItemUtils.isKnife(heldStack)) { int colonyAge = state.getValue(COLONY_AGE); @@ -87,20 +85,20 @@ public ItemInteractionResult useItemOn(ItemStack heldStack, BlockState state, Le level.setBlock(pos, state.setValue(COLONY_AGE, 0), 2); level.playSound(null, pos, this.soundType.getBreakSound(), SoundSource.BLOCKS, 1.0F, 1.0F); popResource(level, pos, mushroomStack); - if (!level.isClientSide) { - heldStack.hurtAndBreak(1, player, LivingEntity.getSlotForHand(hand)); + if (!level.isClientSide()) { + heldStack.hurtAndBreak(1, player, hand); ((ServerLevel) level).sendParticles(new BlockParticleOption(ParticleTypes.BLOCK, state), pos.getX() + 0.5, pos.getY() + 0.5, pos.getZ() + 0.5, 10, 0.2, 0.2, 0.2, 0.1D); } - return ItemInteractionResult.sidedSuccess(level.isClientSide); + return InteractionResult.SUCCESS; } } - return ItemInteractionResult.PASS_TO_DEFAULT_BLOCK_INTERACTION; + return InteractionResult.PASS; } @Override - public VoxelShape getShape(BlockState state, BlockGetter level, BlockPos pos, CollisionContext context) { + protected VoxelShape getShape(BlockState state, BlockGetter level, BlockPos pos, CollisionContext context) { return SHAPE_BY_AGE[state.getValue(getAgeProperty())]; } @@ -109,21 +107,22 @@ public IntegerProperty getAgeProperty() { } @Override - protected MapCodec codec() { - return CODEC; + @SuppressWarnings("unchecked") + public MapCodec codec() { + return (MapCodec) (MapCodec) CODEC; } @Override protected boolean mayPlaceOn(BlockState state, BlockGetter level, BlockPos pos) { - return state.isSolidRender(level, pos); + return state.isSolidRender(); } @Override - public boolean canSurvive(BlockState state, LevelReader level, BlockPos pos) { + protected boolean canSurvive(BlockState state, LevelReader level, BlockPos pos) { BlockPos floorPos = pos.below(); BlockState floorState = level.getBlockState(floorPos); - net.neoforged.neoforge.common.util.TriState soilDecision = floorState.canSustainPlant(level, floorPos, net.minecraft.core.Direction.UP, state); - return floorState.is(BlockTags.MUSHROOM_GROW_BLOCK) || (soilDecision.isDefault() ? (level.getRawBrightness(pos, 0) < 13 && this.mayPlaceOn(floorState, level, floorPos)) : soilDecision.isTrue()); + net.minecraft.util.TriState soilDecision = floorState.canSustainPlant(level, floorPos, net.minecraft.core.Direction.UP, state); + return floorState.is(BlockTags.OVERRIDES_MUSHROOM_LIGHT_REQUIREMENT) || (soilDecision.isDefault() ? (level.getRawBrightness(pos, 0) < 13 && this.mayPlaceOn(floorState, level, floorPos)) : soilDecision.isTrue()); } public int getMaxAge() { @@ -131,7 +130,7 @@ public int getMaxAge() { } @Override - public void randomTick(BlockState state, ServerLevel level, BlockPos pos, RandomSource random) { + protected void randomTick(BlockState state, ServerLevel level, BlockPos pos, RandomSource random) { int age = state.getValue(COLONY_AGE); BlockState groundState = level.getBlockState(pos.below()); if (age < getMaxAge() && groundState.is(ModTags.Blocks.MUSHROOM_COLONY_GROWABLE_ON) && CommonHooks.canCropGrow(level, pos, state, random.nextInt(4) == 0)) { @@ -141,7 +140,7 @@ public void randomTick(BlockState state, ServerLevel level, BlockPos pos, Random } @Override - public ItemStack getCloneItemStack(LevelReader level, BlockPos pos, BlockState state) { + protected ItemStack getCloneItemStack(LevelReader level, BlockPos pos, BlockState state, boolean includeData) { return new ItemStack(this.mushroomType.value()); } @@ -161,7 +160,7 @@ public boolean isBonemealSuccess(Level level, RandomSource random, BlockPos pos, } protected int getBonemealAgeIncrease(Level level) { - return Mth.nextInt(level.random, 1, 2); + return Mth.nextInt(level.getRandom(), 1, 2); } @Override diff --git a/src/main/java/vectorwing/farmersdelight/common/block/OrganicCompostBlock.java b/src/main/java/vectorwing/farmersdelight/common/block/OrganicCompostBlock.java index e3fb6fc86..3bec3d0c8 100644 --- a/src/main/java/vectorwing/farmersdelight/common/block/OrganicCompostBlock.java +++ b/src/main/java/vectorwing/farmersdelight/common/block/OrganicCompostBlock.java @@ -1,6 +1,7 @@ package vectorwing.farmersdelight.common.block; import net.minecraft.core.BlockPos; +import net.minecraft.core.Direction; import net.minecraft.core.particles.ParticleTypes; import net.minecraft.server.level.ServerLevel; import net.minecraft.tags.FluidTags; @@ -42,7 +43,7 @@ public int getMaxCompostingStage() { @Override @SuppressWarnings("deprecation") public void randomTick(BlockState state, ServerLevel level, BlockPos pos, RandomSource random) { - if (level.isClientSide) return; + if (level.isClientSide()) return; float chance = 0F; boolean hasWater = false; @@ -74,12 +75,12 @@ public void randomTick(BlockState state, ServerLevel level, BlockPos pos, Random } @Override - public boolean hasAnalogOutputSignal(BlockState state) { + protected boolean hasAnalogOutputSignal(BlockState state) { return true; } @Override - public int getAnalogOutputSignal(BlockState blockState, Level level, BlockPos pos) { + protected int getAnalogOutputSignal(BlockState blockState, Level level, BlockPos pos, Direction direction) { return (getMaxCompostingStage() + 1 - blockState.getValue(COMPOSTING)); } diff --git a/src/main/java/vectorwing/farmersdelight/common/block/PieBlock.java b/src/main/java/vectorwing/farmersdelight/common/block/PieBlock.java index cc1af1a08..c3ba7e1d2 100644 --- a/src/main/java/vectorwing/farmersdelight/common/block/PieBlock.java +++ b/src/main/java/vectorwing/farmersdelight/common/block/PieBlock.java @@ -2,15 +2,16 @@ import net.minecraft.core.BlockPos; import net.minecraft.core.Direction; +import net.minecraft.core.component.DataComponents; import net.minecraft.core.particles.BlockParticleOption; import net.minecraft.core.particles.ParticleTypes; +import net.minecraft.util.RandomSource; import net.minecraft.server.level.ServerLevel; import net.minecraft.sounds.SoundEvents; import net.minecraft.sounds.SoundSource; import net.minecraft.stats.Stats; import net.minecraft.world.InteractionHand; import net.minecraft.world.InteractionResult; -import net.minecraft.world.ItemInteractionResult; import net.minecraft.world.entity.player.Player; import net.minecraft.world.food.FoodProperties; import net.minecraft.world.item.Item; @@ -18,14 +19,14 @@ import net.minecraft.world.item.context.BlockPlaceContext; 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.ScheduledTickAccess; import net.minecraft.world.level.block.Block; import net.minecraft.world.level.block.Blocks; import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.block.state.StateDefinition; import net.minecraft.world.level.block.state.properties.BlockStateProperties; -import net.minecraft.world.level.block.state.properties.DirectionProperty; +import net.minecraft.world.level.block.state.properties.EnumProperty; import net.minecraft.world.level.block.state.properties.IntegerProperty; import net.minecraft.world.level.pathfinder.PathComputationType; import net.minecraft.world.phys.BlockHitResult; @@ -44,7 +45,7 @@ @SuppressWarnings("deprecation") public class PieBlock extends Block { - public static final DirectionProperty FACING = BlockStateProperties.HORIZONTAL_FACING; + public static final EnumProperty FACING = BlockStateProperties.HORIZONTAL_FACING; public static final IntegerProperty BITES = IntegerProperty.create("bites", 0, 3); protected static final VoxelShape[] SHAPES = { @@ -73,7 +74,7 @@ public int getMaxBites() { } @Override - public VoxelShape getShape(BlockState state, BlockGetter level, BlockPos pos, CollisionContext context) { + protected VoxelShape getShape(BlockState state, BlockGetter level, BlockPos pos, CollisionContext context) { return ROTATED_SHAPES[state.getValue(BITES)][state.getValue(FACING).get2DDataValue()]; } @@ -94,16 +95,16 @@ public BlockState getStateForPlacement(BlockPlaceContext context) { } @Override - public ItemInteractionResult useItemOn(ItemStack heldStack, BlockState state, Level level, BlockPos pos, Player player, InteractionHand hand, BlockHitResult hit) { + protected InteractionResult useItemOn(ItemStack heldStack, BlockState state, Level level, BlockPos pos, Player player, InteractionHand hand, BlockHitResult hit) { if (ItemUtils.isKnife(heldStack)) { return cutSlice(level, pos, state, player, heldStack.getItem()); } - return ItemInteractionResult.PASS_TO_DEFAULT_BLOCK_INTERACTION; + return InteractionResult.PASS; } protected InteractionResult useWithoutItem(BlockState state, Level level, BlockPos pos, Player player, BlockHitResult hitResult) { - if (level.isClientSide) { + if (level.isClientSide()) { if (consumeBite(level, pos, state, player).consumesAction()) { return InteractionResult.SUCCESS; } @@ -124,15 +125,10 @@ protected InteractionResult consumeBite(Level level, BlockPos pos, BlockState st return InteractionResult.PASS; } else { ItemStack sliceStack = this.getPieSliceItem(); - FoodProperties sliceFood = sliceStack.getItem().getFoodProperties(sliceStack, player); + FoodProperties sliceFood = sliceStack.get(DataComponents.FOOD); if (sliceFood != null) { player.getFoodData().eat(sliceFood); - for (FoodProperties.PossibleEffect effect : sliceFood.effects()) { - if (!level.isClientSide && effect != null && level.random.nextFloat() < effect.probability()) { - player.addEffect(effect.effect()); - } - } } int bites = state.getValue(BITES); @@ -141,7 +137,7 @@ protected InteractionResult consumeBite(Level level, BlockPos pos, BlockState st } else { level.removeBlock(pos, false); } - level.playSound(null, pos, SoundEvents.GENERIC_EAT, SoundSource.PLAYERS, 0.8F, 0.8F); + level.playSound(null, pos, SoundEvents.GENERIC_EAT.value(), SoundSource.PLAYERS, 0.8F, 0.8F); if (level instanceof ServerLevel serverLevel) { serverLevel.sendParticles(new BlockParticleOption(ParticleTypes.BLOCK, state), pos.getX() + 0.5, pos.getY() + 0.3, pos.getZ() + 0.5, 3, 0.1, 0.1, 0.1, 0.001D); } @@ -152,7 +148,7 @@ protected InteractionResult consumeBite(Level level, BlockPos pos, BlockState st /** * Cuts off a bite and drops a slice item, without feeding the player. */ - protected ItemInteractionResult cutSlice(Level level, BlockPos pos, BlockState state, Player player, Item knife) { + protected InteractionResult cutSlice(Level level, BlockPos pos, BlockState state, Player player, Item knife) { int bites = state.getValue(BITES); if (bites < getMaxBites() - 1) { level.setBlock(pos, state.setValue(BITES, bites + 1), 3); @@ -169,16 +165,16 @@ protected ItemInteractionResult cutSlice(Level level, BlockPos pos, BlockState s } player.awardStat(Stats.ITEM_USED.get(knife)); - return ItemInteractionResult.SUCCESS; + return InteractionResult.SUCCESS; } @Override - public BlockState updateShape(BlockState state, Direction facing, BlockState facingState, LevelAccessor level, BlockPos currentPos, BlockPos facingPos) { - return facing == Direction.DOWN && !state.canSurvive(level, currentPos) ? Blocks.AIR.defaultBlockState() : super.updateShape(state, facing, facingState, level, currentPos, facingPos); + protected BlockState updateShape(BlockState state, LevelReader level, ScheduledTickAccess scheduledTickAccess, BlockPos currentPos, Direction facing, BlockPos facingPos, BlockState facingState, RandomSource random) { + return facing == Direction.DOWN && !state.canSurvive(level, currentPos) ? Blocks.AIR.defaultBlockState() : super.updateShape(state, level, scheduledTickAccess, currentPos, facing, facingPos, facingState, random); } @Override - public boolean canSurvive(BlockState state, LevelReader level, BlockPos pos) { + protected boolean canSurvive(BlockState state, LevelReader level, BlockPos pos) { return canSupportRigidBlock(level, pos.below()); } @@ -188,17 +184,17 @@ protected void createBlockStateDefinition(StateDefinition.Builder FACING = BlockStateProperties.FACING; public RiceBaleBlock(Properties properties) { super(properties); @@ -25,8 +25,8 @@ public RiceBaleBlock(Properties properties) { } @Override - public void fallOn(Level level, BlockState state, BlockPos pos, Entity entity, float fallDistance) { - entity.causeFallDamage(fallDistance, 0.2F, level.damageSources().fall()); + public void fallOn(Level level, BlockState state, BlockPos pos, Entity entity, double fallDistance) { + entity.causeFallDamage((float) fallDistance, 0.2F, level.damageSources().fall()); } @Override diff --git a/src/main/java/vectorwing/farmersdelight/common/block/RiceBlock.java b/src/main/java/vectorwing/farmersdelight/common/block/RiceBlock.java index 83b39e38a..30ba584c7 100644 --- a/src/main/java/vectorwing/farmersdelight/common/block/RiceBlock.java +++ b/src/main/java/vectorwing/farmersdelight/common/block/RiceBlock.java @@ -8,6 +8,7 @@ import net.minecraft.tags.FluidTags; import net.minecraft.util.Mth; import net.minecraft.util.RandomSource; +import net.minecraft.world.entity.LivingEntity; import net.minecraft.world.entity.player.Player; import net.minecraft.world.item.ItemStack; import net.minecraft.world.item.context.BlockPlaceContext; @@ -15,6 +16,7 @@ import net.minecraft.world.level.Level; import net.minecraft.world.level.LevelAccessor; import net.minecraft.world.level.LevelReader; +import net.minecraft.world.level.ScheduledTickAccess; import net.minecraft.world.level.block.Block; import net.minecraft.world.level.block.BonemealableBlock; import net.minecraft.world.level.block.BushBlock; @@ -54,12 +56,13 @@ public RiceBlock(Properties properties) { } @Override - protected MapCodec codec() { - return CODEC; + @SuppressWarnings("unchecked") + public MapCodec codec() { + return (MapCodec) (MapCodec) CODEC; } @Override - public void randomTick(BlockState state, ServerLevel level, BlockPos pos, RandomSource random) { + protected void randomTick(BlockState state, ServerLevel level, BlockPos pos, RandomSource random) { super.tick(state, level, pos, random); if (!level.isAreaLoaded(pos, 1)) return; if (level.getRawBrightness(pos.above(), 0) >= 6) { @@ -83,12 +86,12 @@ public void randomTick(BlockState state, ServerLevel level, BlockPos pos, Random } @Override - public VoxelShape getShape(BlockState state, BlockGetter level, BlockPos pos, CollisionContext context) { + protected VoxelShape getShape(BlockState state, BlockGetter level, BlockPos pos, CollisionContext context) { return SHAPE_BY_AGE[state.getValue(this.getAgeProperty())]; } @Override - public boolean canSurvive(BlockState state, LevelReader level, BlockPos pos) { + protected boolean canSurvive(BlockState state, LevelReader level, BlockPos pos) { FluidState fluid = level.getFluidState(pos); return super.canSurvive(state, level, pos) && fluid.is(FluidTags.WATER) && fluid.getAmount() == 8; } @@ -111,7 +114,7 @@ public int getMaxAge() { } @Override - public ItemStack getCloneItemStack(LevelReader level, BlockPos pos, BlockState state) { + protected ItemStack getCloneItemStack(LevelReader level, BlockPos pos, BlockState state, boolean includeData) { return new ItemStack(ModItems.RICE.get()); } @@ -129,10 +132,10 @@ protected void createBlockStateDefinition(StateDefinition.Builder= minBuildHeight) { BlockState blockStateBelow = level.getBlockState(reelingPos); @@ -75,7 +76,7 @@ public InteractionResult useWithoutItem(BlockState state, Level level, BlockPos } else { reelingPos.move(Direction.UP); level.destroyBlock(reelingPos, false, player); - return InteractionResult.sidedSuccess(level.isClientSide); + return InteractionResult.SUCCESS; } } } @@ -134,7 +135,7 @@ public static boolean tieToRopeAndWalls(BlockState state) { } @Override - public VoxelShape getCollisionShape(BlockState state, BlockGetter level, BlockPos pos, CollisionContext context) { + protected VoxelShape getCollisionShape(BlockState state, BlockGetter level, BlockPos pos, CollisionContext context) { return Shapes.empty(); } @@ -149,9 +150,9 @@ public boolean canBeReplaced(BlockState state, BlockPlaceContext useContext) { } @Override - public BlockState updateShape(BlockState state, Direction facing, BlockState facingState, LevelAccessor level, BlockPos currentPos, BlockPos facingPos) { + protected BlockState updateShape(BlockState state, LevelReader level, ScheduledTickAccess scheduledTickAccess, BlockPos currentPos, Direction facing, BlockPos facingPos, BlockState facingState, RandomSource random) { if (state.getValue(WATERLOGGED)) { - level.scheduleTick(currentPos, Fluids.WATER, Fluids.WATER.getTickDelay(level)); + scheduledTickAccess.scheduleTick(currentPos, Fluids.WATER, Fluids.WATER.getTickDelay(level)); } boolean tiedToBell = state.getValue(TIED_TO_BELL); @@ -161,11 +162,11 @@ public BlockState updateShape(BlockState state, Direction facing, BlockState fac return facing.getAxis().isHorizontal() ? state.setValue(TIED_TO_BELL, tiedToBell).setValue(PROPERTY_BY_DIRECTION.get(facing), tieToRopeAndWalls(facingState)) - : super.updateShape(state.setValue(TIED_TO_BELL, tiedToBell), facing, facingState, level, currentPos, facingPos); + : super.updateShape(state.setValue(TIED_TO_BELL, tiedToBell), level, scheduledTickAccess, currentPos, facing, facingPos, facingState, random); } @Override protected void createBlockStateDefinition(StateDefinition.Builder builder) { builder.add(NORTH, EAST, WEST, SOUTH, WATERLOGGED, TIED_TO_BELL); } -} \ No newline at end of file +} diff --git a/src/main/java/vectorwing/farmersdelight/common/block/RopeFenceBlock.java b/src/main/java/vectorwing/farmersdelight/common/block/RopeFenceBlock.java index 210c119be..212de8f57 100644 --- a/src/main/java/vectorwing/farmersdelight/common/block/RopeFenceBlock.java +++ b/src/main/java/vectorwing/farmersdelight/common/block/RopeFenceBlock.java @@ -3,9 +3,9 @@ import com.mojang.serialization.MapCodec; import net.minecraft.core.BlockPos; import net.minecraft.core.Direction; +import net.minecraft.util.RandomSource; import net.minecraft.world.InteractionHand; import net.minecraft.world.InteractionResult; -import net.minecraft.world.ItemInteractionResult; import net.minecraft.world.entity.player.Player; import net.minecraft.world.item.ItemStack; import net.minecraft.world.item.Items; @@ -13,7 +13,8 @@ import net.minecraft.world.item.context.BlockPlaceContext; 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.ScheduledTickAccess; import net.minecraft.world.level.block.Block; import net.minecraft.world.level.block.CrossCollisionBlock; import net.minecraft.world.level.block.FenceGateBlock; @@ -23,6 +24,7 @@ import net.minecraft.world.level.material.Fluids; import net.minecraft.world.phys.BlockHitResult; import net.minecraft.world.phys.shapes.CollisionContext; +import net.minecraft.world.phys.shapes.Shapes; import net.minecraft.world.phys.shapes.VoxelShape; import vectorwing.farmersdelight.common.registry.ModBlocks; @@ -31,6 +33,10 @@ public class RopeFenceBlock extends CrossCollisionBlock public static final MapCodec CODEC = simpleCodec(RopeFenceBlock::new); public static final VoxelShape POST = Block.box(7.0F, 0.0F, 7.0F, 9.0F, 16.0F, 9.0F); + public static final VoxelShape NORTH_SIDE = Block.box(7.0F, 4.0F, 0.0F, 9.0F, 14.0F, 9.0F); + public static final VoxelShape EAST_SIDE = Block.box(7.0F, 4.0F, 7.0F, 16.0F, 14.0F, 9.0F); + public static final VoxelShape SOUTH_SIDE = Block.box(7.0F, 4.0F, 7.0F, 9.0F, 14.0F, 16.0F); + public static final VoxelShape WEST_SIDE = Block.box(0.0F, 4.0F, 7.0F, 9.0F, 14.0F, 9.0F); @Override protected MapCodec codec() { @@ -38,7 +44,7 @@ protected MapCodec codec() { } public RopeFenceBlock(Properties properties) { - super(1.0F, 1.0F, 16.0F, 16.0F, 24.0F, properties); + super(2.0F, 16.0F, 2.0F, 14.0F, 24.0F, properties); this.registerDefaultState(this.stateDefinition.any() .setValue(NORTH, false) .setValue(EAST, false) @@ -48,9 +54,9 @@ public RopeFenceBlock(Properties properties) { } @Override - protected ItemInteractionResult useItemOn(ItemStack stack, BlockState state, Level level, BlockPos pos, Player player, InteractionHand hand, BlockHitResult hitResult) { - if (level.isClientSide) { - return stack.is(Items.LEAD) ? ItemInteractionResult.SUCCESS : ItemInteractionResult.SKIP_DEFAULT_BLOCK_INTERACTION; + protected InteractionResult useItemOn(ItemStack stack, BlockState state, Level level, BlockPos pos, Player player, InteractionHand hand, BlockHitResult hitResult) { + if (level.isClientSide()) { + return stack.is(Items.LEAD) ? InteractionResult.SUCCESS : InteractionResult.PASS; } else { return super.useItemOn(stack, state, level, pos, player, hand, hitResult); } @@ -62,12 +68,30 @@ protected InteractionResult useWithoutItem(BlockState state, Level level, BlockP } @Override - public VoxelShape getVisualShape(BlockState state, BlockGetter level, BlockPos pos, CollisionContext context) { - return POST; + protected VoxelShape getShape(BlockState state, BlockGetter level, BlockPos pos, CollisionContext context) { + VoxelShape shape = POST; + if (state.getValue(NORTH)) { + shape = Shapes.or(shape, NORTH_SIDE); + } + if (state.getValue(EAST)) { + shape = Shapes.or(shape, EAST_SIDE); + } + if (state.getValue(SOUTH)) { + shape = Shapes.or(shape, SOUTH_SIDE); + } + if (state.getValue(WEST)) { + shape = Shapes.or(shape, WEST_SIDE); + } + return shape; + } + + @Override + protected VoxelShape getVisualShape(BlockState state, BlockGetter level, BlockPos pos, CollisionContext context) { + return this.getShape(state, level, pos, context); } @Override - public VoxelShape getOcclusionShape(BlockState state, BlockGetter level, BlockPos pos) { + protected VoxelShape getOcclusionShape(BlockState state) { return POST; } @@ -102,14 +126,14 @@ public BlockState getStateForPlacement(BlockPlaceContext context) { } @Override - public BlockState updateShape(BlockState state, Direction facing, BlockState facingState, LevelAccessor level, BlockPos currentPos, BlockPos facingPos) { + protected BlockState updateShape(BlockState state, LevelReader level, ScheduledTickAccess scheduledTickAccess, BlockPos currentPos, Direction facing, BlockPos facingPos, BlockState facingState, RandomSource random) { if (state.getValue(WATERLOGGED)) { - level.scheduleTick(currentPos, Fluids.WATER, Fluids.WATER.getTickDelay(level)); + scheduledTickAccess.scheduleTick(currentPos, Fluids.WATER, Fluids.WATER.getTickDelay(level)); } return facing.getAxis().getPlane() == Direction.Plane.HORIZONTAL ? state.setValue(PROPERTY_BY_DIRECTION.get(facing), this.connectsTo(facingState, facingState.isFaceSturdy(level, facingPos, facing.getOpposite()), facing.getOpposite())) - : super.updateShape(state, facing, facingState, level, currentPos, facingPos); + : super.updateShape(state, level, scheduledTickAccess, currentPos, facing, facingPos, facingState, random); } @Override diff --git a/src/main/java/vectorwing/farmersdelight/common/block/RopeFenceGateBlock.java b/src/main/java/vectorwing/farmersdelight/common/block/RopeFenceGateBlock.java index 5ba3b884d..bab8788fe 100644 --- a/src/main/java/vectorwing/farmersdelight/common/block/RopeFenceGateBlock.java +++ b/src/main/java/vectorwing/farmersdelight/common/block/RopeFenceGateBlock.java @@ -3,8 +3,10 @@ import net.minecraft.core.BlockPos; import net.minecraft.core.Direction; import net.minecraft.tags.BlockTags; +import net.minecraft.util.RandomSource; import net.minecraft.world.level.BlockGetter; -import net.minecraft.world.level.LevelAccessor; +import net.minecraft.world.level.LevelReader; +import net.minecraft.world.level.ScheduledTickAccess; import net.minecraft.world.level.block.Block; import net.minecraft.world.level.block.FenceGateBlock; import net.minecraft.world.level.block.state.BlockState; @@ -25,10 +27,10 @@ public RopeFenceGateBlock(Properties props) { } @Override - public BlockState updateShape(BlockState state, Direction facing, BlockState facingState, LevelAccessor level, BlockPos currentPos, BlockPos facingPos) { + protected BlockState updateShape(BlockState state, LevelReader level, ScheduledTickAccess scheduledTickAccess, BlockPos currentPos, Direction facing, BlockPos facingPos, BlockState facingState, RandomSource random) { Direction.Axis axis = facing.getAxis(); if (state.getValue(FACING).getClockWise().getAxis() != axis) { - return super.updateShape(state, facing, facingState, level, currentPos, facingPos); + return super.updateShape(state, level, scheduledTickAccess, currentPos, facing, facingPos, facingState, random); } else { boolean isBorderedByWalls = this.isWall(facingState) && this.isWall(level.getBlockState(currentPos.relative(facing.getOpposite()))); return state.setValue(IN_WALL, isBorderedByWalls); @@ -40,12 +42,12 @@ protected boolean isWall(BlockState state) { } @Override - public VoxelShape getShape(BlockState state, BlockGetter level, BlockPos pos, CollisionContext context) { + protected VoxelShape getShape(BlockState state, BlockGetter level, BlockPos pos, CollisionContext context) { return state.getValue(FACING).getAxis() == Direction.Axis.X ? X_SHAPE : Z_SHAPE; } @Override - public VoxelShape getCollisionShape(BlockState state, BlockGetter level, BlockPos pos, CollisionContext context) { + protected VoxelShape getCollisionShape(BlockState state, BlockGetter level, BlockPos pos, CollisionContext context) { if (state.getValue(OPEN)) { return Shapes.empty(); } else { diff --git a/src/main/java/vectorwing/farmersdelight/common/block/SafetyNetBlock.java b/src/main/java/vectorwing/farmersdelight/common/block/SafetyNetBlock.java index bee8ae027..c25cc1a34 100644 --- a/src/main/java/vectorwing/farmersdelight/common/block/SafetyNetBlock.java +++ b/src/main/java/vectorwing/farmersdelight/common/block/SafetyNetBlock.java @@ -2,12 +2,14 @@ import net.minecraft.core.BlockPos; import net.minecraft.core.Direction; +import net.minecraft.util.RandomSource; import net.minecraft.world.entity.Entity; import net.minecraft.world.entity.LivingEntity; import net.minecraft.world.item.context.BlockPlaceContext; 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.ScheduledTickAccess; import net.minecraft.world.level.block.Block; import net.minecraft.world.level.block.SimpleWaterloggedBlock; import net.minecraft.world.level.block.state.BlockBehaviour; @@ -46,38 +48,30 @@ public BlockState getStateForPlacement(BlockPlaceContext context) { } @Override - public BlockState updateShape(BlockState state, Direction facing, BlockState facingState, LevelAccessor level, BlockPos currentPos, BlockPos facingPos) { + protected BlockState updateShape(BlockState state, LevelReader level, ScheduledTickAccess scheduledTickAccess, BlockPos currentPos, Direction facing, BlockPos facingPos, BlockState facingState, RandomSource random) { if (state.getValue(WATERLOGGED)) { - level.scheduleTick(currentPos, Fluids.WATER, Fluids.WATER.getTickDelay(level)); + scheduledTickAccess.scheduleTick(currentPos, Fluids.WATER, Fluids.WATER.getTickDelay(level)); } - return super.updateShape(state, facing, facingState, level, currentPos, facingPos); + return super.updateShape(state, level, scheduledTickAccess, currentPos, facing, facingPos, facingState, random); } @Override - public FluidState getFluidState(BlockState state) { + protected FluidState getFluidState(BlockState state) { return state.getValue(WATERLOGGED) ? Fluids.WATER.getSource(false) : super.getFluidState(state); } @Override - public VoxelShape getShape(BlockState state, BlockGetter level, BlockPos pos, CollisionContext context) { + protected VoxelShape getShape(BlockState state, BlockGetter level, BlockPos pos, CollisionContext context) { return SHAPE; } @Override - public void fallOn(Level level, BlockState state, BlockPos pos, Entity entity, float fallDistance) { + public void fallOn(Level level, BlockState state, BlockPos pos, Entity entity, double fallDistance) { if (entity.isSuppressingBounce()) { super.fallOn(level, state, pos, entity, fallDistance); } else { - entity.causeFallDamage(fallDistance, 0.0F, level.damageSources().fall()); - } - } - - @Override - public void updateEntityAfterFallOn(BlockGetter level, Entity entity) { - if (entity.isSuppressingBounce()) { - super.updateEntityAfterFallOn(level, entity); - } else { + entity.causeFallDamage((float) fallDistance, 0.0F, level.damageSources().fall()); this.bounceEntity(entity); } } diff --git a/src/main/java/vectorwing/farmersdelight/common/block/SandyShrubBlock.java b/src/main/java/vectorwing/farmersdelight/common/block/SandyShrubBlock.java index 5a984059e..c408c95eb 100644 --- a/src/main/java/vectorwing/farmersdelight/common/block/SandyShrubBlock.java +++ b/src/main/java/vectorwing/farmersdelight/common/block/SandyShrubBlock.java @@ -29,12 +29,13 @@ public SandyShrubBlock(Properties properties) { } @Override - protected MapCodec codec() { - return CODEC; + @SuppressWarnings("unchecked") + public MapCodec codec() { + return (MapCodec) (MapCodec) CODEC; } @Override - public VoxelShape getShape(BlockState state, BlockGetter level, BlockPos pos, CollisionContext context) { + protected VoxelShape getShape(BlockState state, BlockGetter level, BlockPos pos, CollisionContext context) { return SHAPE; } @@ -55,8 +56,8 @@ public boolean isBonemealSuccess(Level level, RandomSource random, BlockPos pos, @Override public void performBonemeal(ServerLevel level, RandomSource random, BlockPos pos, BlockState state) { - level.registryAccess().registry(Registries.CONFIGURED_FEATURE).flatMap((value) -> value.getHolder(WildCropGeneration.FEATURE_PATCH_SANDY_SHRUB)).ifPresent((value) -> { - value.value().place(level, level.getChunkSource().getGenerator(), random, pos.above()); - }); + level.registryAccess().lookupOrThrow(Registries.CONFIGURED_FEATURE) + .getValueOrThrow(WildCropGeneration.FEATURE_PATCH_SANDY_SHRUB) + .place(level, level.getChunkSource().getGenerator(), random, pos.above()); } } diff --git a/src/main/java/vectorwing/farmersdelight/common/block/SkilletBlock.java b/src/main/java/vectorwing/farmersdelight/common/block/SkilletBlock.java index 8c548d13f..698a3a1cf 100644 --- a/src/main/java/vectorwing/farmersdelight/common/block/SkilletBlock.java +++ b/src/main/java/vectorwing/farmersdelight/common/block/SkilletBlock.java @@ -3,13 +3,13 @@ import com.mojang.serialization.MapCodec; import net.minecraft.core.BlockPos; import net.minecraft.core.Direction; +import net.minecraft.server.level.ServerLevel; import net.minecraft.sounds.SoundEvents; import net.minecraft.sounds.SoundSource; import net.minecraft.util.Mth; import net.minecraft.util.RandomSource; -import net.minecraft.world.Containers; import net.minecraft.world.InteractionHand; -import net.minecraft.world.ItemInteractionResult; +import net.minecraft.world.InteractionResult; import net.minecraft.world.entity.EquipmentSlot; import net.minecraft.world.entity.player.Player; import net.minecraft.world.item.ItemStack; @@ -18,6 +18,7 @@ import net.minecraft.world.level.Level; import net.minecraft.world.level.LevelAccessor; import net.minecraft.world.level.LevelReader; +import net.minecraft.world.level.ScheduledTickAccess; import net.minecraft.world.level.block.BaseEntityBlock; import net.minecraft.world.level.block.Block; import net.minecraft.world.level.block.RenderShape; @@ -30,7 +31,7 @@ import net.minecraft.world.level.block.state.StateDefinition; import net.minecraft.world.level.block.state.properties.BlockStateProperties; import net.minecraft.world.level.block.state.properties.BooleanProperty; -import net.minecraft.world.level.block.state.properties.DirectionProperty; +import net.minecraft.world.level.block.state.properties.EnumProperty; import net.minecraft.world.level.material.FluidState; import net.minecraft.world.level.material.Fluids; import net.minecraft.world.phys.BlockHitResult; @@ -41,6 +42,7 @@ import vectorwing.farmersdelight.common.registry.ModBlockEntityTypes; import vectorwing.farmersdelight.common.registry.ModSounds; import vectorwing.farmersdelight.common.tag.ModTags; +import vectorwing.farmersdelight.common.utility.ItemUtils; import javax.annotation.Nullable; import java.util.Optional; @@ -52,7 +54,7 @@ public class SkilletBlock extends BaseEntityBlock implements SimpleWaterloggedBl public static final int MINIMUM_COOKING_TIME = 60; - public static final DirectionProperty FACING = BlockStateProperties.HORIZONTAL_FACING; + public static final EnumProperty FACING = BlockStateProperties.HORIZONTAL_FACING; public static final BooleanProperty SUPPORT = BooleanProperty.create("support"); public static final BooleanProperty WATERLOGGED = BlockStateProperties.WATERLOGGED; @@ -70,10 +72,10 @@ protected MapCodec codec() { } @Override - public ItemInteractionResult useItemOn(ItemStack stack, BlockState state, Level level, BlockPos pos, Player player, InteractionHand hand, BlockHitResult hit) { + protected InteractionResult useItemOn(ItemStack stack, BlockState state, Level level, BlockPos pos, Player player, InteractionHand hand, BlockHitResult hit) { if (level.getBlockEntity(pos) instanceof SkilletBlockEntity skillet) { - if (level.isClientSide) { - return ItemInteractionResult.CONSUME; + if (level.isClientSide()) { + return InteractionResult.CONSUME; } ItemStack heldStack = player.getItemInHand(hand); EquipmentSlot heldSlot = hand.equals(InteractionHand.MAIN_HAND) ? EquipmentSlot.MAINHAND : EquipmentSlot.OFFHAND; @@ -82,7 +84,7 @@ public ItemInteractionResult useItemOn(ItemStack stack, BlockState state, Level if (!player.isCreative()) { player.setItemSlot(heldSlot, extractedStack); } - return ItemInteractionResult.SUCCESS; + return InteractionResult.SUCCESS; } ItemStack remainderStack = skillet.addItemToCook(heldStack, player); if (remainderStack.getCount() != heldStack.getCount()) { @@ -90,35 +92,33 @@ public ItemInteractionResult useItemOn(ItemStack stack, BlockState state, Level player.setItemSlot(heldSlot, remainderStack); } level.playSound(null, pos, SoundEvents.LANTERN_PLACE, SoundSource.BLOCKS, 0.7F, 1.0F); - return ItemInteractionResult.SUCCESS; + return InteractionResult.SUCCESS; } } - return ItemInteractionResult.PASS_TO_DEFAULT_BLOCK_INTERACTION; + return InteractionResult.PASS; } @Override - public RenderShape getRenderShape(BlockState state) { + protected RenderShape getRenderShape(BlockState state) { return RenderShape.MODEL; } @Override - public void onRemove(BlockState state, Level level, BlockPos pos, BlockState newState, boolean isMoving) { - if (!state.is(newState.getBlock())) { + protected void affectNeighborsAfterRemoval(BlockState state, ServerLevel level, BlockPos pos, boolean isMoving) { if (level.getBlockEntity(pos) instanceof SkilletBlockEntity skillet) { - Containers.dropItemStack(level, pos.getX(), pos.getY(), pos.getZ(), skillet.getInventory().getStackInSlot(0)); + ItemUtils.dropItems(level, pos, skillet.getTransferInventory()); } - super.onRemove(state, level, pos, newState, isMoving); - } + super.affectNeighborsAfterRemoval(state, level, pos, isMoving); } @Override - public VoxelShape getShape(BlockState state, BlockGetter level, BlockPos pos, CollisionContext context) { + protected VoxelShape getShape(BlockState state, BlockGetter level, BlockPos pos, CollisionContext context) { return SHAPE; } @Override - public VoxelShape getCollisionShape(BlockState state, BlockGetter level, BlockPos pos, CollisionContext context) { + protected VoxelShape getCollisionShape(BlockState state, BlockGetter level, BlockPos pos, CollisionContext context) { return state.getValue(SUPPORT).equals(true) ? SHAPE_WITH_TRAY : SHAPE; } @@ -134,9 +134,9 @@ public BlockState getStateForPlacement(BlockPlaceContext context) { } @Override - public BlockState updateShape(BlockState state, Direction facing, BlockState facingState, LevelAccessor level, BlockPos currentPos, BlockPos facingPos) { + protected BlockState updateShape(BlockState state, LevelReader level, ScheduledTickAccess scheduledTickAccess, BlockPos currentPos, Direction facing, BlockPos facingPos, BlockState facingState, RandomSource random) { if (state.getValue(WATERLOGGED)) { - level.scheduleTick(currentPos, Fluids.WATER, Fluids.WATER.getTickDelay(level)); + scheduledTickAccess.scheduleTick(currentPos, Fluids.WATER, Fluids.WATER.getTickDelay(level)); } if (facing.getAxis().equals(Direction.Axis.Y)) { return state.setValue(SUPPORT, getTrayState(level, currentPos)); @@ -145,12 +145,12 @@ public BlockState updateShape(BlockState state, Direction facing, BlockState fac } @Override - public ItemStack getCloneItemStack(LevelReader level, BlockPos pos, BlockState state) { + protected ItemStack getCloneItemStack(LevelReader level, BlockPos pos, BlockState state, boolean includeData) { if (level.getBlockEntity(pos) instanceof SkilletBlockEntity skillet) { return skillet.getSkilletAsItem(); } - return super.getCloneItemStack(level, pos, state); + return super.getCloneItemStack(level, pos, state, includeData); } @Override @@ -173,7 +173,7 @@ public void animateTick(BlockState state, Level level, BlockPos pos, RandomSourc } @Override - public FluidState getFluidState(BlockState state) { + protected FluidState getFluidState(BlockState state) { return state.getValue(WATERLOGGED) ? Fluids.WATER.getSource(false) : super.getFluidState(state); } @@ -185,14 +185,14 @@ public BlockEntity newBlockEntity(BlockPos pos, BlockState state) { @Nullable public BlockEntityTicker getTicker(Level level, BlockState state, BlockEntityType blockEntity) { - if (level.isClientSide) { + if (level.isClientSide()) { return createTickerHelper(blockEntity, ModBlockEntityTypes.SKILLET.get(), SkilletBlockEntity::animationTick); } else { return createTickerHelper(blockEntity, ModBlockEntityTypes.SKILLET.get(), SkilletBlockEntity::cookingTick); } } - private boolean getTrayState(LevelAccessor world, BlockPos pos) { + private boolean getTrayState(LevelReader world, BlockPos pos) { return world.getBlockState(pos.below()).is(ModTags.Blocks.TRAY_HEAT_SOURCES); } diff --git a/src/main/java/vectorwing/farmersdelight/common/block/StandingCanvasSignBlock.java b/src/main/java/vectorwing/farmersdelight/common/block/StandingCanvasSignBlock.java index c279defbc..ca6449353 100644 --- a/src/main/java/vectorwing/farmersdelight/common/block/StandingCanvasSignBlock.java +++ b/src/main/java/vectorwing/farmersdelight/common/block/StandingCanvasSignBlock.java @@ -21,7 +21,11 @@ public class StandingCanvasSignBlock extends StandingSignBlock implements Canvas private final DyeColor backgroundColor; public StandingCanvasSignBlock(@Nullable DyeColor backgroundColor) { - super(WoodType.SPRUCE, Properties.ofFullCopy(Blocks.SPRUCE_SIGN)); + this(Properties.ofFullCopy(Blocks.SPRUCE_SIGN), backgroundColor); + } + + public StandingCanvasSignBlock(Properties properties, @Nullable DyeColor backgroundColor) { + super(WoodType.SPRUCE, properties); this.backgroundColor = backgroundColor; } diff --git a/src/main/java/vectorwing/farmersdelight/common/block/StoveBlock.java b/src/main/java/vectorwing/farmersdelight/common/block/StoveBlock.java index 94e7e66a6..557f8fb3b 100644 --- a/src/main/java/vectorwing/farmersdelight/common/block/StoveBlock.java +++ b/src/main/java/vectorwing/farmersdelight/common/block/StoveBlock.java @@ -38,7 +38,7 @@ public BlockEntity newBlockEntity(BlockPos pos, BlockState state) { @Nullable public BlockEntityTicker getTicker(Level level, BlockState state, BlockEntityType blockEntityType) { - if (level.isClientSide && state.getValue(LIT)) return createTickerHelper(blockEntityType, ModBlockEntityTypes.STOVE.get(), StoveBlockEntity::particleTick); + if (level.isClientSide() && state.getValue(LIT)) return createTickerHelper(blockEntityType, ModBlockEntityTypes.STOVE.get(), StoveBlockEntity::particleTick); return createStoveTicker(level, blockEntityType, ModBlockEntityTypes.STOVE.get()); } diff --git a/src/main/java/vectorwing/farmersdelight/common/block/TatamiBlock.java b/src/main/java/vectorwing/farmersdelight/common/block/TatamiBlock.java index eac355cf7..cae0b7151 100644 --- a/src/main/java/vectorwing/farmersdelight/common/block/TatamiBlock.java +++ b/src/main/java/vectorwing/farmersdelight/common/block/TatamiBlock.java @@ -2,11 +2,13 @@ import net.minecraft.core.BlockPos; import net.minecraft.core.Direction; +import net.minecraft.util.RandomSource; import net.minecraft.world.entity.LivingEntity; import net.minecraft.world.item.ItemStack; import net.minecraft.world.item.context.BlockPlaceContext; import net.minecraft.world.level.Level; -import net.minecraft.world.level.LevelAccessor; +import net.minecraft.world.level.LevelReader; +import net.minecraft.world.level.ScheduledTickAccess; import net.minecraft.world.level.block.Block; import net.minecraft.world.level.block.Blocks; import net.minecraft.world.level.block.Mirror; @@ -16,14 +18,14 @@ import net.minecraft.world.level.block.state.StateDefinition; import net.minecraft.world.level.block.state.properties.BlockStateProperties; import net.minecraft.world.level.block.state.properties.BooleanProperty; -import net.minecraft.world.level.block.state.properties.DirectionProperty; +import net.minecraft.world.level.block.state.properties.EnumProperty; import javax.annotation.Nullable; @SuppressWarnings("deprecation") public class TatamiBlock extends Block { - public static final DirectionProperty FACING = BlockStateProperties.FACING; + public static final EnumProperty FACING = BlockStateProperties.FACING; public static final BooleanProperty PAIRED = BooleanProperty.create("paired"); public TatamiBlock(BlockBehaviour.Properties properties) { @@ -48,7 +50,7 @@ public BlockState getStateForPlacement(BlockPlaceContext context) { @Override public void setPlacedBy(Level level, BlockPos pos, BlockState state, @Nullable LivingEntity placer, ItemStack stack) { super.setPlacedBy(level, pos, state, placer, stack); - if (!level.isClientSide) { + if (!level.isClientSide()) { if (placer != null && placer.isShiftKeyDown()) { return; } @@ -56,18 +58,18 @@ public void setPlacedBy(Level level, BlockPos pos, BlockState state, @Nullable L BlockState facingState = level.getBlockState(facingPos); if (facingState.getBlock() == this && !facingState.getValue(PAIRED)) { level.setBlock(facingPos, state.setValue(FACING, state.getValue(FACING).getOpposite()).setValue(PAIRED, true), 3); - level.blockUpdated(pos, Blocks.AIR); + level.updateNeighborsAt(pos, Blocks.AIR, null); state.updateNeighbourShapes(level, pos, 3); } } } @Override - public BlockState updateShape(BlockState state, Direction facing, BlockState facingState, LevelAccessor level, BlockPos currentPos, BlockPos facingPos) { + protected BlockState updateShape(BlockState state, LevelReader level, ScheduledTickAccess scheduledTickAccess, BlockPos currentPos, Direction facing, BlockPos facingPos, BlockState facingState, RandomSource random) { if (facing.equals(state.getValue(FACING)) && state.getValue(PAIRED) && level.getBlockState(facingPos).getBlock() != this) { return state.setValue(PAIRED, false); } - return super.updateShape(state, facing, facingState, level, currentPos, facingPos); + return super.updateShape(state, level, scheduledTickAccess, currentPos, facing, facingPos, facingState, random); } @Override diff --git a/src/main/java/vectorwing/farmersdelight/common/block/TatamiHalfMatBlock.java b/src/main/java/vectorwing/farmersdelight/common/block/TatamiHalfMatBlock.java index 1cc93ebb4..8ff38a80e 100644 --- a/src/main/java/vectorwing/farmersdelight/common/block/TatamiHalfMatBlock.java +++ b/src/main/java/vectorwing/farmersdelight/common/block/TatamiHalfMatBlock.java @@ -3,10 +3,11 @@ import com.mojang.serialization.MapCodec; import net.minecraft.core.BlockPos; import net.minecraft.core.Direction; +import net.minecraft.util.RandomSource; import net.minecraft.world.item.context.BlockPlaceContext; import net.minecraft.world.level.BlockGetter; -import net.minecraft.world.level.LevelAccessor; import net.minecraft.world.level.LevelReader; +import net.minecraft.world.level.ScheduledTickAccess; import net.minecraft.world.level.block.Block; import net.minecraft.world.level.block.Blocks; import net.minecraft.world.level.block.HorizontalDirectionalBlock; @@ -33,17 +34,17 @@ protected MapCodec codec() { } @Override - public VoxelShape getShape(BlockState state, BlockGetter level, BlockPos pos, CollisionContext context) { + protected VoxelShape getShape(BlockState state, BlockGetter level, BlockPos pos, CollisionContext context) { return SHAPE; } @Override - public BlockState updateShape(BlockState state, Direction facing, BlockState facingState, LevelAccessor level, BlockPos currentPos, BlockPos facingPos) { - return !state.canSurvive(level, currentPos) ? Blocks.AIR.defaultBlockState() : super.updateShape(state, facing, facingState, level, currentPos, facingPos); + protected BlockState updateShape(BlockState state, LevelReader level, ScheduledTickAccess scheduledTickAccess, BlockPos currentPos, Direction facing, BlockPos facingPos, BlockState facingState, RandomSource random) { + return !state.canSurvive(level, currentPos) ? Blocks.AIR.defaultBlockState() : super.updateShape(state, level, scheduledTickAccess, currentPos, facing, facingPos, facingState, random); } @Override - public boolean canSurvive(BlockState state, LevelReader level, BlockPos pos) { + protected boolean canSurvive(BlockState state, LevelReader level, BlockPos pos) { return !level.isEmptyBlock(pos.below()); } diff --git a/src/main/java/vectorwing/farmersdelight/common/block/TatamiMatBlock.java b/src/main/java/vectorwing/farmersdelight/common/block/TatamiMatBlock.java index 61362544b..c00e278bc 100644 --- a/src/main/java/vectorwing/farmersdelight/common/block/TatamiMatBlock.java +++ b/src/main/java/vectorwing/farmersdelight/common/block/TatamiMatBlock.java @@ -3,14 +3,15 @@ import com.mojang.serialization.MapCodec; import net.minecraft.core.BlockPos; import net.minecraft.core.Direction; +import net.minecraft.util.RandomSource; import net.minecraft.world.entity.LivingEntity; import net.minecraft.world.entity.player.Player; import net.minecraft.world.item.ItemStack; import net.minecraft.world.item.context.BlockPlaceContext; 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.ScheduledTickAccess; import net.minecraft.world.level.block.*; import net.minecraft.world.level.block.state.BlockBehaviour; import net.minecraft.world.level.block.state.BlockState; @@ -50,32 +51,32 @@ protected void createBlockStateDefinition(StateDefinition.Builder blockReference.value()) + .orElse(ModBlocks.ROPE.get()); level.setBlockAndUpdate(pos, finalRopeBlock.defaultBlockState()); } } diff --git a/src/main/java/vectorwing/farmersdelight/common/block/WildRiceBlock.java b/src/main/java/vectorwing/farmersdelight/common/block/WildRiceBlock.java index 3b712209f..7399dfccb 100644 --- a/src/main/java/vectorwing/farmersdelight/common/block/WildRiceBlock.java +++ b/src/main/java/vectorwing/farmersdelight/common/block/WildRiceBlock.java @@ -12,8 +12,8 @@ import net.minecraft.world.item.context.BlockPlaceContext; 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.ScheduledTickAccess; import net.minecraft.world.level.block.*; import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.block.state.StateDefinition; @@ -43,7 +43,7 @@ protected void createBlockStateDefinition(StateDefinition.Builder transferItems; private final int[] cookingProgress; private final int[] cookingTime; private final RecipeManager.CachedCheck quickRecipeLookup; @@ -39,6 +48,7 @@ protected AbstractStoveBlockEntity(BlockEntityType blockEntityType, BlockPos int inventorySlotCount = this.getInventorySlotCount(); items = createHandler(inventorySlotCount); + transferItems = new ItemHandlerResourceHandler(items, slot -> true, slot -> true, originalState -> setChanged()); cookingProgress = new int[inventorySlotCount]; cookingTime = new int[inventorySlotCount]; quickRecipeLookup = RecipeManager.createCheck(recipeType); @@ -52,32 +62,27 @@ public ItemStackHandler getItems() { return this.items; } - @Override - public void loadAdditional(CompoundTag tag, HolderLookup.Provider registries) { - super.loadAdditional(tag, registries); - - CompoundTag inventoryTag; - if (tag.contains("Inventory")) inventoryTag = tag.getCompound("Inventory"); - else inventoryTag = tag; - items.deserializeNBT(registries, inventoryTag); + public ResourceHandler getTransferItems() { + return this.transferItems; + } - if (tag.contains("CookingTimes", 11)) { - int[] arrayCookingTimes = tag.getIntArray("CookingTimes"); - System.arraycopy(arrayCookingTimes, 0, this.cookingProgress, 0, Math.min(this.cookingTime.length, arrayCookingTimes.length)); - } + @Override + protected void loadAdditional(ValueInput input) { + super.loadAdditional(input); - if (tag.contains("CookingTotalTimes", 11)) { - int[] arrayCookingTimesTotal = tag.getIntArray("CookingTotalTimes"); - System.arraycopy(arrayCookingTimesTotal, 0, this.cookingTime, 0, Math.min(this.cookingTime.length, arrayCookingTimesTotal.length)); - } + items.deserialize(input.childOrEmpty("Inventory")); + input.getIntArray("CookingTimes").ifPresent(arrayCookingTimes -> + System.arraycopy(arrayCookingTimes, 0, this.cookingProgress, 0, Math.min(this.cookingTime.length, arrayCookingTimes.length))); + input.getIntArray("CookingTotalTimes").ifPresent(arrayCookingTimesTotal -> + System.arraycopy(arrayCookingTimesTotal, 0, this.cookingTime, 0, Math.min(this.cookingTime.length, arrayCookingTimesTotal.length))); } @Override - public void saveAdditional(CompoundTag tag, HolderLookup.Provider registries) { - super.saveAdditional(tag, registries); - tag.put("Inventory", items.serializeNBT(registries)); - tag.putIntArray("CookingTimes", this.cookingProgress); - tag.putIntArray("CookingTotalTimes", this.cookingTime); + protected void saveAdditional(ValueOutput output) { + super.saveAdditional(output); + items.serialize(output.child("Inventory")); + output.putIntArray("CookingTimes", this.cookingProgress); + output.putIntArray("CookingTotalTimes", this.cookingTime); } @Override @@ -88,7 +93,9 @@ public ClientboundBlockEntityDataPacket getUpdatePacket() { @Override public CompoundTag getUpdateTag(HolderLookup.Provider registries) { CompoundTag tag = super.getUpdateTag(registries); - tag.put("Inventory", items.serializeNBT(registries)); + TagValueOutput output = TagValueOutput.createWithContext(ProblemReporter.DISCARDING, registries); + items.serialize(output.child("Inventory")); + tag.merge(output.buildResult()); return tag; } @@ -120,14 +127,15 @@ private void cookAndOutputItems() { if (cookingProgress[i] < cookingTime[i]) continue; var input = new SingleRecipeInput(ingredient); - ItemStack result = this.quickRecipeLookup.getRecipeFor(input, this.level) - .map((recipe) -> recipe.value().assemble(input, this.level.registryAccess())) + if (!(this.level instanceof ServerLevel serverLevel)) continue; + ItemStack result = this.quickRecipeLookup.getRecipeFor(input, serverLevel) + .map((recipe) -> recipe.value().assemble(input)) .orElse(ingredient); if (!result.isItemEnabled(this.level.enabledFeatures())) continue; ItemUtils.spawnItemEntity(level, result.copy(), worldPosition.getX() + 0.5, worldPosition.getY() + 1.0, worldPosition.getZ() + 0.5, - level.random.nextGaussian() * (double) 0.01F, 0.1F, level.random.nextGaussian() * (double) 0.01F); + level.getRandom().nextGaussian() * (double) 0.01F, 0.1F, level.getRandom().nextGaussian() * (double) 0.01F); this.items.setStackInSlot(i, ItemStack.EMPTY); var state = this.getBlockState(); this.level.sendBlockUpdated(this.worldPosition, state, state, Block.UPDATE_ALL); @@ -151,7 +159,7 @@ private void coolItems() { public Optional> getCookingRecipe(ItemStack itemStack) { assert this.level != null; - return this.quickRecipeLookup.getRecipeFor(new SingleRecipeInput(itemStack), this.level); + return this.level instanceof ServerLevel serverLevel ? this.quickRecipeLookup.getRecipeFor(new SingleRecipeInput(itemStack), serverLevel) : Optional.empty(); } public int getNextEmptySlot() { @@ -168,7 +176,7 @@ public boolean placeFood(@Nullable Entity entity, ItemStack foodStackToPlace, Re if (emptySlotIndex < 0) return false; assert this.items.getStackInSlot(emptySlotIndex).isEmpty(); - this.cookingTime[emptySlotIndex] = recipe.value().getCookingTime(); + this.cookingTime[emptySlotIndex] = recipe.value().cookingTime(); this.cookingProgress[emptySlotIndex] = 0; this.items.setStackInSlot(emptySlotIndex, foodStackToPlace.split(1)); var state = this.getBlockState(); @@ -198,7 +206,7 @@ public boolean isFull() { public void dropAllItems() { if (this.level == null) return; - ItemUtils.dropItems(this.level, this.worldPosition, this.items); + ItemUtils.dropItems(this.level, this.worldPosition, this.transferItems); var state = this.getBlockState(); this.level.sendBlockUpdated(this.worldPosition, state, state, Block.UPDATE_ALL); this.level.gameEvent(GameEvent.BLOCK_CHANGE, this.worldPosition, GameEvent.Context.of(state)); @@ -217,7 +225,7 @@ public void ignite() { } public void clearContent() { - streamItems().forEach((stack) -> stack.setCount(0)); + ItemUtils.clearItems(transferItems); } private static ItemStackHandler createHandler(int slotCount) { diff --git a/src/main/java/vectorwing/farmersdelight/common/block/entity/BasketBlockEntity.java b/src/main/java/vectorwing/farmersdelight/common/block/entity/BasketBlockEntity.java index 859960473..fd3443edf 100644 --- a/src/main/java/vectorwing/farmersdelight/common/block/entity/BasketBlockEntity.java +++ b/src/main/java/vectorwing/farmersdelight/common/block/entity/BasketBlockEntity.java @@ -1,9 +1,7 @@ package vectorwing.farmersdelight.common.block.entity; import net.minecraft.core.BlockPos; -import net.minecraft.core.HolderLookup; import net.minecraft.core.NonNullList; -import net.minecraft.nbt.CompoundTag; import net.minecraft.network.chat.Component; import net.minecraft.world.ContainerHelper; import net.minecraft.world.entity.player.Inventory; @@ -14,6 +12,8 @@ import net.minecraft.world.level.block.entity.RandomizableContainerBlockEntity; import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.block.state.properties.BlockStateProperties; +import net.minecraft.world.level.storage.ValueInput; +import net.minecraft.world.level.storage.ValueOutput; import net.neoforged.bus.api.SubscribeEvent; import net.neoforged.fml.common.EventBusSubscriber; import net.neoforged.neoforge.capabilities.Capabilities; @@ -21,6 +21,7 @@ import vectorwing.farmersdelight.FarmersDelight; import vectorwing.farmersdelight.common.block.BasketBlock; import vectorwing.farmersdelight.common.block.entity.inventory.BasketInvWrapper; +import vectorwing.farmersdelight.common.block.entity.inventory.ItemHandlerResourceHandler; import vectorwing.farmersdelight.common.registry.ModBlockEntityTypes; import vectorwing.farmersdelight.common.utility.TextUtils; @@ -38,31 +39,28 @@ public BasketBlockEntity(BlockPos pos, BlockState state) { @SubscribeEvent public static void registerCapabilities(RegisterCapabilitiesEvent event) { - event.registerBlockEntity( - Capabilities.ItemHandler.BLOCK, - ModBlockEntityTypes.BASKET.get(), - (be, context) -> new BasketInvWrapper(be) - ); + event.registerBlockEntity(Capabilities.Item.BLOCK, ModBlockEntityTypes.BASKET.get(), (basket, side) -> + new ItemHandlerResourceHandler(new BasketInvWrapper(basket), slot -> true, slot -> true, originalState -> { + if (originalState.stream().allMatch(ItemStack::isEmpty) && !basket.isEmpty() && !basket.isOnCustomCooldown()) { + basket.setCooldown(8); + } + basket.setChanged(); + })); } @Override - protected void loadAdditional(CompoundTag compound, HolderLookup.Provider registries) { - super.loadAdditional(compound, registries); + protected void loadAdditional(ValueInput input) { + super.loadAdditional(input); this.items = NonNullList.withSize(this.getContainerSize(), ItemStack.EMPTY); - if (!this.tryLoadLootTable(compound)) { - ContainerHelper.loadAllItems(compound, this.items, registries); - } - this.transferCooldown = compound.getInt("TransferCooldown"); + ContainerHelper.loadAllItems(input, this.items); + this.transferCooldown = input.getIntOr("TransferCooldown", -1); } @Override - public void saveAdditional(CompoundTag compound, HolderLookup.Provider registries) { - super.saveAdditional(compound, registries); - if (!this.trySaveLootTable(compound)) { - ContainerHelper.saveAllItems(compound, this.items, registries); - } - - compound.putInt("TransferCooldown", this.transferCooldown); + protected void saveAdditional(ValueOutput output) { + super.saveAdditional(output); + ContainerHelper.saveAllItems(output, this.items); + output.putInt("TransferCooldown", this.transferCooldown); } @Override @@ -122,7 +120,7 @@ public boolean isOnCustomCooldown() { @Override public void tryTransfer(BooleanSupplier transfer) { - if (this.level != null && !this.level.isClientSide) { + if (this.level != null && !this.level.isClientSide()) { if (!this.isOnCooldown() && this.getBlockState().getValue(BlockStateProperties.ENABLED)) { boolean flag = false; if (!this.isFull()) { diff --git a/src/main/java/vectorwing/farmersdelight/common/block/entity/CabinetBlockEntity.java b/src/main/java/vectorwing/farmersdelight/common/block/entity/CabinetBlockEntity.java index 84b31ed6b..3eeeb9dbc 100644 --- a/src/main/java/vectorwing/farmersdelight/common/block/entity/CabinetBlockEntity.java +++ b/src/main/java/vectorwing/farmersdelight/common/block/entity/CabinetBlockEntity.java @@ -1,10 +1,8 @@ package vectorwing.farmersdelight.common.block.entity; import net.minecraft.core.BlockPos; -import net.minecraft.core.HolderLookup; import net.minecraft.core.NonNullList; import net.minecraft.core.Vec3i; -import net.minecraft.nbt.CompoundTag; import net.minecraft.network.chat.Component; import net.minecraft.sounds.SoundEvent; import net.minecraft.sounds.SoundSource; @@ -19,11 +17,13 @@ import net.minecraft.world.level.block.entity.ContainerOpenersCounter; import net.minecraft.world.level.block.entity.RandomizableContainerBlockEntity; import net.minecraft.world.level.block.state.BlockState; +import net.minecraft.world.level.storage.ValueInput; +import net.minecraft.world.level.storage.ValueOutput; import net.neoforged.bus.api.SubscribeEvent; import net.neoforged.fml.common.EventBusSubscriber; import net.neoforged.neoforge.capabilities.Capabilities; import net.neoforged.neoforge.capabilities.RegisterCapabilitiesEvent; -import net.neoforged.neoforge.items.wrapper.InvWrapper; +import net.neoforged.neoforge.transfer.item.VanillaContainerWrapper; import vectorwing.farmersdelight.FarmersDelight; import vectorwing.farmersdelight.common.block.CabinetBlock; import vectorwing.farmersdelight.common.registry.ModBlockEntityTypes; @@ -49,7 +49,7 @@ protected void onClose(Level level, BlockPos pos, BlockState state) { protected void openerCountChanged(Level level, BlockPos pos, BlockState sta, int arg1, int arg2) { } - protected boolean isOwnContainer(Player p_155060_) { + public boolean isOwnContainer(Player p_155060_) { if (p_155060_.containerMenu instanceof ChestMenu) { Container container = ((ChestMenu) p_155060_.containerMenu).getContainer(); return container == CabinetBlockEntity.this; @@ -65,28 +65,20 @@ public CabinetBlockEntity(BlockPos pos, BlockState state) { @SubscribeEvent public static void registerCapabilities(RegisterCapabilitiesEvent event) { - event.registerBlockEntity( - Capabilities.ItemHandler.BLOCK, - ModBlockEntityTypes.CABINET.get(), - (be, context) -> new InvWrapper(be) - ); + event.registerBlockEntity(Capabilities.Item.BLOCK, ModBlockEntityTypes.CABINET.get(), (cabinet, side) -> VanillaContainerWrapper.of(cabinet)); } @Override - public void saveAdditional(CompoundTag compound, HolderLookup.Provider registries) { - super.saveAdditional(compound, registries); - if (!trySaveLootTable(compound)) { - ContainerHelper.saveAllItems(compound, contents, registries); - } + protected void saveAdditional(ValueOutput output) { + super.saveAdditional(output); + ContainerHelper.saveAllItems(output, contents); } @Override - public void loadAdditional(CompoundTag compound, HolderLookup.Provider registries) { - super.loadAdditional(compound, registries); + protected void loadAdditional(ValueInput input) { + super.loadAdditional(input); contents = NonNullList.withSize(getContainerSize(), ItemStack.EMPTY); - if (!tryLoadLootTable(compound)) { - ContainerHelper.loadAllItems(compound, contents, registries); - } + ContainerHelper.loadAllItems(input, contents); } @Override @@ -116,7 +108,7 @@ protected AbstractContainerMenu createMenu(int id, Inventory player) { public void startOpen(Player pPlayer) { if (level != null && !this.remove && !pPlayer.isSpectator()) { - this.openersCounter.incrementOpeners(pPlayer, level, this.getBlockPos(), this.getBlockState()); + this.openersCounter.incrementOpeners(pPlayer, level, this.getBlockPos(), this.getBlockState(), 5.0D); } } @@ -141,10 +133,10 @@ void updateBlockState(BlockState state, boolean open) { private void playSound(BlockState state, SoundEvent sound) { if (level == null) return; - Vec3i cabinetFacingVector = state.getValue(CabinetBlock.FACING).getNormal(); + Vec3i cabinetFacingVector = state.getValue(CabinetBlock.FACING).getUnitVec3i(); double x = (double) worldPosition.getX() + 0.5D + (double) cabinetFacingVector.getX() / 2.0D; double y = (double) worldPosition.getY() + 0.5D + (double) cabinetFacingVector.getY() / 2.0D; double z = (double) worldPosition.getZ() + 0.5D + (double) cabinetFacingVector.getZ() / 2.0D; - level.playSound(null, x, y, z, sound, SoundSource.BLOCKS, 0.5F, level.random.nextFloat() * 0.1F + 0.9F); + level.playSound(null, x, y, z, sound, SoundSource.BLOCKS, 0.5F, level.getRandom().nextFloat() * 0.1F + 0.9F); } } diff --git a/src/main/java/vectorwing/farmersdelight/common/block/entity/CookingPotBlockEntity.java b/src/main/java/vectorwing/farmersdelight/common/block/entity/CookingPotBlockEntity.java index 5e649eec5..35db85817 100644 --- a/src/main/java/vectorwing/farmersdelight/common/block/entity/CookingPotBlockEntity.java +++ b/src/main/java/vectorwing/farmersdelight/common/block/entity/CookingPotBlockEntity.java @@ -8,13 +8,18 @@ import net.minecraft.core.HolderLookup; import net.minecraft.core.NonNullList; import net.minecraft.core.component.DataComponentMap; +import net.minecraft.core.component.DataComponentGetter; import net.minecraft.core.component.DataComponents; +import net.minecraft.core.registries.Registries; import net.minecraft.core.particles.ParticleTypes; import net.minecraft.nbt.CompoundTag; import net.minecraft.network.chat.Component; -import net.minecraft.resources.ResourceLocation; +import net.minecraft.network.chat.ComponentSerialization; +import net.minecraft.resources.Identifier; +import net.minecraft.resources.ResourceKey; import net.minecraft.server.level.ServerLevel; import net.minecraft.util.Mth; +import net.minecraft.util.ProblemReporter; import net.minecraft.util.RandomSource; import net.minecraft.world.Clearable; import net.minecraft.world.MenuProvider; @@ -28,23 +33,28 @@ import net.minecraft.world.item.Item; import net.minecraft.world.item.ItemStack; import net.minecraft.world.item.Items; +import net.minecraft.world.item.crafting.Recipe; import net.minecraft.world.item.crafting.RecipeHolder; import net.minecraft.world.item.crafting.RecipeManager; import net.minecraft.world.level.Level; import net.minecraft.world.level.block.entity.BlockEntity; import net.minecraft.world.level.block.state.BlockState; +import net.minecraft.world.level.storage.TagValueOutput; +import net.minecraft.world.level.storage.ValueInput; +import net.minecraft.world.level.storage.ValueOutput; import net.minecraft.world.phys.Vec3; import net.neoforged.bus.api.SubscribeEvent; import net.neoforged.fml.common.EventBusSubscriber; import net.neoforged.neoforge.capabilities.Capabilities; import net.neoforged.neoforge.capabilities.RegisterCapabilitiesEvent; -import net.neoforged.neoforge.items.IItemHandler; import net.neoforged.neoforge.items.ItemStackHandler; import net.neoforged.neoforge.items.wrapper.RecipeWrapper; +import net.neoforged.neoforge.transfer.ResourceHandler; +import net.neoforged.neoforge.transfer.item.ItemResource; import vectorwing.farmersdelight.FarmersDelight; import vectorwing.farmersdelight.common.block.CookingPotBlock; import vectorwing.farmersdelight.common.block.entity.container.CookingPotMenu; -import vectorwing.farmersdelight.common.block.entity.inventory.CookingPotItemHandler; +import vectorwing.farmersdelight.common.block.entity.inventory.ItemHandlerResourceHandler; import vectorwing.farmersdelight.common.crafting.CookingPotRecipe; import vectorwing.farmersdelight.common.item.component.ItemStackWrapper; import vectorwing.farmersdelight.common.registry.*; @@ -84,8 +94,9 @@ public class CookingPotBlockEntity extends SyncedBlockEntity implements MenuProv ); private final ItemStackHandler inventory; - private final IItemHandler inputHandler; - private final IItemHandler outputHandler; + private final ResourceHandler transferInventory; + private final ResourceHandler inputHandler; + private final ResourceHandler outputHandler; private int cookTime; private int cookTimeTotal; @@ -93,15 +104,16 @@ public class CookingPotBlockEntity extends SyncedBlockEntity implements MenuProv private Component customName; protected final ContainerData cookingPotData; - private final Object2IntOpenHashMap usedRecipeTracker; + private final Object2IntOpenHashMap>> usedRecipeTracker; private final RecipeManager.CachedCheck quickCheck; public CookingPotBlockEntity(BlockPos pos, BlockState state) { super(ModBlockEntityTypes.COOKING_POT.get(), pos, state); this.inventory = createHandler(); - this.inputHandler = new CookingPotItemHandler(inventory, Direction.UP); - this.outputHandler = new CookingPotItemHandler(inventory, Direction.DOWN); + this.transferInventory = new ItemHandlerResourceHandler(inventory, slot -> true, slot -> true, originalState -> inventoryChanged()); + this.inputHandler = new ItemHandlerResourceHandler(inventory, slot -> slot < MEAL_DISPLAY_SLOT, slot -> slot < MEAL_DISPLAY_SLOT, originalState -> inventoryChanged()); + this.outputHandler = new ItemHandlerResourceHandler(inventory, slot -> slot == CONTAINER_SLOT, slot -> slot == OUTPUT_SLOT, originalState -> inventoryChanged()); this.mealContainerStack = ItemStack.EMPTY; this.cookingPotData = createIntArray(); this.usedRecipeTracker = new Object2IntOpenHashMap<>(); @@ -110,16 +122,8 @@ public CookingPotBlockEntity(BlockPos pos, BlockState state) { @SubscribeEvent public static void registerCapabilities(RegisterCapabilitiesEvent event) { - event.registerBlockEntity( - Capabilities.ItemHandler.BLOCK, - ModBlockEntityTypes.COOKING_POT.get(), - (be, context) -> { - if (context == Direction.UP) { - return be.inputHandler; - } - return be.outputHandler; - } - ); + event.registerBlockEntity(Capabilities.Item.BLOCK, ModBlockEntityTypes.COOKING_POT.get(), + (cookingPot, side) -> side == null || side == Direction.UP ? cookingPot.inputHandler : cookingPot.outputHandler); } public static ItemStack getMealFromItem(ItemStack cookingPotStack) { @@ -148,40 +152,40 @@ public static ItemStack getContainerFromItem(ItemStack cookingPotStack) { } @Override - public void loadAdditional(CompoundTag compound, HolderLookup.Provider registries) { - super.loadAdditional(compound, registries); - inventory.deserializeNBT(registries, compound.getCompound("Inventory")); - cookTime = compound.getInt("CookTime"); - cookTimeTotal = compound.getInt("CookTimeTotal"); - mealContainerStack = ItemStack.parseOptional(registries, compound.getCompound("Container")); - if (compound.contains("CustomName", 8)) { - customName = Component.Serializer.fromJson(compound.getString("CustomName"), registries); - } - CompoundTag compoundRecipes = compound.getCompound("RecipesUsed"); - for (String key : compoundRecipes.getAllKeys()) { - usedRecipeTracker.put(ResourceLocation.parse(key), compoundRecipes.getInt(key)); + protected void loadAdditional(ValueInput input) { + super.loadAdditional(input); + inventory.deserialize(input.childOrEmpty("Inventory")); + cookTime = input.getIntOr("CookTime", 0); + cookTimeTotal = input.getIntOr("CookTimeTotal", 0); + mealContainerStack = input.read("Container", ItemStack.OPTIONAL_CODEC).orElse(ItemStack.EMPTY); + customName = input.read("CustomName", ComponentSerialization.CODEC).orElse(null); + + CompoundTag compoundRecipes = input.read("RecipesUsed", CompoundTag.CODEC).orElseGet(CompoundTag::new); + for (String key : compoundRecipes.keySet()) { + usedRecipeTracker.put(ResourceKey.create(Registries.RECIPE, Identifier.parse(key)), compoundRecipes.getIntOr(key, 0)); } } @Override - public void saveAdditional(CompoundTag compound, HolderLookup.Provider registries) { - super.saveAdditional(compound, registries); - compound.putInt("CookTime", cookTime); - compound.putInt("CookTimeTotal", cookTimeTotal); - compound.put("Container", mealContainerStack.saveOptional(registries)); + protected void saveAdditional(ValueOutput output) { + super.saveAdditional(output); + output.putInt("CookTime", cookTime); + output.putInt("CookTimeTotal", cookTimeTotal); + output.store("Container", ItemStack.OPTIONAL_CODEC, mealContainerStack); if (customName != null) { - compound.putString("CustomName", Component.Serializer.toJson(customName, registries)); + output.store("CustomName", ComponentSerialization.CODEC, customName); } - compound.put("Inventory", inventory.serializeNBT(registries)); + inventory.serialize(output.child("Inventory")); CompoundTag compoundRecipes = new CompoundTag(); - usedRecipeTracker.forEach((recipeId, craftedAmount) -> compoundRecipes.putInt(recipeId.toString(), craftedAmount)); - compound.put("RecipesUsed", compoundRecipes); + usedRecipeTracker.forEach((recipeId, craftedAmount) -> compoundRecipes.putInt(recipeId.identifier().toString(), craftedAmount)); + output.store("RecipesUsed", CompoundTag.CODEC, compoundRecipes); } private CompoundTag writeItems(CompoundTag compound, HolderLookup.Provider registries) { - super.saveAdditional(compound, registries); - compound.put("Container", mealContainerStack.saveOptional(registries)); - compound.put("Inventory", inventory.serializeNBT(registries)); + TagValueOutput output = TagValueOutput.createWithContext(ProblemReporter.DISCARDING, registries); + output.store("Container", ItemStack.OPTIONAL_CODEC, mealContainerStack); + inventory.serialize(output.child("Inventory")); + compound.merge(output.buildResult()); return compound; } @@ -192,11 +196,13 @@ public CompoundTag writeMeal(CompoundTag compound, HolderLookup.Provider registr for (int i = 0; i < INVENTORY_SIZE; ++i) { drops.setStackInSlot(i, i == MEAL_DISPLAY_SLOT ? inventory.getStackInSlot(i) : ItemStack.EMPTY); } + TagValueOutput output = TagValueOutput.createWithContext(ProblemReporter.DISCARDING, registries); if (customName != null) { - compound.putString("CustomName", Component.Serializer.toJson(customName, registries)); + output.store("CustomName", ComponentSerialization.CODEC, customName); } - compound.put("Container", mealContainerStack.save(registries)); - compound.put("Inventory", drops.serializeNBT(registries)); + output.store("Container", ItemStack.OPTIONAL_CODEC, mealContainerStack); + drops.serialize(output.child("Inventory")); + compound.merge(output.buildResult()); return compound; } @@ -240,7 +246,7 @@ public static void cookingTick(Level level, BlockPos pos, BlockState state, Cook public static void animationTick(Level level, BlockPos pos, BlockState state, CookingPotBlockEntity cookingPot) { if (cookingPot.isHeated(level, pos)) { - RandomSource random = level.random; + RandomSource random = level.getRandom(); if (random.nextFloat() < 0.2F) { double x = (double) pos.getX() + 0.5D + (random.nextDouble() * 0.6D - 0.3D); double y = (double) pos.getY() + 0.7D; @@ -260,12 +266,12 @@ public static void animationTick(Level level, BlockPos pos, BlockState state, Co private Optional> getMatchingRecipe(RecipeWrapper inventoryWrapper) { if (level == null) return Optional.empty(); - return hasInput() ? quickCheck.getRecipeFor(inventoryWrapper, this.level) : Optional.empty(); + return hasInput() && this.level instanceof ServerLevel serverLevel ? quickCheck.getRecipeFor(inventoryWrapper, serverLevel) : Optional.empty(); } public ItemStack getContainer() { ItemStack mealStack = getMeal(); - if (mealStack.isEmpty() || mealContainerStack.isEmpty()) return mealStack.getCraftingRemainingItem(); + if (mealStack.isEmpty() || mealContainerStack.isEmpty()) return ItemUtils.getCraftingRemainingItem(mealStack); return mealContainerStack; } @@ -280,7 +286,7 @@ protected boolean canCook(CookingPotRecipe recipe) { if (level == null) return false; if (hasInput()) { - ItemStack resultStack = recipe.assemble(new RecipeWrapper(inventory), this.level.registryAccess()); + ItemStack resultStack = recipe.assemble(new RecipeWrapper(inventory)); if (resultStack.isEmpty()) { return false; } else { @@ -311,7 +317,7 @@ private boolean processCooking(RecipeHolder recipe, CookingPot cookTime = 0; mealContainerStack = recipe.value().getOutputContainer(); - ItemStack resultStack = recipe.value().assemble(new RecipeWrapper(inventory), this.level.registryAccess()); + ItemStack resultStack = recipe.value().assemble(new RecipeWrapper(inventory)); ItemStack storedMealStack = inventory.getStackInSlot(MEAL_DISPLAY_SLOT); if (storedMealStack.isEmpty()) { inventory.setStackInSlot(MEAL_DISPLAY_SLOT, resultStack.copy()); @@ -322,8 +328,8 @@ private boolean processCooking(RecipeHolder recipe, CookingPot for (int i = 0; i < MEAL_DISPLAY_SLOT; ++i) { ItemStack slotStack = inventory.getStackInSlot(i); - if (slotStack.hasCraftingRemainingItem()) { - ejectIngredientRemainder(slotStack.getCraftingRemainingItem()); + if (ItemUtils.hasCraftingRemainingItem(slotStack)) { + ejectIngredientRemainder(ItemUtils.getCraftingRemainingItem(slotStack)); } else if (INGREDIENT_REMAINDER_OVERRIDES.containsKey(slotStack.getItem())) { ejectIngredientRemainder(INGREDIENT_REMAINDER_OVERRIDES.get(slotStack.getItem()).getDefaultInstance()); } @@ -345,7 +351,7 @@ protected void ejectIngredientRemainder(ItemStack remainderStack) { @Override public void setRecipeUsed(@Nullable RecipeHolder recipe) { if (recipe != null) { - ResourceLocation recipeID = recipe.id(); + ResourceKey> recipeID = recipe.id(); usedRecipeTracker.addTo(recipeID, 1); } } @@ -366,10 +372,14 @@ public void awardUsedRecipes(Player player, List items) { public List> getUsedRecipesAndPopExperience(Level level, Vec3 pos) { List> list = Lists.newArrayList(); - for (Object2IntMap.Entry entry : usedRecipeTracker.object2IntEntrySet()) { - level.getRecipeManager().byKey(entry.getKey()).ifPresent((recipe) -> { + if (!(level instanceof ServerLevel serverLevel)) { + return list; + } + + for (Object2IntMap.Entry>> entry : usedRecipeTracker.object2IntEntrySet()) { + serverLevel.recipeAccess().byKey(entry.getKey()).ifPresent((recipe) -> { list.add(recipe); - splitAndSpawnExperience((ServerLevel) level, pos, entry.getIntValue(), ((CookingPotRecipe) recipe.value()).getExperience()); + splitAndSpawnExperience(serverLevel, pos, entry.getIntValue(), ((CookingPotRecipe) recipe.value()).getExperience()); }); } @@ -395,6 +405,10 @@ public ItemStackHandler getInventory() { return inventory; } + public ResourceHandler getTransferInventory() { + return transferInventory; + } + public ItemStack getMeal() { return inventory.getStackInSlot(MEAL_DISPLAY_SLOT); } @@ -450,7 +464,7 @@ public ItemStack useHeldItemOnMeal(ItemStack container) { } private boolean doesMealHaveContainer(ItemStack meal) { - return !mealContainerStack.isEmpty() || meal.hasCraftingRemainingItem(); + return !mealContainerStack.isEmpty() || ItemUtils.hasCraftingRemainingItem(meal); } public boolean isContainerValid(ItemStack containerItem) { @@ -491,7 +505,7 @@ public CompoundTag getUpdateTag(HolderLookup.Provider registries) { } @Override - protected void applyImplicitComponents(BlockEntity.DataComponentInput componentInput) { + protected void applyImplicitComponents(DataComponentGetter componentInput) { super.applyImplicitComponents(componentInput); this.customName = componentInput.get(DataComponents.CUSTOM_NAME); getInventory().setStackInSlot(MEAL_DISPLAY_SLOT, componentInput.getOrDefault(ModDataComponents.MEAL, ItemStackWrapper.EMPTY).getStack()); @@ -511,10 +525,10 @@ protected void collectImplicitComponents(DataComponentMap.Builder components) { } @Override - public void removeComponentsFromTag(CompoundTag tag) { - tag.remove("CustomName"); - tag.remove("meal"); - tag.remove("container"); + public void removeComponentsFromTag(ValueOutput output) { + output.discard("CustomName"); + output.discard("meal"); + output.discard("container"); } private ItemStackHandler createHandler() { @@ -564,6 +578,6 @@ public int getCount() { @Override public void clearContent() { - ItemUtils.clearItems(inventory); + ItemUtils.clearItems(transferInventory); } } diff --git a/src/main/java/vectorwing/farmersdelight/common/block/entity/CuttingBoardBlockEntity.java b/src/main/java/vectorwing/farmersdelight/common/block/entity/CuttingBoardBlockEntity.java index a783524e5..b1730d78e 100644 --- a/src/main/java/vectorwing/farmersdelight/common/block/entity/CuttingBoardBlockEntity.java +++ b/src/main/java/vectorwing/farmersdelight/common/block/entity/CuttingBoardBlockEntity.java @@ -5,10 +5,9 @@ import net.minecraft.core.Holder; import net.minecraft.core.particles.ItemParticleOption; import net.minecraft.core.particles.ParticleTypes; -import net.minecraft.core.HolderLookup; import net.minecraft.nbt.CompoundTag; import net.minecraft.network.chat.Component; -import net.minecraft.resources.ResourceLocation; +import net.minecraft.resources.Identifier; import net.minecraft.server.level.ServerLevel; import net.minecraft.server.level.ServerPlayer; import net.minecraft.sounds.SoundEvent; @@ -27,6 +26,8 @@ import net.minecraft.world.level.block.Block; import net.minecraft.world.level.block.SoundType; import net.minecraft.world.level.block.state.BlockState; +import net.minecraft.world.level.storage.ValueInput; +import net.minecraft.world.level.storage.ValueOutput; import net.neoforged.bus.api.SubscribeEvent; import net.neoforged.fml.common.EventBusSubscriber; import net.neoforged.neoforge.capabilities.Capabilities; @@ -35,8 +36,11 @@ import net.neoforged.neoforge.items.IItemHandler; import net.neoforged.neoforge.items.ItemStackHandler; import net.neoforged.neoforge.items.wrapper.RecipeWrapper; +import net.neoforged.neoforge.transfer.ResourceHandler; +import net.neoforged.neoforge.transfer.item.ItemResource; import vectorwing.farmersdelight.FarmersDelight; import vectorwing.farmersdelight.common.block.CuttingBoardBlock; +import vectorwing.farmersdelight.common.block.entity.inventory.ItemHandlerResourceHandler; import vectorwing.farmersdelight.common.crafting.CuttingBoardRecipe; import vectorwing.farmersdelight.common.crafting.CuttingBoardRecipeInput; import vectorwing.farmersdelight.common.registry.ModAdvancements; @@ -55,38 +59,36 @@ public class CuttingBoardBlockEntity extends SyncedBlockEntity implements Clearable { private final ItemStackHandler inventory; + private final ResourceHandler transferInventory; private final RecipeManager.CachedCheck quickCheck; - private ResourceLocation lastRecipeID; + private Identifier lastRecipeID; private boolean isItemCarvingBoard; public CuttingBoardBlockEntity(BlockPos pos, BlockState state) { super(ModBlockEntityTypes.CUTTING_BOARD.get(), pos, state); inventory = createHandler(); + transferInventory = new ItemHandlerResourceHandler(inventory, slot -> true, slot -> true, originalState -> inventoryChanged()); isItemCarvingBoard = false; quickCheck = RecipeManager.createCheck(ModRecipeTypes.CUTTING.get()); } @SubscribeEvent public static void registerCapabilities(RegisterCapabilitiesEvent event) { - event.registerBlockEntity( - Capabilities.ItemHandler.BLOCK, - ModBlockEntityTypes.CUTTING_BOARD.get(), - (be, context) -> be.getInventory() - ); + event.registerBlockEntity(Capabilities.Item.BLOCK, ModBlockEntityTypes.CUTTING_BOARD.get(), (cuttingBoard, side) -> cuttingBoard.transferInventory); } @Override - public void loadAdditional(CompoundTag compound, HolderLookup.Provider registries) { - super.loadAdditional(compound, registries); - isItemCarvingBoard = compound.getBoolean("IsItemCarved"); - inventory.deserializeNBT(registries, compound.getCompound("Inventory")); + protected void loadAdditional(ValueInput input) { + super.loadAdditional(input); + isItemCarvingBoard = input.getBooleanOr("IsItemCarved", false); + inventory.deserialize(input.childOrEmpty("Inventory")); } @Override - public void saveAdditional(CompoundTag compound, HolderLookup.Provider registries) { - super.saveAdditional(compound, registries); - compound.put("Inventory", inventory.serializeNBT(registries)); - compound.putBoolean("IsItemCarved", isItemCarvingBoard); + protected void saveAdditional(ValueOutput output) { + super.saveAdditional(output); + inventory.serialize(output.child("Inventory")); + output.putBoolean("IsItemCarved", isItemCarvingBoard); } public boolean processStoredItemUsingTool(ItemStack toolStack, @Nullable Player player) { @@ -97,15 +99,15 @@ public boolean processStoredItemUsingTool(ItemStack toolStack, @Nullable Player Optional> matchingRecipe = getMatchingRecipe(toolStack, player); matchingRecipe.ifPresent(recipe -> { - List results = recipe.value().rollResults(level.random, ItemUtils.getValidatedEnchantmentLevel(Enchantments.FORTUNE, level.registryAccess(), toolStack), new RecipeWrapper(inventory)); + List results = recipe.value().rollResults(level.getRandom(), ItemUtils.getValidatedEnchantmentLevel(Enchantments.FORTUNE, level.registryAccess(), toolStack), new RecipeWrapper(inventory)); for (ItemStack resultStack : results) { Direction direction = getBlockState().getValue(CuttingBoardBlock.FACING).getCounterClockWise(); ItemUtils.spawnItemEntity(level, resultStack.copy(), worldPosition.getX() + 0.5 + (direction.getStepX() * 0.2), worldPosition.getY() + 0.2, worldPosition.getZ() + 0.5 + (direction.getStepZ() * 0.2), direction.getStepX() * 0.2F, 0.0F, direction.getStepZ() * 0.2F); } - if (!level.isClientSide) { - toolStack.hurtAndBreak(1, (ServerLevel) level, player, (item) -> { + if (!level.isClientSide() && level instanceof ServerLevel serverLevel) { + toolStack.hurtAndBreak(1, serverLevel, player instanceof ServerPlayer serverPlayer ? serverPlayer : null, (item) -> { }); if (player != null) { player.awardStat(Stats.ITEM_USED.get(toolStack.getItem())); @@ -119,9 +121,9 @@ public boolean processStoredItemUsingTool(ItemStack toolStack, @Nullable Player if (player instanceof ServerPlayer) { ModAdvancements.USE_CUTTING_BOARD.get().trigger((ServerPlayer) player); if (!getStoredItem().isEmpty()) { - player.displayClientMessage(TextUtils.block("cutting_board.remaining_items", getStoredItem().getCount()), true); + player.sendOverlayMessage(TextUtils.block("cutting_board.remaining_items", getStoredItem().getCount())); } else { - player.displayClientMessage(Component.empty(), true); + player.sendOverlayMessage(Component.empty()); } } }); @@ -132,22 +134,24 @@ public boolean processStoredItemUsingTool(ItemStack toolStack, @Nullable Player private Optional> getMatchingRecipe(ItemStack toolStack, @Nullable Player player) { if (level == null) return Optional.empty(); - Optional> recipe = quickCheck.getRecipeFor(new CuttingBoardRecipeInput(getStoredItem(), toolStack), level); + Optional> recipe = level instanceof ServerLevel serverLevel + ? quickCheck.getRecipeFor(new CuttingBoardRecipeInput(getStoredItem(), toolStack), serverLevel) + : Optional.empty(); if (recipe.isPresent()) { if (recipe.get().value().getTool().test(toolStack)) { return recipe; } else if (player != null) { - player.displayClientMessage(TextUtils.block("cutting_board.invalid_item"), true); + player.sendOverlayMessage(TextUtils.block("cutting_board.invalid_item")); } } else if (player != null) { - player.displayClientMessage(TextUtils.block("cutting_board.invalid_tool"), true); + player.sendOverlayMessage(TextUtils.block("cutting_board.invalid_tool")); } return Optional.empty(); } public void spawnCuttingParticles(ServerLevel level, BlockPos pos, ItemStack stack) { - level.sendParticles(new ItemParticleOption(ParticleTypes.ITEM, stack), pos.getX() + 0.5, pos.getY() + 0.2, pos.getZ() + 0.5, 5, 0.1, 0.1, 0.1, 0.05D); + level.sendParticles(new ItemParticleOption(ParticleTypes.ITEM, ItemStackTemplate.fromStack(stack)), pos.getX() + 0.5, pos.getY() + 0.2, pos.getZ() + 0.5, 5, 0.1, 0.1, 0.1, 0.05D); } public void playProcessingSound(@Nullable SoundEvent sound, ItemStack tool, ItemStack boardItem) { @@ -191,7 +195,7 @@ public ItemStack removeItem() { } public boolean carveToolOnBoard(ItemStack toolStack) { - if (toolStack.getItem() instanceof TieredItem || toolStack.getItem() instanceof TridentItem || toolStack.getItem() instanceof ShearsItem) { + if (toolStack.isDamageableItem() || toolStack.getItem() instanceof TridentItem || toolStack.getItem() instanceof ShearsItem) { if (addItem(toolStack) == ItemStack.EMPTY) { isItemCarvingBoard = true; return true; @@ -237,6 +241,6 @@ protected void onContentsChanged(int slot) { @Override public void clearContent() { - ItemUtils.clearItems(inventory); + ItemUtils.clearItems(transferInventory); } -} \ No newline at end of file +} diff --git a/src/main/java/vectorwing/farmersdelight/common/block/entity/SkilletBlockEntity.java b/src/main/java/vectorwing/farmersdelight/common/block/entity/SkilletBlockEntity.java index 840723fdb..e684fa291 100644 --- a/src/main/java/vectorwing/farmersdelight/common/block/entity/SkilletBlockEntity.java +++ b/src/main/java/vectorwing/farmersdelight/common/block/entity/SkilletBlockEntity.java @@ -3,10 +3,10 @@ import net.minecraft.core.BlockPos; import net.minecraft.core.Direction; import net.minecraft.core.Holder; -import net.minecraft.core.HolderLookup; import net.minecraft.core.particles.ParticleTypes; import net.minecraft.core.registries.Registries; import net.minecraft.nbt.CompoundTag; +import net.minecraft.server.level.ServerLevel; import net.minecraft.sounds.SoundSource; import net.minecraft.util.Mth; import net.minecraft.util.RandomSource; @@ -19,9 +19,14 @@ import net.minecraft.world.item.enchantment.Enchantments; import net.minecraft.world.level.Level; import net.minecraft.world.level.block.state.BlockState; +import net.minecraft.world.level.storage.ValueInput; +import net.minecraft.world.level.storage.ValueOutput; import net.neoforged.neoforge.items.IItemHandler; import net.neoforged.neoforge.items.ItemStackHandler; +import net.neoforged.neoforge.transfer.ResourceHandler; +import net.neoforged.neoforge.transfer.item.ItemResource; import vectorwing.farmersdelight.common.block.SkilletBlock; +import vectorwing.farmersdelight.common.block.entity.inventory.ItemHandlerResourceHandler; import vectorwing.farmersdelight.common.registry.ModBlockEntityTypes; import vectorwing.farmersdelight.common.registry.ModItems; import vectorwing.farmersdelight.common.registry.ModParticleTypes; @@ -34,6 +39,7 @@ public class SkilletBlockEntity extends SyncedBlockEntity implements HeatableBlockEntity, Clearable { private final ItemStackHandler inventory = createHandler(); + private final ResourceHandler transferInventory = new ItemHandlerResourceHandler(inventory, slot -> true, slot -> true, originalState -> inventoryChanged()); private int cookingTime; private int cookingTimeTotal; @@ -52,8 +58,8 @@ public static void cookingTick(Level level, BlockPos pos, BlockState state, Skil boolean isHeated = skillet.isHeated(level, pos); if (state.getValue(SkilletBlock.WATERLOGGED)) { - if (ItemUtils.doesInventoryHaveItems(skillet.inventory)) { - ItemUtils.dropItems(level, pos, skillet.inventory); + if (ItemUtils.doesInventoryHaveItems(skillet.transferInventory)) { + ItemUtils.dropItems(level, pos, skillet.transferInventory); skillet.inventoryChanged(); } } else if (isHeated) { @@ -70,7 +76,7 @@ public static void cookingTick(Level level, BlockPos pos, BlockState state, Skil public static void animationTick(Level level, BlockPos pos, BlockState state, SkilletBlockEntity skillet) { if (skillet.isHeated(level, pos) && skillet.hasStoredStack()) { - RandomSource random = level.random; + RandomSource random = level.getRandom(); if (random.nextFloat() < 0.2F) { double x = (double) pos.getX() + 0.5D + (random.nextDouble() * 0.4D - 0.2D); double y = (double) pos.getY() + 0.1D; @@ -82,9 +88,9 @@ public static void animationTick(Level level, BlockPos pos, BlockState state, Sk double x = (double) pos.getX() + 0.5D + (random.nextDouble() * 0.4D - 0.2D); double y = (double) pos.getY() + 0.1D; double z = (double) pos.getZ() + 0.5D + (random.nextDouble() * 0.4D - 0.2D); - double motionX = level.random.nextFloat() - 0.5F; - double motionY = level.random.nextFloat() * 0.5F + 0.2f; - double motionZ = level.random.nextFloat() - 0.5F; + double motionX = level.getRandom().nextFloat() - 0.5F; + double motionY = level.getRandom().nextFloat() * 0.5F + 0.2f; + double motionZ = level.getRandom().nextFloat() - 0.5F; level.addParticle(ParticleTypes.ENCHANTED_HIT, x, y, z, motionX, motionY, motionZ); } } @@ -96,7 +102,7 @@ private void cookAndOutputItems(ItemStack cookingStack, Level level) { if (cookingTime >= cookingTimeTotal) { Optional> recipe = getMatchingRecipe(cookingStack); if (recipe.isPresent()) { - ItemStack resultStack = recipe.get().value().assemble(new SingleRecipeInput(cookingStack), level.registryAccess()); + ItemStack resultStack = recipe.get().value().assemble(new SingleRecipeInput(cookingStack)); Direction direction = getBlockState().getValue(SkilletBlock.FACING).getClockWise(); ItemUtils.spawnItemEntity(level, resultStack.copy(), worldPosition.getX() + 0.5, worldPosition.getY() + 0.3, worldPosition.getZ() + 0.5, @@ -121,27 +127,27 @@ public boolean isHeated() { private Optional> getMatchingRecipe(ItemStack stack) { if (level == null) return Optional.empty(); - return this.quickCheck.getRecipeFor(new SingleRecipeInput(stack), this.level); + return this.level instanceof ServerLevel serverLevel ? this.quickCheck.getRecipeFor(new SingleRecipeInput(stack), serverLevel) : Optional.empty(); } @Override - public void loadAdditional(CompoundTag compound, HolderLookup.Provider registries) { - super.loadAdditional(compound, registries); - inventory.deserializeNBT(registries, compound.getCompound("Inventory")); - cookingTime = compound.getInt("CookTime"); - cookingTimeTotal = compound.getInt("CookTimeTotal"); - skilletStack = ItemStack.parseOptional(registries, compound.getCompound("Skillet")); - fireAspectLevel = ItemUtils.getValidatedEnchantmentLevel(Enchantments.FIRE_ASPECT, registries, skilletStack); + protected void loadAdditional(ValueInput input) { + super.loadAdditional(input); + inventory.deserialize(input.childOrEmpty("Inventory")); + cookingTime = input.getIntOr("CookTime", 0); + cookingTimeTotal = input.getIntOr("CookTimeTotal", 0); + skilletStack = input.read("Skillet", ItemStack.OPTIONAL_CODEC).orElse(ItemStack.EMPTY); + fireAspectLevel = ItemUtils.getValidatedEnchantmentLevel(Enchantments.FIRE_ASPECT, input.lookup(), skilletStack); } @Override - public void saveAdditional(CompoundTag compound, HolderLookup.Provider registries) { - super.saveAdditional(compound, registries); - compound.put("Inventory", inventory.serializeNBT(registries)); - compound.putInt("CookTime", cookingTime); - compound.putInt("CookTimeTotal", cookingTimeTotal); + protected void saveAdditional(ValueOutput output) { + super.saveAdditional(output); + inventory.serialize(output.child("Inventory")); + output.putInt("CookTime", cookingTime); + output.putInt("CookTimeTotal", cookingTimeTotal); if (!skilletStack.isEmpty()) { - compound.put("Skillet", skilletStack.save(registries)); + output.store("Skillet", ItemStack.OPTIONAL_CODEC, skilletStack); } } @@ -159,13 +165,13 @@ public ItemStack addItemToCook(ItemStack addedStack, Player player) { Optional> recipe = getMatchingRecipe(addedStack); if (recipe.isPresent() && getStoredStack().isEmpty()) { if (getBlockState().getValue(SkilletBlock.WATERLOGGED)) { - player.displayClientMessage(TextUtils.block("skillet.underwater"), true); + player.sendOverlayMessage(TextUtils.block("skillet.underwater")); return addedStack; } boolean wasEmpty = getStoredStack().isEmpty(); ItemStack remainderStack = inventory.insertItem(0, addedStack.copy(), false); if (!ItemStack.matches(remainderStack, addedStack)) { - cookingTimeTotal = SkilletBlock.getSkilletCookingTime(recipe.get().value().getCookingTime(), fireAspectLevel); + cookingTimeTotal = SkilletBlock.getSkilletCookingTime(recipe.get().value().cookingTime(), fireAspectLevel); cookingTime = 0; if (wasEmpty && level != null && isHeated(level, worldPosition)) { level.playSound(null, worldPosition.getX() + 0.5F, worldPosition.getY() + 0.5F, worldPosition.getZ() + 0.5F, ModSounds.BLOCK_SKILLET_ADD_FOOD.get(), SoundSource.BLOCKS, 0.8F, 1.0F); @@ -173,7 +179,7 @@ public ItemStack addItemToCook(ItemStack addedStack, Player player) { return remainderStack; } } else { - player.displayClientMessage(TextUtils.block("skillet.invalid_item"), true); + player.sendOverlayMessage(TextUtils.block("skillet.invalid_item")); } return addedStack; } @@ -186,6 +192,10 @@ public IItemHandler getInventory() { return inventory; } + public ResourceHandler getTransferInventory() { + return transferInventory; + } + public ItemStack getStoredStack() { return inventory.getStackInSlot(0); } @@ -211,6 +221,6 @@ public void setRemoved() { @Override public void clearContent() { - ItemUtils.clearItems(inventory); + ItemUtils.clearItems(transferInventory); } } diff --git a/src/main/java/vectorwing/farmersdelight/common/block/entity/StoveBlockEntity.java b/src/main/java/vectorwing/farmersdelight/common/block/entity/StoveBlockEntity.java index d3c135cfe..46d3a824b 100644 --- a/src/main/java/vectorwing/farmersdelight/common/block/entity/StoveBlockEntity.java +++ b/src/main/java/vectorwing/farmersdelight/common/block/entity/StoveBlockEntity.java @@ -27,7 +27,7 @@ public void addSmokeParticles() { var items = this.getItems(); for (int i = 0; i < items.getSlots(); ++i) { if (items.getStackInSlot(i).isEmpty()) continue; - if (level.random.nextFloat() >= 0.2F) continue; + if (level.getRandom().nextFloat() >= 0.2F) continue; Vec2 itemOffset = this.getStoveItemOffset(i); Direction direction = this.getBlockState().getValue(AbstractStoveBlock.FACING); if (direction.get2DDataValue() % 2 != 0) { diff --git a/src/main/java/vectorwing/farmersdelight/common/block/entity/container/CookingPotMenu.java b/src/main/java/vectorwing/farmersdelight/common/block/entity/container/CookingPotMenu.java index 53e96b87f..6aacd1b0b 100644 --- a/src/main/java/vectorwing/farmersdelight/common/block/entity/container/CookingPotMenu.java +++ b/src/main/java/vectorwing/farmersdelight/common/block/entity/container/CookingPotMenu.java @@ -1,12 +1,13 @@ package vectorwing.farmersdelight.common.block.entity.container; -import com.mojang.datafixers.util.Pair; import net.minecraft.network.FriendlyByteBuf; -import net.minecraft.resources.ResourceLocation; +import net.minecraft.recipebook.ServerPlaceRecipe; +import net.minecraft.resources.Identifier; +import net.minecraft.server.level.ServerLevel; import net.minecraft.world.entity.player.Inventory; import net.minecraft.world.entity.player.Player; -import net.minecraft.world.entity.player.StackedContents; +import net.minecraft.world.entity.player.StackedItemContents; import net.minecraft.world.inventory.*; import net.minecraft.world.item.ItemStack; import net.minecraft.world.item.crafting.RecipeHolder; @@ -22,11 +23,12 @@ import vectorwing.farmersdelight.common.registry.ModMenuTypes; import vectorwing.farmersdelight.common.tag.ModTags; +import java.util.List; import java.util.Objects; -public class CookingPotMenu extends RecipeBookMenu +public class CookingPotMenu extends RecipeBookMenu { - public static final ResourceLocation EMPTY_CONTAINER_SLOT_BOWL = ResourceLocation.fromNamespaceAndPath(FarmersDelight.MODID, "item/empty_container_slot_bowl"); + public static final Identifier EMPTY_CONTAINER_SLOT_BOWL = Identifier.fromNamespaceAndPath(FarmersDelight.MODID, "item/empty_container_slot_bowl"); public static final int INDEX_MEAL = 6; public static final int INDEX_CONTAINER = 7; @@ -70,8 +72,9 @@ public CookingPotMenu(final int windowId, final Inventory playerInventory, final // Bowl Input this.addSlot(new SlotItemHandler(inventory, 7, 92, 55) { - public Pair getNoItemIcon() { - return Pair.of(InventoryMenu.BLOCK_ATLAS, EMPTY_CONTAINER_SLOT_BOWL); + @Override + public Identifier getNoItemIcon() { + return EMPTY_CONTAINER_SLOT_BOWL; } }); @@ -161,40 +164,33 @@ public boolean isHeated() { } @Override - public void fillCraftSlotsStackedContents(StackedContents helper) { - for (int i = 0; i < inventory.getSlots(); i++) { - helper.accountSimpleStack(inventory.getStackInSlot(i)); + public void fillCraftSlotsStackedContents(StackedItemContents helper) { + for (int i = 0; i < INDEX_MEAL; i++) { + ItemStack stack = inventory.getStackInSlot(i); + if (!stack.isEmpty()) { + helper.accountStack(stack); + } } } - @Override public void clearCraftingContent() { for (int i = 0; i < 6; i++) { this.inventory.setStackInSlot(i, ItemStack.EMPTY); } } - @Override - public boolean recipeMatches(RecipeHolder recipe) { - return recipe.value().matches(new RecipeWrapper(inventory), level); - } - - @Override public int getResultSlotIndex() { - return 7; + return INDEX_OUTPUT; } - @Override public int getGridWidth() { return 3; } - @Override public int getGridHeight() { return 2; } - @Override public int getSize() { return 7; } @@ -205,6 +201,28 @@ public RecipeBookType getRecipeBookType() { } @Override + public PostPlaceAction handlePlacement(boolean useMaxItems, boolean isCreative, RecipeHolder recipe, ServerLevel level, Inventory inventory) { + RecipeHolder typedRecipe = (RecipeHolder) recipe; + List inputSlots = this.slots.subList(0, INDEX_MEAL); + return ServerPlaceRecipe.placeRecipe(new ServerPlaceRecipe.CraftingMenuAccess<>() + { + @Override + public void fillCraftSlotsStackedContents(StackedItemContents stackedContents) { + CookingPotMenu.this.fillCraftSlotsStackedContents(stackedContents); + } + + @Override + public void clearCraftingContent() { + CookingPotMenu.this.clearCraftingContent(); + } + + @Override + public boolean recipeMatches(RecipeHolder recipe) { + return recipe.value().matches(new RecipeWrapper(CookingPotMenu.this.inventory), level); + } + }, getGridWidth(), getGridHeight(), inputSlots, inputSlots, inventory, typedRecipe, useMaxItems, isCreative); + } + public boolean shouldMoveToInventory(int slot) { return slot < (getGridWidth() * getGridHeight()); } diff --git a/src/main/java/vectorwing/farmersdelight/common/block/entity/container/CookingPotResultSlot.java b/src/main/java/vectorwing/farmersdelight/common/block/entity/container/CookingPotResultSlot.java index b54e2e2ae..c48697754 100644 --- a/src/main/java/vectorwing/farmersdelight/common/block/entity/container/CookingPotResultSlot.java +++ b/src/main/java/vectorwing/farmersdelight/common/block/entity/container/CookingPotResultSlot.java @@ -51,9 +51,9 @@ protected void onQuickCraft(ItemStack stack, int amount) { @Override protected void checkTakeAchievements(ItemStack stack) { - stack.onCraftedBy(this.player.level(), this.player, this.removeCount); + stack.onCraftedBy(this.player, this.removeCount); - if (!this.player.level().isClientSide) { + if (!this.player.level().isClientSide()) { cookingPot.awardUsedRecipes(this.player, cookingPot.getDroppableInventory()); } diff --git a/src/main/java/vectorwing/farmersdelight/common/block/entity/container/package-info.java b/src/main/java/vectorwing/farmersdelight/common/block/entity/container/package-info.java index 7a73eb5b0..7c92efc85 100644 --- a/src/main/java/vectorwing/farmersdelight/common/block/entity/container/package-info.java +++ b/src/main/java/vectorwing/farmersdelight/common/block/entity/container/package-info.java @@ -1,7 +1,5 @@ @ParametersAreNonnullByDefault -@MethodsReturnNonnullByDefault package vectorwing.farmersdelight.common.block.entity.container; -import net.minecraft.MethodsReturnNonnullByDefault; import javax.annotation.ParametersAreNonnullByDefault; diff --git a/src/main/java/vectorwing/farmersdelight/common/block/entity/dispenser/CuttingBoardDispenseBehavior.java b/src/main/java/vectorwing/farmersdelight/common/block/entity/dispenser/CuttingBoardDispenseBehavior.java index 552a10bc7..057939980 100644 --- a/src/main/java/vectorwing/farmersdelight/common/block/entity/dispenser/CuttingBoardDispenseBehavior.java +++ b/src/main/java/vectorwing/farmersdelight/common/block/entity/dispenser/CuttingBoardDispenseBehavior.java @@ -1,6 +1,5 @@ package vectorwing.farmersdelight.common.block.entity.dispenser; -import net.minecraft.MethodsReturnNonnullByDefault; import net.minecraft.core.BlockPos; import net.minecraft.core.dispenser.BlockSource; import net.minecraft.core.dispenser.DispenseItemBehavior; @@ -20,7 +19,6 @@ /** * Uses the given item as a tool when facing a Cutting Board. */ -@MethodsReturnNonnullByDefault @ParametersAreNonnullByDefault public class CuttingBoardDispenseBehavior extends OptionalDispenseItemBehavior { diff --git a/src/main/java/vectorwing/farmersdelight/common/block/entity/inventory/CookingPotItemHandler.java b/src/main/java/vectorwing/farmersdelight/common/block/entity/inventory/CookingPotItemHandler.java deleted file mode 100644 index b18823784..000000000 --- a/src/main/java/vectorwing/farmersdelight/common/block/entity/inventory/CookingPotItemHandler.java +++ /dev/null @@ -1,63 +0,0 @@ -package vectorwing.farmersdelight.common.block.entity.inventory; - -import net.minecraft.core.Direction; -import net.minecraft.world.item.ItemStack; -import net.neoforged.neoforge.items.IItemHandler; - -import javax.annotation.Nonnull; -import javax.annotation.Nullable; - -public class CookingPotItemHandler implements IItemHandler -{ - private static final int SLOTS_INPUT = 6; - private static final int SLOT_CONTAINER_INPUT = 7; - private static final int SLOT_MEAL_OUTPUT = 8; - private final IItemHandler itemHandler; - private final Direction side; - - public CookingPotItemHandler(IItemHandler itemHandler, @Nullable Direction side) { - this.itemHandler = itemHandler; - this.side = side; - } - - @Override - public boolean isItemValid(int slot, @Nonnull ItemStack stack) { - return itemHandler.isItemValid(slot, stack); - } - - @Override - public int getSlots() { - return itemHandler.getSlots(); - } - - @Override - @Nonnull - public ItemStack getStackInSlot(int slot) { - return itemHandler.getStackInSlot(slot); - } - - @Override - @Nonnull - public ItemStack insertItem(int slot, @Nonnull ItemStack stack, boolean simulate) { - if (side == null || side.equals(Direction.UP)) { - return slot < SLOTS_INPUT ? itemHandler.insertItem(slot, stack, simulate) : stack; - } else { - return slot == SLOT_CONTAINER_INPUT ? itemHandler.insertItem(slot, stack, simulate) : stack; - } - } - - @Override - @Nonnull - public ItemStack extractItem(int slot, int amount, boolean simulate) { - if (side == null || side.equals(Direction.UP)) { - return slot < SLOTS_INPUT ? itemHandler.extractItem(slot, amount, simulate) : ItemStack.EMPTY; - } else { - return slot == SLOT_MEAL_OUTPUT ? itemHandler.extractItem(slot, amount, simulate) : ItemStack.EMPTY; - } - } - - @Override - public int getSlotLimit(int slot) { - return itemHandler.getSlotLimit(slot); - } -} diff --git a/src/main/java/vectorwing/farmersdelight/common/block/entity/inventory/ItemHandlerResourceHandler.java b/src/main/java/vectorwing/farmersdelight/common/block/entity/inventory/ItemHandlerResourceHandler.java new file mode 100644 index 000000000..3f3e0b6c3 --- /dev/null +++ b/src/main/java/vectorwing/farmersdelight/common/block/entity/inventory/ItemHandlerResourceHandler.java @@ -0,0 +1,138 @@ +package vectorwing.farmersdelight.common.block.entity.inventory; + +import net.minecraft.core.NonNullList; +import net.minecraft.world.item.ItemStack; +import net.neoforged.neoforge.items.IItemHandlerModifiable; +import net.neoforged.neoforge.transfer.ResourceHandler; +import net.neoforged.neoforge.transfer.TransferPreconditions; +import net.neoforged.neoforge.transfer.item.ItemResource; +import net.neoforged.neoforge.transfer.transaction.SnapshotJournal; +import net.neoforged.neoforge.transfer.transaction.TransactionContext; + +import java.util.Objects; +import java.util.function.Consumer; +import java.util.function.IntPredicate; + +@SuppressWarnings({"deprecation", "removal"}) +public class ItemHandlerResourceHandler extends SnapshotJournal> implements ResourceHandler +{ + private final IItemHandlerModifiable handler; + private final IntPredicate insertSlots; + private final IntPredicate extractSlots; + private final Consumer> rootCommitAction; + + public ItemHandlerResourceHandler(IItemHandlerModifiable handler, IntPredicate insertSlots, IntPredicate extractSlots, Consumer> rootCommitAction) { + this.handler = handler; + this.insertSlots = insertSlots; + this.extractSlots = extractSlots; + this.rootCommitAction = rootCommitAction; + } + + @Override + public int size() { + return handler.getSlots(); + } + + @Override + public ItemResource getResource(int index) { + Objects.checkIndex(index, size()); + return ItemResource.of(handler.getStackInSlot(index)); + } + + @Override + public long getAmountAsLong(int index) { + Objects.checkIndex(index, size()); + return handler.getStackInSlot(index).getCount(); + } + + @Override + public long getCapacityAsLong(int index, ItemResource resource) { + Objects.checkIndex(index, size()); + if (!resource.isEmpty() && !isValid(index, resource)) { + return 0; + } + return resource.isEmpty() ? handler.getSlotLimit(index) : Math.min(resource.getMaxStackSize(), handler.getSlotLimit(index)); + } + + @Override + public boolean isValid(int index, ItemResource resource) { + Objects.checkIndex(index, size()); + return resource.isEmpty() || insertSlots.test(index) && handler.isItemValid(index, resource.toStack()); + } + + @Override + public int insert(int index, ItemResource resource, int amount, TransactionContext transaction) { + Objects.checkIndex(index, size()); + TransferPreconditions.checkNonEmptyNonNegative(resource, amount); + if (!insertSlots.test(index) || !handler.isItemValid(index, resource.toStack())) { + return 0; + } + + ItemStack currentStack = handler.getStackInSlot(index); + if (!currentStack.isEmpty() && !resource.matches(currentStack)) { + return 0; + } + + int inserted = Math.min(amount, getCapacityAsInt(index, resource) - currentStack.getCount()); + if (inserted <= 0) { + return 0; + } + + updateSnapshots(transaction); + currentStack = handler.getStackInSlot(index); + if (currentStack.isEmpty()) { + handler.setStackInSlot(index, resource.toStack(inserted)); + } else { + ItemStack updatedStack = currentStack.copy(); + updatedStack.grow(inserted); + handler.setStackInSlot(index, updatedStack); + } + return inserted; + } + + @Override + public int extract(int index, ItemResource resource, int amount, TransactionContext transaction) { + Objects.checkIndex(index, size()); + TransferPreconditions.checkNonEmptyNonNegative(resource, amount); + if (!extractSlots.test(index)) { + return 0; + } + + ItemStack currentStack = handler.getStackInSlot(index); + if (!resource.matches(currentStack)) { + return 0; + } + + int extracted = Math.min(amount, currentStack.getCount()); + if (extracted <= 0) { + return 0; + } + + updateSnapshots(transaction); + ItemStack updatedStack = handler.getStackInSlot(index).copy(); + updatedStack.shrink(extracted); + handler.setStackInSlot(index, updatedStack); + return extracted; + } + + @Override + protected NonNullList createSnapshot() { + NonNullList snapshot = NonNullList.withSize(size(), ItemStack.EMPTY); + for (int i = 0; i < size(); i++) { + snapshot.set(i, handler.getStackInSlot(i).copy()); + } + return snapshot; + } + + @Override + protected void revertToSnapshot(NonNullList snapshot) { + for (int i = 0; i < snapshot.size(); i++) { + handler.setStackInSlot(i, snapshot.get(i)); + } + } + + @Override + protected void onRootCommit(NonNullList originalState) { + rootCommitAction.accept(originalState); + } +} diff --git a/src/main/java/vectorwing/farmersdelight/common/block/entity/inventory/package-info.java b/src/main/java/vectorwing/farmersdelight/common/block/entity/inventory/package-info.java index fa6ff70cc..f3adfd51d 100644 --- a/src/main/java/vectorwing/farmersdelight/common/block/entity/inventory/package-info.java +++ b/src/main/java/vectorwing/farmersdelight/common/block/entity/inventory/package-info.java @@ -1,7 +1,5 @@ @ParametersAreNonnullByDefault -@MethodsReturnNonnullByDefault package vectorwing.farmersdelight.common.block.entity.inventory; -import net.minecraft.MethodsReturnNonnullByDefault; import javax.annotation.ParametersAreNonnullByDefault; diff --git a/src/main/java/vectorwing/farmersdelight/common/block/entity/package-info.java b/src/main/java/vectorwing/farmersdelight/common/block/entity/package-info.java index 24a62f6e6..088bc8ebb 100644 --- a/src/main/java/vectorwing/farmersdelight/common/block/entity/package-info.java +++ b/src/main/java/vectorwing/farmersdelight/common/block/entity/package-info.java @@ -1,7 +1,5 @@ @ParametersAreNonnullByDefault -@MethodsReturnNonnullByDefault package vectorwing.farmersdelight.common.block.entity; -import net.minecraft.MethodsReturnNonnullByDefault; import javax.annotation.ParametersAreNonnullByDefault; diff --git a/src/main/java/vectorwing/farmersdelight/common/block/package-info.java b/src/main/java/vectorwing/farmersdelight/common/block/package-info.java index 9fcfc4e82..215b6892e 100644 --- a/src/main/java/vectorwing/farmersdelight/common/block/package-info.java +++ b/src/main/java/vectorwing/farmersdelight/common/block/package-info.java @@ -1,7 +1,5 @@ @ParametersAreNonnullByDefault -@MethodsReturnNonnullByDefault package vectorwing.farmersdelight.common.block; -import net.minecraft.MethodsReturnNonnullByDefault; import javax.annotation.ParametersAreNonnullByDefault; diff --git a/src/main/java/vectorwing/farmersdelight/common/crafting/CookingPotRecipe.java b/src/main/java/vectorwing/farmersdelight/common/crafting/CookingPotRecipe.java index 754fde7cc..dba0c9eba 100644 --- a/src/main/java/vectorwing/farmersdelight/common/crafting/CookingPotRecipe.java +++ b/src/main/java/vectorwing/farmersdelight/common/crafting/CookingPotRecipe.java @@ -8,19 +8,27 @@ import net.minecraft.network.RegistryFriendlyByteBuf; import net.minecraft.network.codec.StreamCodec; import net.minecraft.world.item.ItemStack; +import net.minecraft.world.item.ItemStackTemplate; import net.minecraft.world.item.crafting.Ingredient; +import net.minecraft.world.item.crafting.PlacementInfo; import net.minecraft.world.item.crafting.Recipe; +import net.minecraft.world.item.crafting.RecipeBookCategory; import net.minecraft.world.item.crafting.RecipeSerializer; import net.minecraft.world.item.crafting.RecipeType; +import net.minecraft.world.item.crafting.display.RecipeDisplay; +import net.minecraft.world.item.crafting.display.ShapelessCraftingRecipeDisplay; +import net.minecraft.world.item.crafting.display.SlotDisplay; import net.minecraft.world.level.Level; import net.neoforged.neoforge.common.util.RecipeMatcher; import net.neoforged.neoforge.items.wrapper.RecipeWrapper; import vectorwing.farmersdelight.client.recipebook.CookingPotRecipeBookTab; import vectorwing.farmersdelight.common.registry.ModItems; +import vectorwing.farmersdelight.common.registry.ModRecipeBookCategories; import vectorwing.farmersdelight.common.registry.ModRecipeSerializers; import vectorwing.farmersdelight.common.registry.ModRecipeTypes; import javax.annotation.Nullable; +import java.util.List; import java.util.Optional; public class CookingPotRecipe implements Recipe @@ -30,62 +38,64 @@ public class CookingPotRecipe implements Recipe private final String group; private final CookingPotRecipeBookTab tab; private final NonNullList inputItems; - private final ItemStack output; - private final ItemStack container; - private final ItemStack containerOverride; + private final ItemStackTemplate output; + private final Optional containerOverride; private final float experience; private final int cookTime; public CookingPotRecipe(String group, @Nullable CookingPotRecipeBookTab tab, NonNullList inputItems, ItemStack output, ItemStack container, float experience, int cookTime) { + this(group, tab, inputItems, ItemStackTemplate.fromNonEmptyStack(output), stackToTemplate(container), experience, cookTime); + } + + public CookingPotRecipe(String group, @Nullable CookingPotRecipeBookTab tab, NonNullList inputItems, ItemStackTemplate output, Optional containerOverride, float experience, int cookTime) { this.group = group; this.tab = tab; this.inputItems = inputItems; this.output = output; - - if (!container.isEmpty()) { - this.container = container; - } else if (!output.getCraftingRemainingItem().isEmpty()) { - this.container = output.getCraftingRemainingItem(); - } else { - this.container = ItemStack.EMPTY; - } - - this.containerOverride = container; + this.containerOverride = containerOverride; this.experience = experience; this.cookTime = cookTime; } - @Override + private static Optional stackToTemplate(ItemStack stack) { + return stack.isEmpty() ? Optional.empty() : Optional.of(ItemStackTemplate.fromNonEmptyStack(stack)); + } + public String getGroup() { return this.group; } + @Override + public String group() { + return this.group; + } + @Nullable public CookingPotRecipeBookTab getRecipeBookTab() { return this.tab; } - @Override public NonNullList getIngredients() { return this.inputItems; } - @Override public ItemStack getResultItem(HolderLookup.Provider provider) { - return this.output; + return this.output.create(); } public ItemStack getOutputContainer() { - return this.container; + return this.containerOverride + .map(ItemStackTemplate::create) + .orElseGet(() -> vectorwing.farmersdelight.common.utility.ItemUtils.getCraftingRemainingItem(this.output.create())); } public ItemStack getContainerOverride() { - return this.containerOverride; + return this.containerOverride.map(ItemStackTemplate::create).orElse(ItemStack.EMPTY); } @Override - public ItemStack assemble(RecipeWrapper inv, HolderLookup.Provider provider) { - return this.output.copy(); + public ItemStack assemble(RecipeWrapper inv) { + return this.output.create(); } public float getExperience() { @@ -111,24 +121,46 @@ public boolean matches(RecipeWrapper inv, Level level) { return i == this.inputItems.size() && RecipeMatcher.findMatches(inputs, this.inputItems) != null; } - @Override public boolean canCraftInDimensions(int width, int height) { return width * height >= this.inputItems.size(); } @Override - public RecipeSerializer getSerializer() { + public RecipeSerializer> getSerializer() { return ModRecipeSerializers.COOKING.get(); } @Override - public RecipeType getType() { + public RecipeType> getType() { return ModRecipeTypes.COOKING.get(); } @Override - public ItemStack getToastSymbol() { - return new ItemStack(ModItems.COOKING_POT.get()); + public boolean showNotification() { + return true; + } + + @Override + public PlacementInfo placementInfo() { + return PlacementInfo.create(this.inputItems); + } + + @Override + public List display() { + return List.of(new ShapelessCraftingRecipeDisplay( + this.inputItems.stream().map(Ingredient::display).toList(), + new SlotDisplay.ItemStackSlotDisplay(this.output), + new SlotDisplay.ItemSlotDisplay(ModItems.COOKING_POT.get()) + )); + } + + @Override + public RecipeBookCategory recipeBookCategory() { + return switch (this.tab == null ? CookingPotRecipeBookTab.MISC : this.tab) { + case MEALS -> ModRecipeBookCategories.COOKING_MEALS.get(); + case DRINKS -> ModRecipeBookCategories.COOKING_DRINKS.get(); + case MISC -> ModRecipeBookCategories.COOKING_MISC.get(); + }; } @Override @@ -144,7 +176,7 @@ public boolean equals(Object o) { if (tab != that.tab) return false; if (!inputItems.equals(that.inputItems)) return false; if (!output.equals(that.output)) return false; - return container.equals(that.container); + return containerOverride.equals(that.containerOverride); } @Override @@ -153,24 +185,24 @@ public int hashCode() { result = 31 * result + (getRecipeBookTab() != null ? getRecipeBookTab().hashCode() : 0); result = 31 * result + inputItems.hashCode(); result = 31 * result + output.hashCode(); - result = 31 * result + container.hashCode(); + result = 31 * result + containerOverride.hashCode(); result = 31 * result + (getExperience() != 0.0f ? Float.floatToIntBits(getExperience()) : 0); result = 31 * result + getCookTime(); return result; } - public static class Serializer implements RecipeSerializer + public static class Serializer { - private static final MapCodec CODEC = RecordCodecBuilder.mapCodec(inst -> inst.group( + public static final MapCodec CODEC = RecordCodecBuilder.mapCodec(inst -> inst.group( Codec.STRING.optionalFieldOf("group", "").forGetter(CookingPotRecipe::getGroup), CookingPotRecipeBookTab.CODEC.optionalFieldOf("recipe_book_tab", CookingPotRecipeBookTab.MISC).forGetter(CookingPotRecipe::getRecipeBookTab), - Ingredient.LIST_CODEC_NONEMPTY.fieldOf("ingredients").xmap(ingredients -> { + Codec.list(Ingredient.CODEC).fieldOf("ingredients").xmap(ingredients -> { NonNullList nonNullList = NonNullList.create(); nonNullList.addAll(ingredients); return nonNullList; }, ingredients -> ingredients).forGetter(CookingPotRecipe::getIngredients), - ItemStack.STRICT_CODEC.fieldOf("result").forGetter(r -> r.output), - ItemStack.STRICT_CODEC.optionalFieldOf("container", ItemStack.EMPTY).forGetter(CookingPotRecipe::getContainerOverride), + ItemStackTemplate.CODEC.fieldOf("result").forGetter(r -> r.output), + ItemStackTemplate.CODEC.optionalFieldOf("container").forGetter(r -> r.containerOverride), Codec.FLOAT.optionalFieldOf("experience", 0.0F).forGetter(CookingPotRecipe::getExperience), Codec.INT.optionalFieldOf("cookingtime", 200).forGetter(CookingPotRecipe::getCookTime) ).apply(inst, CookingPotRecipe::new)); @@ -180,12 +212,10 @@ public static class Serializer implements RecipeSerializer public Serializer() { } - @Override public MapCodec codec() { return CODEC; } - @Override public StreamCodec streamCodec() { return STREAM_CODEC; } @@ -194,12 +224,13 @@ private static CookingPotRecipe fromNetwork(RegistryFriendlyByteBuf buffer) { String group = buffer.readUtf(); CookingPotRecipeBookTab tab = CookingPotRecipeBookTab.findByName(buffer.readUtf()); int i = buffer.readVarInt(); - NonNullList inputItems = NonNullList.withSize(i, Ingredient.EMPTY); - - inputItems.replaceAll(ignored -> Ingredient.CONTENTS_STREAM_CODEC.decode(buffer)); + NonNullList inputItems = NonNullList.create(); + for (int j = 0; j < i; ++j) { + inputItems.add(Ingredient.CONTENTS_STREAM_CODEC.decode(buffer)); + } - ItemStack output = ItemStack.STREAM_CODEC.decode(buffer); - ItemStack container = ItemStack.OPTIONAL_STREAM_CODEC.decode(buffer); + ItemStackTemplate output = ItemStackTemplate.STREAM_CODEC.decode(buffer); + Optional container = buffer.readBoolean() ? Optional.of(ItemStackTemplate.STREAM_CODEC.decode(buffer)) : Optional.empty(); float experience = buffer.readFloat(); int cookTime = buffer.readVarInt(); return new CookingPotRecipe(group, tab, inputItems, output, container, experience, cookTime); @@ -214,8 +245,9 @@ private static void toNetwork(RegistryFriendlyByteBuf buffer, CookingPotRecipe r Ingredient.CONTENTS_STREAM_CODEC.encode(buffer, ingredient); } - ItemStack.STREAM_CODEC.encode(buffer, recipe.output); - ItemStack.OPTIONAL_STREAM_CODEC.encode(buffer, recipe.container); + ItemStackTemplate.STREAM_CODEC.encode(buffer, recipe.output); + buffer.writeBoolean(recipe.containerOverride.isPresent()); + recipe.containerOverride.ifPresent(container -> ItemStackTemplate.STREAM_CODEC.encode(buffer, container)); buffer.writeFloat(recipe.experience); buffer.writeVarInt(recipe.cookTime); } diff --git a/src/main/java/vectorwing/farmersdelight/common/crafting/CuttingBoardRecipe.java b/src/main/java/vectorwing/farmersdelight/common/crafting/CuttingBoardRecipe.java index 214d771db..7b5c356aa 100644 --- a/src/main/java/vectorwing/farmersdelight/common/crafting/CuttingBoardRecipe.java +++ b/src/main/java/vectorwing/farmersdelight/common/crafting/CuttingBoardRecipe.java @@ -4,19 +4,18 @@ import com.mojang.serialization.DataResult; import com.mojang.serialization.MapCodec; import com.mojang.serialization.codecs.RecordCodecBuilder; -import net.minecraft.core.Holder; import net.minecraft.core.HolderLookup; import net.minecraft.core.NonNullList; -import net.minecraft.core.registries.BuiltInRegistries; -import net.minecraft.core.registries.Registries; import net.minecraft.network.RegistryFriendlyByteBuf; import net.minecraft.network.codec.StreamCodec; -import net.minecraft.resources.ResourceKey; import net.minecraft.sounds.SoundEvent; import net.minecraft.util.RandomSource; import net.minecraft.world.item.ItemStack; import net.minecraft.world.item.crafting.Ingredient; +import net.minecraft.world.item.crafting.PlacementInfo; import net.minecraft.world.item.crafting.Recipe; +import net.minecraft.world.item.crafting.RecipeBookCategories; +import net.minecraft.world.item.crafting.RecipeBookCategory; import net.minecraft.world.item.crafting.RecipeSerializer; import net.minecraft.world.item.crafting.RecipeType; import net.minecraft.world.level.Level; @@ -55,21 +54,23 @@ public boolean matches(CuttingBoardRecipeInput input, Level level) { } @Override - public ItemStack assemble(CuttingBoardRecipeInput inv, HolderLookup.Provider provider) { + public ItemStack assemble(CuttingBoardRecipeInput inv) { return this.results.getFirst().stack().copy(); } - @Override public boolean isSpecial() { return true; } - @Override public String getGroup() { return this.group; } @Override + public String group() { + return this.group; + } + public NonNullList getIngredients() { NonNullList nonnulllist = NonNullList.create(); nonnulllist.add(this.input); @@ -80,7 +81,6 @@ public Ingredient getTool() { return this.tool; } - @Override public ItemStack getResultItem(HolderLookup.Provider provider) { return this.results.getFirst().stack(); } @@ -114,21 +114,35 @@ protected int getMaxInputCount() { return 1; } - @Override public boolean canCraftInDimensions(int width, int height) { return width * height >= this.getMaxInputCount(); } @Override - public RecipeSerializer getSerializer() { + public RecipeSerializer> getSerializer() { return ModRecipeSerializers.CUTTING.get(); } @Override - public RecipeType getType() { + public RecipeType> getType() { return ModRecipeTypes.CUTTING.get(); } + @Override + public boolean showNotification() { + return true; + } + + @Override + public PlacementInfo placementInfo() { + return PlacementInfo.create(this.input); + } + + @Override + public RecipeBookCategory recipeBookCategory() { + return RecipeBookCategories.CRAFTING_MISC; + } + @Override public boolean equals(Object o) { if (this == o) return true; @@ -153,14 +167,14 @@ public int hashCode() { return result; } - public static class Serializer implements RecipeSerializer + public static class Serializer { public static final StreamCodec STREAM_CODEC = StreamCodec.of(CuttingBoardRecipe.Serializer::toNetwork, CuttingBoardRecipe.Serializer::fromNetwork); - private static final MapCodec CODEC = RecordCodecBuilder.mapCodec( + public static final MapCodec CODEC = RecordCodecBuilder.mapCodec( inst -> inst.group(Codec.STRING.optionalFieldOf("group", "").forGetter(CuttingBoardRecipe::getGroup), - Ingredient.LIST_CODEC_NONEMPTY.fieldOf("ingredients").flatXmap(ingredients -> { + Codec.list(Ingredient.CODEC).fieldOf("ingredients").flatXmap(ingredients -> { if (ingredients.isEmpty()) { return DataResult.error(() -> "No ingredients for cutting recipe"); } @@ -199,14 +213,13 @@ public static CuttingBoardRecipe fromNetwork(RegistryFriendlyByteBuf buffer) { Ingredient tool = Ingredient.CONTENTS_STREAM_CODEC.decode(buffer); int i = buffer.readVarInt(); - NonNullList results = NonNullList.withSize(i, ChanceResult.EMPTY); - results.replaceAll(ignored -> ChanceResult.read(buffer)); + NonNullList results = NonNullList.create(); + for (int j = 0; j < i; ++j) { + results.add(ChanceResult.read(buffer)); + } Optional soundEvent = Optional.empty(); if (buffer.readBoolean()) { - Optional> holder = BuiltInRegistries.SOUND_EVENT.getHolder(buffer.readResourceKey(Registries.SOUND_EVENT)); - if (holder.isPresent() && holder.get().isBound()) { - soundEvent = Optional.of(holder.get().value()); - } + soundEvent = Optional.of(SoundEvent.DIRECT_STREAM_CODEC.decode(buffer)); } return new CuttingBoardRecipe(group, inputItem, tool, results, soundEvent); @@ -220,23 +233,14 @@ public static void toNetwork(RegistryFriendlyByteBuf buffer, CuttingBoardRecipe for (ChanceResult result : recipe.results) { result.write(buffer); } - if (recipe.getSoundEvent().isPresent()) { - Optional> resourceKey = BuiltInRegistries.SOUND_EVENT.getResourceKey(recipe.getSoundEvent().get()); - resourceKey.ifPresentOrElse(rk -> { - buffer.writeBoolean(true); - buffer.writeResourceKey(rk); - }, () -> buffer.writeBoolean(false)); - } else { - buffer.writeBoolean(false); - } + buffer.writeBoolean(recipe.getSoundEvent().isPresent()); + recipe.getSoundEvent().ifPresent(sound -> SoundEvent.DIRECT_STREAM_CODEC.encode(buffer, sound)); } - @Override public MapCodec codec() { return CODEC; } - @Override public StreamCodec streamCodec() { return STREAM_CODEC; } diff --git a/src/main/java/vectorwing/farmersdelight/common/crafting/DoughRecipe.java b/src/main/java/vectorwing/farmersdelight/common/crafting/DoughRecipe.java index 710181a61..10aeba3ce 100644 --- a/src/main/java/vectorwing/farmersdelight/common/crafting/DoughRecipe.java +++ b/src/main/java/vectorwing/farmersdelight/common/crafting/DoughRecipe.java @@ -1,10 +1,11 @@ package vectorwing.farmersdelight.common.crafting; -import net.minecraft.core.HolderLookup; +import com.mojang.serialization.MapCodec; import net.minecraft.core.NonNullList; +import net.minecraft.network.RegistryFriendlyByteBuf; +import net.minecraft.network.codec.StreamCodec; import net.minecraft.world.item.ItemStack; import net.minecraft.world.item.Items; -import net.minecraft.world.item.crafting.CraftingBookCategory; import net.minecraft.world.item.crafting.CraftingInput; import net.minecraft.world.item.crafting.CustomRecipe; import net.minecraft.world.item.crafting.RecipeSerializer; @@ -15,9 +16,12 @@ public class DoughRecipe extends CustomRecipe { - public DoughRecipe(CraftingBookCategory category) { - super(category); - } + public static final MapCodec CODEC = MapCodec.unit(DoughRecipe::new); + public static final StreamCodec STREAM_CODEC = StreamCodec.of( + (buffer, recipe) -> { + }, + buffer -> new DoughRecipe() + ); @Override public boolean matches(CraftingInput container, Level level) { @@ -43,7 +47,7 @@ public boolean matches(CraftingInput container, Level level) { } @Override - public ItemStack assemble(CraftingInput container, HolderLookup.Provider registryAccess) { + public ItemStack assemble(CraftingInput container) { return new ItemStack(ModItems.WHEAT_DOUGH.get()); } @@ -61,13 +65,12 @@ public NonNullList getRemainingItems(CraftingInput container) { return remainders; } - @Override public boolean canCraftInDimensions(int width, int height) { return width >= 2 && height >= 2; } @Override - public RecipeSerializer getSerializer() { + public RecipeSerializer getSerializer() { return ModRecipeSerializers.DOUGH.get(); } } diff --git a/src/main/java/vectorwing/farmersdelight/common/crafting/FoodServingRecipe.java b/src/main/java/vectorwing/farmersdelight/common/crafting/FoodServingRecipe.java index ad6cd6d24..9b855e833 100644 --- a/src/main/java/vectorwing/farmersdelight/common/crafting/FoodServingRecipe.java +++ b/src/main/java/vectorwing/farmersdelight/common/crafting/FoodServingRecipe.java @@ -1,9 +1,10 @@ package vectorwing.farmersdelight.common.crafting; -import net.minecraft.core.HolderLookup; +import com.mojang.serialization.MapCodec; import net.minecraft.core.NonNullList; +import net.minecraft.network.RegistryFriendlyByteBuf; +import net.minecraft.network.codec.StreamCodec; import net.minecraft.world.item.ItemStack; -import net.minecraft.world.item.crafting.CraftingBookCategory; import net.minecraft.world.item.crafting.CraftingInput; import net.minecraft.world.item.crafting.CustomRecipe; import net.minecraft.world.item.crafting.RecipeSerializer; @@ -11,12 +12,16 @@ import vectorwing.farmersdelight.common.block.entity.CookingPotBlockEntity; import vectorwing.farmersdelight.common.registry.ModItems; import vectorwing.farmersdelight.common.registry.ModRecipeSerializers; +import vectorwing.farmersdelight.common.utility.ItemUtils; public class FoodServingRecipe extends CustomRecipe { - public FoodServingRecipe(CraftingBookCategory category) { - super(category); - } + public static final MapCodec CODEC = MapCodec.unit(FoodServingRecipe::new); + public static final StreamCodec STREAM_CODEC = StreamCodec.of( + (buffer, recipe) -> { + }, + buffer -> new FoodServingRecipe() + ); @Override public boolean matches(CraftingInput input, Level level) { @@ -47,7 +52,7 @@ public boolean matches(CraftingInput input, Level level) { } @Override - public ItemStack assemble(CraftingInput input, HolderLookup.Provider access) { + public ItemStack assemble(CraftingInput input) { for (int i = 0; i < input.size(); ++i) { ItemStack selectedStack = input.getItem(i); if (!selectedStack.isEmpty() && selectedStack.is(ModItems.COOKING_POT.get())) { @@ -66,8 +71,8 @@ public NonNullList getRemainingItems(CraftingInput input) { for (int i = 0; i < remainders.size(); ++i) { ItemStack selectedStack = input.getItem(i); - if (selectedStack.hasCraftingRemainingItem()) { - remainders.set(i, selectedStack.getCraftingRemainingItem()); + if (ItemUtils.hasCraftingRemainingItem(selectedStack)) { + remainders.set(i, ItemUtils.getCraftingRemainingItem(selectedStack)); } else if (selectedStack.is(ModItems.COOKING_POT.get())) { CookingPotBlockEntity.takeServingFromItem(selectedStack); ItemStack newCookingPotStack = selectedStack.copy(); @@ -80,13 +85,12 @@ public NonNullList getRemainingItems(CraftingInput input) { return remainders; } - @Override public boolean canCraftInDimensions(int width, int height) { return width >= 2 && height >= 2; } @Override - public RecipeSerializer getSerializer() { + public RecipeSerializer getSerializer() { return ModRecipeSerializers.FOOD_SERVING.get(); } } diff --git a/src/main/java/vectorwing/farmersdelight/common/crafting/ingredient/ChanceResult.java b/src/main/java/vectorwing/farmersdelight/common/crafting/ingredient/ChanceResult.java index 3233a7792..1cde79aee 100644 --- a/src/main/java/vectorwing/farmersdelight/common/crafting/ingredient/ChanceResult.java +++ b/src/main/java/vectorwing/farmersdelight/common/crafting/ingredient/ChanceResult.java @@ -5,21 +5,29 @@ import net.minecraft.network.RegistryFriendlyByteBuf; import net.minecraft.util.RandomSource; import net.minecraft.world.item.ItemStack; +import net.minecraft.world.item.ItemStackTemplate; import vectorwing.farmersdelight.common.Configuration; /** * Credits to the Create team for the implementation of results with chances! */ -public record ChanceResult(ItemStack stack, float chance) +public record ChanceResult(ItemStackTemplate template, float chance) { - public static final ChanceResult EMPTY = new ChanceResult(ItemStack.EMPTY, 1); public static final Codec CODEC = RecordCodecBuilder.create(inst -> inst.group( - ItemStack.CODEC.fieldOf("item").forGetter(ChanceResult::stack), + ItemStackTemplate.CODEC.fieldOf("item").forGetter(ChanceResult::template), Codec.FLOAT.optionalFieldOf("chance", 1.0f).forGetter(ChanceResult::chance) ).apply(inst, ChanceResult::new)); + public ChanceResult(ItemStack stack, float chance) { + this(ItemStackTemplate.fromNonEmptyStack(stack), chance); + } + + public ItemStack stack() { + return template.create(); + } public ItemStack rollOutput(RandomSource random, int fortuneLevel) { + ItemStack stack = stack(); int outputAmount = stack.getCount(); double fortuneBonus = Configuration.CUTTING_BOARD_FORTUNE_BONUS.get() * fortuneLevel; for (int roll = 0; roll < stack.getCount(); roll++) @@ -33,11 +41,11 @@ public ItemStack rollOutput(RandomSource random, int fortuneLevel) { } public void write(RegistryFriendlyByteBuf buffer) { - ItemStack.STREAM_CODEC.encode(buffer, stack()); + ItemStackTemplate.STREAM_CODEC.encode(buffer, template()); buffer.writeFloat(chance()); } public static ChanceResult read(RegistryFriendlyByteBuf buffer) { - return new ChanceResult(ItemStack.STREAM_CODEC.decode(buffer), buffer.readFloat()); + return new ChanceResult(ItemStackTemplate.STREAM_CODEC.decode(buffer), buffer.readFloat()); } } diff --git a/src/main/java/vectorwing/farmersdelight/common/crafting/ingredient/ItemAbilityIngredient.java b/src/main/java/vectorwing/farmersdelight/common/crafting/ingredient/ItemAbilityIngredient.java index d12c6aabf..84959dc63 100644 --- a/src/main/java/vectorwing/farmersdelight/common/crafting/ingredient/ItemAbilityIngredient.java +++ b/src/main/java/vectorwing/farmersdelight/common/crafting/ingredient/ItemAbilityIngredient.java @@ -2,8 +2,9 @@ import com.mojang.serialization.MapCodec; import com.mojang.serialization.codecs.RecordCodecBuilder; -import net.minecraft.MethodsReturnNonnullByDefault; import net.minecraft.core.registries.BuiltInRegistries; +import net.minecraft.core.Holder; +import net.minecraft.world.item.Item; import net.minecraft.world.item.ItemStack; import net.minecraft.world.item.crafting.Ingredient; import net.neoforged.neoforge.common.ItemAbility; @@ -19,7 +20,6 @@ * Ingredient that checks if the given stack can perform a ItemAbility from Forge. */ @ParametersAreNonnullByDefault -@MethodsReturnNonnullByDefault public class ItemAbilityIngredient implements ICustomIngredient { public static final MapCodec CODEC = RecordCodecBuilder.mapCodec(inst -> @@ -27,7 +27,7 @@ public class ItemAbilityIngredient implements ICustomIngredient ).apply(inst, ItemAbilityIngredient::new)); protected final ItemAbility itemAbility; - protected Stream itemStacks; + protected Stream> itemStacks; public ItemAbilityIngredient(ItemAbility itemAbility) { this.itemAbility = itemAbility; @@ -36,8 +36,8 @@ public ItemAbilityIngredient(ItemAbility itemAbility) { protected void dissolve() { if (this.itemStacks == null) { itemStacks = BuiltInRegistries.ITEM.stream() - .map(ItemStack::new) - .filter(stack -> stack.canPerformAction(itemAbility)); + .map(item -> (Holder) item.builtInRegistryHolder()) + .filter(item -> new ItemStack(item).canPerformAction(itemAbility)); } } @@ -47,7 +47,7 @@ public boolean test(@Nullable ItemStack stack) { } @Override - public Stream getItems() { + public Stream> items() { dissolve(); return itemStacks; } diff --git a/src/main/java/vectorwing/farmersdelight/common/crafting/package-info.java b/src/main/java/vectorwing/farmersdelight/common/crafting/package-info.java index c2d205c50..5d7dd08af 100644 --- a/src/main/java/vectorwing/farmersdelight/common/crafting/package-info.java +++ b/src/main/java/vectorwing/farmersdelight/common/crafting/package-info.java @@ -1,7 +1,5 @@ @ParametersAreNonnullByDefault -@MethodsReturnNonnullByDefault package vectorwing.farmersdelight.common.crafting; -import net.minecraft.MethodsReturnNonnullByDefault; import javax.annotation.ParametersAreNonnullByDefault; diff --git a/src/main/java/vectorwing/farmersdelight/common/effect/ComfortEffect.java b/src/main/java/vectorwing/farmersdelight/common/effect/ComfortEffect.java index 202d46459..a14bd0ea7 100644 --- a/src/main/java/vectorwing/farmersdelight/common/effect/ComfortEffect.java +++ b/src/main/java/vectorwing/farmersdelight/common/effect/ComfortEffect.java @@ -4,6 +4,7 @@ import net.minecraft.world.effect.MobEffect; import net.minecraft.world.effect.MobEffectCategory; import net.minecraft.world.effect.MobEffects; +import net.minecraft.server.level.ServerLevel; import net.minecraft.world.entity.LivingEntity; import net.minecraft.world.entity.player.Player; @@ -21,7 +22,7 @@ public ComfortEffect() { } @Override - public boolean applyEffectTick(LivingEntity entity, int amplifier) { + public boolean applyEffectTick(ServerLevel level, LivingEntity entity, int amplifier) { if (entity.hasEffect(MobEffects.REGENERATION)) { return true; } diff --git a/src/main/java/vectorwing/farmersdelight/common/effect/NourishmentEffect.java b/src/main/java/vectorwing/farmersdelight/common/effect/NourishmentEffect.java index d63f46f1c..0f7aab522 100644 --- a/src/main/java/vectorwing/farmersdelight/common/effect/NourishmentEffect.java +++ b/src/main/java/vectorwing/farmersdelight/common/effect/NourishmentEffect.java @@ -1,11 +1,12 @@ package vectorwing.farmersdelight.common.effect; +import net.minecraft.server.level.ServerLevel; import net.minecraft.world.effect.MobEffect; import net.minecraft.world.effect.MobEffectCategory; import net.minecraft.world.entity.LivingEntity; import net.minecraft.world.entity.player.Player; import net.minecraft.world.food.FoodData; -import net.minecraft.world.level.GameRules; +import net.minecraft.world.level.gamerules.GameRules; public class NourishmentEffect extends MobEffect { @@ -18,19 +19,16 @@ public NourishmentEffect() { super(MobEffectCategory.BENEFICIAL, 0xF3B300); } - public boolean applyEffectTick(LivingEntity entity, int amplifier) { - if (entity.getCommandSenderWorld().isClientSide) { - return true; - } - + @Override + public boolean applyEffectTick(ServerLevel serverLevel, LivingEntity entity, int amplifier) { if (entity instanceof Player player) { FoodData foodData = player.getFoodData(); boolean isPlayerHealingWithSaturation = - player.level().getGameRules().getBoolean(GameRules.RULE_NATURAL_REGENERATION) + serverLevel.getGameRules().get(GameRules.NATURAL_HEALTH_REGENERATION) && player.isHurt() && foodData.getSaturationLevel() > 0.0; if (!isPlayerHealingWithSaturation) { - foodData.setExhaustion(0); + foodData.addExhaustion(-40.0F); } } diff --git a/src/main/java/vectorwing/farmersdelight/common/entity/RottenTomatoEntity.java b/src/main/java/vectorwing/farmersdelight/common/entity/RottenTomatoEntity.java index 27b6c705a..b1dbbe605 100644 --- a/src/main/java/vectorwing/farmersdelight/common/entity/RottenTomatoEntity.java +++ b/src/main/java/vectorwing/farmersdelight/common/entity/RottenTomatoEntity.java @@ -1,15 +1,15 @@ package vectorwing.farmersdelight.common.entity; -import net.minecraft.MethodsReturnNonnullByDefault; import net.minecraft.core.particles.ItemParticleOption; import net.minecraft.core.particles.ParticleOptions; import net.minecraft.core.particles.ParticleTypes; import net.minecraft.world.entity.Entity; import net.minecraft.world.entity.EntityType; import net.minecraft.world.entity.LivingEntity; -import net.minecraft.world.entity.projectile.ThrowableItemProjectile; +import net.minecraft.world.entity.projectile.throwableitemprojectile.ThrowableItemProjectile; import net.minecraft.world.item.Item; import net.minecraft.world.item.ItemStack; +import net.minecraft.world.item.ItemStackTemplate; import net.minecraft.world.level.Level; import net.minecraft.world.phys.EntityHitResult; import net.minecraft.world.phys.HitResult; @@ -20,7 +20,6 @@ import javax.annotation.ParametersAreNonnullByDefault; @ParametersAreNonnullByDefault -@MethodsReturnNonnullByDefault public class RottenTomatoEntity extends ThrowableItemProjectile { public RottenTomatoEntity(EntityType entityType, Level level) { @@ -28,11 +27,11 @@ public RottenTomatoEntity(EntityType entityType, L } public RottenTomatoEntity(Level level, LivingEntity entity) { - super(ModEntityTypes.ROTTEN_TOMATO.get(), entity, level); + super(ModEntityTypes.ROTTEN_TOMATO.get(), entity, level, new ItemStack(ModItems.ROTTEN_TOMATO.get())); } public RottenTomatoEntity(Level level, double x, double y, double z) { - super(ModEntityTypes.ROTTEN_TOMATO.get(), x, y, z, level); + super(ModEntityTypes.ROTTEN_TOMATO.get(), x, y, z, level, new ItemStack(ModItems.ROTTEN_TOMATO.get())); } @Override @@ -44,7 +43,7 @@ protected Item getDefaultItem() { public void handleEntityEvent(byte id) { ItemStack entityStack = new ItemStack(this.getDefaultItem()); if (id == 3) { - ParticleOptions iparticledata = new ItemParticleOption(ParticleTypes.ITEM, entityStack); + ParticleOptions iparticledata = new ItemParticleOption(ParticleTypes.ITEM, ItemStackTemplate.fromStack(entityStack)); for (int i = 0; i < 12; ++i) { this.level().addParticle(iparticledata, this.getX(), this.getY(), this.getZ(), @@ -66,7 +65,7 @@ protected void onHitEntity(EntityHitResult result) { @Override protected void onHit(HitResult result) { super.onHit(result); - if (!this.level().isClientSide) { + if (!this.level().isClientSide()) { this.level().broadcastEntityEvent(this, (byte) 3); this.playSound(ModSounds.ENTITY_ROTTEN_TOMATO_HIT.get(), 1.0F, (this.random.nextFloat() - this.random.nextFloat()) * 0.2F + 1.0F); this.discard(); diff --git a/src/main/java/vectorwing/farmersdelight/common/event/CommonEvents.java b/src/main/java/vectorwing/farmersdelight/common/event/CommonEvents.java index b167fd451..0fd4dffb0 100644 --- a/src/main/java/vectorwing/farmersdelight/common/event/CommonEvents.java +++ b/src/main/java/vectorwing/farmersdelight/common/event/CommonEvents.java @@ -1,21 +1,35 @@ package vectorwing.farmersdelight.common.event; +import net.minecraft.core.BlockPos; import net.minecraft.world.effect.MobEffectInstance; -import net.minecraft.world.effect.MobEffects; import net.minecraft.world.entity.LivingEntity; -import net.minecraft.world.food.FoodProperties; import net.minecraft.world.item.Item; import net.minecraft.world.item.Items; +import net.minecraft.world.level.block.state.BlockState; import net.neoforged.bus.api.SubscribeEvent; import net.neoforged.fml.common.EventBusSubscriber; import net.neoforged.neoforge.event.entity.living.LivingEntityUseItemEvent; +import net.neoforged.neoforge.event.level.AlterGroundEvent; import vectorwing.farmersdelight.FarmersDelight; import vectorwing.farmersdelight.common.Configuration; import vectorwing.farmersdelight.common.FoodValues; +import vectorwing.farmersdelight.common.registry.ModBlocks; @EventBusSubscriber(modid = FarmersDelight.MODID) public class CommonEvents { + @SubscribeEvent + public static void keepRichSoilUnderGiantTrees(AlterGroundEvent event) { + AlterGroundEvent.StateProvider originalProvider = event.getStateProvider(); + event.setStateProvider((level, random, pos) -> { + BlockPos placementPos = findGroundPlacementPos(event, pos); + if (placementPos != null && level.getBlockState(placementPos).is(ModBlocks.RICH_SOIL.get())) { + return null; + } + return originalProvider.getState(level, random, pos); + }); + } + @SubscribeEvent public static void handleVanillaSoupEffects(LivingEntityUseItemEvent.Finish event) { Item food = event.getItem().getItem(); @@ -26,13 +40,25 @@ public static void handleVanillaSoupEffects(LivingEntityUseItemEvent.Finish even } if (Configuration.ENABLE_VANILLA_SOUP_EXTRA_EFFECTS.get()) { - FoodProperties soupEffects = FoodValues.VANILLA_SOUP_EFFECTS.get(food); + MobEffectInstance soupEffect = FoodValues.VANILLA_SOUP_EFFECTS.get(food); - if (soupEffects != null) { - for (FoodProperties.PossibleEffect effect : soupEffects.effects()) { - entity.addEffect(effect.effect()); - } + if (soupEffect != null) { + entity.addEffect(new MobEffectInstance(soupEffect)); + } + } + } + + private static BlockPos findGroundPlacementPos(AlterGroundEvent event, BlockPos pos) { + for (int i = 2; i >= -3; i--) { + BlockPos blockPos = pos.above(i); + BlockState state = event.getContext().level().getBlockState(blockPos); + if (state.is(ModBlocks.RICH_SOIL.get())) { + return blockPos; + } + if (!event.getContext().isAir(blockPos) && i < 0) { + return null; } } + return null; } } diff --git a/src/main/java/vectorwing/farmersdelight/common/event/CommonModBusEvents.java b/src/main/java/vectorwing/farmersdelight/common/event/CommonModBusEvents.java index c40075740..8f01394d5 100644 --- a/src/main/java/vectorwing/farmersdelight/common/event/CommonModBusEvents.java +++ b/src/main/java/vectorwing/farmersdelight/common/event/CommonModBusEvents.java @@ -2,7 +2,7 @@ import net.minecraft.core.component.DataComponents; import net.minecraft.core.registries.BuiltInRegistries; -import net.minecraft.resources.ResourceLocation; +import net.minecraft.resources.Identifier; import net.minecraft.world.item.Item; import net.minecraft.world.item.Items; import net.neoforged.bus.api.SubscribeEvent; @@ -23,12 +23,15 @@ public static void onModifyDefaultComponents(ModifyDefaultComponentsEvent event) } if (Configuration.ENABLE_STACKABLE_SOUP_ITEMS.get()) { Configuration.SOUP_ITEM_LIST.get().forEach((key) -> { - Item item = BuiltInRegistries.ITEM.get(ResourceLocation.parse(key)); - event.modify(item, (builder) -> builder.set(DataComponents.MAX_STACK_SIZE, 16)); + BuiltInRegistries.ITEM.get(Identifier.parse(key)).ifPresent(item -> { + event.modify(item.value(), (builder) -> builder.set(DataComponents.MAX_STACK_SIZE, 16)); + }); }); } if (Configuration.ENABLE_RABBIT_STEW_BUFF.get()) { - event.modify(Items.RABBIT_STEW, (builder) -> builder.set(DataComponents.FOOD, FoodValues.RABBIT_STEW_BUFF)); + event.modify(Items.RABBIT_STEW, (builder) -> builder + .set(DataComponents.FOOD, FoodValues.RABBIT_STEW_BUFF) + .set(DataComponents.CONSUMABLE, FoodValues.consumable(FoodValues.RABBIT_STEW_BUFF))); } } } diff --git a/src/main/java/vectorwing/farmersdelight/common/event/VillagerEvents.java b/src/main/java/vectorwing/farmersdelight/common/event/VillagerEvents.java deleted file mode 100644 index 9081b4d3b..000000000 --- a/src/main/java/vectorwing/farmersdelight/common/event/VillagerEvents.java +++ /dev/null @@ -1,61 +0,0 @@ -package vectorwing.farmersdelight.common.event; - -import it.unimi.dsi.fastutil.ints.Int2ObjectMap; -import net.minecraft.core.registries.BuiltInRegistries; -import net.minecraft.resources.ResourceLocation; -import net.minecraft.world.entity.npc.VillagerProfession; -import net.minecraft.world.entity.npc.VillagerTrades; -import net.minecraft.world.item.ItemStack; -import net.minecraft.world.item.Items; -import net.minecraft.world.level.ItemLike; -import net.neoforged.bus.api.SubscribeEvent; -import net.neoforged.fml.common.EventBusSubscriber; -import net.neoforged.neoforge.common.BasicItemListing; -import net.neoforged.neoforge.event.village.VillagerTradesEvent; -import net.neoforged.neoforge.event.village.WandererTradesEvent; -import vectorwing.farmersdelight.FarmersDelight; -import vectorwing.farmersdelight.common.Configuration; -import vectorwing.farmersdelight.common.registry.ModItems; - -import javax.annotation.ParametersAreNonnullByDefault; -import java.util.List; - -@EventBusSubscriber(modid = FarmersDelight.MODID) -@ParametersAreNonnullByDefault -public class VillagerEvents -{ - @SubscribeEvent - public static void onVillagerTrades(VillagerTradesEvent event) { - if (!Configuration.ENABLE_FARMERS_BUY_FD_CROPS.get()) return; - - Int2ObjectMap> trades = event.getTrades(); - VillagerProfession profession = event.getType(); - ResourceLocation professionKey = BuiltInRegistries.VILLAGER_PROFESSION.getKey(profession); - if (professionKey == null) return; - if (professionKey.getPath().equals("farmer")) { - trades.get(1).add(emeraldForItemsTrade(ModItems.ONION.get(), 26, 16, 2)); - trades.get(1).add(emeraldForItemsTrade(ModItems.TOMATO.get(), 26, 16, 2)); - trades.get(2).add(emeraldForItemsTrade(ModItems.CABBAGE.get(), 16, 16, 5)); - trades.get(2).add(emeraldForItemsTrade(ModItems.RICE.get(), 20, 16, 5)); - } - } - - @SubscribeEvent - public static void onWandererTrades(WandererTradesEvent event) { - if (Configuration.ENABLE_WANDERING_TRADER_SELLS_FD_ITEMS.get()) { - List trades = event.getGenericTrades(); - trades.add(itemForEmeraldTrade(ModItems.CABBAGE_SEEDS.get(), 1, 12)); - trades.add(itemForEmeraldTrade(ModItems.TOMATO_SEEDS.get(), 1, 12)); - trades.add(itemForEmeraldTrade(ModItems.RICE.get(), 1, 12)); - trades.add(itemForEmeraldTrade(ModItems.ONION.get(), 1, 12)); - } - } - - public static BasicItemListing emeraldForItemsTrade(ItemLike item, int count, int maxTrades, int xp) { - return new BasicItemListing(new ItemStack(item, count), new ItemStack(Items.EMERALD), maxTrades, xp, 0.05F); - } - - public static BasicItemListing itemForEmeraldTrade(ItemLike item, int maxTrades, int xp) { - return new BasicItemListing(1, new ItemStack(item), maxTrades, xp, 0.05F); - } -} diff --git a/src/main/java/vectorwing/farmersdelight/common/item/ConsumableItem.java b/src/main/java/vectorwing/farmersdelight/common/item/ConsumableItem.java index 2ba4a4cd8..0a944957e 100644 --- a/src/main/java/vectorwing/farmersdelight/common/item/ConsumableItem.java +++ b/src/main/java/vectorwing/farmersdelight/common/item/ConsumableItem.java @@ -1,7 +1,8 @@ package vectorwing.farmersdelight.common.item; import net.minecraft.ChatFormatting; -import net.minecraft.advancements.CriteriaTriggers; +import net.minecraft.advancements.triggers.CriteriaTriggers; +import net.minecraft.core.component.DataComponents; import net.minecraft.core.registries.BuiltInRegistries; import net.minecraft.network.chat.Component; import net.minecraft.server.level.ServerPlayer; @@ -11,12 +12,14 @@ import net.minecraft.world.item.Item; import net.minecraft.world.item.ItemStack; import net.minecraft.world.item.TooltipFlag; +import net.minecraft.world.item.component.TooltipDisplay; import net.minecraft.world.level.Level; import vectorwing.farmersdelight.common.Configuration; import vectorwing.farmersdelight.common.utility.TextUtils; import javax.annotation.Nullable; import java.util.List; +import java.util.function.Consumer; public class ConsumableItem extends Item { @@ -47,13 +50,13 @@ public ConsumableItem(Properties properties, boolean hasFoodEffectTooltip, boole @Override public ItemStack finishUsingItem(ItemStack stack, Level level, LivingEntity consumer) { - if (!level.isClientSide) { + if (!level.isClientSide()) { this.affectConsumer(stack, level, consumer); } - ItemStack containerStack = stack.getCraftingRemainingItem(); + ItemStack containerStack = vectorwing.farmersdelight.common.utility.ItemUtils.getCraftingRemainingItem(stack); - if (stack.getFoodProperties(consumer) != null) { + if (stack.has(DataComponents.FOOD)) { super.finishUsingItem(stack, level, consumer); } else { Player player = consumer instanceof Player ? (Player) consumer : null; @@ -71,7 +74,7 @@ public ItemStack finishUsingItem(ItemStack stack, Level level, LivingEntity cons if (stack.isEmpty()) { return containerStack; } else { - if (consumer instanceof Player player && !((Player) consumer).getAbilities().instabuild) { + if (consumer instanceof Player player && !player.getAbilities().instabuild && !containerStack.isEmpty()) { if (!player.getInventory().add(containerStack)) { player.drop(containerStack, false); } @@ -87,13 +90,13 @@ public void affectConsumer(ItemStack stack, Level level, LivingEntity consumer) } @Override - public void appendHoverText(ItemStack stack, TooltipContext context, List tooltip, TooltipFlag isAdvanced) { + public void appendHoverText(ItemStack stack, TooltipContext context, TooltipDisplay tooltipDisplay, Consumer tooltip, TooltipFlag isAdvanced) { if (Configuration.ENABLE_FOOD_EFFECT_TOOLTIP.get()) { if (this.hasCustomTooltip) { - tooltip.add(TextUtils.tooltip(BuiltInRegistries.ITEM.getKey(this).getPath()).withStyle(ChatFormatting.BLUE)); + tooltip.accept(TextUtils.tooltip(BuiltInRegistries.ITEM.getKey(this).getPath()).withStyle(ChatFormatting.BLUE)); } if (this.hasFoodEffectTooltip) { - TextUtils.addFoodEffectTooltip(stack, tooltip::add, 1.0F, context.tickRate()); + TextUtils.addFoodEffectTooltip(stack, tooltip, 1.0F, context.tickRate()); } } } diff --git a/src/main/java/vectorwing/farmersdelight/common/item/CookingPotItem.java b/src/main/java/vectorwing/farmersdelight/common/item/CookingPotItem.java index 4fbc2599d..bca35a376 100644 --- a/src/main/java/vectorwing/farmersdelight/common/item/CookingPotItem.java +++ b/src/main/java/vectorwing/farmersdelight/common/item/CookingPotItem.java @@ -1,12 +1,9 @@ package vectorwing.farmersdelight.common.item; import net.minecraft.core.component.DataComponents; -import net.minecraft.nbt.CompoundTag; -import net.minecraft.util.Mth; import net.minecraft.world.inventory.tooltip.TooltipComponent; import net.minecraft.world.item.BlockItem; import net.minecraft.world.item.ItemStack; -import net.minecraft.world.item.component.CustomData; import net.minecraft.world.level.block.Block; import vectorwing.farmersdelight.client.gui.CookingPotTooltip; import vectorwing.farmersdelight.common.block.entity.CookingPotBlockEntity; @@ -15,7 +12,7 @@ public class CookingPotItem extends BlockItem { - private static final int BAR_COLOR = Mth.color(0.4F, 0.4F, 1.0F); + private static final int BAR_COLOR = 0x6666FF; public CookingPotItem(Block block, Properties properties) { super(block, properties); diff --git a/src/main/java/vectorwing/farmersdelight/common/item/DogFoodItem.java b/src/main/java/vectorwing/farmersdelight/common/item/DogFoodItem.java index 20d3ba9cf..972bc6012 100644 --- a/src/main/java/vectorwing/farmersdelight/common/item/DogFoodItem.java +++ b/src/main/java/vectorwing/farmersdelight/common/item/DogFoodItem.java @@ -15,10 +15,11 @@ import net.minecraft.world.entity.Entity; import net.minecraft.world.entity.LivingEntity; import net.minecraft.world.entity.TamableAnimal; -import net.minecraft.world.entity.animal.Wolf; +import net.minecraft.world.entity.animal.wolf.Wolf; import net.minecraft.world.entity.player.Player; import net.minecraft.world.item.ItemStack; import net.minecraft.world.item.TooltipFlag; +import net.minecraft.world.item.component.TooltipDisplay; import net.minecraft.world.level.Level; import net.neoforged.bus.api.SubscribeEvent; import net.neoforged.fml.common.EventBusSubscriber; @@ -33,13 +34,14 @@ import javax.annotation.Nullable; import java.util.List; +import java.util.function.Consumer; public class DogFoodItem extends ConsumableItem { public static final List EFFECTS = Lists.newArrayList( - new MobEffectInstance(MobEffects.MOVEMENT_SPEED, 6000, 0), - new MobEffectInstance(MobEffects.DAMAGE_BOOST, 6000, 0), - new MobEffectInstance(MobEffects.DAMAGE_RESISTANCE, 6000, 0)); + new MobEffectInstance(MobEffects.SPEED, 6000, 0), + new MobEffectInstance(MobEffects.STRENGTH, 6000, 0), + new MobEffectInstance(MobEffects.RESISTANCE, 6000, 0)); public DogFoodItem(Properties properties) { super(properties); @@ -55,7 +57,7 @@ public static void onDogFoodApplied(PlayerInteractEvent.EntityInteract event) { Entity target = event.getTarget(); ItemStack itemStack = event.getItemStack(); - if (target instanceof LivingEntity entity && target.getType().is(ModTags.EntityTypes.DOG_FOOD_USERS)) { + if (target instanceof LivingEntity entity && target.typeHolder().is(ModTags.EntityTypes.DOG_FOOD_USERS)) { boolean isTameable = entity instanceof TamableAnimal; if (entity.isAlive() && (!isTameable || ((TamableAnimal) entity).isTame()) && itemStack.getItem().equals(ModItems.DOG_FOOD.get())) { @@ -63,7 +65,7 @@ public static void onDogFoodApplied(PlayerInteractEvent.EntityInteract event) { for (MobEffectInstance effect : EFFECTS) { entity.addEffect(new MobEffectInstance(effect)); } - entity.level().playSound(null, target.blockPosition(), SoundEvents.GENERIC_EAT, SoundSource.PLAYERS, 0.8F, 0.8F); + entity.level().playSound(null, target.blockPosition(), SoundEvents.GENERIC_EAT.value(), SoundSource.PLAYERS, 0.8F, 0.8F); for (int i = 0; i < 5; ++i) { double xSpeed = MathUtils.RAND.nextGaussian() * 0.02D; @@ -72,8 +74,9 @@ public static void onDogFoodApplied(PlayerInteractEvent.EntityInteract event) { entity.level().addParticle(ModParticleTypes.STAR.get(), entity.getRandomX(1.0D), entity.getRandomY() + 0.5D, entity.getRandomZ(1.0D), xSpeed, ySpeed, zSpeed); } - if (itemStack.getCraftingRemainingItem() != ItemStack.EMPTY && !player.isCreative()) { - player.addItem(itemStack.getCraftingRemainingItem()); + ItemStack craftingRemainingItem = vectorwing.farmersdelight.common.utility.ItemUtils.getCraftingRemainingItem(itemStack); + if (!craftingRemainingItem.isEmpty() && !player.isCreative()) { + player.addItem(craftingRemainingItem); itemStack.shrink(1); } @@ -85,13 +88,13 @@ public static void onDogFoodApplied(PlayerInteractEvent.EntityInteract event) { } @Override - public void appendHoverText(ItemStack stack, TooltipContext context, List tooltip, TooltipFlag isAdvanced) { + public void appendHoverText(ItemStack stack, TooltipContext context, TooltipDisplay tooltipDisplay, Consumer tooltip, TooltipFlag isAdvanced) { if (!Configuration.ENABLE_FOOD_EFFECT_TOOLTIP.get()) { return; } MutableComponent textWhenFeeding = TextUtils.tooltip("dog_food.when_feeding"); - tooltip.add(textWhenFeeding.withStyle(ChatFormatting.GRAY)); + tooltip.accept(textWhenFeeding.withStyle(ChatFormatting.GRAY)); for (MobEffectInstance effectInstance : EFFECTS) { MutableComponent effectDescription = Component.literal(" "); @@ -107,7 +110,7 @@ public void appendHoverText(ItemStack stack, TooltipContext context, List use(Level level, Player player, InteractionHand hand) { + public InteractionResult use(Level level, Player player, InteractionHand hand) { ItemStack heldStack = player.getItemInHand(hand); - if (heldStack.getFoodProperties(player) != null) { - if (player.canEat(heldStack.getFoodProperties(player).canAlwaysEat())) { + if (heldStack.has(DataComponents.FOOD)) { + if (player.canEat(heldStack.get(DataComponents.FOOD).canAlwaysEat())) { player.startUsingItem(hand); - return InteractionResultHolder.consume(heldStack); + return InteractionResult.CONSUME; } else { - return InteractionResultHolder.fail(heldStack); + return InteractionResult.FAIL; } } return ItemUtils.startUsingInstantly(level, player, hand); diff --git a/src/main/java/vectorwing/farmersdelight/common/item/FuelBlockItem.java b/src/main/java/vectorwing/farmersdelight/common/item/FuelBlockItem.java index af4baed2e..4342c1b22 100644 --- a/src/main/java/vectorwing/farmersdelight/common/item/FuelBlockItem.java +++ b/src/main/java/vectorwing/farmersdelight/common/item/FuelBlockItem.java @@ -26,7 +26,6 @@ public FuelBlockItem(Block block, Properties properties, int burnTime) { this.burnTime = burnTime; } - @Override public int getBurnTime(ItemStack stack, @Nullable RecipeType recipeType) { return this.burnTime; } diff --git a/src/main/java/vectorwing/farmersdelight/common/item/FuelItem.java b/src/main/java/vectorwing/farmersdelight/common/item/FuelItem.java index ee4fbf34f..537c7a829 100644 --- a/src/main/java/vectorwing/farmersdelight/common/item/FuelItem.java +++ b/src/main/java/vectorwing/farmersdelight/common/item/FuelItem.java @@ -25,7 +25,6 @@ public FuelItem(Properties properties, int burnTime) { this.burnTime = burnTime; } - @Override public int getBurnTime(ItemStack stack, @Nullable RecipeType recipeType) { return this.burnTime; } diff --git a/src/main/java/vectorwing/farmersdelight/common/item/HorseFeedItem.java b/src/main/java/vectorwing/farmersdelight/common/item/HorseFeedItem.java index 9a1e70b7e..df527b2e1 100644 --- a/src/main/java/vectorwing/farmersdelight/common/item/HorseFeedItem.java +++ b/src/main/java/vectorwing/farmersdelight/common/item/HorseFeedItem.java @@ -14,12 +14,13 @@ import net.minecraft.world.effect.MobEffects; import net.minecraft.world.entity.Entity; import net.minecraft.world.entity.LivingEntity; -import net.minecraft.world.entity.animal.horse.AbstractHorse; -import net.minecraft.world.entity.animal.horse.Horse; +import net.minecraft.world.entity.animal.equine.AbstractHorse; +import net.minecraft.world.entity.animal.equine.Horse; import net.minecraft.world.entity.player.Player; import net.minecraft.world.item.Item; import net.minecraft.world.item.ItemStack; import net.minecraft.world.item.TooltipFlag; +import net.minecraft.world.item.component.TooltipDisplay; import net.minecraft.world.level.Level; import net.neoforged.bus.api.SubscribeEvent; import net.neoforged.fml.common.EventBusSubscriber; @@ -34,12 +35,13 @@ import javax.annotation.Nullable; import java.util.List; +import java.util.function.Consumer; public class HorseFeedItem extends Item { public static final List EFFECTS = Lists.newArrayList( - new MobEffectInstance(MobEffects.MOVEMENT_SPEED, 6000, 1), - new MobEffectInstance(MobEffects.JUMP, 6000, 0)); + new MobEffectInstance(MobEffects.SPEED, 6000, 1), + new MobEffectInstance(MobEffects.JUMP_BOOST, 6000, 0)); public HorseFeedItem(Properties properties) { super(properties); @@ -55,7 +57,7 @@ public static void onHorseFeedApplied(PlayerInteractEvent.EntityInteract event) Entity target = event.getTarget(); ItemStack heldStack = event.getItemStack(); - if (target instanceof LivingEntity entity && target.getType().is(ModTags.EntityTypes.HORSE_FEED_USERS)) { + if (target instanceof LivingEntity entity && target.typeHolder().is(ModTags.EntityTypes.HORSE_FEED_USERS)) { boolean isTameable = entity instanceof AbstractHorse; if (entity.isAlive() && (!isTameable || ((AbstractHorse) entity).isTamed()) && heldStack.getItem().equals(ModItems.HORSE_FEED.get())) { @@ -84,13 +86,13 @@ public static void onHorseFeedApplied(PlayerInteractEvent.EntityInteract event) } @Override - public void appendHoverText(ItemStack stack, TooltipContext context, List tooltip, TooltipFlag isAdvanced) { + public void appendHoverText(ItemStack stack, TooltipContext context, TooltipDisplay tooltipDisplay, Consumer tooltip, TooltipFlag isAdvanced) { if (!Configuration.ENABLE_FOOD_EFFECT_TOOLTIP.get()) { return; } MutableComponent textWhenFeeding = TextUtils.tooltip("horse_feed.when_feeding"); - tooltip.add(textWhenFeeding.withStyle(ChatFormatting.GRAY)); + tooltip.accept(textWhenFeeding.withStyle(ChatFormatting.GRAY)); for (MobEffectInstance effectInstance : EFFECTS) { MutableComponent effectDescription = Component.literal(" "); @@ -106,7 +108,7 @@ public void appendHoverText(ItemStack stack, TooltipContext context, List KNIFE_ACTIONS = Set.of(ItemAbilities.SHEARS_CARVE, ItemAbilities.SWORD_DIG, KNIFE_DIG, KNIFE_HARVEST); + public static final Set KNIFE_ACTIONS = Set.of(ItemAbilities.SHEARS_CARVE, KNIFE_DIG, KNIFE_HARVEST); - public KnifeItem(Tier tier, Properties properties) { - super(tier, ModTags.Blocks.MINEABLE_WITH_KNIFE, properties); + public KnifeItem(ToolMaterial tier, Properties properties) { + super(properties.tool(tier, ModTags.Blocks.MINEABLE_WITH_KNIFE, 0.5F, -2.0F, 0.0F)); + } + + public static ItemAttributeModifiers createAttributes(ToolMaterial tier, float attackDamage, float attackSpeed) { + return ItemAttributeModifiers.builder() + .add(Attributes.ATTACK_DAMAGE, new AttributeModifier(BASE_ATTACK_DAMAGE_ID, attackDamage + tier.attackDamageBonus(), AttributeModifier.Operation.ADD_VALUE), EquipmentSlotGroup.MAINHAND) + .add(Attributes.ATTACK_SPEED, new AttributeModifier(BASE_ATTACK_SPEED_ID, attackSpeed, AttributeModifier.Operation.ADD_VALUE), EquipmentSlotGroup.MAINHAND) + .build(); } - @Override public boolean canAttackBlock(BlockState state, Level level, BlockPos pos, Player player) { return !player.isCreative(); } @Override - public boolean hurtEnemy(ItemStack stack, LivingEntity target, LivingEntity attacker) { - return true; + public void hurtEnemy(ItemStack stack, LivingEntity target, LivingEntity attacker) { } public void postHurtEnemy(ItemStack stack, LivingEntity target, LivingEntity attacker) { @@ -86,7 +95,6 @@ public boolean supportsEnchantment(ItemStack stack, Holder enchantm return super.supportsEnchantment(stack, enchantment); } - @Override public boolean canPerformAction(ItemStack stack, ItemAbility toolAction) { return KNIFE_ACTIONS.contains(toolAction); } @@ -158,16 +166,16 @@ public InteractionResult useOn(UseOnContext context) { if (state.getBlock() == Blocks.PUMPKIN && toolStack.is(ModTags.Items.KNIVES)) { Player player = context.getPlayer(); - if (player != null && !level.isClientSide) { + if (player != null && !level.isClientSide()) { Direction direction = facing.getAxis() == Direction.Axis.Y ? player.getDirection().getOpposite() : facing; level.playSound(null, pos, SoundEvents.PUMPKIN_CARVE, SoundSource.BLOCKS, 1.0F, 1.0F); level.setBlock(pos, Blocks.CARVED_PUMPKIN.defaultBlockState().setValue(CarvedPumpkinBlock.FACING, direction), 11); ItemEntity itemEntity = new ItemEntity(level, (double) pos.getX() + 0.5D + (double) direction.getStepX() * 0.65D, (double) pos.getY() + 0.1D, (double) pos.getZ() + 0.5D + (double) direction.getStepZ() * 0.65D, new ItemStack(Items.PUMPKIN_SEEDS, 4)); - itemEntity.setDeltaMovement(0.05D * (double) direction.getStepX() + level.random.nextDouble() * 0.02D, 0.05D, 0.05D * (double) direction.getStepZ() + level.random.nextDouble() * 0.02D); + itemEntity.setDeltaMovement(0.05D * (double) direction.getStepX() + level.getRandom().nextDouble() * 0.02D, 0.05D, 0.05D * (double) direction.getStepZ() + level.getRandom().nextDouble() * 0.02D); level.addFreshEntity(itemEntity); - toolStack.hurtAndBreak(1, player, LivingEntity.getSlotForHand(context.getHand())); + toolStack.hurtAndBreak(1, player, context.getHand()); } - return InteractionResult.sidedSuccess(level.isClientSide); + return InteractionResult.SUCCESS; } else { return InteractionResult.PASS; } diff --git a/src/main/java/vectorwing/farmersdelight/common/item/MilkBottleItem.java b/src/main/java/vectorwing/farmersdelight/common/item/MilkBottleItem.java index 75903d0ee..611d2a8f1 100644 --- a/src/main/java/vectorwing/farmersdelight/common/item/MilkBottleItem.java +++ b/src/main/java/vectorwing/farmersdelight/common/item/MilkBottleItem.java @@ -6,7 +6,6 @@ import net.minecraft.world.entity.LivingEntity; import net.minecraft.world.item.ItemStack; import net.minecraft.world.level.Level; -import net.neoforged.neoforge.common.EffectCures; import java.util.ArrayList; import java.util.Iterator; @@ -24,14 +23,12 @@ public void affectConsumer(ItemStack stack, Level level, LivingEntity consumer) while (itr.hasNext()) { MobEffectInstance effect = itr.next(); - if (effect.getCures().contains(EffectCures.MILK)) { - compatibleEffects.add(effect.getEffect()); - } + compatibleEffects.add(effect.getEffect()); } if (!compatibleEffects.isEmpty()) { - MobEffectInstance selectedEffect = consumer.getEffect(compatibleEffects.get(level.random.nextInt(compatibleEffects.size()))); - if (selectedEffect != null && !net.neoforged.neoforge.event.EventHooks.onEffectRemoved(consumer, selectedEffect, EffectCures.MILK)) { + MobEffectInstance selectedEffect = consumer.getEffect(compatibleEffects.get(level.getRandom().nextInt(compatibleEffects.size()))); + if (selectedEffect != null && !net.neoforged.neoforge.event.EventHooks.onEffectRemoved(consumer, selectedEffect)) { consumer.removeEffect(selectedEffect.getEffect()); } } diff --git a/src/main/java/vectorwing/farmersdelight/common/item/PlaceableItem.java b/src/main/java/vectorwing/farmersdelight/common/item/PlaceableItem.java index 1e2bebefa..5d31cc5e2 100644 --- a/src/main/java/vectorwing/farmersdelight/common/item/PlaceableItem.java +++ b/src/main/java/vectorwing/farmersdelight/common/item/PlaceableItem.java @@ -4,12 +4,11 @@ import net.minecraft.world.item.BlockItem; import net.minecraft.world.item.ItemStack; import net.minecraft.world.item.TooltipFlag; -import net.minecraft.world.level.Level; +import net.minecraft.world.item.component.TooltipDisplay; import net.minecraft.world.level.block.Block; import vectorwing.farmersdelight.common.utility.TextUtils; -import javax.annotation.Nullable; -import java.util.List; +import java.util.function.Consumer; public class PlaceableItem extends BlockItem { @@ -18,7 +17,7 @@ public PlaceableItem(Block block, Properties properties) { } @Override - public void appendHoverText(ItemStack stack, TooltipContext context, List tooltip, TooltipFlag isAdvanced) { - tooltip.add(TextUtils.PLACEABLE); + public void appendHoverText(ItemStack stack, TooltipContext context, TooltipDisplay tooltipDisplay, Consumer tooltip, TooltipFlag isAdvanced) { + tooltip.accept(TextUtils.PLACEABLE); } } diff --git a/src/main/java/vectorwing/farmersdelight/common/item/RiceItem.java b/src/main/java/vectorwing/farmersdelight/common/item/RiceItem.java index b953a190d..bef765848 100644 --- a/src/main/java/vectorwing/farmersdelight/common/item/RiceItem.java +++ b/src/main/java/vectorwing/farmersdelight/common/item/RiceItem.java @@ -4,15 +4,15 @@ import net.minecraft.tags.BlockTags; import net.minecraft.world.InteractionResult; import net.minecraft.world.entity.player.Player; -import net.minecraft.world.item.ItemNameBlockItem; +import net.minecraft.world.item.PlaceOnWaterBlockItem; import net.minecraft.world.item.context.BlockPlaceContext; import net.minecraft.world.item.context.UseOnContext; import net.minecraft.world.level.block.Block; -import net.minecraft.world.level.block.FarmBlock; +import net.minecraft.world.level.block.FarmlandBlock; import net.minecraft.world.level.block.state.BlockState; import vectorwing.farmersdelight.common.utility.TextUtils; -public class RiceItem extends ItemNameBlockItem +public class RiceItem extends PlaceOnWaterBlockItem { public RiceItem(Block block, Properties properties) { super(block, properties); @@ -24,10 +24,10 @@ public InteractionResult useOn(UseOnContext context) { if (result.equals(InteractionResult.FAIL)) { Player player = context.getPlayer(); BlockState targetState = context.getLevel().getBlockState(context.getClickedPos()); - if (player != null && context.getClickedFace().equals(Direction.UP) && (targetState.is(BlockTags.DIRT) || targetState.getBlock() instanceof FarmBlock)) { - player.displayClientMessage(TextUtils.block("rice.invalid_placement"), true); + if (player != null && context.getClickedFace().equals(Direction.UP) && (targetState.is(BlockTags.DIRT) || targetState.getBlock() instanceof FarmlandBlock)) { + player.sendOverlayMessage(TextUtils.block("rice.invalid_placement")); } } - return !result.consumesAction() ? this.use(context.getLevel(), context.getPlayer(), context.getHand()).getResult() : result; + return !result.consumesAction() ? this.use(context.getLevel(), context.getPlayer(), context.getHand()) : result; } } diff --git a/src/main/java/vectorwing/farmersdelight/common/item/RopeItem.java b/src/main/java/vectorwing/farmersdelight/common/item/RopeItem.java index 65def85ec..7c458b912 100644 --- a/src/main/java/vectorwing/farmersdelight/common/item/RopeItem.java +++ b/src/main/java/vectorwing/farmersdelight/common/item/RopeItem.java @@ -38,7 +38,7 @@ public BlockPlaceContext updatePlacementContext(BlockPlaceContext context) { BlockPos.MutableBlockPos mutablePos = pos.mutable().move(direction); - while (mutablePos.getY() >= level.getMinBuildHeight()) { + while (mutablePos.getY() >= level.dimensionType().minY()) { state = level.getBlockState(mutablePos); if (!state.is(this.getBlock())) { FluidState fluid = state.getFluidState(); diff --git a/src/main/java/vectorwing/farmersdelight/common/item/RottenTomatoItem.java b/src/main/java/vectorwing/farmersdelight/common/item/RottenTomatoItem.java index c858fc3c6..cdc2a758a 100644 --- a/src/main/java/vectorwing/farmersdelight/common/item/RottenTomatoItem.java +++ b/src/main/java/vectorwing/farmersdelight/common/item/RottenTomatoItem.java @@ -5,7 +5,7 @@ import net.minecraft.sounds.SoundSource; import net.minecraft.stats.Stats; import net.minecraft.world.InteractionHand; -import net.minecraft.world.InteractionResultHolder; +import net.minecraft.world.InteractionResult; import net.minecraft.world.entity.player.Player; import net.minecraft.world.entity.projectile.Projectile; import net.minecraft.world.item.Item; @@ -24,10 +24,10 @@ public RottenTomatoItem(Properties properties) { } @Override - public InteractionResultHolder use(Level level, Player player, InteractionHand hand) { + public InteractionResult use(Level level, Player player, InteractionHand hand) { ItemStack heldStack = player.getItemInHand(hand); - level.playSound(null, player.getX(), player.getY(), player.getZ(), ModSounds.ENTITY_ROTTEN_TOMATO_THROW.get(), SoundSource.NEUTRAL, 0.5F, 0.4F / (level.random.nextFloat() * 0.4F + 0.8F)); - if (!level.isClientSide) { + level.playSound(null, player.getX(), player.getY(), player.getZ(), ModSounds.ENTITY_ROTTEN_TOMATO_THROW.get(), SoundSource.NEUTRAL, 0.5F, 0.4F / (level.getRandom().nextFloat() * 0.4F + 0.8F)); + if (!level.isClientSide()) { RottenTomatoEntity projectile = new RottenTomatoEntity(level, player); projectile.setItem(heldStack); projectile.shootFromRotation(player, player.getXRot(), player.getYRot(), 0.0F, 1.5F, 1.0F); @@ -39,7 +39,7 @@ public InteractionResultHolder use(Level level, Player player, Intera heldStack.shrink(1); } - return InteractionResultHolder.sidedSuccess(heldStack, level.isClientSide()); + return InteractionResult.SUCCESS; } @Override diff --git a/src/main/java/vectorwing/farmersdelight/common/item/SkilletItem.java b/src/main/java/vectorwing/farmersdelight/common/item/SkilletItem.java index f6ec944f3..ef4404c9a 100644 --- a/src/main/java/vectorwing/farmersdelight/common/item/SkilletItem.java +++ b/src/main/java/vectorwing/farmersdelight/common/item/SkilletItem.java @@ -1,16 +1,16 @@ package vectorwing.farmersdelight.common.item; -import net.minecraft.advancements.CriteriaTriggers; +import net.minecraft.advancements.triggers.CriteriaTriggers; import net.minecraft.core.BlockPos; import net.minecraft.core.Holder; import net.minecraft.core.registries.Registries; import net.minecraft.network.chat.Component; -import net.minecraft.resources.ResourceLocation; +import net.minecraft.resources.Identifier; +import net.minecraft.server.level.ServerLevel; import net.minecraft.server.level.ServerPlayer; import net.minecraft.sounds.SoundSource; import net.minecraft.world.InteractionHand; import net.minecraft.world.InteractionResult; -import net.minecraft.world.InteractionResultHolder; import net.minecraft.world.damagesource.DamageSource; import net.minecraft.world.entity.Entity; import net.minecraft.world.entity.EquipmentSlot; @@ -21,6 +21,7 @@ import net.minecraft.world.entity.player.Player; import net.minecraft.world.item.*; import net.minecraft.world.item.component.ItemAttributeModifiers; +import net.minecraft.world.item.component.TooltipDisplay; import net.minecraft.world.item.context.BlockPlaceContext; import net.minecraft.world.item.crafting.CampfireCookingRecipe; import net.minecraft.world.item.crafting.RecipeHolder; @@ -50,18 +51,19 @@ import javax.annotation.Nullable; import java.util.List; import java.util.Optional; +import java.util.function.Consumer; @SuppressWarnings({"deprecation", "unused"}) public class SkilletItem extends BlockItem { public static final float FLIP_TIME = 12; - public static final Tiers SKILLET_TIER = Tiers.IRON; - protected static final ResourceLocation FD_ATTACK_KNOCKBACK_UUID = ResourceLocation.fromNamespaceAndPath(FarmersDelight.MODID, "base_attack_knockback"); + public static final ToolMaterial SKILLET_TIER = ToolMaterial.IRON; + protected static final Identifier FD_ATTACK_KNOCKBACK_UUID = Identifier.fromNamespaceAndPath(FarmersDelight.MODID, "base_attack_knockback"); public SkilletItem(Block block, Item.Properties properties) { - super(block, properties.durability(SKILLET_TIER.getUses())); - float attackDamage = 5.0F + SKILLET_TIER.getAttackDamageBonus(); + super(block, properties.durability(SKILLET_TIER.durability())); + float attackDamage = 5.0F + SKILLET_TIER.attackDamageBonus(); } @Override @@ -78,9 +80,9 @@ public boolean shouldCauseReequipAnimation(ItemStack oldStack, ItemStack newStac return super.shouldCauseReequipAnimation(oldStack, newStack, slotChanged); } - public static ItemAttributeModifiers createAttributes(Tier tier, float attackDamage, float attackSpeed) { + public static ItemAttributeModifiers createAttributes(ToolMaterial tier, float attackDamage, float attackSpeed) { return ItemAttributeModifiers.builder() - .add(Attributes.ATTACK_DAMAGE, new AttributeModifier(BASE_ATTACK_DAMAGE_ID, attackDamage + tier.getAttackDamageBonus(), AttributeModifier.Operation.ADD_VALUE), EquipmentSlotGroup.MAINHAND) + .add(Attributes.ATTACK_DAMAGE, new AttributeModifier(BASE_ATTACK_DAMAGE_ID, attackDamage + tier.attackDamageBonus(), AttributeModifier.Operation.ADD_VALUE), EquipmentSlotGroup.MAINHAND) .add(Attributes.ATTACK_SPEED, new AttributeModifier(BASE_ATTACK_SPEED_ID, attackSpeed, AttributeModifier.Operation.ADD_VALUE), EquipmentSlotGroup.MAINHAND) .add(Attributes.ATTACK_KNOCKBACK, new AttributeModifier(FD_ATTACK_KNOCKBACK_UUID, 1, AttributeModifier.Operation.ADD_VALUE), EquipmentSlotGroup.MAINHAND).build(); } @@ -100,24 +102,22 @@ public static void playSkilletAttackSound(LivingDamageEvent.Pre event) { if (livingEntity instanceof Player player) { float attackPower = player.getAttackStrengthScale(0.0F); if (attackPower > 0.8F) { - player.getCommandSenderWorld().playSound(null, player.getX(), player.getY(), player.getZ(), ModSounds.ITEM_SKILLET_ATTACK_STRONG.get(), SoundSource.PLAYERS, 1.0F, pitch); + player.level().playSound(null, player.getX(), player.getY(), player.getZ(), ModSounds.ITEM_SKILLET_ATTACK_STRONG.get(), SoundSource.PLAYERS, 1.0F, pitch); } else { - player.getCommandSenderWorld().playSound(null, player.getX(), player.getY(), player.getZ(), ModSounds.ITEM_SKILLET_ATTACK_WEAK.get(), SoundSource.PLAYERS, 0.8F, 0.9F); + player.level().playSound(null, player.getX(), player.getY(), player.getZ(), ModSounds.ITEM_SKILLET_ATTACK_WEAK.get(), SoundSource.PLAYERS, 0.8F, 0.9F); } } else { - livingEntity.getCommandSenderWorld().playSound(null, livingEntity.getX(), livingEntity.getY(), livingEntity.getZ(), ModSounds.ITEM_SKILLET_ATTACK_STRONG.get(), SoundSource.PLAYERS, 1.0F, pitch); + livingEntity.level().playSound(null, livingEntity.getX(), livingEntity.getY(), livingEntity.getZ(), ModSounds.ITEM_SKILLET_ATTACK_STRONG.get(), SoundSource.PLAYERS, 1.0F, pitch); } } } - @Override public boolean canAttackBlock(BlockState state, Level level, BlockPos pos, Player player) { return !player.isCreative(); } @Override - public boolean hurtEnemy(ItemStack stack, LivingEntity target, LivingEntity attacker) { - return true; + public void hurtEnemy(ItemStack stack, LivingEntity target, LivingEntity attacker) { } @Override @@ -139,8 +139,8 @@ private static boolean isPlayerNearHeatSource(Player player, LevelReader level) } @Override - public void appendHoverText(ItemStack stack, TooltipContext context, List tooltip, TooltipFlag isAdvanced) { - tooltip.add(TextUtils.PLACEABLE_SNEAKING); + public void appendHoverText(ItemStack stack, TooltipContext context, TooltipDisplay tooltipDisplay, Consumer tooltip, TooltipFlag isAdvanced) { + tooltip.accept(TextUtils.PLACEABLE_SNEAKING); } @Override @@ -151,7 +151,7 @@ public int getUseDuration(ItemStack stack, LivingEntity entity) { } @Override - public InteractionResultHolder use(Level level, Player player, InteractionHand hand) { + public InteractionResult use(Level level, Player player, InteractionHand hand) { ItemStack skilletStack = player.getItemInHand(hand); if (isPlayerNearHeatSource(player, level)) { InteractionHand otherHand = hand == InteractionHand.MAIN_HAND ? InteractionHand.OFF_HAND : InteractionHand.MAIN_HAND; @@ -159,27 +159,27 @@ public InteractionResultHolder use(Level level, Player player, Intera if (!skilletStack.getOrDefault(ModDataComponents.SKILLET_INGREDIENT, ItemStackWrapper.EMPTY).getStack().isEmpty()) { player.startUsingItem(hand); - return InteractionResultHolder.pass(skilletStack); + return InteractionResult.PASS; } Optional> recipe = getCookingRecipe(cookingStack, level); if (recipe.isPresent()) { if (player.isUnderWater()) { - player.displayClientMessage(TextUtils.item("skillet.underwater"), true); - return InteractionResultHolder.pass(skilletStack); + player.sendOverlayMessage(TextUtils.item("skillet.underwater")); + return InteractionResult.PASS; } ItemStack cookingStackCopy = cookingStack.copy(); ItemStack cookingStackUnit = cookingStackCopy.split(1); skilletStack.set(ModDataComponents.SKILLET_INGREDIENT, new ItemStackWrapper(cookingStackUnit)); - skilletStack.set(ModDataComponents.COOKING_TIME_LENGTH, recipe.get().value().getCookingTime()); + skilletStack.set(ModDataComponents.COOKING_TIME_LENGTH, recipe.get().value().cookingTime()); player.startUsingItem(hand); player.setItemInHand(otherHand, cookingStackCopy); - return InteractionResultHolder.consume(skilletStack); + return InteractionResult.CONSUME; } else { - player.displayClientMessage(TextUtils.item("skillet.how_to_cook"), true); + player.sendOverlayMessage(TextUtils.item("skillet.how_to_cook")); } } - return InteractionResultHolder.pass(skilletStack); + return InteractionResult.PASS; } @Override @@ -191,21 +191,21 @@ public void onUseTick(Level level, LivingEntity entity, ItemStack stack, int cou if (l > FLIP_TIME) { stack.remove(ModDataComponents.SKILLET_FLIP_TIMESTAMP.get()); stack.set(ModDataComponents.SKILLET_FLIPPED.get(), !stack.getOrDefault(ModDataComponents.SKILLET_FLIPPED.get(), false)); - } else if (level.isClientSide && l == FLIP_TIME - 8) { + } else if (level.isClientSide() && l == FLIP_TIME - 8) { //why does it need to play early? idk //plays instantly right before it lands & on client only so its instant. cant be done in statement above as that might not run fo player as stack is sent when updated - level.playSound(player, entity, ModSounds.BLOCK_SKILLET_ADD_FOOD.get(), SoundSource.PLAYERS, 0.4F, level.random.nextFloat() * 0.2F + 0.9F); - } else if (level.isClientSide && level.random.nextInt(50) == 0 && l < FLIP_TIME - 8 || l > FLIP_TIME - 3) { - level.playSound(null, entity, ModSounds.BLOCK_SKILLET_SIZZLE.get(), SoundSource.PLAYERS, 0.4F, level.random.nextFloat() * 0.2F + 0.9F); + level.playSound(player, entity, ModSounds.BLOCK_SKILLET_ADD_FOOD.get(), SoundSource.PLAYERS, 0.4F, level.getRandom().nextFloat() * 0.2F + 0.9F); + } else if (level.isClientSide() && level.getRandom().nextInt(50) == 0 && l < FLIP_TIME - 8 || l > FLIP_TIME - 3) { + level.playSound(null, entity, ModSounds.BLOCK_SKILLET_SIZZLE.get(), SoundSource.PLAYERS, 0.4F, level.getRandom().nextFloat() * 0.2F + 0.9F); } - } else if (level.isClientSide && level.random.nextInt(50) == 0) { - level.playSound(null, entity, ModSounds.BLOCK_SKILLET_SIZZLE.get(), SoundSource.PLAYERS, 0.4F, level.random.nextFloat() * 0.2F + 0.9F); + } else if (level.isClientSide() && level.getRandom().nextInt(50) == 0) { + level.playSound(null, entity, ModSounds.BLOCK_SKILLET_SIZZLE.get(), SoundSource.PLAYERS, 0.4F, level.getRandom().nextFloat() * 0.2F + 0.9F); } } } @Override - public void releaseUsing(ItemStack stack, Level level, LivingEntity entity, int timeLeft) { + public boolean releaseUsing(ItemStack stack, Level level, LivingEntity entity, int timeLeft) { if (entity instanceof Player player) { ItemStackWrapper storedStack = stack.getOrDefault(ModDataComponents.SKILLET_INGREDIENT, ItemStackWrapper.EMPTY); if (!storedStack.getStack().isEmpty()) { @@ -217,6 +217,7 @@ public void releaseUsing(ItemStack stack, Level level, LivingEntity entity, int stack.remove(ModDataComponents.SKILLET_FLIPPED.get()); } } + return true; } @Override @@ -228,7 +229,7 @@ public ItemStack finishUsingItem(ItemStack stack, Level level, LivingEntity enti Optional> cookingRecipe = getCookingRecipe(cookingStack, level); cookingRecipe.ifPresent((recipe) -> { - ItemStack resultStack = recipe.value().assemble(new SingleRecipeInput(cookingStack), level.registryAccess()); + ItemStack resultStack = recipe.value().assemble(new SingleRecipeInput(cookingStack)); if (!player.getInventory().add(resultStack)) { player.drop(resultStack, false); } @@ -271,7 +272,10 @@ public static Optional> getCookingRecipe(Ite if (stack.isEmpty()) { return Optional.empty(); } - return level.getRecipeManager().getRecipeFor(RecipeType.CAMPFIRE_COOKING, new SingleRecipeInput(stack), level); + if (level instanceof ServerLevel serverLevel) { + return serverLevel.recipeAccess().getRecipeFor(RecipeType.CAMPFIRE_COOKING, new SingleRecipeInput(stack), serverLevel); + } + return Optional.empty(); } @Override @@ -284,13 +288,8 @@ protected boolean updateCustomBlockEntityTag(BlockPos pos, Level level, @Nullabl return false; } - @Override - public boolean isValidRepairItem(ItemStack toRepair, ItemStack repair) { - return SKILLET_TIER.getRepairIngredient().test(repair) || super.isValidRepairItem(toRepair, repair); - } - public boolean mineBlock(ItemStack stack, Level level, BlockState state, BlockPos pos, LivingEntity entity) { - if (!level.isClientSide && state.getDestroySpeed(level, pos) != 0.0F) { + if (!level.isClientSide() && state.getDestroySpeed(level, pos) != 0.0F) { stack.hurtAndBreak(1, entity, EquipmentSlot.MAINHAND); } @@ -322,8 +321,4 @@ public boolean supportsEnchantment(ItemStack stack, Holder enchantm return super.supportsEnchantment(stack, enchantment); } - @Override - public int getEnchantmentValue() { - return SKILLET_TIER.getEnchantmentValue(); - } } diff --git a/src/main/java/vectorwing/farmersdelight/common/item/package-info.java b/src/main/java/vectorwing/farmersdelight/common/item/package-info.java index a7054bd2f..dc3e61fd3 100644 --- a/src/main/java/vectorwing/farmersdelight/common/item/package-info.java +++ b/src/main/java/vectorwing/farmersdelight/common/item/package-info.java @@ -1,7 +1,5 @@ @ParametersAreNonnullByDefault -@MethodsReturnNonnullByDefault package vectorwing.farmersdelight.common.item; -import net.minecraft.MethodsReturnNonnullByDefault; import javax.annotation.ParametersAreNonnullByDefault; diff --git a/src/main/java/vectorwing/farmersdelight/common/loot/function/CopySkilletFunction.java b/src/main/java/vectorwing/farmersdelight/common/loot/function/CopySkilletFunction.java index 656b0120c..2cbe47c2a 100644 --- a/src/main/java/vectorwing/farmersdelight/common/loot/function/CopySkilletFunction.java +++ b/src/main/java/vectorwing/farmersdelight/common/loot/function/CopySkilletFunction.java @@ -2,13 +2,11 @@ import com.mojang.serialization.MapCodec; import com.mojang.serialization.codecs.RecordCodecBuilder; -import net.minecraft.MethodsReturnNonnullByDefault; -import net.minecraft.resources.ResourceLocation; +import net.minecraft.resources.Identifier; import net.minecraft.world.item.ItemStack; import net.minecraft.world.level.block.entity.BlockEntity; import net.minecraft.world.level.storage.loot.LootContext; import net.minecraft.world.level.storage.loot.functions.LootItemConditionalFunction; -import net.minecraft.world.level.storage.loot.functions.LootItemFunctionType; import net.minecraft.world.level.storage.loot.parameters.LootContextParams; import net.minecraft.world.level.storage.loot.predicates.LootItemCondition; import vectorwing.farmersdelight.FarmersDelight; @@ -18,11 +16,10 @@ import javax.annotation.ParametersAreNonnullByDefault; import java.util.List; -@MethodsReturnNonnullByDefault @ParametersAreNonnullByDefault public class CopySkilletFunction extends LootItemConditionalFunction { - public static final ResourceLocation ID = ResourceLocation.fromNamespaceAndPath(FarmersDelight.MODID, "copy_skillet"); + public static final Identifier ID = Identifier.fromNamespaceAndPath(FarmersDelight.MODID, "copy_skillet"); public static final MapCodec CODEC = RecordCodecBuilder.mapCodec( p_298131_ -> commonFields(p_298131_).apply(p_298131_, CopySkilletFunction::new) ); @@ -37,14 +34,14 @@ public static Builder builder() { @Override protected ItemStack run(ItemStack stack, LootContext context) { - if (context.getParamOrNull(LootContextParams.BLOCK_ENTITY) instanceof SkilletBlockEntity skillet) { + if (context.getOptionalParameter(LootContextParams.BLOCK_ENTITY) instanceof SkilletBlockEntity skillet) { stack = skillet.getSkilletAsItem(); } return stack; } @Override - public LootItemFunctionType getType() { + public MapCodec codec() { return ModLootFunctions.COPY_SKILLET.get(); } } diff --git a/src/main/java/vectorwing/farmersdelight/common/loot/function/SmokerCookFunction.java b/src/main/java/vectorwing/farmersdelight/common/loot/function/SmokerCookFunction.java index b213a36c7..c47f28a5c 100644 --- a/src/main/java/vectorwing/farmersdelight/common/loot/function/SmokerCookFunction.java +++ b/src/main/java/vectorwing/farmersdelight/common/loot/function/SmokerCookFunction.java @@ -2,15 +2,14 @@ import com.mojang.serialization.MapCodec; import com.mojang.serialization.codecs.RecordCodecBuilder; -import net.minecraft.MethodsReturnNonnullByDefault; -import net.minecraft.resources.ResourceLocation; +import net.minecraft.resources.Identifier; import net.minecraft.world.item.ItemStack; import net.minecraft.world.item.crafting.RecipeHolder; +import net.minecraft.world.item.crafting.SingleRecipeInput; import net.minecraft.world.item.crafting.RecipeType; import net.minecraft.world.item.crafting.SmokingRecipe; import net.minecraft.world.level.storage.loot.LootContext; import net.minecraft.world.level.storage.loot.functions.LootItemConditionalFunction; -import net.minecraft.world.level.storage.loot.functions.LootItemFunctionType; import net.minecraft.world.level.storage.loot.predicates.LootItemCondition; import vectorwing.farmersdelight.FarmersDelight; import vectorwing.farmersdelight.common.registry.ModLootFunctions; @@ -19,11 +18,10 @@ import java.util.List; import java.util.Optional; -@MethodsReturnNonnullByDefault @ParametersAreNonnullByDefault public class SmokerCookFunction extends LootItemConditionalFunction { - public static final ResourceLocation ID = ResourceLocation.fromNamespaceAndPath(FarmersDelight.MODID, "smoker_cook"); + public static final Identifier ID = Identifier.fromNamespaceAndPath(FarmersDelight.MODID, "smoker_cook"); public static final MapCodec CODEC = RecordCodecBuilder.mapCodec( p_298131_ -> commonFields(p_298131_).apply(p_298131_, SmokerCookFunction::new) ); @@ -38,10 +36,10 @@ protected ItemStack run(ItemStack stack, LootContext context) { return stack; } - Optional> recipe = context.getLevel().getRecipeManager().getAllRecipesFor(RecipeType.SMOKING).stream() - .filter(r -> r.value().getIngredients().get(0).test(stack)).findFirst(); + Optional> recipe = context.getLevel().recipeAccess() + .getRecipeFor(RecipeType.SMOKING, new SingleRecipeInput(stack), context.getLevel()); if (recipe.isPresent()) { - ItemStack resultStack = recipe.get().value().getResultItem(context.getLevel().registryAccess()).copy(); + ItemStack resultStack = recipe.get().value().assemble(new SingleRecipeInput(stack)); resultStack.setCount(resultStack.getCount() * stack.getCount()); return resultStack; } @@ -50,7 +48,7 @@ protected ItemStack run(ItemStack stack, LootContext context) { } @Override - public LootItemFunctionType getType() { + public MapCodec codec() { return ModLootFunctions.SMOKER_COOK.get(); } } diff --git a/src/main/java/vectorwing/farmersdelight/common/loot/modifier/AddItemModifier.java b/src/main/java/vectorwing/farmersdelight/common/loot/modifier/AddItemModifier.java index 084106248..0fbb2188a 100644 --- a/src/main/java/vectorwing/farmersdelight/common/loot/modifier/AddItemModifier.java +++ b/src/main/java/vectorwing/farmersdelight/common/loot/modifier/AddItemModifier.java @@ -33,8 +33,8 @@ public class AddItemModifier extends LootModifier /** * This loot modifier adds an item to the loot table, given the conditions specified. */ - public AddItemModifier(LootItemCondition[] conditions, Item addedItem, int count) { - super(conditions); + public AddItemModifier(LootItemCondition[] conditions, int priority, Item addedItem, int count) { + super(conditions, priority); this.addedItem = addedItem; this.count = count; } diff --git a/src/main/java/vectorwing/farmersdelight/common/loot/modifier/FDAddTableLootModifier.java b/src/main/java/vectorwing/farmersdelight/common/loot/modifier/FDAddTableLootModifier.java index ee28e39c7..ad2358bea 100644 --- a/src/main/java/vectorwing/farmersdelight/common/loot/modifier/FDAddTableLootModifier.java +++ b/src/main/java/vectorwing/farmersdelight/common/loot/modifier/FDAddTableLootModifier.java @@ -30,8 +30,8 @@ public class FDAddTableLootModifier extends AddTableLootModifier private final ResourceKey lootTable; - protected FDAddTableLootModifier(LootItemCondition[] conditionsIn, ResourceKey lootTable) { - super(conditionsIn, lootTable); + protected FDAddTableLootModifier(LootItemCondition[] conditionsIn, int priority, ResourceKey lootTable) { + super(conditionsIn, priority, lootTable); this.lootTable = lootTable; } @@ -39,7 +39,7 @@ protected FDAddTableLootModifier(LootItemCondition[] conditionsIn, ResourceKey doApply(ObjectArrayList generatedLoot, LootContext context) { if (Configuration.GENERATE_FD_CHEST_LOOT.get()) { - context.getResolver().get(Registries.LOOT_TABLE, this.lootTable).ifPresent((extraTable) -> { + context.getResolver().lookupOrThrow(Registries.LOOT_TABLE).get(this.lootTable).ifPresent((extraTable) -> { extraTable.value().getRandomItemsRaw(context, createStackSplitter(context.getLevel(), generatedLoot::add)); }); } diff --git a/src/main/java/vectorwing/farmersdelight/common/loot/modifier/PastrySlicingModifier.java b/src/main/java/vectorwing/farmersdelight/common/loot/modifier/PastrySlicingModifier.java index 06fe55538..d60375158 100644 --- a/src/main/java/vectorwing/farmersdelight/common/loot/modifier/PastrySlicingModifier.java +++ b/src/main/java/vectorwing/farmersdelight/common/loot/modifier/PastrySlicingModifier.java @@ -38,15 +38,15 @@ public class PastrySlicingModifier extends LootModifier * If the block is a PieBlock, it drops up to 4 slices. * Otherwise, this does nothing. */ - public PastrySlicingModifier(LootItemCondition[] conditions, Item pastrySlice) { - super(conditions); + public PastrySlicingModifier(LootItemCondition[] conditions, int priority, Item pastrySlice) { + super(conditions, priority); this.pastrySlice = pastrySlice; } @Nonnull @Override protected ObjectArrayList doApply(ObjectArrayList generatedLoot, LootContext context) { - BlockState state = context.getParamOrNull(LootContextParams.BLOCK_STATE); + BlockState state = context.getOptionalParameter(LootContextParams.BLOCK_STATE); if (state != null) { Block targetBlock = state.getBlock(); if (targetBlock instanceof CakeBlock) { diff --git a/src/main/java/vectorwing/farmersdelight/common/loot/modifier/ReplaceItemModifier.java b/src/main/java/vectorwing/farmersdelight/common/loot/modifier/ReplaceItemModifier.java index 5a81cccb8..08ba67b67 100644 --- a/src/main/java/vectorwing/farmersdelight/common/loot/modifier/ReplaceItemModifier.java +++ b/src/main/java/vectorwing/farmersdelight/common/loot/modifier/ReplaceItemModifier.java @@ -35,8 +35,8 @@ public class ReplaceItemModifier extends LootModifier /** * This loot modifier removes all instances of the specified item, replacing it by another specified addition. */ - public ReplaceItemModifier(LootItemCondition[] conditions, Item removedItem, Item addedItem, int addedCount) { - super(conditions); + public ReplaceItemModifier(LootItemCondition[] conditions, int priority, Item removedItem, Item addedItem, int addedCount) { + super(conditions, priority); this.removedItem = removedItem; this.addedItem = addedItem; this.addedCount = addedCount; diff --git a/src/main/java/vectorwing/farmersdelight/common/mixin/CanvasSignEditScreenMixin.java b/src/main/java/vectorwing/farmersdelight/common/mixin/CanvasSignEditScreenMixin.java index 4ddb5382f..d1b750005 100644 --- a/src/main/java/vectorwing/farmersdelight/common/mixin/CanvasSignEditScreenMixin.java +++ b/src/main/java/vectorwing/farmersdelight/common/mixin/CanvasSignEditScreenMixin.java @@ -24,11 +24,11 @@ public class CanvasSignEditScreenMixin @Inject(at = @At(value = "HEAD"), method = "openTextEdit", cancellable = true) private void openCanvasSignEditScreen(SignBlockEntity sign, boolean isFront, CallbackInfo ci) { if (sign instanceof CanvasSignBlockEntity) { - minecraft.setScreen(new CanvasSignEditScreen(sign, isFront, minecraft.isTextFilteringEnabled())); + minecraft.setScreenAndShow(new CanvasSignEditScreen(sign, isFront, minecraft.isTextFilteringEnabled())); ci.cancel(); } if (sign instanceof HangingCanvasSignBlockEntity) { - minecraft.setScreen(new HangingCanvasSignEditScreen(sign, isFront, minecraft.isTextFilteringEnabled())); + minecraft.setScreenAndShow(new HangingCanvasSignEditScreen(sign, isFront, minecraft.isTextFilteringEnabled())); ci.cancel(); } } diff --git a/src/main/java/vectorwing/farmersdelight/common/mixin/HideBlockBreakProgressMixin.java b/src/main/java/vectorwing/farmersdelight/common/mixin/HideBlockBreakProgressMixin.java index d1593f5f2..b3654b6e6 100644 --- a/src/main/java/vectorwing/farmersdelight/common/mixin/HideBlockBreakProgressMixin.java +++ b/src/main/java/vectorwing/farmersdelight/common/mixin/HideBlockBreakProgressMixin.java @@ -1,24 +1,21 @@ package vectorwing.farmersdelight.common.mixin; import com.mojang.blaze3d.vertex.PoseStack; -import com.mojang.blaze3d.vertex.VertexConsumer; -import net.minecraft.client.renderer.block.BlockRenderDispatcher; -import net.minecraft.core.BlockPos; -import net.minecraft.world.level.BlockAndTintGetter; -import net.minecraft.world.level.block.state.BlockState; +import net.minecraft.client.renderer.LevelRenderer; +import net.minecraft.client.renderer.SubmitNodeCollector; +import net.minecraft.client.renderer.state.level.LevelRenderState; import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.injection.At; import org.spongepowered.asm.mixin.injection.Inject; import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; import vectorwing.farmersdelight.common.registry.ModBlocks; -@Mixin(BlockRenderDispatcher.class) +@Mixin(LevelRenderer.class) public abstract class HideBlockBreakProgressMixin { - @Inject(method = "renderBreakingTexture(Lnet/minecraft/world/level/block/state/BlockState;Lnet/minecraft/core/BlockPos;Lnet/minecraft/world/level/BlockAndTintGetter;Lcom/mojang/blaze3d/vertex/PoseStack;Lcom/mojang/blaze3d/vertex/VertexConsumer;Lnet/neoforged/neoforge/client/model/data/ModelData;)V", at = @At("HEAD"), cancellable = true) - private void hideBlockDamage(BlockState blockState, BlockPos pos, BlockAndTintGetter lightReader, PoseStack matrixStack, VertexConsumer vertexBuilder, net.neoforged.neoforge.client.model.data.ModelData modelData, CallbackInfo ci) { - if (blockState.getBlock() == ModBlocks.CANVAS_RUG.get()) { - ci.cancel(); - } + @Inject(method = "submitBlockDestroyAnimation", at = @At("HEAD")) + private void farmersdelight$hideCanvasRugBlockDamage(PoseStack poseStack, SubmitNodeCollector submitNodeCollector, LevelRenderState levelRenderState, + CallbackInfo ci) { + levelRenderState.blockBreakingRenderStates.removeIf(state -> state.blockState().getBlock() == ModBlocks.CANVAS_RUG.get()); } } diff --git a/src/main/java/vectorwing/farmersdelight/common/mixin/KeepRichSoilGiantTreeMixin.java b/src/main/java/vectorwing/farmersdelight/common/mixin/KeepRichSoilGiantTreeMixin.java deleted file mode 100644 index 584f7425e..000000000 --- a/src/main/java/vectorwing/farmersdelight/common/mixin/KeepRichSoilGiantTreeMixin.java +++ /dev/null @@ -1,25 +0,0 @@ -package vectorwing.farmersdelight.common.mixin; - -import net.minecraft.core.BlockPos; -import net.minecraft.world.level.LevelSimulatedReader; -import net.minecraft.world.level.levelgen.feature.Feature; -import org.spongepowered.asm.mixin.Mixin; -import org.spongepowered.asm.mixin.injection.At; -import org.spongepowered.asm.mixin.injection.Inject; -import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable; -import vectorwing.farmersdelight.common.registry.ModBlocks; - -@Mixin(Feature.class) -public class KeepRichSoilGiantTreeMixin -{ - /** - * Due to how Trees generate, this mixin is needed to prevent Rich Soil from becoming Podzol under a Giant Spruce Tree growth. - */ - @Inject(at = @At(value = "HEAD"), method = "isGrassOrDirt", cancellable = true) - private static void keepRichSoil(LevelSimulatedReader level, BlockPos pos, CallbackInfoReturnable cir) { - if (level.isStateAtPosition(pos, state -> state.is(ModBlocks.RICH_SOIL.get()))) { - cir.setReturnValue(false); - cir.cancel(); - } - } -} diff --git a/src/main/java/vectorwing/farmersdelight/common/mixin/KeepRichSoilTreeMixin.java b/src/main/java/vectorwing/farmersdelight/common/mixin/KeepRichSoilTreeMixin.java index 97927c78a..5e7dc939e 100644 --- a/src/main/java/vectorwing/farmersdelight/common/mixin/KeepRichSoilTreeMixin.java +++ b/src/main/java/vectorwing/farmersdelight/common/mixin/KeepRichSoilTreeMixin.java @@ -2,7 +2,7 @@ import net.minecraft.core.BlockPos; import net.minecraft.util.RandomSource; -import net.minecraft.world.level.LevelSimulatedReader; +import net.minecraft.world.level.WorldGenLevel; import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.levelgen.feature.configurations.TreeConfiguration; import net.minecraft.world.level.levelgen.feature.trunkplacers.TrunkPlacer; @@ -20,8 +20,8 @@ public class KeepRichSoilTreeMixin /** * Due to how Trees generate, this mixin is needed to prevent Rich Soil from becoming Podzol under a Giant Spruce Tree growth. */ - @Inject(at = @At(value = "HEAD"), method = "setDirtAt", cancellable = true) - private static void cancelSetDirtIfRichSoil(LevelSimulatedReader level, BiConsumer blockSetter, RandomSource random, BlockPos pos, TreeConfiguration config, CallbackInfo ci) { + @Inject(at = @At(value = "HEAD"), method = "placeBelowTrunkBlock", cancellable = true) + private static void cancelSetDirtIfRichSoil(WorldGenLevel level, BiConsumer blockSetter, RandomSource random, BlockPos pos, TreeConfiguration config, CallbackInfo ci) { if (level.isStateAtPosition(pos, state -> state.is(ModBlocks.RICH_SOIL.get()))) { ci.cancel(); } diff --git a/src/main/java/vectorwing/farmersdelight/common/mixin/KeepRichSoilUntrampledMixin.java b/src/main/java/vectorwing/farmersdelight/common/mixin/KeepRichSoilUntrampledMixin.java index 9f0ca885c..b56f6d27d 100644 --- a/src/main/java/vectorwing/farmersdelight/common/mixin/KeepRichSoilUntrampledMixin.java +++ b/src/main/java/vectorwing/farmersdelight/common/mixin/KeepRichSoilUntrampledMixin.java @@ -3,7 +3,7 @@ import net.minecraft.core.BlockPos; import net.minecraft.world.entity.Entity; import net.minecraft.world.level.Level; -import net.minecraft.world.level.block.FarmBlock; +import net.minecraft.world.level.block.FarmlandBlock; import net.minecraft.world.level.block.state.BlockState; import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.injection.At; @@ -11,7 +11,7 @@ import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; import vectorwing.farmersdelight.common.block.RichSoilFarmlandBlock; -@Mixin(FarmBlock.class) +@Mixin(FarmlandBlock.class) public class KeepRichSoilUntrampledMixin { @Inject(at = @At(value = "HEAD"), method = "turnToDirt", cancellable = true) private static void turnToDirt(Entity entity, BlockState state, Level level, BlockPos pos, CallbackInfo ci) { diff --git a/src/main/java/vectorwing/farmersdelight/common/mixin/VillagersTargetRichSoilMixin.java b/src/main/java/vectorwing/farmersdelight/common/mixin/VillagersTargetRichSoilMixin.java index fc741d07b..813f315a3 100644 --- a/src/main/java/vectorwing/farmersdelight/common/mixin/VillagersTargetRichSoilMixin.java +++ b/src/main/java/vectorwing/farmersdelight/common/mixin/VillagersTargetRichSoilMixin.java @@ -5,10 +5,10 @@ import com.llamalad7.mixinextras.injector.wrapoperation.WrapOperation; import com.llamalad7.mixinextras.sugar.Local; import net.minecraft.world.entity.ai.sensing.SecondaryPoiSensor; -import net.minecraft.world.entity.npc.Villager; -import net.minecraft.world.entity.npc.VillagerProfession; +import net.minecraft.world.entity.npc.villager.Villager; +import net.minecraft.world.entity.npc.villager.VillagerProfession; import net.minecraft.world.level.block.Block; -import net.minecraft.world.level.block.FarmBlock; +import net.minecraft.world.level.block.FarmlandBlock; import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.injection.At; @@ -18,11 +18,11 @@ @Mixin(SecondaryPoiSensor.class) public class VillagersTargetRichSoilMixin { - @WrapOperation(method = "doTick(Lnet/minecraft/server/level/ServerLevel;Lnet/minecraft/world/entity/npc/Villager;)V", + @WrapOperation(method = "doTick(Lnet/minecraft/server/level/ServerLevel;Lnet/minecraft/world/entity/npc/villager/Villager;)V", at = @At(value = "INVOKE", target = "Lcom/google/common/collect/ImmutableSet;contains(Ljava/lang/Object;)Z")) public boolean detectModdedFarmland(ImmutableSet instance, Object o, Operation original, @Local(argsOnly = true) Villager villager) { - if (villager.getVillagerData().getProfession() == VillagerProfession.FARMER) { - return original.call(instance, o) || o instanceof FarmBlock; + if (villager.getVillagerData().profession().is(VillagerProfession.FARMER)) { + return original.call(instance, o) || o instanceof FarmlandBlock; } else { return original.call(instance, o); } diff --git a/src/main/java/vectorwing/farmersdelight/common/mixin/datafix/V3818_3Mixin.java b/src/main/java/vectorwing/farmersdelight/common/mixin/datafix/V3818_3Mixin.java index bc83e6cac..e4b2ed515 100644 --- a/src/main/java/vectorwing/farmersdelight/common/mixin/datafix/V3818_3Mixin.java +++ b/src/main/java/vectorwing/farmersdelight/common/mixin/datafix/V3818_3Mixin.java @@ -1,28 +1,24 @@ package vectorwing.farmersdelight.common.mixin.datafix; -import com.llamalad7.mixinextras.sugar.Local; import com.mojang.datafixers.schemas.Schema; import com.mojang.datafixers.types.templates.TypeTemplate; -import com.mojang.datafixers.util.Pair; import net.minecraft.util.datafix.fixes.References; import net.minecraft.util.datafix.schemas.V3818_3; import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.injection.At; -import org.spongepowered.asm.mixin.injection.ModifyArg; +import org.spongepowered.asm.mixin.injection.Inject; +import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable; -import java.util.ArrayList; -import java.util.List; +import java.util.SequencedMap; +import java.util.function.Supplier; @Mixin(V3818_3.class) public class V3818_3Mixin { - @ModifyArg(method = "lambda$registerTypes$0", at = @At(value = "INVOKE", target = "Lcom/mojang/datafixers/DSL;optionalFields([Lcom/mojang/datafixers/util/Pair;)Lcom/mojang/datafixers/types/templates/TypeTemplate;")) - private static Pair[] addFDCustomComponents(Pair[] components, @Local(argsOnly = true) Schema schema) { - var list = new ArrayList<>(List.of(components)); - - list.add(Pair.of("farmersdelight:meal", References.ITEM_STACK.in(schema))); - list.add(Pair.of("farmersdelight:container", References.ITEM_STACK.in(schema))); - - return list.toArray(components); + @Inject(method = "components", at = @At("RETURN")) + private static void addFDCustomComponents(Schema schema, CallbackInfoReturnable>> cir) { + SequencedMap> components = cir.getReturnValue(); + components.put("farmersdelight:meal", () -> References.ITEM_STACK.in(schema)); + components.put("farmersdelight:container", () -> References.ITEM_STACK.in(schema)); } -} \ No newline at end of file +} diff --git a/src/main/java/vectorwing/farmersdelight/common/network/payload/FlipSkilletPayload.java b/src/main/java/vectorwing/farmersdelight/common/network/payload/FlipSkilletPayload.java index 7406865b0..341e86d50 100644 --- a/src/main/java/vectorwing/farmersdelight/common/network/payload/FlipSkilletPayload.java +++ b/src/main/java/vectorwing/farmersdelight/common/network/payload/FlipSkilletPayload.java @@ -3,13 +3,13 @@ import net.minecraft.network.RegistryFriendlyByteBuf; import net.minecraft.network.codec.StreamCodec; import net.minecraft.network.protocol.common.custom.CustomPacketPayload; -import net.minecraft.resources.ResourceLocation; +import net.minecraft.resources.Identifier; import org.jetbrains.annotations.NotNull; import vectorwing.farmersdelight.FarmersDelight; public record FlipSkilletPayload() implements CustomPacketPayload { - public static final ResourceLocation ID = ResourceLocation.fromNamespaceAndPath(FarmersDelight.MODID, "flip_skillet"); + public static final Identifier ID = Identifier.fromNamespaceAndPath(FarmersDelight.MODID, "flip_skillet"); public static final FlipSkilletPayload INSTANCE = new FlipSkilletPayload(); public static final Type TYPE = new Type<>(ID); public static final StreamCodec STREAM_CODEC = StreamCodec.unit(INSTANCE); diff --git a/src/main/java/vectorwing/farmersdelight/common/network/payload/RichSoilBoostParticlesPayload.java b/src/main/java/vectorwing/farmersdelight/common/network/payload/RichSoilBoostParticlesPayload.java index 26c03f26e..046f4e1be 100644 --- a/src/main/java/vectorwing/farmersdelight/common/network/payload/RichSoilBoostParticlesPayload.java +++ b/src/main/java/vectorwing/farmersdelight/common/network/payload/RichSoilBoostParticlesPayload.java @@ -4,13 +4,13 @@ import net.minecraft.network.RegistryFriendlyByteBuf; import net.minecraft.network.codec.StreamCodec; import net.minecraft.network.protocol.common.custom.CustomPacketPayload; -import net.minecraft.resources.ResourceLocation; +import net.minecraft.resources.Identifier; import org.jetbrains.annotations.NotNull; import vectorwing.farmersdelight.FarmersDelight; public record RichSoilBoostParticlesPayload(BlockPos pos) implements CustomPacketPayload { - public static final ResourceLocation ID = ResourceLocation.fromNamespaceAndPath(FarmersDelight.MODID, "rich_soil_boost_particles"); + public static final Identifier ID = Identifier.fromNamespaceAndPath(FarmersDelight.MODID, "rich_soil_boost_particles"); public static final Type TYPE = new Type<>(ID); public static final StreamCodec STREAM_CODEC = StreamCodec.composite( BlockPos.STREAM_CODEC, diff --git a/src/main/java/vectorwing/farmersdelight/common/registry/ModAdvancements.java b/src/main/java/vectorwing/farmersdelight/common/registry/ModAdvancements.java index 98865db3a..487bcddad 100644 --- a/src/main/java/vectorwing/farmersdelight/common/registry/ModAdvancements.java +++ b/src/main/java/vectorwing/farmersdelight/common/registry/ModAdvancements.java @@ -1,6 +1,6 @@ package vectorwing.farmersdelight.common.registry; -import net.minecraft.advancements.CriterionTrigger; +import net.minecraft.advancements.triggers.CriterionTrigger; import net.minecraft.core.registries.Registries; import net.neoforged.neoforge.registries.DeferredRegister; import vectorwing.farmersdelight.FarmersDelight; diff --git a/src/main/java/vectorwing/farmersdelight/common/registry/ModAtlases.java b/src/main/java/vectorwing/farmersdelight/common/registry/ModAtlases.java index 9ddc9c759..bdd8fa197 100644 --- a/src/main/java/vectorwing/farmersdelight/common/registry/ModAtlases.java +++ b/src/main/java/vectorwing/farmersdelight/common/registry/ModAtlases.java @@ -1,8 +1,7 @@ package vectorwing.farmersdelight.common.registry; -import net.minecraft.client.renderer.Sheets; -import net.minecraft.client.resources.model.Material; -import net.minecraft.resources.ResourceLocation; +import net.minecraft.client.resources.model.sprite.Material; +import net.minecraft.resources.Identifier; import net.minecraft.world.item.DyeColor; import vectorwing.farmersdelight.FarmersDelight; @@ -14,8 +13,8 @@ public class ModAtlases { - public static final Material BLANK_CANVAS_SIGN_MATERIAL = new Material(Sheets.SIGN_SHEET, ResourceLocation.fromNamespaceAndPath(FarmersDelight.MODID, "entity/signs/canvas")); - public static final Material BLANK_HANGING_CANVAS_SIGN_MATERIAL = new Material(Sheets.SIGN_SHEET, ResourceLocation.fromNamespaceAndPath(FarmersDelight.MODID, "entity/signs/hanging/canvas")); + public static final Material BLANK_CANVAS_SIGN_MATERIAL = new Material(Identifier.fromNamespaceAndPath(FarmersDelight.MODID, "entity/signs/canvas")); + public static final Material BLANK_HANGING_CANVAS_SIGN_MATERIAL = new Material(Identifier.fromNamespaceAndPath(FarmersDelight.MODID, "entity/signs/hanging/canvas")); public static final Map DYED_CANVAS_SIGN_MATERIALS = Arrays.stream(DyeColor.values()).collect(Collectors.toMap(Function.identity(), ModAtlases::createCanvasSignMaterial)); @@ -23,11 +22,11 @@ public class ModAtlases Arrays.stream(DyeColor.values()).collect(Collectors.toMap(Function.identity(), ModAtlases::createHangingCanvasSignMaterial)); public static Material createCanvasSignMaterial(DyeColor dyeType) { - return new Material(Sheets.SIGN_SHEET, ResourceLocation.fromNamespaceAndPath(FarmersDelight.MODID, "entity/signs/canvas_" + dyeType.getName())); + return new Material(Identifier.fromNamespaceAndPath(FarmersDelight.MODID, "entity/signs/canvas_" + dyeType.getName())); } public static Material createHangingCanvasSignMaterial(DyeColor dyeType) { - return new Material(Sheets.SIGN_SHEET, ResourceLocation.fromNamespaceAndPath(FarmersDelight.MODID, "entity/signs/hanging/canvas_" + dyeType.getName())); + return new Material(Identifier.fromNamespaceAndPath(FarmersDelight.MODID, "entity/signs/hanging/canvas_" + dyeType.getName())); } public static Material getCanvasSignMaterial(@Nullable DyeColor dyeColor) { diff --git a/src/main/java/vectorwing/farmersdelight/common/registry/ModBiomeFeatures.java b/src/main/java/vectorwing/farmersdelight/common/registry/ModBiomeFeatures.java index 6c12d093f..a9bbb0f74 100644 --- a/src/main/java/vectorwing/farmersdelight/common/registry/ModBiomeFeatures.java +++ b/src/main/java/vectorwing/farmersdelight/common/registry/ModBiomeFeatures.java @@ -2,10 +2,10 @@ import net.minecraft.core.registries.Registries; import net.minecraft.world.level.levelgen.feature.Feature; -import net.minecraft.world.level.levelgen.feature.configurations.RandomPatchConfiguration; import net.neoforged.neoforge.registries.DeferredRegister; import vectorwing.farmersdelight.FarmersDelight; import vectorwing.farmersdelight.common.world.configuration.WildCropConfiguration; +import vectorwing.farmersdelight.common.world.configuration.WildRiceConfiguration; import vectorwing.farmersdelight.common.world.feature.WildCropFeature; import vectorwing.farmersdelight.common.world.feature.WildRiceFeature; @@ -15,6 +15,6 @@ public class ModBiomeFeatures { public static final DeferredRegister> FEATURES = DeferredRegister.create(Registries.FEATURE, FarmersDelight.MODID); - public static final Supplier> WILD_RICE = FEATURES.register("wild_rice", () -> new WildRiceFeature(RandomPatchConfiguration.CODEC)); + public static final Supplier> WILD_RICE = FEATURES.register("wild_rice", () -> new WildRiceFeature(WildRiceConfiguration.CODEC)); public static final Supplier> WILD_CROP = FEATURES.register("wild_crop", () -> new WildCropFeature(WildCropConfiguration.CODEC)); } diff --git a/src/main/java/vectorwing/farmersdelight/common/registry/ModBiomeModifiers.java b/src/main/java/vectorwing/farmersdelight/common/registry/ModBiomeModifiers.java index bd99eaaa9..54eb99c6f 100644 --- a/src/main/java/vectorwing/farmersdelight/common/registry/ModBiomeModifiers.java +++ b/src/main/java/vectorwing/farmersdelight/common/registry/ModBiomeModifiers.java @@ -10,7 +10,7 @@ import net.minecraft.core.registries.Registries; import net.minecraft.data.worldgen.BootstrapContext; import net.minecraft.resources.ResourceKey; -import net.minecraft.resources.ResourceLocation; +import net.minecraft.resources.Identifier; import net.minecraft.tags.BiomeTags; import net.minecraft.world.level.biome.Biome; import net.minecraft.world.level.biome.Biomes; @@ -43,15 +43,15 @@ public class ModBiomeModifiers GenerationStep.Decoration.CODEC.fieldOf("step").forGetter(AddFeaturesByFilterBiomeModifier::step) ).apply(builder, AddFeaturesByFilterBiomeModifier::new))); - public static ResourceKey WILD_CABBAGES = ResourceKey.create(NeoForgeRegistries.Keys.BIOME_MODIFIERS, ResourceLocation.fromNamespaceAndPath(FarmersDelight.MODID, "wild_cabbages")); - public static ResourceKey WILD_ONIONS = ResourceKey.create(NeoForgeRegistries.Keys.BIOME_MODIFIERS, ResourceLocation.fromNamespaceAndPath(FarmersDelight.MODID, "wild_onions")); - public static ResourceKey WILD_TOMATOES = ResourceKey.create(NeoForgeRegistries.Keys.BIOME_MODIFIERS, ResourceLocation.fromNamespaceAndPath(FarmersDelight.MODID, "wild_tomatoes")); - public static ResourceKey WILD_CARROTS = ResourceKey.create(NeoForgeRegistries.Keys.BIOME_MODIFIERS, ResourceLocation.fromNamespaceAndPath(FarmersDelight.MODID, "wild_carrots")); - public static ResourceKey WILD_POTATOES = ResourceKey.create(NeoForgeRegistries.Keys.BIOME_MODIFIERS, ResourceLocation.fromNamespaceAndPath(FarmersDelight.MODID, "wild_potatoes")); - public static ResourceKey WILD_BEETROOTS = ResourceKey.create(NeoForgeRegistries.Keys.BIOME_MODIFIERS, ResourceLocation.fromNamespaceAndPath(FarmersDelight.MODID, "wild_beetroots")); - public static ResourceKey WILD_RICE = ResourceKey.create(NeoForgeRegistries.Keys.BIOME_MODIFIERS, ResourceLocation.fromNamespaceAndPath(FarmersDelight.MODID, "wild_rice")); - public static ResourceKey BROWN_MUSHROOM_COLONIES = ResourceKey.create(NeoForgeRegistries.Keys.BIOME_MODIFIERS, ResourceLocation.fromNamespaceAndPath(FarmersDelight.MODID, "brown_mushroom_colony")); - public static ResourceKey RED_MUSHROOM_COLONIES = ResourceKey.create(NeoForgeRegistries.Keys.BIOME_MODIFIERS, ResourceLocation.fromNamespaceAndPath(FarmersDelight.MODID, "red_mushroom_colony")); + public static ResourceKey WILD_CABBAGES = ResourceKey.create(NeoForgeRegistries.Keys.BIOME_MODIFIERS, Identifier.fromNamespaceAndPath(FarmersDelight.MODID, "wild_cabbages")); + public static ResourceKey WILD_ONIONS = ResourceKey.create(NeoForgeRegistries.Keys.BIOME_MODIFIERS, Identifier.fromNamespaceAndPath(FarmersDelight.MODID, "wild_onions")); + public static ResourceKey WILD_TOMATOES = ResourceKey.create(NeoForgeRegistries.Keys.BIOME_MODIFIERS, Identifier.fromNamespaceAndPath(FarmersDelight.MODID, "wild_tomatoes")); + public static ResourceKey WILD_CARROTS = ResourceKey.create(NeoForgeRegistries.Keys.BIOME_MODIFIERS, Identifier.fromNamespaceAndPath(FarmersDelight.MODID, "wild_carrots")); + public static ResourceKey WILD_POTATOES = ResourceKey.create(NeoForgeRegistries.Keys.BIOME_MODIFIERS, Identifier.fromNamespaceAndPath(FarmersDelight.MODID, "wild_potatoes")); + public static ResourceKey WILD_BEETROOTS = ResourceKey.create(NeoForgeRegistries.Keys.BIOME_MODIFIERS, Identifier.fromNamespaceAndPath(FarmersDelight.MODID, "wild_beetroots")); + public static ResourceKey WILD_RICE = ResourceKey.create(NeoForgeRegistries.Keys.BIOME_MODIFIERS, Identifier.fromNamespaceAndPath(FarmersDelight.MODID, "wild_rice")); + public static ResourceKey BROWN_MUSHROOM_COLONIES = ResourceKey.create(NeoForgeRegistries.Keys.BIOME_MODIFIERS, Identifier.fromNamespaceAndPath(FarmersDelight.MODID, "brown_mushroom_colony")); + public static ResourceKey RED_MUSHROOM_COLONIES = ResourceKey.create(NeoForgeRegistries.Keys.BIOME_MODIFIERS, Identifier.fromNamespaceAndPath(FarmersDelight.MODID, "red_mushroom_colony")); public static void bootstrapBiomeModifiers(BootstrapContext context) { HolderGetter biomeGetter = context.lookup(Registries.BIOME); diff --git a/src/main/java/vectorwing/farmersdelight/common/registry/ModBlockEntityTypes.java b/src/main/java/vectorwing/farmersdelight/common/registry/ModBlockEntityTypes.java index ed5f2d317..92523c1e9 100644 --- a/src/main/java/vectorwing/farmersdelight/common/registry/ModBlockEntityTypes.java +++ b/src/main/java/vectorwing/farmersdelight/common/registry/ModBlockEntityTypes.java @@ -1,30 +1,38 @@ package vectorwing.farmersdelight.common.registry; import net.minecraft.core.registries.Registries; +import net.minecraft.world.level.block.Block; +import net.minecraft.world.level.block.entity.BlockEntity; import net.minecraft.world.level.block.entity.BlockEntityType; import net.neoforged.neoforge.registries.DeferredHolder; import net.neoforged.neoforge.registries.DeferredRegister; import vectorwing.farmersdelight.FarmersDelight; import vectorwing.farmersdelight.common.block.entity.*; +import java.util.Set; import java.util.function.Supplier; public class ModBlockEntityTypes { public static final DeferredRegister> TILES = DeferredRegister.create(Registries.BLOCK_ENTITY_TYPE, FarmersDelight.MODID); + @SafeVarargs + private static BlockEntityType create(BlockEntityType.BlockEntitySupplier supplier, Block... blocks) { + return new BlockEntityType<>(supplier, Set.of(blocks)); + } + public static final Supplier> STOVE = TILES.register("stove", - () -> BlockEntityType.Builder.of(StoveBlockEntity::new, ModBlocks.STOVE.get()).build(null)); + () -> create(StoveBlockEntity::new, ModBlocks.STOVE.get())); public static final Supplier> COOKING_POT = TILES.register("cooking_pot", - () -> BlockEntityType.Builder.of(CookingPotBlockEntity::new, ModBlocks.COOKING_POT.get()).build(null)); + () -> create(CookingPotBlockEntity::new, ModBlocks.COOKING_POT.get())); public static final DeferredHolder, BlockEntityType> BASKET = TILES.register("basket", - () -> BlockEntityType.Builder.of(BasketBlockEntity::new, ModBlocks.WOODEN_BASKET.get(), ModBlocks.BAMBOO_BASKET.get()).build(null)); + () -> create(BasketBlockEntity::new, ModBlocks.WOODEN_BASKET.get(), ModBlocks.BAMBOO_BASKET.get())); public static final Supplier> CUTTING_BOARD = TILES.register("cutting_board", - () -> BlockEntityType.Builder.of(CuttingBoardBlockEntity::new, ModBlocks.CUTTING_BOARD.get()).build(null)); + () -> create(CuttingBoardBlockEntity::new, ModBlocks.CUTTING_BOARD.get())); public static final Supplier> SKILLET = TILES.register("skillet", - () -> BlockEntityType.Builder.of(SkilletBlockEntity::new, ModBlocks.SKILLET.get()).build(null)); + () -> create(SkilletBlockEntity::new, ModBlocks.SKILLET.get())); public static final Supplier> CABINET = TILES.register("cabinet", - () -> BlockEntityType.Builder.of(CabinetBlockEntity::new, + () -> create(CabinetBlockEntity::new, ModBlocks.OAK_CABINET.get(), ModBlocks.BIRCH_CABINET.get(), ModBlocks.SPRUCE_CABINET.get(), @@ -35,10 +43,9 @@ public class ModBlockEntityTypes ModBlocks.BAMBOO_CABINET.get(), ModBlocks.CHERRY_CABINET.get(), ModBlocks.CRIMSON_CABINET.get(), - ModBlocks.WARPED_CABINET.get()) - .build(null)); + ModBlocks.WARPED_CABINET.get())); public static final Supplier> CANVAS_SIGN = TILES.register("canvas_sign", - () -> BlockEntityType.Builder.of(CanvasSignBlockEntity::new, + () -> create(CanvasSignBlockEntity::new, ModBlocks.CANVAS_SIGN.get(), ModBlocks.WHITE_CANVAS_SIGN.get(), ModBlocks.ORANGE_CANVAS_SIGN.get(), @@ -72,10 +79,9 @@ public class ModBlockEntityTypes ModBlocks.BROWN_CANVAS_WALL_SIGN.get(), ModBlocks.GREEN_CANVAS_WALL_SIGN.get(), ModBlocks.RED_CANVAS_WALL_SIGN.get(), - ModBlocks.BLACK_CANVAS_WALL_SIGN.get()) - .build(null)); + ModBlocks.BLACK_CANVAS_WALL_SIGN.get())); public static final Supplier> HANGING_CANVAS_SIGN = TILES.register("hanging_canvas_sign", - () -> BlockEntityType.Builder.of(HangingCanvasSignBlockEntity::new, + () -> create(HangingCanvasSignBlockEntity::new, ModBlocks.HANGING_CANVAS_SIGN.get(), ModBlocks.WHITE_HANGING_CANVAS_SIGN.get(), ModBlocks.ORANGE_HANGING_CANVAS_SIGN.get(), @@ -109,6 +115,5 @@ public class ModBlockEntityTypes ModBlocks.BROWN_HANGING_CANVAS_WALL_SIGN.get(), ModBlocks.GREEN_HANGING_CANVAS_WALL_SIGN.get(), ModBlocks.RED_HANGING_CANVAS_WALL_SIGN.get(), - ModBlocks.BLACK_HANGING_CANVAS_WALL_SIGN.get()) - .build(null)); + ModBlocks.BLACK_HANGING_CANVAS_WALL_SIGN.get())); } diff --git a/src/main/java/vectorwing/farmersdelight/common/registry/ModBlocks.java b/src/main/java/vectorwing/farmersdelight/common/registry/ModBlocks.java index 11fb61036..85989af59 100644 --- a/src/main/java/vectorwing/farmersdelight/common/registry/ModBlocks.java +++ b/src/main/java/vectorwing/farmersdelight/common/registry/ModBlocks.java @@ -2,6 +2,8 @@ import net.minecraft.core.BlockPos; import net.minecraft.core.registries.Registries; +import net.minecraft.resources.Identifier; +import net.minecraft.resources.ResourceKey; import net.minecraft.world.effect.MobEffects; import net.minecraft.world.item.DyeColor; import net.minecraft.world.item.ItemStack; @@ -37,19 +39,34 @@ private static ToIntFunction glowingFeastBlockEmission() { return (state) -> state.getValue(FeastBlock.SERVINGS) * 3; } + private static ResourceKey blockKey(String name) { + return ResourceKey.create(Registries.BLOCK, Identifier.fromNamespaceAndPath(FarmersDelight.MODID, name)); + } + + private static BlockBehaviour.Properties cropProperties(String name) { + return BlockBehaviour.Properties.of() + .mapColor(MapColor.PLANT) + .noCollision() + .randomTicks() + .instabreak() + .sound(SoundType.CROP) + .pushReaction(PushReaction.DESTROY) + .setId(blockKey(name)); + } + // Workstations public static final Supplier STOVE = BLOCKS.register("stove", - () -> new StoveBlock(Block.Properties.ofFullCopy(Blocks.BRICKS).lightLevel(litBlockEmission(13)))); + () -> new StoveBlock(BlockBehaviour.Properties.ofLegacyCopy(Blocks.BRICKS).lightLevel(litBlockEmission(13)).setId(blockKey("stove")))); public static final Supplier COOKING_POT = BLOCKS.register("cooking_pot", - () -> new CookingPotBlock(Block.Properties.of().mapColor(MapColor.METAL).strength(0.5F, 6.0F).sound(SoundType.LANTERN))); + () -> new CookingPotBlock(BlockBehaviour.Properties.of().mapColor(MapColor.METAL).strength(0.5F, 6.0F).sound(SoundType.LANTERN).setId(blockKey("cooking_pot")))); public static final Supplier SKILLET = BLOCKS.register("skillet", - () -> new SkilletBlock(Block.Properties.of().mapColor(MapColor.METAL).strength(0.5F, 6.0F).sound(SoundType.LANTERN))); + () -> new SkilletBlock(BlockBehaviour.Properties.of().mapColor(MapColor.METAL).strength(0.5F, 6.0F).sound(SoundType.LANTERN).setId(blockKey("skillet")))); public static final Supplier WOODEN_BASKET = BLOCKS.register("wooden_basket", - () -> new BasketBlock(Block.Properties.of().strength(1.5F).sound(SoundType.WOOD))); + () -> new BasketBlock(BlockBehaviour.Properties.of().strength(1.5F).sound(SoundType.WOOD).setId(blockKey("wooden_basket")))); public static final Supplier BAMBOO_BASKET = BLOCKS.register("bamboo_basket", - () -> new BasketBlock(Block.Properties.of().strength(1.5F).sound(SoundType.BAMBOO_WOOD))); + () -> new BasketBlock(BlockBehaviour.Properties.of().strength(1.5F).sound(SoundType.BAMBOO_WOOD).setId(blockKey("bamboo_basket")))); public static final Supplier CUTTING_BOARD = BLOCKS.register("cutting_board", - () -> new CuttingBoardBlock(Block.Properties.ofFullCopy(Blocks.OAK_PLANKS).strength(2.0F).sound(SoundType.WOOD))); + () -> new CuttingBoardBlock(BlockBehaviour.Properties.ofLegacyCopy(Blocks.OAK_PLANKS).strength(2.0F).sound(SoundType.WOOD).setId(blockKey("cutting_board")))); /** * Deprecated reference added for backwards compatibility. Use BAMBOO_BASKET instead. @@ -59,279 +76,279 @@ private static ToIntFunction glowingFeastBlockEmission() { // Crop Storage public static final Supplier CARROT_CRATE = BLOCKS.register("carrot_crate", - () -> new Block(Block.Properties.ofFullCopy(Blocks.OAK_PLANKS).strength(2.0F, 3.0F).sound(SoundType.WOOD))); + () -> new Block(BlockBehaviour.Properties.ofLegacyCopy(Blocks.OAK_PLANKS).strength(2.0F, 3.0F).sound(SoundType.WOOD).setId(blockKey("carrot_crate")))); public static final Supplier POTATO_CRATE = BLOCKS.register("potato_crate", - () -> new Block(Block.Properties.ofFullCopy(Blocks.OAK_PLANKS).strength(2.0F, 3.0F).sound(SoundType.WOOD))); + () -> new Block(BlockBehaviour.Properties.ofLegacyCopy(Blocks.OAK_PLANKS).strength(2.0F, 3.0F).sound(SoundType.WOOD).setId(blockKey("potato_crate")))); public static final Supplier BEETROOT_CRATE = BLOCKS.register("beetroot_crate", - () -> new Block(Block.Properties.ofFullCopy(Blocks.OAK_PLANKS).strength(2.0F, 3.0F).sound(SoundType.WOOD))); + () -> new Block(BlockBehaviour.Properties.ofLegacyCopy(Blocks.OAK_PLANKS).strength(2.0F, 3.0F).sound(SoundType.WOOD).setId(blockKey("beetroot_crate")))); public static final Supplier CABBAGE_CRATE = BLOCKS.register("cabbage_crate", - () -> new Block(Block.Properties.ofFullCopy(Blocks.OAK_PLANKS).strength(2.0F, 3.0F).sound(SoundType.WOOD))); + () -> new Block(BlockBehaviour.Properties.ofLegacyCopy(Blocks.OAK_PLANKS).strength(2.0F, 3.0F).sound(SoundType.WOOD).setId(blockKey("cabbage_crate")))); public static final Supplier TOMATO_CRATE = BLOCKS.register("tomato_crate", - () -> new Block(Block.Properties.ofFullCopy(Blocks.OAK_PLANKS).strength(2.0F, 3.0F).sound(SoundType.WOOD))); + () -> new Block(BlockBehaviour.Properties.ofLegacyCopy(Blocks.OAK_PLANKS).strength(2.0F, 3.0F).sound(SoundType.WOOD).setId(blockKey("tomato_crate")))); public static final Supplier ONION_CRATE = BLOCKS.register("onion_crate", - () -> new Block(Block.Properties.ofFullCopy(Blocks.OAK_PLANKS).strength(2.0F, 3.0F).sound(SoundType.WOOD))); + () -> new Block(BlockBehaviour.Properties.ofLegacyCopy(Blocks.OAK_PLANKS).strength(2.0F, 3.0F).sound(SoundType.WOOD).setId(blockKey("onion_crate")))); public static final Supplier RICE_BALE = BLOCKS.register("rice_bale", - () -> new RiceBaleBlock(Block.Properties.ofFullCopy(Blocks.HAY_BLOCK))); + () -> new RiceBaleBlock(BlockBehaviour.Properties.ofLegacyCopy(Blocks.HAY_BLOCK).setId(blockKey("rice_bale")))); public static final Supplier RICE_BAG = BLOCKS.register("rice_bag", - () -> new Block(Block.Properties.ofFullCopy(Blocks.WHITE_WOOL))); + () -> new Block(BlockBehaviour.Properties.ofLegacyCopy(Blocks.WOOL.white()).setId(blockKey("rice_bag")))); public static final Supplier STRAW_BALE = BLOCKS.register("straw_bale", - () -> new StrawBaleBlock(Block.Properties.ofFullCopy(Blocks.HAY_BLOCK))); + () -> new StrawBaleBlock(BlockBehaviour.Properties.ofLegacyCopy(Blocks.HAY_BLOCK).setId(blockKey("straw_bale")))); // Building public static final Supplier ROPE = BLOCKS.register("rope", - () -> new RopeBlock(Block.Properties.ofFullCopy(Blocks.BROWN_CARPET).noCollission().noOcclusion().strength(0.2F).sound(SoundType.WOOL))); + () -> new RopeBlock(BlockBehaviour.Properties.ofLegacyCopy(Blocks.CARPET.brown()).noCollision().noOcclusion().strength(0.2F).sound(SoundType.WOOL).setId(blockKey("rope")))); public static final Supplier SAFETY_NET = BLOCKS.register("safety_net", - () -> new SafetyNetBlock(Block.Properties.ofFullCopy(Blocks.BROWN_CARPET).strength(0.2F).sound(SoundType.WOOL))); + () -> new SafetyNetBlock(BlockBehaviour.Properties.ofLegacyCopy(Blocks.CARPET.brown()).strength(0.2F).sound(SoundType.WOOL).setId(blockKey("safety_net")))); public static final Supplier ROPE_FENCE = BLOCKS.register("rope_fence", - () -> new RopeFenceBlock(Block.Properties.ofFullCopy(Blocks.OAK_FENCE).strength(1.0F))); + () -> new RopeFenceBlock(BlockBehaviour.Properties.ofLegacyCopy(Blocks.OAK_FENCE).strength(1.0F).setId(blockKey("rope_fence")))); public static final Supplier ROPE_FENCE_GATE = BLOCKS.register("rope_fence_gate", - () -> new RopeFenceGateBlock(Block.Properties.ofFullCopy(Blocks.OAK_FENCE).strength(1.0F))); + () -> new RopeFenceGateBlock(BlockBehaviour.Properties.ofLegacyCopy(Blocks.OAK_FENCE).strength(1.0F).setId(blockKey("rope_fence_gate")))); public static final Supplier OAK_CABINET = BLOCKS.register("oak_cabinet", - () -> new CabinetBlock(Block.Properties.ofFullCopy(Blocks.BARREL))); + () -> new CabinetBlock(BlockBehaviour.Properties.ofLegacyCopy(Blocks.BARREL).setId(blockKey("oak_cabinet")))); public static final Supplier SPRUCE_CABINET = BLOCKS.register("spruce_cabinet", - () -> new CabinetBlock(Block.Properties.ofFullCopy(Blocks.BARREL))); + () -> new CabinetBlock(BlockBehaviour.Properties.ofLegacyCopy(Blocks.BARREL).setId(blockKey("spruce_cabinet")))); public static final Supplier BIRCH_CABINET = BLOCKS.register("birch_cabinet", - () -> new CabinetBlock(Block.Properties.ofFullCopy(Blocks.BARREL))); + () -> new CabinetBlock(BlockBehaviour.Properties.ofLegacyCopy(Blocks.BARREL).setId(blockKey("birch_cabinet")))); public static final Supplier JUNGLE_CABINET = BLOCKS.register("jungle_cabinet", - () -> new CabinetBlock(Block.Properties.ofFullCopy(Blocks.BARREL))); + () -> new CabinetBlock(BlockBehaviour.Properties.ofLegacyCopy(Blocks.BARREL).setId(blockKey("jungle_cabinet")))); public static final Supplier ACACIA_CABINET = BLOCKS.register("acacia_cabinet", - () -> new CabinetBlock(Block.Properties.ofFullCopy(Blocks.BARREL))); + () -> new CabinetBlock(BlockBehaviour.Properties.ofLegacyCopy(Blocks.BARREL).setId(blockKey("acacia_cabinet")))); public static final Supplier DARK_OAK_CABINET = BLOCKS.register("dark_oak_cabinet", - () -> new CabinetBlock(Block.Properties.ofFullCopy(Blocks.BARREL))); + () -> new CabinetBlock(BlockBehaviour.Properties.ofLegacyCopy(Blocks.BARREL).setId(blockKey("dark_oak_cabinet")))); public static final Supplier MANGROVE_CABINET = BLOCKS.register("mangrove_cabinet", - () -> new CabinetBlock(Block.Properties.ofFullCopy(Blocks.BARREL))); + () -> new CabinetBlock(BlockBehaviour.Properties.ofLegacyCopy(Blocks.BARREL).setId(blockKey("mangrove_cabinet")))); public static final Supplier CHERRY_CABINET = BLOCKS.register("cherry_cabinet", - () -> new CabinetBlock(Block.Properties.ofFullCopy(Blocks.BARREL).sound(SoundType.CHERRY_WOOD))); + () -> new CabinetBlock(BlockBehaviour.Properties.ofLegacyCopy(Blocks.BARREL).sound(SoundType.CHERRY_WOOD).setId(blockKey("cherry_cabinet")))); public static final Supplier BAMBOO_CABINET = BLOCKS.register("bamboo_cabinet", - () -> new CabinetBlock(Block.Properties.ofFullCopy(Blocks.BARREL).sound(SoundType.BAMBOO_WOOD))); + () -> new CabinetBlock(BlockBehaviour.Properties.ofLegacyCopy(Blocks.BARREL).sound(SoundType.BAMBOO_WOOD).setId(blockKey("bamboo_cabinet")))); public static final Supplier CRIMSON_CABINET = BLOCKS.register("crimson_cabinet", - () -> new CabinetBlock(Block.Properties.ofFullCopy(Blocks.BARREL).sound(SoundType.NETHER_WOOD))); + () -> new CabinetBlock(BlockBehaviour.Properties.ofLegacyCopy(Blocks.BARREL).sound(SoundType.NETHER_WOOD).setId(blockKey("crimson_cabinet")))); public static final Supplier WARPED_CABINET = BLOCKS.register("warped_cabinet", - () -> new CabinetBlock(Block.Properties.ofFullCopy(Blocks.BARREL).sound(SoundType.NETHER_WOOD))); + () -> new CabinetBlock(BlockBehaviour.Properties.ofLegacyCopy(Blocks.BARREL).sound(SoundType.NETHER_WOOD).setId(blockKey("warped_cabinet")))); public static final Supplier CANVAS_RUG = BLOCKS.register("canvas_rug", - () -> new CanvasRugBlock(Block.Properties.ofFullCopy(Blocks.WHITE_CARPET).sound(SoundType.GRASS).strength(0.2F))); + () -> new CanvasRugBlock(BlockBehaviour.Properties.ofLegacyCopy(Blocks.CARPET.white()).sound(SoundType.GRASS).strength(0.2F).setId(blockKey("canvas_rug")))); public static final Supplier TATAMI = BLOCKS.register("tatami", - () -> new TatamiBlock(Block.Properties.ofFullCopy(Blocks.WHITE_WOOL))); + () -> new TatamiBlock(BlockBehaviour.Properties.ofLegacyCopy(Blocks.WOOL.white()).setId(blockKey("tatami")))); public static final Supplier FULL_TATAMI_MAT = BLOCKS.register("full_tatami_mat", - () -> new TatamiMatBlock(Block.Properties.ofFullCopy(Blocks.WHITE_WOOL).strength(0.3F))); + () -> new TatamiMatBlock(BlockBehaviour.Properties.ofLegacyCopy(Blocks.WOOL.white()).strength(0.3F).setId(blockKey("full_tatami_mat")))); public static final Supplier HALF_TATAMI_MAT = BLOCKS.register("half_tatami_mat", - () -> new TatamiHalfMatBlock(BlockBehaviour.Properties.ofFullCopy(Blocks.WHITE_WOOL).strength(0.3F).pushReaction(PushReaction.DESTROY))); + () -> new TatamiHalfMatBlock(BlockBehaviour.Properties.ofLegacyCopy(Blocks.WOOL.white()).strength(0.3F).pushReaction(PushReaction.DESTROY).setId(blockKey("half_tatami_mat")))); public static final Supplier CANVAS_SIGN = BLOCKS.register("canvas_sign", - () -> new StandingCanvasSignBlock(null)); + () -> new StandingCanvasSignBlock(BlockBehaviour.Properties.ofFullCopy(Blocks.SPRUCE_SIGN).setId(blockKey("canvas_sign")), null)); public static final Supplier WHITE_CANVAS_SIGN = BLOCKS.register("white_canvas_sign", - () -> new StandingCanvasSignBlock(DyeColor.WHITE)); + () -> new StandingCanvasSignBlock(BlockBehaviour.Properties.ofFullCopy(Blocks.SPRUCE_SIGN).setId(blockKey("white_canvas_sign")), DyeColor.WHITE)); public static final Supplier ORANGE_CANVAS_SIGN = BLOCKS.register("orange_canvas_sign", - () -> new StandingCanvasSignBlock(DyeColor.ORANGE)); + () -> new StandingCanvasSignBlock(BlockBehaviour.Properties.ofFullCopy(Blocks.SPRUCE_SIGN).setId(blockKey("orange_canvas_sign")), DyeColor.ORANGE)); public static final Supplier MAGENTA_CANVAS_SIGN = BLOCKS.register("magenta_canvas_sign", - () -> new StandingCanvasSignBlock(DyeColor.MAGENTA)); + () -> new StandingCanvasSignBlock(BlockBehaviour.Properties.ofFullCopy(Blocks.SPRUCE_SIGN).setId(blockKey("magenta_canvas_sign")), DyeColor.MAGENTA)); public static final Supplier LIGHT_BLUE_CANVAS_SIGN = BLOCKS.register("light_blue_canvas_sign", - () -> new StandingCanvasSignBlock(DyeColor.LIGHT_BLUE)); + () -> new StandingCanvasSignBlock(BlockBehaviour.Properties.ofFullCopy(Blocks.SPRUCE_SIGN).setId(blockKey("light_blue_canvas_sign")), DyeColor.LIGHT_BLUE)); public static final Supplier YELLOW_CANVAS_SIGN = BLOCKS.register("yellow_canvas_sign", - () -> new StandingCanvasSignBlock(DyeColor.YELLOW)); + () -> new StandingCanvasSignBlock(BlockBehaviour.Properties.ofFullCopy(Blocks.SPRUCE_SIGN).setId(blockKey("yellow_canvas_sign")), DyeColor.YELLOW)); public static final Supplier LIME_CANVAS_SIGN = BLOCKS.register("lime_canvas_sign", - () -> new StandingCanvasSignBlock(DyeColor.LIME)); + () -> new StandingCanvasSignBlock(BlockBehaviour.Properties.ofFullCopy(Blocks.SPRUCE_SIGN).setId(blockKey("lime_canvas_sign")), DyeColor.LIME)); public static final Supplier PINK_CANVAS_SIGN = BLOCKS.register("pink_canvas_sign", - () -> new StandingCanvasSignBlock(DyeColor.PINK)); + () -> new StandingCanvasSignBlock(BlockBehaviour.Properties.ofFullCopy(Blocks.SPRUCE_SIGN).setId(blockKey("pink_canvas_sign")), DyeColor.PINK)); public static final Supplier GRAY_CANVAS_SIGN = BLOCKS.register("gray_canvas_sign", - () -> new StandingCanvasSignBlock(DyeColor.GRAY)); + () -> new StandingCanvasSignBlock(BlockBehaviour.Properties.ofFullCopy(Blocks.SPRUCE_SIGN).setId(blockKey("gray_canvas_sign")), DyeColor.GRAY)); public static final Supplier LIGHT_GRAY_CANVAS_SIGN = BLOCKS.register("light_gray_canvas_sign", - () -> new StandingCanvasSignBlock(DyeColor.LIGHT_GRAY)); + () -> new StandingCanvasSignBlock(BlockBehaviour.Properties.ofFullCopy(Blocks.SPRUCE_SIGN).setId(blockKey("light_gray_canvas_sign")), DyeColor.LIGHT_GRAY)); public static final Supplier CYAN_CANVAS_SIGN = BLOCKS.register("cyan_canvas_sign", - () -> new StandingCanvasSignBlock(DyeColor.CYAN)); + () -> new StandingCanvasSignBlock(BlockBehaviour.Properties.ofFullCopy(Blocks.SPRUCE_SIGN).setId(blockKey("cyan_canvas_sign")), DyeColor.CYAN)); public static final Supplier PURPLE_CANVAS_SIGN = BLOCKS.register("purple_canvas_sign", - () -> new StandingCanvasSignBlock(DyeColor.PURPLE)); + () -> new StandingCanvasSignBlock(BlockBehaviour.Properties.ofFullCopy(Blocks.SPRUCE_SIGN).setId(blockKey("purple_canvas_sign")), DyeColor.PURPLE)); public static final Supplier BLUE_CANVAS_SIGN = BLOCKS.register("blue_canvas_sign", - () -> new StandingCanvasSignBlock(DyeColor.BLUE)); + () -> new StandingCanvasSignBlock(BlockBehaviour.Properties.ofFullCopy(Blocks.SPRUCE_SIGN).setId(blockKey("blue_canvas_sign")), DyeColor.BLUE)); public static final Supplier BROWN_CANVAS_SIGN = BLOCKS.register("brown_canvas_sign", - () -> new StandingCanvasSignBlock(DyeColor.BROWN)); + () -> new StandingCanvasSignBlock(BlockBehaviour.Properties.ofFullCopy(Blocks.SPRUCE_SIGN).setId(blockKey("brown_canvas_sign")), DyeColor.BROWN)); public static final Supplier GREEN_CANVAS_SIGN = BLOCKS.register("green_canvas_sign", - () -> new StandingCanvasSignBlock(DyeColor.GREEN)); + () -> new StandingCanvasSignBlock(BlockBehaviour.Properties.ofFullCopy(Blocks.SPRUCE_SIGN).setId(blockKey("green_canvas_sign")), DyeColor.GREEN)); public static final Supplier RED_CANVAS_SIGN = BLOCKS.register("red_canvas_sign", - () -> new StandingCanvasSignBlock(DyeColor.RED)); + () -> new StandingCanvasSignBlock(BlockBehaviour.Properties.ofFullCopy(Blocks.SPRUCE_SIGN).setId(blockKey("red_canvas_sign")), DyeColor.RED)); public static final Supplier BLACK_CANVAS_SIGN = BLOCKS.register("black_canvas_sign", - () -> new StandingCanvasSignBlock(DyeColor.BLACK)); + () -> new StandingCanvasSignBlock(BlockBehaviour.Properties.ofFullCopy(Blocks.SPRUCE_SIGN).setId(blockKey("black_canvas_sign")), DyeColor.BLACK)); public static final Supplier CANVAS_WALL_SIGN = BLOCKS.register("canvas_wall_sign", - () -> new WallCanvasSignBlock(Block.Properties.ofFullCopy(Blocks.SPRUCE_SIGN).lootFrom(CANVAS_SIGN), null)); + () -> new WallCanvasSignBlock(BlockBehaviour.Properties.ofLegacyCopy(Blocks.SPRUCE_SIGN).setId(blockKey("canvas_wall_sign")), null)); public static final Supplier WHITE_CANVAS_WALL_SIGN = BLOCKS.register("white_canvas_wall_sign", - () -> new WallCanvasSignBlock(Block.Properties.ofFullCopy(Blocks.SPRUCE_SIGN).lootFrom(WHITE_CANVAS_SIGN), DyeColor.WHITE)); + () -> new WallCanvasSignBlock(BlockBehaviour.Properties.ofLegacyCopy(Blocks.SPRUCE_SIGN).setId(blockKey("white_canvas_wall_sign")), DyeColor.WHITE)); public static final Supplier ORANGE_CANVAS_WALL_SIGN = BLOCKS.register("orange_canvas_wall_sign", - () -> new WallCanvasSignBlock(Block.Properties.ofFullCopy(Blocks.SPRUCE_SIGN).lootFrom(ORANGE_CANVAS_SIGN), DyeColor.ORANGE)); + () -> new WallCanvasSignBlock(BlockBehaviour.Properties.ofLegacyCopy(Blocks.SPRUCE_SIGN).setId(blockKey("orange_canvas_wall_sign")), DyeColor.ORANGE)); public static final Supplier MAGENTA_CANVAS_WALL_SIGN = BLOCKS.register("magenta_canvas_wall_sign", - () -> new WallCanvasSignBlock(Block.Properties.ofFullCopy(Blocks.SPRUCE_SIGN).lootFrom(MAGENTA_CANVAS_SIGN), DyeColor.MAGENTA)); + () -> new WallCanvasSignBlock(BlockBehaviour.Properties.ofLegacyCopy(Blocks.SPRUCE_SIGN).setId(blockKey("magenta_canvas_wall_sign")), DyeColor.MAGENTA)); public static final Supplier LIGHT_BLUE_CANVAS_WALL_SIGN = BLOCKS.register("light_blue_canvas_wall_sign", - () -> new WallCanvasSignBlock(Block.Properties.ofFullCopy(Blocks.SPRUCE_SIGN).lootFrom(LIGHT_BLUE_CANVAS_SIGN), DyeColor.LIGHT_BLUE)); + () -> new WallCanvasSignBlock(BlockBehaviour.Properties.ofLegacyCopy(Blocks.SPRUCE_SIGN).setId(blockKey("light_blue_canvas_wall_sign")), DyeColor.LIGHT_BLUE)); public static final Supplier YELLOW_CANVAS_WALL_SIGN = BLOCKS.register("yellow_canvas_wall_sign", - () -> new WallCanvasSignBlock(Block.Properties.ofFullCopy(Blocks.SPRUCE_SIGN).lootFrom(YELLOW_CANVAS_SIGN), DyeColor.YELLOW)); + () -> new WallCanvasSignBlock(BlockBehaviour.Properties.ofLegacyCopy(Blocks.SPRUCE_SIGN).setId(blockKey("yellow_canvas_wall_sign")), DyeColor.YELLOW)); public static final Supplier LIME_CANVAS_WALL_SIGN = BLOCKS.register("lime_canvas_wall_sign", - () -> new WallCanvasSignBlock(Block.Properties.ofFullCopy(Blocks.SPRUCE_SIGN).lootFrom(LIME_CANVAS_SIGN), DyeColor.LIME)); + () -> new WallCanvasSignBlock(BlockBehaviour.Properties.ofLegacyCopy(Blocks.SPRUCE_SIGN).setId(blockKey("lime_canvas_wall_sign")), DyeColor.LIME)); public static final Supplier PINK_CANVAS_WALL_SIGN = BLOCKS.register("pink_canvas_wall_sign", - () -> new WallCanvasSignBlock(Block.Properties.ofFullCopy(Blocks.SPRUCE_SIGN).lootFrom(PINK_CANVAS_SIGN), DyeColor.PINK)); + () -> new WallCanvasSignBlock(BlockBehaviour.Properties.ofLegacyCopy(Blocks.SPRUCE_SIGN).setId(blockKey("pink_canvas_wall_sign")), DyeColor.PINK)); public static final Supplier GRAY_CANVAS_WALL_SIGN = BLOCKS.register("gray_canvas_wall_sign", - () -> new WallCanvasSignBlock(Block.Properties.ofFullCopy(Blocks.SPRUCE_SIGN).lootFrom(GRAY_CANVAS_SIGN), DyeColor.GRAY)); + () -> new WallCanvasSignBlock(BlockBehaviour.Properties.ofLegacyCopy(Blocks.SPRUCE_SIGN).setId(blockKey("gray_canvas_wall_sign")), DyeColor.GRAY)); public static final Supplier LIGHT_GRAY_CANVAS_WALL_SIGN = BLOCKS.register("light_gray_canvas_wall_sign", - () -> new WallCanvasSignBlock(Block.Properties.ofFullCopy(Blocks.SPRUCE_SIGN).lootFrom(LIGHT_GRAY_CANVAS_SIGN), DyeColor.LIGHT_GRAY)); + () -> new WallCanvasSignBlock(BlockBehaviour.Properties.ofLegacyCopy(Blocks.SPRUCE_SIGN).setId(blockKey("light_gray_canvas_wall_sign")), DyeColor.LIGHT_GRAY)); public static final Supplier CYAN_CANVAS_WALL_SIGN = BLOCKS.register("cyan_canvas_wall_sign", - () -> new WallCanvasSignBlock(Block.Properties.ofFullCopy(Blocks.SPRUCE_SIGN).lootFrom(CYAN_CANVAS_SIGN), DyeColor.CYAN)); + () -> new WallCanvasSignBlock(BlockBehaviour.Properties.ofLegacyCopy(Blocks.SPRUCE_SIGN).setId(blockKey("cyan_canvas_wall_sign")), DyeColor.CYAN)); public static final Supplier PURPLE_CANVAS_WALL_SIGN = BLOCKS.register("purple_canvas_wall_sign", - () -> new WallCanvasSignBlock(Block.Properties.ofFullCopy(Blocks.SPRUCE_SIGN).lootFrom(PURPLE_CANVAS_SIGN), DyeColor.PURPLE)); + () -> new WallCanvasSignBlock(BlockBehaviour.Properties.ofLegacyCopy(Blocks.SPRUCE_SIGN).setId(blockKey("purple_canvas_wall_sign")), DyeColor.PURPLE)); public static final Supplier BLUE_CANVAS_WALL_SIGN = BLOCKS.register("blue_canvas_wall_sign", - () -> new WallCanvasSignBlock(Block.Properties.ofFullCopy(Blocks.SPRUCE_SIGN).lootFrom(BLUE_CANVAS_SIGN), DyeColor.BLUE)); + () -> new WallCanvasSignBlock(BlockBehaviour.Properties.ofLegacyCopy(Blocks.SPRUCE_SIGN).setId(blockKey("blue_canvas_wall_sign")), DyeColor.BLUE)); public static final Supplier BROWN_CANVAS_WALL_SIGN = BLOCKS.register("brown_canvas_wall_sign", - () -> new WallCanvasSignBlock(Block.Properties.ofFullCopy(Blocks.SPRUCE_SIGN).lootFrom(BROWN_CANVAS_SIGN), DyeColor.BROWN)); + () -> new WallCanvasSignBlock(BlockBehaviour.Properties.ofLegacyCopy(Blocks.SPRUCE_SIGN).setId(blockKey("brown_canvas_wall_sign")), DyeColor.BROWN)); public static final Supplier GREEN_CANVAS_WALL_SIGN = BLOCKS.register("green_canvas_wall_sign", - () -> new WallCanvasSignBlock(Block.Properties.ofFullCopy(Blocks.SPRUCE_SIGN).lootFrom(GREEN_CANVAS_SIGN), DyeColor.GREEN)); + () -> new WallCanvasSignBlock(BlockBehaviour.Properties.ofLegacyCopy(Blocks.SPRUCE_SIGN).setId(blockKey("green_canvas_wall_sign")), DyeColor.GREEN)); public static final Supplier RED_CANVAS_WALL_SIGN = BLOCKS.register("red_canvas_wall_sign", - () -> new WallCanvasSignBlock(Block.Properties.ofFullCopy(Blocks.SPRUCE_SIGN).lootFrom(RED_CANVAS_SIGN), DyeColor.RED)); + () -> new WallCanvasSignBlock(BlockBehaviour.Properties.ofLegacyCopy(Blocks.SPRUCE_SIGN).setId(blockKey("red_canvas_wall_sign")), DyeColor.RED)); public static final Supplier BLACK_CANVAS_WALL_SIGN = BLOCKS.register("black_canvas_wall_sign", - () -> new WallCanvasSignBlock(Block.Properties.ofFullCopy(Blocks.SPRUCE_SIGN).lootFrom(BLACK_CANVAS_SIGN), DyeColor.BLACK)); + () -> new WallCanvasSignBlock(BlockBehaviour.Properties.ofLegacyCopy(Blocks.SPRUCE_SIGN).setId(blockKey("black_canvas_wall_sign")), DyeColor.BLACK)); public static final Supplier HANGING_CANVAS_SIGN = BLOCKS.register("hanging_canvas_sign", - () -> new CeilingHangingCanvasSignBlock(null)); + () -> new CeilingHangingCanvasSignBlock(BlockBehaviour.Properties.ofFullCopy(Blocks.SPRUCE_HANGING_SIGN).setId(blockKey("hanging_canvas_sign")), null)); public static final Supplier WHITE_HANGING_CANVAS_SIGN = BLOCKS.register("white_hanging_canvas_sign", - () -> new CeilingHangingCanvasSignBlock(DyeColor.WHITE)); + () -> new CeilingHangingCanvasSignBlock(BlockBehaviour.Properties.ofFullCopy(Blocks.SPRUCE_HANGING_SIGN).setId(blockKey("white_hanging_canvas_sign")), DyeColor.WHITE)); public static final Supplier ORANGE_HANGING_CANVAS_SIGN = BLOCKS.register("orange_hanging_canvas_sign", - () -> new CeilingHangingCanvasSignBlock(DyeColor.ORANGE)); + () -> new CeilingHangingCanvasSignBlock(BlockBehaviour.Properties.ofFullCopy(Blocks.SPRUCE_HANGING_SIGN).setId(blockKey("orange_hanging_canvas_sign")), DyeColor.ORANGE)); public static final Supplier MAGENTA_HANGING_CANVAS_SIGN = BLOCKS.register("magenta_hanging_canvas_sign", - () -> new CeilingHangingCanvasSignBlock(DyeColor.MAGENTA)); + () -> new CeilingHangingCanvasSignBlock(BlockBehaviour.Properties.ofFullCopy(Blocks.SPRUCE_HANGING_SIGN).setId(blockKey("magenta_hanging_canvas_sign")), DyeColor.MAGENTA)); public static final Supplier LIGHT_BLUE_HANGING_CANVAS_SIGN = BLOCKS.register("light_blue_hanging_canvas_sign", - () -> new CeilingHangingCanvasSignBlock(DyeColor.LIGHT_BLUE)); + () -> new CeilingHangingCanvasSignBlock(BlockBehaviour.Properties.ofFullCopy(Blocks.SPRUCE_HANGING_SIGN).setId(blockKey("light_blue_hanging_canvas_sign")), DyeColor.LIGHT_BLUE)); public static final Supplier YELLOW_HANGING_CANVAS_SIGN = BLOCKS.register("yellow_hanging_canvas_sign", - () -> new CeilingHangingCanvasSignBlock(DyeColor.YELLOW)); + () -> new CeilingHangingCanvasSignBlock(BlockBehaviour.Properties.ofFullCopy(Blocks.SPRUCE_HANGING_SIGN).setId(blockKey("yellow_hanging_canvas_sign")), DyeColor.YELLOW)); public static final Supplier LIME_HANGING_CANVAS_SIGN = BLOCKS.register("lime_hanging_canvas_sign", - () -> new CeilingHangingCanvasSignBlock(DyeColor.LIME)); + () -> new CeilingHangingCanvasSignBlock(BlockBehaviour.Properties.ofFullCopy(Blocks.SPRUCE_HANGING_SIGN).setId(blockKey("lime_hanging_canvas_sign")), DyeColor.LIME)); public static final Supplier PINK_HANGING_CANVAS_SIGN = BLOCKS.register("pink_hanging_canvas_sign", - () -> new CeilingHangingCanvasSignBlock(DyeColor.PINK)); + () -> new CeilingHangingCanvasSignBlock(BlockBehaviour.Properties.ofFullCopy(Blocks.SPRUCE_HANGING_SIGN).setId(blockKey("pink_hanging_canvas_sign")), DyeColor.PINK)); public static final Supplier GRAY_HANGING_CANVAS_SIGN = BLOCKS.register("gray_hanging_canvas_sign", - () -> new CeilingHangingCanvasSignBlock(DyeColor.GRAY)); + () -> new CeilingHangingCanvasSignBlock(BlockBehaviour.Properties.ofFullCopy(Blocks.SPRUCE_HANGING_SIGN).setId(blockKey("gray_hanging_canvas_sign")), DyeColor.GRAY)); public static final Supplier LIGHT_GRAY_HANGING_CANVAS_SIGN = BLOCKS.register("light_gray_hanging_canvas_sign", - () -> new CeilingHangingCanvasSignBlock(DyeColor.LIGHT_GRAY)); + () -> new CeilingHangingCanvasSignBlock(BlockBehaviour.Properties.ofFullCopy(Blocks.SPRUCE_HANGING_SIGN).setId(blockKey("light_gray_hanging_canvas_sign")), DyeColor.LIGHT_GRAY)); public static final Supplier CYAN_HANGING_CANVAS_SIGN = BLOCKS.register("cyan_hanging_canvas_sign", - () -> new CeilingHangingCanvasSignBlock(DyeColor.CYAN)); + () -> new CeilingHangingCanvasSignBlock(BlockBehaviour.Properties.ofFullCopy(Blocks.SPRUCE_HANGING_SIGN).setId(blockKey("cyan_hanging_canvas_sign")), DyeColor.CYAN)); public static final Supplier PURPLE_HANGING_CANVAS_SIGN = BLOCKS.register("purple_hanging_canvas_sign", - () -> new CeilingHangingCanvasSignBlock(DyeColor.PURPLE)); + () -> new CeilingHangingCanvasSignBlock(BlockBehaviour.Properties.ofFullCopy(Blocks.SPRUCE_HANGING_SIGN).setId(blockKey("purple_hanging_canvas_sign")), DyeColor.PURPLE)); public static final Supplier BLUE_HANGING_CANVAS_SIGN = BLOCKS.register("blue_hanging_canvas_sign", - () -> new CeilingHangingCanvasSignBlock(DyeColor.BLUE)); + () -> new CeilingHangingCanvasSignBlock(BlockBehaviour.Properties.ofFullCopy(Blocks.SPRUCE_HANGING_SIGN).setId(blockKey("blue_hanging_canvas_sign")), DyeColor.BLUE)); public static final Supplier BROWN_HANGING_CANVAS_SIGN = BLOCKS.register("brown_hanging_canvas_sign", - () -> new CeilingHangingCanvasSignBlock(DyeColor.BROWN)); + () -> new CeilingHangingCanvasSignBlock(BlockBehaviour.Properties.ofFullCopy(Blocks.SPRUCE_HANGING_SIGN).setId(blockKey("brown_hanging_canvas_sign")), DyeColor.BROWN)); public static final Supplier GREEN_HANGING_CANVAS_SIGN = BLOCKS.register("green_hanging_canvas_sign", - () -> new CeilingHangingCanvasSignBlock(DyeColor.GREEN)); + () -> new CeilingHangingCanvasSignBlock(BlockBehaviour.Properties.ofFullCopy(Blocks.SPRUCE_HANGING_SIGN).setId(blockKey("green_hanging_canvas_sign")), DyeColor.GREEN)); public static final Supplier RED_HANGING_CANVAS_SIGN = BLOCKS.register("red_hanging_canvas_sign", - () -> new CeilingHangingCanvasSignBlock(DyeColor.RED)); + () -> new CeilingHangingCanvasSignBlock(BlockBehaviour.Properties.ofFullCopy(Blocks.SPRUCE_HANGING_SIGN).setId(blockKey("red_hanging_canvas_sign")), DyeColor.RED)); public static final Supplier BLACK_HANGING_CANVAS_SIGN = BLOCKS.register("black_hanging_canvas_sign", - () -> new CeilingHangingCanvasSignBlock(DyeColor.BLACK)); + () -> new CeilingHangingCanvasSignBlock(BlockBehaviour.Properties.ofFullCopy(Blocks.SPRUCE_HANGING_SIGN).setId(blockKey("black_hanging_canvas_sign")), DyeColor.BLACK)); public static final Supplier HANGING_CANVAS_WALL_SIGN = BLOCKS.register("wall_hanging_canvas_sign", - () -> new WallHangingCanvasSignBlock(Block.Properties.ofFullCopy(Blocks.SPRUCE_WALL_HANGING_SIGN).lootFrom(HANGING_CANVAS_SIGN), null)); + () -> new WallHangingCanvasSignBlock(BlockBehaviour.Properties.ofLegacyCopy(Blocks.SPRUCE_WALL_HANGING_SIGN).setId(blockKey("wall_hanging_canvas_sign")), null)); public static final Supplier WHITE_HANGING_CANVAS_WALL_SIGN = BLOCKS.register("white_wall_hanging_canvas_sign", - () -> new WallHangingCanvasSignBlock(Block.Properties.ofFullCopy(Blocks.SPRUCE_WALL_HANGING_SIGN).lootFrom(WHITE_HANGING_CANVAS_SIGN), DyeColor.WHITE)); + () -> new WallHangingCanvasSignBlock(BlockBehaviour.Properties.ofLegacyCopy(Blocks.SPRUCE_WALL_HANGING_SIGN).setId(blockKey("white_wall_hanging_canvas_sign")), DyeColor.WHITE)); public static final Supplier ORANGE_HANGING_CANVAS_WALL_SIGN = BLOCKS.register("orange_wall_hanging_canvas_sign", - () -> new WallHangingCanvasSignBlock(Block.Properties.ofFullCopy(Blocks.SPRUCE_WALL_HANGING_SIGN).lootFrom(ORANGE_HANGING_CANVAS_SIGN), DyeColor.ORANGE)); + () -> new WallHangingCanvasSignBlock(BlockBehaviour.Properties.ofLegacyCopy(Blocks.SPRUCE_WALL_HANGING_SIGN).setId(blockKey("orange_wall_hanging_canvas_sign")), DyeColor.ORANGE)); public static final Supplier MAGENTA_HANGING_CANVAS_WALL_SIGN = BLOCKS.register("magenta_wall_hanging_canvas_sign", - () -> new WallHangingCanvasSignBlock(Block.Properties.ofFullCopy(Blocks.SPRUCE_WALL_HANGING_SIGN).lootFrom(MAGENTA_HANGING_CANVAS_SIGN), DyeColor.MAGENTA)); + () -> new WallHangingCanvasSignBlock(BlockBehaviour.Properties.ofLegacyCopy(Blocks.SPRUCE_WALL_HANGING_SIGN).setId(blockKey("magenta_wall_hanging_canvas_sign")), DyeColor.MAGENTA)); public static final Supplier LIGHT_BLUE_HANGING_CANVAS_WALL_SIGN = BLOCKS.register("light_blue_wall_hanging_canvas_sign", - () -> new WallHangingCanvasSignBlock(Block.Properties.ofFullCopy(Blocks.SPRUCE_WALL_HANGING_SIGN).lootFrom(LIGHT_BLUE_HANGING_CANVAS_SIGN), DyeColor.LIGHT_BLUE)); + () -> new WallHangingCanvasSignBlock(BlockBehaviour.Properties.ofLegacyCopy(Blocks.SPRUCE_WALL_HANGING_SIGN).setId(blockKey("light_blue_wall_hanging_canvas_sign")), DyeColor.LIGHT_BLUE)); public static final Supplier YELLOW_HANGING_CANVAS_WALL_SIGN = BLOCKS.register("yellow_wall_hanging_canvas_sign", - () -> new WallHangingCanvasSignBlock(Block.Properties.ofFullCopy(Blocks.SPRUCE_WALL_HANGING_SIGN).lootFrom(YELLOW_HANGING_CANVAS_SIGN), DyeColor.YELLOW)); + () -> new WallHangingCanvasSignBlock(BlockBehaviour.Properties.ofLegacyCopy(Blocks.SPRUCE_WALL_HANGING_SIGN).setId(blockKey("yellow_wall_hanging_canvas_sign")), DyeColor.YELLOW)); public static final Supplier LIME_HANGING_CANVAS_WALL_SIGN = BLOCKS.register("lime_wall_hanging_canvas_sign", - () -> new WallHangingCanvasSignBlock(Block.Properties.ofFullCopy(Blocks.SPRUCE_WALL_HANGING_SIGN).lootFrom(LIME_HANGING_CANVAS_SIGN), DyeColor.LIME)); + () -> new WallHangingCanvasSignBlock(BlockBehaviour.Properties.ofLegacyCopy(Blocks.SPRUCE_WALL_HANGING_SIGN).setId(blockKey("lime_wall_hanging_canvas_sign")), DyeColor.LIME)); public static final Supplier PINK_HANGING_CANVAS_WALL_SIGN = BLOCKS.register("pink_wall_hanging_canvas_sign", - () -> new WallHangingCanvasSignBlock(Block.Properties.ofFullCopy(Blocks.SPRUCE_WALL_HANGING_SIGN).lootFrom(PINK_HANGING_CANVAS_SIGN), DyeColor.PINK)); + () -> new WallHangingCanvasSignBlock(BlockBehaviour.Properties.ofLegacyCopy(Blocks.SPRUCE_WALL_HANGING_SIGN).setId(blockKey("pink_wall_hanging_canvas_sign")), DyeColor.PINK)); public static final Supplier GRAY_HANGING_CANVAS_WALL_SIGN = BLOCKS.register("gray_wall_hanging_canvas_sign", - () -> new WallHangingCanvasSignBlock(Block.Properties.ofFullCopy(Blocks.SPRUCE_WALL_HANGING_SIGN).lootFrom(GRAY_HANGING_CANVAS_SIGN), DyeColor.GRAY)); + () -> new WallHangingCanvasSignBlock(BlockBehaviour.Properties.ofLegacyCopy(Blocks.SPRUCE_WALL_HANGING_SIGN).setId(blockKey("gray_wall_hanging_canvas_sign")), DyeColor.GRAY)); public static final Supplier LIGHT_GRAY_HANGING_CANVAS_WALL_SIGN = BLOCKS.register("light_gray_wall_hanging_canvas_sign", - () -> new WallHangingCanvasSignBlock(Block.Properties.ofFullCopy(Blocks.SPRUCE_WALL_HANGING_SIGN).lootFrom(LIGHT_GRAY_HANGING_CANVAS_SIGN), DyeColor.LIGHT_GRAY)); + () -> new WallHangingCanvasSignBlock(BlockBehaviour.Properties.ofLegacyCopy(Blocks.SPRUCE_WALL_HANGING_SIGN).setId(blockKey("light_gray_wall_hanging_canvas_sign")), DyeColor.LIGHT_GRAY)); public static final Supplier CYAN_HANGING_CANVAS_WALL_SIGN = BLOCKS.register("cyan_wall_hanging_canvas_sign", - () -> new WallHangingCanvasSignBlock(Block.Properties.ofFullCopy(Blocks.SPRUCE_WALL_HANGING_SIGN).lootFrom(CYAN_HANGING_CANVAS_SIGN), DyeColor.CYAN)); + () -> new WallHangingCanvasSignBlock(BlockBehaviour.Properties.ofLegacyCopy(Blocks.SPRUCE_WALL_HANGING_SIGN).setId(blockKey("cyan_wall_hanging_canvas_sign")), DyeColor.CYAN)); public static final Supplier PURPLE_HANGING_CANVAS_WALL_SIGN = BLOCKS.register("purple_wall_hanging_canvas_sign", - () -> new WallHangingCanvasSignBlock(Block.Properties.ofFullCopy(Blocks.SPRUCE_WALL_HANGING_SIGN).lootFrom(PURPLE_HANGING_CANVAS_SIGN), DyeColor.PURPLE)); + () -> new WallHangingCanvasSignBlock(BlockBehaviour.Properties.ofLegacyCopy(Blocks.SPRUCE_WALL_HANGING_SIGN).setId(blockKey("purple_wall_hanging_canvas_sign")), DyeColor.PURPLE)); public static final Supplier BLUE_HANGING_CANVAS_WALL_SIGN = BLOCKS.register("blue_wall_hanging_canvas_sign", - () -> new WallHangingCanvasSignBlock(Block.Properties.ofFullCopy(Blocks.SPRUCE_WALL_HANGING_SIGN).lootFrom(BLUE_HANGING_CANVAS_SIGN), DyeColor.BLUE)); + () -> new WallHangingCanvasSignBlock(BlockBehaviour.Properties.ofLegacyCopy(Blocks.SPRUCE_WALL_HANGING_SIGN).setId(blockKey("blue_wall_hanging_canvas_sign")), DyeColor.BLUE)); public static final Supplier BROWN_HANGING_CANVAS_WALL_SIGN = BLOCKS.register("brown_wall_hanging_canvas_sign", - () -> new WallHangingCanvasSignBlock(Block.Properties.ofFullCopy(Blocks.SPRUCE_WALL_HANGING_SIGN).lootFrom(BROWN_HANGING_CANVAS_SIGN), DyeColor.BROWN)); + () -> new WallHangingCanvasSignBlock(BlockBehaviour.Properties.ofLegacyCopy(Blocks.SPRUCE_WALL_HANGING_SIGN).setId(blockKey("brown_wall_hanging_canvas_sign")), DyeColor.BROWN)); public static final Supplier GREEN_HANGING_CANVAS_WALL_SIGN = BLOCKS.register("green_wall_hanging_canvas_sign", - () -> new WallHangingCanvasSignBlock(Block.Properties.ofFullCopy(Blocks.SPRUCE_WALL_HANGING_SIGN).lootFrom(GREEN_HANGING_CANVAS_SIGN), DyeColor.GREEN)); + () -> new WallHangingCanvasSignBlock(BlockBehaviour.Properties.ofLegacyCopy(Blocks.SPRUCE_WALL_HANGING_SIGN).setId(blockKey("green_wall_hanging_canvas_sign")), DyeColor.GREEN)); public static final Supplier RED_HANGING_CANVAS_WALL_SIGN = BLOCKS.register("red_wall_hanging_canvas_sign", - () -> new WallHangingCanvasSignBlock(Block.Properties.ofFullCopy(Blocks.SPRUCE_WALL_HANGING_SIGN).lootFrom(RED_HANGING_CANVAS_SIGN), DyeColor.RED)); + () -> new WallHangingCanvasSignBlock(BlockBehaviour.Properties.ofLegacyCopy(Blocks.SPRUCE_WALL_HANGING_SIGN).setId(blockKey("red_wall_hanging_canvas_sign")), DyeColor.RED)); public static final Supplier BLACK_HANGING_CANVAS_WALL_SIGN = BLOCKS.register("black_wall_hanging_canvas_sign", - () -> new WallHangingCanvasSignBlock(Block.Properties.ofFullCopy(Blocks.SPRUCE_WALL_HANGING_SIGN).lootFrom(BLACK_HANGING_CANVAS_SIGN), DyeColor.BLACK)); + () -> new WallHangingCanvasSignBlock(BlockBehaviour.Properties.ofLegacyCopy(Blocks.SPRUCE_WALL_HANGING_SIGN).setId(blockKey("black_wall_hanging_canvas_sign")), DyeColor.BLACK)); // Composting public static final Supplier BROWN_MUSHROOM_COLONY = BLOCKS.register("brown_mushroom_colony", - () -> new MushroomColonyBlock(Items.BROWN_MUSHROOM.builtInRegistryHolder(), Block.Properties.ofFullCopy(Blocks.BROWN_MUSHROOM))); + () -> new MushroomColonyBlock(Items.BROWN_MUSHROOM.builtInRegistryHolder(), BlockBehaviour.Properties.ofLegacyCopy(Blocks.BROWN_MUSHROOM).setId(blockKey("brown_mushroom_colony")))); public static final Supplier RED_MUSHROOM_COLONY = BLOCKS.register("red_mushroom_colony", - () -> new MushroomColonyBlock(Items.RED_MUSHROOM.builtInRegistryHolder(), Block.Properties.ofFullCopy(Blocks.RED_MUSHROOM))); + () -> new MushroomColonyBlock(Items.RED_MUSHROOM.builtInRegistryHolder(), BlockBehaviour.Properties.ofLegacyCopy(Blocks.RED_MUSHROOM).setId(blockKey("red_mushroom_colony")))); public static final Supplier ORGANIC_COMPOST = BLOCKS.register("organic_compost", - () -> new OrganicCompostBlock(Block.Properties.ofFullCopy(Blocks.DIRT).strength(1.2F).sound(SoundType.CROP))); + () -> new OrganicCompostBlock(BlockBehaviour.Properties.ofLegacyCopy(Blocks.DIRT).strength(1.2F).sound(SoundType.CROP).setId(blockKey("organic_compost")))); public static final Supplier RICH_SOIL = BLOCKS.register("rich_soil", - () -> new RichSoilBlock(Block.Properties.ofFullCopy(Blocks.DIRT).randomTicks())); + () -> new RichSoilBlock(BlockBehaviour.Properties.ofLegacyCopy(Blocks.DIRT).randomTicks().setId(blockKey("rich_soil")))); public static final Supplier RICH_SOIL_FARMLAND = BLOCKS.register("rich_soil_farmland", - () -> new RichSoilFarmlandBlock(Block.Properties.ofFullCopy(Blocks.FARMLAND))); + () -> new RichSoilFarmlandBlock(BlockBehaviour.Properties.ofLegacyCopy(Blocks.FARMLAND).setId(blockKey("rich_soil_farmland")))); // Pastries public static final Supplier APPLE_PIE = BLOCKS.register("apple_pie", - () -> new PieBlock(Block.Properties.ofFullCopy(Blocks.CAKE), ModItems.APPLE_PIE_SLICE)); + () -> new PieBlock(BlockBehaviour.Properties.ofLegacyCopy(Blocks.CAKE).setId(blockKey("apple_pie")), ModItems.APPLE_PIE_SLICE)); public static final Supplier SWEET_BERRY_CHEESECAKE = BLOCKS.register("sweet_berry_cheesecake", - () -> new PieBlock(Block.Properties.ofFullCopy(Blocks.CAKE), ModItems.SWEET_BERRY_CHEESECAKE_SLICE)); + () -> new PieBlock(BlockBehaviour.Properties.ofLegacyCopy(Blocks.CAKE).setId(blockKey("sweet_berry_cheesecake")), ModItems.SWEET_BERRY_CHEESECAKE_SLICE)); public static final Supplier CHOCOLATE_PIE = BLOCKS.register("chocolate_pie", - () -> new PieBlock(Block.Properties.ofFullCopy(Blocks.CAKE), ModItems.CHOCOLATE_PIE_SLICE)); + () -> new PieBlock(BlockBehaviour.Properties.ofLegacyCopy(Blocks.CAKE).setId(blockKey("chocolate_pie")), ModItems.CHOCOLATE_PIE_SLICE)); public static final Supplier PUMPKIN_PIE = BLOCKS.register("pumpkin_pie", - () -> new PieBlock(Block.Properties.ofFullCopy(Blocks.CAKE), ModItems.PUMPKIN_PIE_SLICE) + () -> new PieBlock(BlockBehaviour.Properties.ofLegacyCopy(Blocks.CAKE).setId(blockKey("pumpkin_pie")), ModItems.PUMPKIN_PIE_SLICE) { @Override @SuppressWarnings("deprecation") - public @NotNull ItemStack getCloneItemStack(LevelReader level, BlockPos pos, BlockState state) { + protected @NotNull ItemStack getCloneItemStack(LevelReader level, BlockPos pos, BlockState state, boolean includeData) { return new ItemStack(Items.PUMPKIN_PIE); } }); // Wild Crops public static final Supplier SANDY_SHRUB = BLOCKS.register("sandy_shrub", - () -> new SandyShrubBlock(Block.Properties.ofFullCopy(Blocks.TALL_GRASS))); + () -> new SandyShrubBlock(BlockBehaviour.Properties.ofLegacyCopy(Blocks.TALL_GRASS).setId(blockKey("sandy_shrub")))); public static final Supplier WILD_CABBAGES = BLOCKS.register("wild_cabbages", - () -> new WildCropBlock(MobEffects.DAMAGE_BOOST, 6, Block.Properties.ofFullCopy(Blocks.TALL_GRASS))); + () -> new WildCropBlock(MobEffects.STRENGTH, 6, BlockBehaviour.Properties.ofLegacyCopy(Blocks.TALL_GRASS).setId(blockKey("wild_cabbages")))); public static final Supplier WILD_ONIONS = BLOCKS.register("wild_onions", - () -> new WildCropBlock(MobEffects.FIRE_RESISTANCE, 6, Block.Properties.ofFullCopy(Blocks.TALL_GRASS))); + () -> new WildCropBlock(MobEffects.FIRE_RESISTANCE, 6, BlockBehaviour.Properties.ofLegacyCopy(Blocks.TALL_GRASS).setId(blockKey("wild_onions")))); public static final Supplier WILD_TOMATOES = BLOCKS.register("wild_tomatoes", - () -> new WildCropBlock(MobEffects.POISON, 10, Block.Properties.ofFullCopy(Blocks.TALL_GRASS))); + () -> new WildCropBlock(MobEffects.POISON, 10, BlockBehaviour.Properties.ofLegacyCopy(Blocks.TALL_GRASS).setId(blockKey("wild_tomatoes")))); public static final Supplier WILD_CARROTS = BLOCKS.register("wild_carrots", - () -> new WildCropBlock(MobEffects.DIG_SLOWDOWN, 6, Block.Properties.ofFullCopy(Blocks.TALL_GRASS))); + () -> new WildCropBlock(MobEffects.MINING_FATIGUE, 6, BlockBehaviour.Properties.ofLegacyCopy(Blocks.TALL_GRASS).setId(blockKey("wild_carrots")))); public static final Supplier WILD_POTATOES = BLOCKS.register("wild_potatoes", - () -> new WildCropBlock(MobEffects.CONFUSION, 8, Block.Properties.ofFullCopy(Blocks.TALL_GRASS))); + () -> new WildCropBlock(MobEffects.NAUSEA, 8, BlockBehaviour.Properties.ofLegacyCopy(Blocks.TALL_GRASS).setId(blockKey("wild_potatoes")))); public static final Supplier WILD_BEETROOTS = BLOCKS.register("wild_beetroots", - () -> new WildCropBlock(MobEffects.WATER_BREATHING, 8, Block.Properties.ofFullCopy(Blocks.TALL_GRASS))); + () -> new WildCropBlock(MobEffects.WATER_BREATHING, 8, BlockBehaviour.Properties.ofLegacyCopy(Blocks.TALL_GRASS).setId(blockKey("wild_beetroots")))); public static final Supplier WILD_RICE = BLOCKS.register("wild_rice", - () -> new WildRiceBlock(Block.Properties.ofFullCopy(Blocks.TALL_GRASS))); + () -> new WildRiceBlock(BlockBehaviour.Properties.ofLegacyCopy(Blocks.TALL_GRASS).setId(blockKey("wild_rice")))); // Crops public static final Supplier CABBAGE_CROP = BLOCKS.register("cabbages", - () -> new CabbageBlock(Block.Properties.ofFullCopy(Blocks.WHEAT))); + () -> new CabbageBlock(cropProperties("cabbages"))); public static final Supplier ONION_CROP = BLOCKS.register("onions", - () -> new OnionBlock(Block.Properties.ofFullCopy(Blocks.WHEAT))); + () -> new OnionBlock(cropProperties("onions"))); public static final Supplier BUDDING_TOMATO_CROP = BLOCKS.register("budding_tomatoes", - () -> new BuddingTomatoBlock(Block.Properties.ofFullCopy(Blocks.WHEAT))); + () -> new BuddingTomatoBlock(cropProperties("budding_tomatoes"))); public static final DeferredHolder TOMATO_CROP = BLOCKS.register("tomatoes", - () -> new TomatoBlock(Block.Properties.of().noCollission().randomTicks().instabreak().sound(SoundType.CROP))); + () -> new TomatoBlock(BlockBehaviour.Properties.of().noCollision().randomTicks().instabreak().sound(SoundType.CROP).setId(blockKey("tomatoes")))); public static final DeferredHolder TOMATO_CROP_ON_ROPE = BLOCKS.register("tomatoes_on_rope", - () -> new HangingTomatoBlock(Block.Properties.ofFullCopy(ModBlocks.TOMATO_CROP.get()).pushReaction(PushReaction.NORMAL))); + () -> new HangingTomatoBlock(BlockBehaviour.Properties.ofLegacyCopy(ModBlocks.TOMATO_CROP.get()).pushReaction(PushReaction.NORMAL).setId(blockKey("tomatoes_on_rope")))); public static final Supplier RICE_CROP = BLOCKS.register("rice", - () -> new RiceBlock(Block.Properties.ofFullCopy(Blocks.WHEAT).strength(0.2F))); + () -> new RiceBlock(cropProperties("rice").strength(0.2F))); public static final Supplier RICE_CROP_PANICLES = BLOCKS.register("rice_panicles", - () -> new RicePaniclesBlock(Block.Properties.ofFullCopy(Blocks.WHEAT))); + () -> new RicePaniclesBlock(cropProperties("rice_panicles"))); // Feasts public static final Supplier ROAST_CHICKEN_BLOCK = BLOCKS.register("roast_chicken_block", - () -> new RotatedFeastBlock(Block.Properties.ofFullCopy(Blocks.CAKE), ModItems.ROAST_CHICKEN, true, BlockShapes.ROAST_CHICKEN_SHAPES, BlockShapes.TRAY_SHAPE)); + () -> new RotatedFeastBlock(BlockBehaviour.Properties.ofLegacyCopy(Blocks.CAKE).setId(blockKey("roast_chicken_block")), ModItems.ROAST_CHICKEN, true, BlockShapes.ROAST_CHICKEN_SHAPES, BlockShapes.TRAY_SHAPE)); public static final Supplier STUFFED_PUMPKIN_BLOCK = BLOCKS.register("stuffed_pumpkin_block", - () -> new FeastBlock(Block.Properties.ofFullCopy(Blocks.PUMPKIN), ModItems.STUFFED_PUMPKIN, false, true)); + () -> new FeastBlock(BlockBehaviour.Properties.ofLegacyCopy(Blocks.PUMPKIN).setId(blockKey("stuffed_pumpkin_block")), ModItems.STUFFED_PUMPKIN, false, true)); public static final Supplier HONEY_GLAZED_HAM_BLOCK = BLOCKS.register("honey_glazed_ham_block", - () -> new RotatedFeastBlock(Block.Properties.ofFullCopy(Blocks.CAKE), ModItems.HONEY_GLAZED_HAM, true, BlockShapes.HONEY_GLAZED_HAM_SHAPES, BlockShapes.TRAY_SHAPE)); + () -> new RotatedFeastBlock(BlockBehaviour.Properties.ofLegacyCopy(Blocks.CAKE).setId(blockKey("honey_glazed_ham_block")), ModItems.HONEY_GLAZED_HAM, true, BlockShapes.HONEY_GLAZED_HAM_SHAPES, BlockShapes.TRAY_SHAPE)); public static final Supplier SHEPHERDS_PIE_BLOCK = BLOCKS.register("shepherds_pie_block", - () -> new RotatedFeastBlock(Block.Properties.ofFullCopy(Blocks.CAKE), ModItems.SHEPHERDS_PIE, true, BlockShapes.SHEPHERDS_PIE_SHAPES, BlockShapes.TRAY_SHAPE)); + () -> new RotatedFeastBlock(BlockBehaviour.Properties.ofLegacyCopy(Blocks.CAKE).setId(blockKey("shepherds_pie_block")), ModItems.SHEPHERDS_PIE, true, BlockShapes.SHEPHERDS_PIE_SHAPES, BlockShapes.TRAY_SHAPE)); public static final Supplier GLEAMING_SALAD_BLOCK = BLOCKS.register("gleaming_salad_block", - () -> new GleamingSaladBlock(Block.Properties.ofFullCopy(Blocks.OAK_PLANKS).lightLevel(glowingFeastBlockEmission()), ModItems.GLEAMING_SALAD, true)); + () -> new GleamingSaladBlock(BlockBehaviour.Properties.ofLegacyCopy(Blocks.OAK_PLANKS).lightLevel(glowingFeastBlockEmission()).setId(blockKey("gleaming_salad_block")), ModItems.GLEAMING_SALAD, true)); public static final Supplier RICE_ROLL_MEDLEY_BLOCK = BLOCKS.register("rice_roll_medley_block", - () -> new RiceRollMedleyBlock(Block.Properties.ofFullCopy(Blocks.CAKE))); + () -> new RiceRollMedleyBlock(BlockBehaviour.Properties.ofLegacyCopy(Blocks.CAKE).setId(blockKey("rice_roll_medley_block")))); } diff --git a/src/main/java/vectorwing/farmersdelight/common/registry/ModChestLootTables.java b/src/main/java/vectorwing/farmersdelight/common/registry/ModChestLootTables.java index 41b075543..d5e7a822b 100644 --- a/src/main/java/vectorwing/farmersdelight/common/registry/ModChestLootTables.java +++ b/src/main/java/vectorwing/farmersdelight/common/registry/ModChestLootTables.java @@ -2,10 +2,9 @@ import net.minecraft.core.registries.Registries; import net.minecraft.resources.ResourceKey; -import net.minecraft.resources.ResourceLocation; +import net.minecraft.resources.Identifier; import net.minecraft.world.level.storage.loot.LootTable; import vectorwing.farmersdelight.FarmersDelight; -import vectorwing.farmersdelight.common.utility.RecipeUtils; public class ModChestLootTables { public static final ResourceKey ABANDONED_MINESHAFT = register("chests/fd_abandoned_mineshaft"); @@ -24,7 +23,6 @@ public class ModChestLootTables { public static final ResourceKey VILLAGE_TAIGA_HOUSE = register("chests/fd_village_taiga_house"); private static ResourceKey register(String id) { -// return ResourceLocation.fromNamespaceAndPath(FarmersDelight.MODID, id); - return ResourceKey.create(Registries.LOOT_TABLE, RecipeUtils.FDLocation(id)); + return ResourceKey.create(Registries.LOOT_TABLE, Identifier.fromNamespaceAndPath(FarmersDelight.MODID, id)); } } diff --git a/src/main/java/vectorwing/farmersdelight/common/registry/ModDamageTypes.java b/src/main/java/vectorwing/farmersdelight/common/registry/ModDamageTypes.java index e0c224829..6e318086f 100644 --- a/src/main/java/vectorwing/farmersdelight/common/registry/ModDamageTypes.java +++ b/src/main/java/vectorwing/farmersdelight/common/registry/ModDamageTypes.java @@ -3,7 +3,7 @@ import net.minecraft.core.registries.Registries; import net.minecraft.data.worldgen.BootstrapContext; import net.minecraft.resources.ResourceKey; -import net.minecraft.resources.ResourceLocation; +import net.minecraft.resources.Identifier; import net.minecraft.world.damagesource.DamageEffects; import net.minecraft.world.damagesource.DamageScaling; import net.minecraft.world.damagesource.DamageSource; @@ -13,10 +13,10 @@ public class ModDamageTypes { - public static final ResourceKey STOVE_BURN = ResourceKey.create(Registries.DAMAGE_TYPE, ResourceLocation.fromNamespaceAndPath(FarmersDelight.MODID, "stove_burn")); + public static final ResourceKey STOVE_BURN = ResourceKey.create(Registries.DAMAGE_TYPE, Identifier.fromNamespaceAndPath(FarmersDelight.MODID, "stove_burn")); public static DamageSource getSimpleDamageSource(Level level, ResourceKey type) { - return new DamageSource(level.registryAccess().registryOrThrow(Registries.DAMAGE_TYPE).getHolderOrThrow(type)); + return new DamageSource(level.registryAccess().lookupOrThrow(Registries.DAMAGE_TYPE).getOrThrow(type)); } public static void bootstrapDamageTypes(BootstrapContext context) { diff --git a/src/main/java/vectorwing/farmersdelight/common/registry/ModDataComponents.java b/src/main/java/vectorwing/farmersdelight/common/registry/ModDataComponents.java index 7c0ea0e68..ce869aff9 100644 --- a/src/main/java/vectorwing/farmersdelight/common/registry/ModDataComponents.java +++ b/src/main/java/vectorwing/farmersdelight/common/registry/ModDataComponents.java @@ -6,7 +6,6 @@ import net.minecraft.network.codec.ByteBufCodecs; import net.minecraft.world.item.enchantment.ConditionalEffect; import net.minecraft.world.item.enchantment.effects.EnchantmentValueEffect; -import net.minecraft.world.level.storage.loot.parameters.LootContextParamSets; import net.neoforged.neoforge.registries.DeferredHolder; import net.neoforged.neoforge.registries.DeferredRegister; import vectorwing.farmersdelight.FarmersDelight; @@ -47,6 +46,6 @@ public class ModDataComponents // Enchantment Effects public static final DeferredHolder, DataComponentType>>> BACKSTABBING = ENCHANTMENT_EFFECT_COMPONENTS.registerComponentType( - "backstabbing", builder -> builder.persistent(ConditionalEffect.codec(EnchantmentValueEffect.CODEC, LootContextParamSets.ENCHANTED_DAMAGE).listOf() + "backstabbing", builder -> builder.persistent(ConditionalEffect.codec(EnchantmentValueEffect.CODEC).listOf() )); } diff --git a/src/main/java/vectorwing/farmersdelight/common/registry/ModEntityTypes.java b/src/main/java/vectorwing/farmersdelight/common/registry/ModEntityTypes.java index 6786facc4..bd7dc6203 100644 --- a/src/main/java/vectorwing/farmersdelight/common/registry/ModEntityTypes.java +++ b/src/main/java/vectorwing/farmersdelight/common/registry/ModEntityTypes.java @@ -1,6 +1,8 @@ package vectorwing.farmersdelight.common.registry; import net.minecraft.core.registries.Registries; +import net.minecraft.resources.Identifier; +import net.minecraft.resources.ResourceKey; import net.minecraft.world.entity.EntityType; import net.minecraft.world.entity.MobCategory; import net.neoforged.neoforge.registries.DeferredRegister; @@ -18,5 +20,5 @@ public class ModEntityTypes .sized(0.25F, 0.25F) .clientTrackingRange(4) .updateInterval(10) - .build("rotten_tomato"))); + .build(ResourceKey.create(Registries.ENTITY_TYPE, Identifier.fromNamespaceAndPath(FarmersDelight.MODID, "rotten_tomato"))))); } diff --git a/src/main/java/vectorwing/farmersdelight/common/registry/ModItems.java b/src/main/java/vectorwing/farmersdelight/common/registry/ModItems.java index 2c7bf9305..d9ad27435 100644 --- a/src/main/java/vectorwing/farmersdelight/common/registry/ModItems.java +++ b/src/main/java/vectorwing/farmersdelight/common/registry/ModItems.java @@ -3,8 +3,11 @@ import com.google.common.collect.Sets; import net.minecraft.core.registries.Registries; import net.minecraft.network.chat.Component; +import net.minecraft.resources.Identifier; +import net.minecraft.resources.ResourceKey; import net.minecraft.world.food.FoodProperties; import net.minecraft.world.item.*; +import net.minecraft.world.item.component.TooltipDisplay; import net.minecraft.world.level.block.Block; import net.neoforged.neoforge.registries.DeferredRegister; import vectorwing.farmersdelight.FarmersDelight; @@ -16,6 +19,7 @@ import java.util.LinkedHashSet; import java.util.List; import java.util.Map; +import java.util.function.Consumer; import java.util.function.Supplier; @SuppressWarnings("unused") @@ -23,37 +27,54 @@ public class ModItems { public static final DeferredRegister ITEMS = DeferredRegister.create(Registries.ITEM, FarmersDelight.MODID); + private static final ThreadLocal CURRENT_ITEM_ID = new ThreadLocal<>(); public static LinkedHashSet> CREATIVE_TAB_ITEMS = Sets.newLinkedHashSet(); public static Supplier registerWithTab(final String name, final Supplier supplier) { - Supplier newItem = ITEMS.register(name, supplier); + Supplier newItem = ITEMS.register(name, id -> { + CURRENT_ITEM_ID.set(id); + try { + return supplier.get(); + } finally { + CURRENT_ITEM_ID.remove(); + } + }); CREATIVE_TAB_ITEMS.add(newItem); return newItem; } public static Supplier registerHidden(final String name, final Supplier supplier) { - return ITEMS.register(name, supplier); + return ITEMS.register(name, id -> { + CURRENT_ITEM_ID.set(id); + try { + return supplier.get(); + } finally { + CURRENT_ITEM_ID.remove(); + } + }); } // Helper methods public static Item.Properties basicItem() { - return new Item.Properties(); + Identifier id = CURRENT_ITEM_ID.get(); + Item.Properties properties = new Item.Properties(); + return id == null ? properties : properties.setId(ResourceKey.create(Registries.ITEM, id)); } - public static Item.Properties knifeItem(Tier tier) { - return new Item.Properties().attributes(KnifeItem.createAttributes(tier, 0.5F, -2.0F)); + public static Item.Properties knifeItem(ToolMaterial tier) { + return basicItem().attributes(KnifeItem.createAttributes(tier, 0.5F, -2.0F)); } public static Item.Properties foodItem(FoodProperties food) { - return new Item.Properties().food(food); + return basicItem().food(food, FoodValues.consumable(food)); } public static Item.Properties bowlFoodItem(FoodProperties food) { - return new Item.Properties().food(food).craftRemainder(Items.BOWL).stacksTo(16); + return basicItem().food(food, FoodValues.consumable(food)).craftRemainder(Items.BOWL).stacksTo(16); } public static Item.Properties drinkItem() { - return new Item.Properties().craftRemainder(Items.GLASS_BOTTLE).stacksTo(16); + return basicItem().craftRemainder(Items.GLASS_BOTTLE).stacksTo(16); } // Blocks @@ -142,87 +163,87 @@ public static Item.Properties drinkItem() { // Canvas Signs... public static final Supplier CANVAS_SIGN = registerWithTab("canvas_sign", - () -> new SignItem(basicItem(), ModBlocks.CANVAS_SIGN.get(), ModBlocks.CANVAS_WALL_SIGN.get())); + () -> new SignItem(ModBlocks.CANVAS_SIGN.get(), ModBlocks.CANVAS_WALL_SIGN.get(), basicItem())); public static final Supplier HANGING_CANVAS_SIGN = registerWithTab("hanging_canvas_sign", () -> new HangingSignItem(ModBlocks.HANGING_CANVAS_SIGN.get(), ModBlocks.HANGING_CANVAS_WALL_SIGN.get(), basicItem())); public static final Supplier WHITE_CANVAS_SIGN = registerWithTab("white_canvas_sign", - () -> new SignItem(basicItem(), ModBlocks.WHITE_CANVAS_SIGN.get(), ModBlocks.WHITE_CANVAS_WALL_SIGN.get())); + () -> new SignItem(ModBlocks.WHITE_CANVAS_SIGN.get(), ModBlocks.WHITE_CANVAS_WALL_SIGN.get(), basicItem())); public static final Supplier WHITE_HANGING_CANVAS_SIGN = registerWithTab("white_hanging_canvas_sign", () -> new HangingSignItem(ModBlocks.WHITE_HANGING_CANVAS_SIGN.get(), ModBlocks.WHITE_HANGING_CANVAS_WALL_SIGN.get(), basicItem())); public static final Supplier LIGHT_GRAY_CANVAS_SIGN = registerWithTab("light_gray_canvas_sign", - () -> new SignItem(basicItem(), ModBlocks.LIGHT_GRAY_CANVAS_SIGN.get(), ModBlocks.LIGHT_GRAY_CANVAS_WALL_SIGN.get())); + () -> new SignItem(ModBlocks.LIGHT_GRAY_CANVAS_SIGN.get(), ModBlocks.LIGHT_GRAY_CANVAS_WALL_SIGN.get(), basicItem())); public static final Supplier LIGHT_GRAY_HANGING_CANVAS_SIGN = registerWithTab("light_gray_hanging_canvas_sign", () -> new HangingSignItem(ModBlocks.LIGHT_GRAY_HANGING_CANVAS_SIGN.get(), ModBlocks.LIGHT_GRAY_HANGING_CANVAS_WALL_SIGN.get(), basicItem())); public static final Supplier GRAY_CANVAS_SIGN = registerWithTab("gray_canvas_sign", - () -> new SignItem(basicItem(), ModBlocks.GRAY_CANVAS_SIGN.get(), ModBlocks.GRAY_CANVAS_WALL_SIGN.get())); + () -> new SignItem(ModBlocks.GRAY_CANVAS_SIGN.get(), ModBlocks.GRAY_CANVAS_WALL_SIGN.get(), basicItem())); public static final Supplier GRAY_HANGING_CANVAS_SIGN = registerWithTab("gray_hanging_canvas_sign", () -> new HangingSignItem(ModBlocks.GRAY_HANGING_CANVAS_SIGN.get(), ModBlocks.GRAY_HANGING_CANVAS_WALL_SIGN.get(), basicItem())); public static final Supplier BLACK_CANVAS_SIGN = registerWithTab("black_canvas_sign", - () -> new SignItem(basicItem(), ModBlocks.BLACK_CANVAS_SIGN.get(), ModBlocks.BLACK_CANVAS_WALL_SIGN.get())); + () -> new SignItem(ModBlocks.BLACK_CANVAS_SIGN.get(), ModBlocks.BLACK_CANVAS_WALL_SIGN.get(), basicItem())); public static final Supplier BLACK_HANGING_CANVAS_SIGN = registerWithTab("black_hanging_canvas_sign", () -> new HangingSignItem(ModBlocks.BLACK_HANGING_CANVAS_SIGN.get(), ModBlocks.BLACK_HANGING_CANVAS_WALL_SIGN.get(), basicItem())); public static final Supplier BROWN_CANVAS_SIGN = registerWithTab("brown_canvas_sign", - () -> new SignItem(basicItem(), ModBlocks.BROWN_CANVAS_SIGN.get(), ModBlocks.BROWN_CANVAS_WALL_SIGN.get())); + () -> new SignItem(ModBlocks.BROWN_CANVAS_SIGN.get(), ModBlocks.BROWN_CANVAS_WALL_SIGN.get(), basicItem())); public static final Supplier BROWN_HANGING_CANVAS_SIGN = registerWithTab("brown_hanging_canvas_sign", () -> new HangingSignItem(ModBlocks.BROWN_HANGING_CANVAS_SIGN.get(), ModBlocks.BROWN_HANGING_CANVAS_WALL_SIGN.get(), basicItem())); public static final Supplier RED_CANVAS_SIGN = registerWithTab("red_canvas_sign", - () -> new SignItem(basicItem(), ModBlocks.RED_CANVAS_SIGN.get(), ModBlocks.RED_CANVAS_WALL_SIGN.get())); + () -> new SignItem(ModBlocks.RED_CANVAS_SIGN.get(), ModBlocks.RED_CANVAS_WALL_SIGN.get(), basicItem())); public static final Supplier RED_HANGING_CANVAS_SIGN = registerWithTab("red_hanging_canvas_sign", () -> new HangingSignItem(ModBlocks.RED_HANGING_CANVAS_SIGN.get(), ModBlocks.RED_HANGING_CANVAS_WALL_SIGN.get(), basicItem())); public static final Supplier ORANGE_CANVAS_SIGN = registerWithTab("orange_canvas_sign", - () -> new SignItem(basicItem(), ModBlocks.ORANGE_CANVAS_SIGN.get(), ModBlocks.ORANGE_CANVAS_WALL_SIGN.get())); + () -> new SignItem(ModBlocks.ORANGE_CANVAS_SIGN.get(), ModBlocks.ORANGE_CANVAS_WALL_SIGN.get(), basicItem())); public static final Supplier ORANGE_HANGING_CANVAS_SIGN = registerWithTab("orange_hanging_canvas_sign", () -> new HangingSignItem(ModBlocks.ORANGE_HANGING_CANVAS_SIGN.get(), ModBlocks.ORANGE_HANGING_CANVAS_WALL_SIGN.get(), basicItem())); public static final Supplier YELLOW_CANVAS_SIGN = registerWithTab("yellow_canvas_sign", - () -> new SignItem(basicItem(), ModBlocks.YELLOW_CANVAS_SIGN.get(), ModBlocks.YELLOW_CANVAS_WALL_SIGN.get())); + () -> new SignItem(ModBlocks.YELLOW_CANVAS_SIGN.get(), ModBlocks.YELLOW_CANVAS_WALL_SIGN.get(), basicItem())); public static final Supplier YELLOW_HANGING_CANVAS_SIGN = registerWithTab("yellow_hanging_canvas_sign", () -> new HangingSignItem(ModBlocks.YELLOW_HANGING_CANVAS_SIGN.get(), ModBlocks.YELLOW_HANGING_CANVAS_WALL_SIGN.get(), basicItem())); public static final Supplier LIME_CANVAS_SIGN = registerWithTab("lime_canvas_sign", - () -> new SignItem(basicItem(), ModBlocks.LIME_CANVAS_SIGN.get(), ModBlocks.LIME_CANVAS_WALL_SIGN.get())); + () -> new SignItem(ModBlocks.LIME_CANVAS_SIGN.get(), ModBlocks.LIME_CANVAS_WALL_SIGN.get(), basicItem())); public static final Supplier LIME_HANGING_CANVAS_SIGN = registerWithTab("lime_hanging_canvas_sign", () -> new HangingSignItem(ModBlocks.LIME_HANGING_CANVAS_SIGN.get(), ModBlocks.LIME_HANGING_CANVAS_WALL_SIGN.get(), basicItem())); public static final Supplier GREEN_CANVAS_SIGN = registerWithTab("green_canvas_sign", - () -> new SignItem(basicItem(), ModBlocks.GREEN_CANVAS_SIGN.get(), ModBlocks.GREEN_CANVAS_WALL_SIGN.get())); + () -> new SignItem(ModBlocks.GREEN_CANVAS_SIGN.get(), ModBlocks.GREEN_CANVAS_WALL_SIGN.get(), basicItem())); public static final Supplier GREEN_HANGING_CANVAS_SIGN = registerWithTab("green_hanging_canvas_sign", () -> new HangingSignItem(ModBlocks.GREEN_HANGING_CANVAS_SIGN.get(), ModBlocks.GREEN_HANGING_CANVAS_WALL_SIGN.get(), basicItem())); public static final Supplier CYAN_CANVAS_SIGN = registerWithTab("cyan_canvas_sign", - () -> new SignItem(basicItem(), ModBlocks.CYAN_CANVAS_SIGN.get(), ModBlocks.CYAN_CANVAS_WALL_SIGN.get())); + () -> new SignItem(ModBlocks.CYAN_CANVAS_SIGN.get(), ModBlocks.CYAN_CANVAS_WALL_SIGN.get(), basicItem())); public static final Supplier CYAN_HANGING_CANVAS_SIGN = registerWithTab("cyan_hanging_canvas_sign", () -> new HangingSignItem(ModBlocks.CYAN_HANGING_CANVAS_SIGN.get(), ModBlocks.CYAN_HANGING_CANVAS_WALL_SIGN.get(), basicItem())); public static final Supplier LIGHT_BLUE_CANVAS_SIGN = registerWithTab("light_blue_canvas_sign", - () -> new SignItem(basicItem(), ModBlocks.LIGHT_BLUE_CANVAS_SIGN.get(), ModBlocks.LIGHT_BLUE_CANVAS_WALL_SIGN.get())); + () -> new SignItem(ModBlocks.LIGHT_BLUE_CANVAS_SIGN.get(), ModBlocks.LIGHT_BLUE_CANVAS_WALL_SIGN.get(), basicItem())); public static final Supplier LIGHT_BLUE_HANGING_CANVAS_SIGN = registerWithTab("light_blue_hanging_canvas_sign", () -> new HangingSignItem(ModBlocks.LIGHT_BLUE_HANGING_CANVAS_SIGN.get(), ModBlocks.LIGHT_BLUE_HANGING_CANVAS_WALL_SIGN.get(), basicItem())); public static final Supplier BLUE_CANVAS_SIGN = registerWithTab("blue_canvas_sign", - () -> new SignItem(basicItem(), ModBlocks.BLUE_CANVAS_SIGN.get(), ModBlocks.BLUE_CANVAS_WALL_SIGN.get())); + () -> new SignItem(ModBlocks.BLUE_CANVAS_SIGN.get(), ModBlocks.BLUE_CANVAS_WALL_SIGN.get(), basicItem())); public static final Supplier BLUE_HANGING_CANVAS_SIGN = registerWithTab("blue_hanging_canvas_sign", () -> new HangingSignItem(ModBlocks.BLUE_HANGING_CANVAS_SIGN.get(), ModBlocks.BLUE_HANGING_CANVAS_WALL_SIGN.get(), basicItem())); public static final Supplier PURPLE_CANVAS_SIGN = registerWithTab("purple_canvas_sign", - () -> new SignItem(basicItem(), ModBlocks.PURPLE_CANVAS_SIGN.get(), ModBlocks.PURPLE_CANVAS_WALL_SIGN.get())); + () -> new SignItem(ModBlocks.PURPLE_CANVAS_SIGN.get(), ModBlocks.PURPLE_CANVAS_WALL_SIGN.get(), basicItem())); public static final Supplier PURPLE_HANGING_CANVAS_SIGN = registerWithTab("purple_hanging_canvas_sign", () -> new HangingSignItem(ModBlocks.PURPLE_HANGING_CANVAS_SIGN.get(), ModBlocks.PURPLE_HANGING_CANVAS_WALL_SIGN.get(), basicItem())); public static final Supplier MAGENTA_CANVAS_SIGN = registerWithTab("magenta_canvas_sign", - () -> new SignItem(basicItem(), ModBlocks.MAGENTA_CANVAS_SIGN.get(), ModBlocks.MAGENTA_CANVAS_WALL_SIGN.get())); + () -> new SignItem(ModBlocks.MAGENTA_CANVAS_SIGN.get(), ModBlocks.MAGENTA_CANVAS_WALL_SIGN.get(), basicItem())); public static final Supplier MAGENTA_HANGING_CANVAS_SIGN = registerWithTab("magenta_hanging_canvas_sign", () -> new HangingSignItem(ModBlocks.MAGENTA_HANGING_CANVAS_SIGN.get(), ModBlocks.MAGENTA_HANGING_CANVAS_WALL_SIGN.get(), basicItem())); public static final Supplier PINK_CANVAS_SIGN = registerWithTab("pink_canvas_sign", - () -> new SignItem(basicItem(), ModBlocks.PINK_CANVAS_SIGN.get(), ModBlocks.PINK_CANVAS_WALL_SIGN.get())); + () -> new SignItem(ModBlocks.PINK_CANVAS_SIGN.get(), ModBlocks.PINK_CANVAS_WALL_SIGN.get(), basicItem())); public static final Supplier PINK_HANGING_CANVAS_SIGN = registerWithTab("pink_hanging_canvas_sign", () -> new HangingSignItem(ModBlocks.PINK_HANGING_CANVAS_SIGN.get(), ModBlocks.PINK_HANGING_CANVAS_WALL_SIGN.get(), basicItem())); @@ -230,13 +251,13 @@ public static Item.Properties drinkItem() { public static final Supplier FLINT_KNIFE = registerWithTab("flint_knife", () -> new KnifeItem(ModMaterials.FLINT, knifeItem(ModMaterials.FLINT))); public static final Supplier IRON_KNIFE = registerWithTab("iron_knife", - () -> new KnifeItem(Tiers.IRON, knifeItem(Tiers.IRON))); + () -> new KnifeItem(ToolMaterial.IRON, knifeItem(ToolMaterial.IRON))); public static final Supplier DIAMOND_KNIFE = registerWithTab("diamond_knife", - () -> new KnifeItem(Tiers.DIAMOND, knifeItem(Tiers.DIAMOND))); + () -> new KnifeItem(ToolMaterial.DIAMOND, knifeItem(ToolMaterial.DIAMOND))); public static final Supplier NETHERITE_KNIFE = registerWithTab("netherite_knife", - () -> new KnifeItem(Tiers.NETHERITE, knifeItem(Tiers.NETHERITE).fireResistant())); + () -> new KnifeItem(ToolMaterial.NETHERITE, knifeItem(ToolMaterial.NETHERITE).fireResistant())); public static final Supplier GOLDEN_KNIFE = registerWithTab("golden_knife", - () -> new KnifeItem(Tiers.GOLD, knifeItem(Tiers.GOLD))); + () -> new KnifeItem(ToolMaterial.GOLD, knifeItem(ToolMaterial.GOLD))); public static final Supplier STRAW = registerWithTab("straw", () -> new Item(basicItem())); public static final Supplier CANVAS = registerWithTab("canvas", () -> new Item(basicItem())); @@ -271,12 +292,12 @@ public static Item.Properties drinkItem() { public static final Supplier TOMATO = registerWithTab("tomato", () -> new Item(foodItem(FoodValues.TOMATO))); public static final Supplier ONION = registerWithTab("onion", - () -> new ItemNameBlockItem(ModBlocks.ONION_CROP.get(), foodItem(FoodValues.ONION))); + () -> new BlockItem(ModBlocks.ONION_CROP.get(), foodItem(FoodValues.ONION))); public static final Supplier RICE_PANICLE = registerWithTab("rice_panicle", () -> new Item(basicItem())); public static final Supplier RICE = registerWithTab("rice", () -> new RiceItem(ModBlocks.RICE_CROP.get(), basicItem())); - public static final Supplier CABBAGE_SEEDS = registerWithTab("cabbage_seeds", () -> new ItemNameBlockItem(ModBlocks.CABBAGE_CROP.get(), basicItem())); - public static final Supplier TOMATO_SEEDS = registerWithTab("tomato_seeds", () -> new ItemNameBlockItem(ModBlocks.BUDDING_TOMATO_CROP.get(), basicItem()) + public static final Supplier CABBAGE_SEEDS = registerWithTab("cabbage_seeds", () -> new BlockItem(ModBlocks.CABBAGE_CROP.get(), basicItem())); + public static final Supplier TOMATO_SEEDS = registerWithTab("tomato_seeds", () -> new BlockItem(ModBlocks.BUDDING_TOMATO_CROP.get(), basicItem()) { @Override public void registerBlocks(Map blockToItemMap, Item item) { @@ -289,9 +310,7 @@ public void registerBlocks(Map blockToItemMap, Item item) { } } - @Override public void removeFromBlockToItemMap(Map blockToItemMap, Item itemIn) { - super.removeFromBlockToItemMap(blockToItemMap, itemIn); if (ModBlocks.TOMATO_CROP.isBound()) { blockToItemMap.remove(ModBlocks.TOMATO_CROP.get()); } @@ -301,7 +320,7 @@ public void removeFromBlockToItemMap(Map blockToItemMap, Item itemI } }); public static final Supplier ROTTEN_TOMATO = registerWithTab("rotten_tomato", - () -> new RottenTomatoItem(new Item.Properties().stacksTo(16))); + () -> new RottenTomatoItem(basicItem().stacksTo(16))); // Foodstuffs public static final Supplier FRIED_EGG = registerWithTab("fried_egg", @@ -311,7 +330,7 @@ public void removeFromBlockToItemMap(Map blockToItemMap, Item itemI public static final Supplier HOT_COCOA = registerWithTab("hot_cocoa", () -> new HotCocoaItem(drinkItem())); public static final Supplier APPLE_CIDER = registerWithTab("apple_cider", - () -> new DrinkableItem(drinkItem().food(FoodValues.APPLE_CIDER), true, false)); + () -> new DrinkableItem(drinkItem().food(FoodValues.APPLE_CIDER, FoodValues.drinkConsumable(FoodValues.APPLE_CIDER)), true, false)); public static final Supplier MELON_JUICE = registerWithTab("melon_juice", () -> new MelonJuiceItem(drinkItem())); public static final Supplier TOMATO_SAUCE = registerWithTab("tomato_sauce", @@ -501,8 +520,8 @@ public void removeFromBlockToItemMap(Map blockToItemMap, Item itemI () -> new BlockItem(ModBlocks.PUMPKIN_PIE.get(), basicItem()) { @Override - public void appendHoverText(ItemStack stack, TooltipContext context, List tooltip, TooltipFlag isAdvanced) { - tooltip.add(TextUtils.DEBUG_ITEM); + public void appendHoverText(ItemStack stack, TooltipContext context, TooltipDisplay tooltipDisplay, Consumer tooltip, TooltipFlag isAdvanced) { + tooltip.accept(TextUtils.DEBUG_ITEM); } }); } diff --git a/src/main/java/vectorwing/farmersdelight/common/registry/ModLootFunctions.java b/src/main/java/vectorwing/farmersdelight/common/registry/ModLootFunctions.java index fb9e9707d..eb3670de0 100644 --- a/src/main/java/vectorwing/farmersdelight/common/registry/ModLootFunctions.java +++ b/src/main/java/vectorwing/farmersdelight/common/registry/ModLootFunctions.java @@ -1,7 +1,8 @@ package vectorwing.farmersdelight.common.registry; +import com.mojang.serialization.MapCodec; import net.minecraft.core.registries.Registries; -import net.minecraft.world.level.storage.loot.functions.LootItemFunctionType; +import net.minecraft.world.level.storage.loot.functions.LootItemFunction; import net.neoforged.neoforge.registries.DeferredRegister; import vectorwing.farmersdelight.FarmersDelight; import vectorwing.farmersdelight.common.loot.function.CopySkilletFunction; @@ -11,8 +12,8 @@ public class ModLootFunctions { - public static final DeferredRegister> LOOT_FUNCTIONS = DeferredRegister.create(Registries.LOOT_FUNCTION_TYPE, FarmersDelight.MODID); + public static final DeferredRegister> LOOT_FUNCTIONS = DeferredRegister.create(Registries.LOOT_FUNCTION_TYPE, FarmersDelight.MODID); - public static final Supplier> COPY_SKILLET = LOOT_FUNCTIONS.register("copy_skillet", () -> new LootItemFunctionType<>(CopySkilletFunction.CODEC)); - public static final Supplier> SMOKER_COOK = LOOT_FUNCTIONS.register("smoker_cook", () -> new LootItemFunctionType<>(SmokerCookFunction.CODEC)); + public static final Supplier> COPY_SKILLET = LOOT_FUNCTIONS.register("copy_skillet", () -> CopySkilletFunction.CODEC); + public static final Supplier> SMOKER_COOK = LOOT_FUNCTIONS.register("smoker_cook", () -> SmokerCookFunction.CODEC); } diff --git a/src/main/java/vectorwing/farmersdelight/common/registry/ModMaterials.java b/src/main/java/vectorwing/farmersdelight/common/registry/ModMaterials.java index 205541e50..fa079b077 100644 --- a/src/main/java/vectorwing/farmersdelight/common/registry/ModMaterials.java +++ b/src/main/java/vectorwing/farmersdelight/common/registry/ModMaterials.java @@ -1,45 +1,10 @@ package vectorwing.farmersdelight.common.registry; import net.minecraft.tags.BlockTags; -import net.minecraft.tags.TagKey; -import net.minecraft.world.item.Items; -import net.minecraft.world.item.Tier; -import net.minecraft.world.item.crafting.Ingredient; -import net.minecraft.world.level.block.Block; -import org.jetbrains.annotations.NotNull; +import net.minecraft.tags.ItemTags; +import net.minecraft.world.item.ToolMaterial; public class ModMaterials { - public static final Tier FLINT = new Tier() - { - @Override - public int getUses() { - return 131; - } - - @Override - public float getSpeed() { - return 4.0F; - } - - @Override - public float getAttackDamageBonus() { - return 1.0F; - } - - @Override - public @NotNull TagKey getIncorrectBlocksForDrops() { - return BlockTags.INCORRECT_FOR_WOODEN_TOOL; - } - - @Override - public int getEnchantmentValue() { - return 5; - } - - @Override - public @NotNull Ingredient getRepairIngredient() { - return Ingredient.of(Items.FLINT); - } - }; + public static final ToolMaterial FLINT = new ToolMaterial(BlockTags.INCORRECT_FOR_WOODEN_TOOL, 131, 4.0F, 1.0F, 5, ItemTags.STONE_TOOL_MATERIALS); } diff --git a/src/main/java/vectorwing/farmersdelight/common/registry/ModRecipeBookCategories.java b/src/main/java/vectorwing/farmersdelight/common/registry/ModRecipeBookCategories.java new file mode 100644 index 000000000..59b4beca0 --- /dev/null +++ b/src/main/java/vectorwing/farmersdelight/common/registry/ModRecipeBookCategories.java @@ -0,0 +1,22 @@ +package vectorwing.farmersdelight.common.registry; + +import net.minecraft.core.registries.Registries; +import net.minecraft.world.item.crafting.RecipeBookCategory; +import net.neoforged.neoforge.registries.DeferredRegister; +import vectorwing.farmersdelight.FarmersDelight; + +import java.util.function.Supplier; + +public class ModRecipeBookCategories +{ + public static final DeferredRegister RECIPE_BOOK_CATEGORIES = + DeferredRegister.create(Registries.RECIPE_BOOK_CATEGORY, FarmersDelight.MODID); + + public static final Supplier COOKING_MEALS = register("cooking_meals"); + public static final Supplier COOKING_DRINKS = register("cooking_drinks"); + public static final Supplier COOKING_MISC = register("cooking_misc"); + + private static Supplier register(String name) { + return RECIPE_BOOK_CATEGORIES.register(name, RecipeBookCategory::new); + } +} diff --git a/src/main/java/vectorwing/farmersdelight/common/registry/ModRecipeSerializers.java b/src/main/java/vectorwing/farmersdelight/common/registry/ModRecipeSerializers.java index a7d13d940..c9f6d6431 100644 --- a/src/main/java/vectorwing/farmersdelight/common/registry/ModRecipeSerializers.java +++ b/src/main/java/vectorwing/farmersdelight/common/registry/ModRecipeSerializers.java @@ -2,7 +2,6 @@ import net.minecraft.core.registries.Registries; import net.minecraft.world.item.crafting.RecipeSerializer; -import net.minecraft.world.item.crafting.SimpleCraftingRecipeSerializer; import net.neoforged.neoforge.registries.DeferredRegister; import vectorwing.farmersdelight.FarmersDelight; import vectorwing.farmersdelight.common.crafting.CookingPotRecipe; @@ -16,11 +15,13 @@ public class ModRecipeSerializers { public static final DeferredRegister> RECIPE_SERIALIZERS = DeferredRegister.create(Registries.RECIPE_SERIALIZER, FarmersDelight.MODID); - public static final Supplier> COOKING = RECIPE_SERIALIZERS.register("cooking", CookingPotRecipe.Serializer::new); - public static final Supplier> CUTTING = RECIPE_SERIALIZERS.register("cutting", CuttingBoardRecipe.Serializer::new); + public static final Supplier> COOKING = RECIPE_SERIALIZERS.register("cooking", + () -> new RecipeSerializer<>(CookingPotRecipe.Serializer.CODEC, CookingPotRecipe.Serializer.STREAM_CODEC)); + public static final Supplier> CUTTING = RECIPE_SERIALIZERS.register("cutting", + () -> new RecipeSerializer<>(CuttingBoardRecipe.Serializer.CODEC, CuttingBoardRecipe.Serializer.STREAM_CODEC)); - public static final Supplier> FOOD_SERVING = - RECIPE_SERIALIZERS.register("food_serving", () -> new SimpleCraftingRecipeSerializer<>(FoodServingRecipe::new)); - public static final Supplier> DOUGH = - RECIPE_SERIALIZERS.register("dough", () -> new SimpleCraftingRecipeSerializer<>(DoughRecipe::new)); + public static final Supplier> FOOD_SERVING = + RECIPE_SERIALIZERS.register("food_serving", () -> new RecipeSerializer<>(FoodServingRecipe.CODEC, FoodServingRecipe.STREAM_CODEC)); + public static final Supplier> DOUGH = + RECIPE_SERIALIZERS.register("dough", () -> new RecipeSerializer<>(DoughRecipe.CODEC, DoughRecipe.STREAM_CODEC)); } diff --git a/src/main/java/vectorwing/farmersdelight/common/registry/ModSounds.java b/src/main/java/vectorwing/farmersdelight/common/registry/ModSounds.java index aefa05518..e8ef2ed40 100644 --- a/src/main/java/vectorwing/farmersdelight/common/registry/ModSounds.java +++ b/src/main/java/vectorwing/farmersdelight/common/registry/ModSounds.java @@ -1,7 +1,7 @@ package vectorwing.farmersdelight.common.registry; import net.minecraft.core.registries.Registries; -import net.minecraft.resources.ResourceLocation; +import net.minecraft.resources.Identifier; import net.minecraft.sounds.SoundEvent; import net.neoforged.neoforge.registries.DeferredRegister; import vectorwing.farmersdelight.FarmersDelight; @@ -14,58 +14,58 @@ public class ModSounds // Stove public static final Supplier BLOCK_STOVE_CRACKLE = SOUNDS.register("block.stove.crackle", - () -> SoundEvent.createVariableRangeEvent(ResourceLocation.fromNamespaceAndPath(FarmersDelight.MODID, "block.stove.crackle"))); + () -> SoundEvent.createVariableRangeEvent(Identifier.fromNamespaceAndPath(FarmersDelight.MODID, "block.stove.crackle"))); // Cooking Pot public static final Supplier BLOCK_COOKING_POT_BOIL = SOUNDS.register("block.cooking_pot.boil", - () -> SoundEvent.createVariableRangeEvent(ResourceLocation.fromNamespaceAndPath(FarmersDelight.MODID, "block.cooking_pot.boil"))); + () -> SoundEvent.createVariableRangeEvent(Identifier.fromNamespaceAndPath(FarmersDelight.MODID, "block.cooking_pot.boil"))); public static final Supplier BLOCK_COOKING_POT_BOIL_SOUP = SOUNDS.register("block.cooking_pot.boil_soup", - () -> SoundEvent.createVariableRangeEvent(ResourceLocation.fromNamespaceAndPath(FarmersDelight.MODID, "block.cooking_pot.boil_soup"))); + () -> SoundEvent.createVariableRangeEvent(Identifier.fromNamespaceAndPath(FarmersDelight.MODID, "block.cooking_pot.boil_soup"))); // Cutting Board public static final Supplier BLOCK_CUTTING_BOARD_PLACE = SOUNDS.register("block.cutting_board.place_item", - () -> SoundEvent.createVariableRangeEvent(ResourceLocation.fromNamespaceAndPath(FarmersDelight.MODID, "block.cutting_board.place_item"))); + () -> SoundEvent.createVariableRangeEvent(Identifier.fromNamespaceAndPath(FarmersDelight.MODID, "block.cutting_board.place_item"))); public static final Supplier BLOCK_CUTTING_BOARD_REMOVE = SOUNDS.register("block.cutting_board.remove_item", - () -> SoundEvent.createVariableRangeEvent(ResourceLocation.fromNamespaceAndPath(FarmersDelight.MODID, "block.cutting_board.remove_item"))); + () -> SoundEvent.createVariableRangeEvent(Identifier.fromNamespaceAndPath(FarmersDelight.MODID, "block.cutting_board.remove_item"))); public static final Supplier BLOCK_CUTTING_BOARD_CARVE = SOUNDS.register("block.cutting_board.carve_tool", - () -> SoundEvent.createVariableRangeEvent(ResourceLocation.fromNamespaceAndPath(FarmersDelight.MODID, "block.cutting_board.carve_tool"))); + () -> SoundEvent.createVariableRangeEvent(Identifier.fromNamespaceAndPath(FarmersDelight.MODID, "block.cutting_board.carve_tool"))); public static final Supplier BLOCK_CUTTING_BOARD_KNIFE = SOUNDS.register("block.cutting_board.knife_cut", - () -> SoundEvent.createVariableRangeEvent(ResourceLocation.fromNamespaceAndPath(FarmersDelight.MODID, "block.cutting_board.knife_cut"))); + () -> SoundEvent.createVariableRangeEvent(Identifier.fromNamespaceAndPath(FarmersDelight.MODID, "block.cutting_board.knife_cut"))); // Rope Fence Gate public static final Supplier BLOCK_ROPE_FENCE_GATE_OPEN = SOUNDS.register("block.rope_fence_gate.open", - () -> SoundEvent.createVariableRangeEvent(ResourceLocation.fromNamespaceAndPath(FarmersDelight.MODID, "block.rope_fence_gate.open"))); + () -> SoundEvent.createVariableRangeEvent(Identifier.fromNamespaceAndPath(FarmersDelight.MODID, "block.rope_fence_gate.open"))); public static final Supplier BLOCK_ROPE_FENCE_GATE_CLOSE = SOUNDS.register("block.rope_fence_gate.close", - () -> SoundEvent.createVariableRangeEvent(ResourceLocation.fromNamespaceAndPath(FarmersDelight.MODID, "block.rope_fence_gate.close"))); + () -> SoundEvent.createVariableRangeEvent(Identifier.fromNamespaceAndPath(FarmersDelight.MODID, "block.rope_fence_gate.close"))); // Cabinet public static final Supplier BLOCK_CABINET_OPEN = SOUNDS.register("block.cabinet.open", - () -> SoundEvent.createVariableRangeEvent(ResourceLocation.fromNamespaceAndPath(FarmersDelight.MODID, "block.cabinet.open"))); + () -> SoundEvent.createVariableRangeEvent(Identifier.fromNamespaceAndPath(FarmersDelight.MODID, "block.cabinet.open"))); public static final Supplier BLOCK_CABINET_CLOSE = SOUNDS.register("block.cabinet.close", - () -> SoundEvent.createVariableRangeEvent(ResourceLocation.fromNamespaceAndPath(FarmersDelight.MODID, "block.cabinet.close"))); + () -> SoundEvent.createVariableRangeEvent(Identifier.fromNamespaceAndPath(FarmersDelight.MODID, "block.cabinet.close"))); // Skillet public static final Supplier BLOCK_SKILLET_SIZZLE = SOUNDS.register("block.skillet.sizzle", - () -> SoundEvent.createVariableRangeEvent(ResourceLocation.fromNamespaceAndPath(FarmersDelight.MODID, "block.skillet.sizzle"))); + () -> SoundEvent.createVariableRangeEvent(Identifier.fromNamespaceAndPath(FarmersDelight.MODID, "block.skillet.sizzle"))); public static final Supplier BLOCK_SKILLET_ADD_FOOD = SOUNDS.register("block.skillet.add_food", - () -> SoundEvent.createVariableRangeEvent(ResourceLocation.fromNamespaceAndPath(FarmersDelight.MODID, "block.skillet.add_food"))); + () -> SoundEvent.createVariableRangeEvent(Identifier.fromNamespaceAndPath(FarmersDelight.MODID, "block.skillet.add_food"))); public static final Supplier ITEM_SKILLET_ATTACK_STRONG = SOUNDS.register("item.skillet.attack.strong", - () -> SoundEvent.createVariableRangeEvent(ResourceLocation.fromNamespaceAndPath(FarmersDelight.MODID, "item.skillet.attack.strong"))); + () -> SoundEvent.createVariableRangeEvent(Identifier.fromNamespaceAndPath(FarmersDelight.MODID, "item.skillet.attack.strong"))); public static final Supplier ITEM_SKILLET_ATTACK_WEAK = SOUNDS.register("item.skillet.attack.weak", - () -> SoundEvent.createVariableRangeEvent(ResourceLocation.fromNamespaceAndPath(FarmersDelight.MODID, "item.skillet.attack.weak"))); + () -> SoundEvent.createVariableRangeEvent(Identifier.fromNamespaceAndPath(FarmersDelight.MODID, "item.skillet.attack.weak"))); // Tomato Bush public static final Supplier BLOCK_TOMATOES_PICK_TOMATOES = SOUNDS.register("block.tomatoes.pick_tomatoes", - () -> SoundEvent.createVariableRangeEvent(ResourceLocation.fromNamespaceAndPath(FarmersDelight.MODID, "block.tomatoes.pick_tomatoes"))); + () -> SoundEvent.createVariableRangeEvent(Identifier.fromNamespaceAndPath(FarmersDelight.MODID, "block.tomatoes.pick_tomatoes"))); // Food public static final Supplier BLOCK_FOOD_TAKE_PORTION = SOUNDS.register("block.food.take_portion", - () -> SoundEvent.createVariableRangeEvent(ResourceLocation.fromNamespaceAndPath(FarmersDelight.MODID, "block.food.take_portion"))); + () -> SoundEvent.createVariableRangeEvent(Identifier.fromNamespaceAndPath(FarmersDelight.MODID, "block.food.take_portion"))); public static final Supplier BLOCK_FOOD_SLICE = SOUNDS.register("block.food.slice", - () -> SoundEvent.createVariableRangeEvent(ResourceLocation.fromNamespaceAndPath(FarmersDelight.MODID, "block.food.slice"))); + () -> SoundEvent.createVariableRangeEvent(Identifier.fromNamespaceAndPath(FarmersDelight.MODID, "block.food.slice"))); public static final Supplier ENTITY_ROTTEN_TOMATO_THROW = SOUNDS.register("entity.rotten_tomato.throw", - () -> SoundEvent.createVariableRangeEvent(ResourceLocation.fromNamespaceAndPath(FarmersDelight.MODID, "entity.rotten_tomato.throw"))); + () -> SoundEvent.createVariableRangeEvent(Identifier.fromNamespaceAndPath(FarmersDelight.MODID, "entity.rotten_tomato.throw"))); public static final Supplier ENTITY_ROTTEN_TOMATO_HIT = SOUNDS.register("entity.rotten_tomato.hit", - () -> SoundEvent.createVariableRangeEvent(ResourceLocation.fromNamespaceAndPath(FarmersDelight.MODID, "entity.rotten_tomato.hit"))); + () -> SoundEvent.createVariableRangeEvent(Identifier.fromNamespaceAndPath(FarmersDelight.MODID, "entity.rotten_tomato.hit"))); } diff --git a/src/main/java/vectorwing/farmersdelight/common/registry/RegistryAliases.java b/src/main/java/vectorwing/farmersdelight/common/registry/RegistryAliases.java index c88c14365..a88c4e85b 100644 --- a/src/main/java/vectorwing/farmersdelight/common/registry/RegistryAliases.java +++ b/src/main/java/vectorwing/farmersdelight/common/registry/RegistryAliases.java @@ -1,6 +1,7 @@ package vectorwing.farmersdelight.common.registry; -import vectorwing.farmersdelight.common.utility.RecipeUtils; +import net.minecraft.resources.Identifier; +import vectorwing.farmersdelight.FarmersDelight; public class RegistryAliases { @@ -10,10 +11,14 @@ public static void addRegistryAliases() { } public static void addBlockAlias(String oldName, String newName) { - ModBlocks.BLOCKS.addAlias(RecipeUtils.FDLocation(oldName), RecipeUtils.FDLocation(newName)); + ModBlocks.BLOCKS.addAlias(fdLocation(oldName), fdLocation(newName)); } public static void addItemAlias(String oldName, String newName) { - ModItems.ITEMS.addAlias(RecipeUtils.FDLocation(oldName), RecipeUtils.FDLocation(newName)); + ModItems.ITEMS.addAlias(fdLocation(oldName), fdLocation(newName)); + } + + private static Identifier fdLocation(String name) { + return Identifier.fromNamespaceAndPath(FarmersDelight.MODID, name); } } diff --git a/src/main/java/vectorwing/farmersdelight/common/tag/CommonTags.java b/src/main/java/vectorwing/farmersdelight/common/tag/CommonTags.java index de5973b25..649e8dd7e 100644 --- a/src/main/java/vectorwing/farmersdelight/common/tag/CommonTags.java +++ b/src/main/java/vectorwing/farmersdelight/common/tag/CommonTags.java @@ -1,6 +1,6 @@ package vectorwing.farmersdelight.common.tag; -import net.minecraft.resources.ResourceLocation; +import net.minecraft.resources.Identifier; import net.minecraft.tags.BlockTags; import net.minecraft.tags.ItemTags; import net.minecraft.tags.TagKey; @@ -80,10 +80,10 @@ public static class Items } private static TagKey commonBlockTag(String path) { - return BlockTags.create(ResourceLocation.fromNamespaceAndPath("c", path)); + return BlockTags.create(Identifier.fromNamespaceAndPath("c", path)); } private static TagKey commonItemTag(String path) { - return ItemTags.create(ResourceLocation.fromNamespaceAndPath("c", path)); + return ItemTags.create(Identifier.fromNamespaceAndPath("c", path)); } } diff --git a/src/main/java/vectorwing/farmersdelight/common/tag/CompatibilityTags.java b/src/main/java/vectorwing/farmersdelight/common/tag/CompatibilityTags.java index 96b3c157b..9379c4bbc 100644 --- a/src/main/java/vectorwing/farmersdelight/common/tag/CompatibilityTags.java +++ b/src/main/java/vectorwing/farmersdelight/common/tag/CompatibilityTags.java @@ -1,6 +1,6 @@ package vectorwing.farmersdelight.common.tag; -import net.minecraft.resources.ResourceLocation; +import net.minecraft.resources.Identifier; import net.minecraft.tags.BlockTags; import net.minecraft.tags.ItemTags; import net.minecraft.tags.TagKey; @@ -51,10 +51,10 @@ public class CompatibilityTags public static final TagKey TINKERS_CONSTRUCT_SEEDS = externalItemTag(TINKERS_CONSTRUCT, "seeds"); private static TagKey externalItemTag(String modId, String path) { - return ItemTags.create(ResourceLocation.fromNamespaceAndPath(modId, path)); + return ItemTags.create(Identifier.fromNamespaceAndPath(modId, path)); } private static TagKey externalBlockTag(String modId, String path) { - return BlockTags.create(ResourceLocation.fromNamespaceAndPath(modId, path)); + return BlockTags.create(Identifier.fromNamespaceAndPath(modId, path)); } } diff --git a/src/main/java/vectorwing/farmersdelight/common/tag/ModTags.java b/src/main/java/vectorwing/farmersdelight/common/tag/ModTags.java index e4e72da5e..d6aa44e00 100644 --- a/src/main/java/vectorwing/farmersdelight/common/tag/ModTags.java +++ b/src/main/java/vectorwing/farmersdelight/common/tag/ModTags.java @@ -1,7 +1,7 @@ package vectorwing.farmersdelight.common.tag; import net.minecraft.core.registries.Registries; -import net.minecraft.resources.ResourceLocation; +import net.minecraft.resources.Identifier; import net.minecraft.tags.BlockTags; import net.minecraft.tags.ItemTags; import net.minecraft.tags.TagKey; @@ -133,15 +133,15 @@ public static class EntityTypes } private static TagKey modItemTag(String path) { - return ItemTags.create(ResourceLocation.fromNamespaceAndPath(FarmersDelight.MODID, path)); + return ItemTags.create(Identifier.fromNamespaceAndPath(FarmersDelight.MODID, path)); } private static TagKey modBlockTag(String path) { - return BlockTags.create(ResourceLocation.fromNamespaceAndPath(FarmersDelight.MODID, path)); + return BlockTags.create(Identifier.fromNamespaceAndPath(FarmersDelight.MODID, path)); } private static TagKey> modEntityTag(String path) { - return TagKey.create(Registries.ENTITY_TYPE, ResourceLocation.fromNamespaceAndPath(FarmersDelight.MODID, path)); + return TagKey.create(Registries.ENTITY_TYPE, Identifier.fromNamespaceAndPath(FarmersDelight.MODID, path)); } /** diff --git a/src/main/java/vectorwing/farmersdelight/common/utility/ItemUtils.java b/src/main/java/vectorwing/farmersdelight/common/utility/ItemUtils.java index a1330c443..07c5df60f 100644 --- a/src/main/java/vectorwing/farmersdelight/common/utility/ItemUtils.java +++ b/src/main/java/vectorwing/farmersdelight/common/utility/ItemUtils.java @@ -10,13 +10,13 @@ import net.minecraft.world.item.Item; import net.minecraft.world.item.ItemStack; import net.minecraft.world.item.enchantment.Enchantment; -import net.minecraft.world.item.enchantment.Enchantments; import net.minecraft.world.level.Level; import net.neoforged.neoforge.common.ItemAbility; -import net.neoforged.neoforge.items.IItemHandler; +import net.neoforged.neoforge.transfer.ResourceHandler; +import net.neoforged.neoforge.transfer.item.ItemResource; +import net.neoforged.neoforge.transfer.transaction.Transaction; import vectorwing.farmersdelight.common.item.KnifeItem; import vectorwing.farmersdelight.common.tag.ModTags; -import net.neoforged.neoforge.items.ItemStackHandler; import java.util.Optional; @@ -39,20 +39,32 @@ public static boolean isKnife(ItemStack stack) { return isValidTool(stack, KnifeItem.KNIFE_HARVEST, ModTags.Items.KNIVES); } - public static void dropItems(Level level, BlockPos pos, IItemHandler inventory) { - for (int slot = 0; slot < inventory.getSlots(); slot++) - Containers.dropItemStack(level, pos.getX(), pos.getY(), pos.getZ(), inventory.getStackInSlot(slot)); + public static void dropItems(Level level, BlockPos pos, ResourceHandler inventory) { + for (int slot = 0; slot < inventory.size(); slot++) { + ItemResource resource = inventory.getResource(slot); + int amount = inventory.getAmountAsInt(slot); + if (!resource.isEmpty() && amount > 0) { + Containers.dropItemStack(level, pos.getX(), pos.getY(), pos.getZ(), resource.toStack(amount)); + } + } } - public static void clearItems(ItemStackHandler inventory) { - for (int i = 0; i < inventory.getSlots(); i++) { - inventory.setStackInSlot(i, ItemStack.EMPTY); + public static void clearItems(ResourceHandler inventory) { + try (Transaction transaction = Transaction.openRoot()) { + for (int i = 0; i < inventory.size(); i++) { + ItemResource resource = inventory.getResource(i); + int amount = inventory.getAmountAsInt(i); + if (!resource.isEmpty() && amount > 0) { + inventory.extract(i, resource, amount, transaction); + } + } + transaction.commit(); } } - public static boolean doesInventoryHaveItems(IItemHandler inventory) { - for (int i = 0; i < inventory.getSlots(); i++) { - if (!inventory.getStackInSlot(i).isEmpty()) { + public static boolean doesInventoryHaveItems(ResourceHandler inventory) { + for (int i = 0; i < inventory.size(); i++) { + if (!inventory.getResource(i).isEmpty() && inventory.getAmountAsInt(i) > 0) { return true; } } @@ -65,6 +77,17 @@ public static void spawnItemEntity(Level level, ItemStack stack, double x, doubl level.addFreshEntity(entity); } + public static ItemStack getCraftingRemainingItem(ItemStack stack) { + if (stack.isEmpty()) { + return ItemStack.EMPTY; + } + return stack.getItem().getCraftingRemainder().create(); + } + + public static boolean hasCraftingRemainingItem(ItemStack stack) { + return !getCraftingRemainingItem(stack).isEmpty(); + } + /** * Checks if the enchantment is registered, and if so, gets that enchantment's level on the passed stack. Defaults to 0 in all edge cases. * @param enchantment The ResourceKey for the enchantment diff --git a/src/main/java/vectorwing/farmersdelight/common/utility/MathUtils.java b/src/main/java/vectorwing/farmersdelight/common/utility/MathUtils.java index 904c82bf0..e690bfe2d 100644 --- a/src/main/java/vectorwing/farmersdelight/common/utility/MathUtils.java +++ b/src/main/java/vectorwing/farmersdelight/common/utility/MathUtils.java @@ -1,7 +1,7 @@ package vectorwing.farmersdelight.common.utility; -import net.minecraft.world.item.ItemStack; -import net.neoforged.neoforge.items.IItemHandlerModifiable; +import net.neoforged.neoforge.transfer.ResourceHandler; +import net.neoforged.neoforge.transfer.item.ItemResource; import javax.annotation.Nullable; import java.util.Random; @@ -14,28 +14,30 @@ public class MathUtils public static final Random RAND = new Random(); /** - * Calculates a comparator signal using an ItemHandler inventory, instead of IInventory. - * Employing a RecipeWrapper would have caused a divide-by-zero, hence why this method was made. + * Calculates a comparator signal using a transfer item handler. * * @param handler The inventory to compare. * @return The redstone signal strength. */ - public static int calcRedstoneFromItemHandler(@Nullable IItemHandlerModifiable handler) { + public static int calcRedstoneFromItemHandler(@Nullable ResourceHandler handler) { if (handler == null) { return 0; } else { int i = 0; float f = 0.0F; - for (int j = 0; j < handler.getSlots(); ++j) { - ItemStack itemstack = handler.getStackInSlot(j); - if (!itemstack.isEmpty()) { - f += (float) itemstack.getCount() / (float) Math.min(handler.getSlotLimit(j), itemstack.getMaxStackSize()); + for (int j = 0; j < handler.size(); ++j) { + ItemResource resource = handler.getResource(j); + if (!resource.isEmpty()) { + int capacity = handler.getCapacityAsInt(j, resource); + if (capacity > 0) { + f += (float) handler.getAmountAsInt(j) / (float) capacity; + } ++i; } } - f = f / (float) handler.getSlots(); + f = handler.size() == 0 ? 0.0F : f / (float) handler.size(); return net.minecraft.util.Mth.floor(f * 14.0F) + (i > 0 ? 1 : 0); } } diff --git a/src/main/java/vectorwing/farmersdelight/common/utility/RecipeUtils.java b/src/main/java/vectorwing/farmersdelight/common/utility/RecipeUtils.java index b1dedaa2a..08265324f 100644 --- a/src/main/java/vectorwing/farmersdelight/common/utility/RecipeUtils.java +++ b/src/main/java/vectorwing/farmersdelight/common/utility/RecipeUtils.java @@ -3,25 +3,34 @@ import net.minecraft.client.Minecraft; import net.minecraft.client.multiplayer.ClientLevel; import net.minecraft.core.RegistryAccess; -import net.minecraft.resources.ResourceLocation; +import net.minecraft.resources.Identifier; import net.minecraft.world.item.ItemStack; import net.minecraft.world.item.crafting.Recipe; +import net.minecraft.world.item.crafting.display.SlotDisplayContext; import vectorwing.farmersdelight.FarmersDelight; +import vectorwing.farmersdelight.common.crafting.CookingPotRecipe; +import vectorwing.farmersdelight.common.crafting.CuttingBoardRecipe; public class RecipeUtils { // Copyright (c) 2014-2015 mezz public static ItemStack getResultItem(Recipe recipe) { - Minecraft minecraft = Minecraft.getInstance(); - ClientLevel level = minecraft.level; - if (level == null) { - throw new NullPointerException("level must not be null."); + ClientLevel level = Minecraft.getInstance().level; + if (level != null && !recipe.display().isEmpty()) { + return recipe.display().getFirst().result().resolveForFirstStack(SlotDisplayContext.fromLevel(level)); } - RegistryAccess registryAccess = level.registryAccess(); - return recipe.getResultItem(registryAccess); + + RegistryAccess registryAccess = level != null ? level.registryAccess() : RegistryAccess.EMPTY; + if (recipe instanceof CookingPotRecipe cookingPotRecipe) { + return cookingPotRecipe.getResultItem(registryAccess); + } + if (recipe instanceof CuttingBoardRecipe cuttingBoardRecipe) { + return cuttingBoardRecipe.getResultItem(registryAccess); + } + return ItemStack.EMPTY; } - public static ResourceLocation FDLocation(String name) { - return ResourceLocation.fromNamespaceAndPath(FarmersDelight.MODID, name); + public static Identifier FDLocation(String name) { + return Identifier.fromNamespaceAndPath(FarmersDelight.MODID, name); } } diff --git a/src/main/java/vectorwing/farmersdelight/common/utility/TextUtils.java b/src/main/java/vectorwing/farmersdelight/common/utility/TextUtils.java index b386cd3e6..b3de066a9 100644 --- a/src/main/java/vectorwing/farmersdelight/common/utility/TextUtils.java +++ b/src/main/java/vectorwing/farmersdelight/common/utility/TextUtils.java @@ -4,6 +4,7 @@ import com.mojang.datafixers.util.Pair; import net.minecraft.ChatFormatting; import net.minecraft.core.Holder; +import net.minecraft.core.component.DataComponents; import net.minecraft.network.chat.CommonComponents; import net.minecraft.network.chat.Component; import net.minecraft.network.chat.MutableComponent; @@ -12,9 +13,10 @@ import net.minecraft.world.effect.MobEffectUtil; import net.minecraft.world.entity.ai.attributes.Attribute; import net.minecraft.world.entity.ai.attributes.AttributeModifier; -import net.minecraft.world.food.FoodProperties; import net.minecraft.world.item.ItemStack; +import net.minecraft.world.item.component.Consumable; import net.minecraft.world.item.component.ItemAttributeModifiers; +import net.minecraft.world.item.consume_effects.ApplyStatusEffectsConsumeEffect; import vectorwing.farmersdelight.FarmersDelight; import java.util.List; @@ -25,6 +27,7 @@ */ public class TextUtils { + public static final MutableComponent NO_EFFECTS = Component.translatable("effect.none").withStyle(ChatFormatting.GRAY); public static final MutableComponent PLACEABLE = tooltip("placeable").withStyle(ChatFormatting.DARK_GRAY).withStyle(ChatFormatting.ITALIC); public static final MutableComponent PLACEABLE_SNEAKING = tooltip("placeable_sneaking").withStyle(ChatFormatting.DARK_GRAY).withStyle(ChatFormatting.ITALIC); public static final MutableComponent DEBUG_ITEM = tooltip("debug_item").withStyle(ChatFormatting.RED); @@ -80,55 +83,61 @@ public static String subtitleKey(String key, Object... args) { * An alternate version of PotionUtils.addPotionTooltip, that obtains the item's food property potion effects instead. */ public static void addFoodEffectTooltip(ItemStack stack, Consumer tooltipAdder, float durationFactor, float tickRate) { - FoodProperties foodStats = stack.getFoodProperties(null); - if (foodStats == null) { + Consumable consumable = stack.get(DataComponents.CONSUMABLE); + if (consumable == null) { return; } - List effectList = foodStats.effects(); - List, AttributeModifier>> attributeList = Lists.newArrayList(); - MutableComponent mutableComponent; - - if (!effectList.isEmpty()) { - for (FoodProperties.PossibleEffect possibleEffect : effectList) { - MobEffectInstance instance = possibleEffect.effect(); - mutableComponent = Component.translatable(instance.getDescriptionId()); - MobEffect effect = instance.getEffect().value(); - effect.createModifiers(instance.getAmplifier(), (attributeHolder, attributeModifier) -> { - attributeList.add(new Pair<>(attributeHolder, attributeModifier)); - }); - - if (instance.getAmplifier() > 0) { - mutableComponent = Component.translatable("potion.withAmplifier", mutableComponent, Component.translatable("potion.potency." + instance.getAmplifier())); + boolean hasEffects = false; + for (var consumeEffect : consumable.onConsumeEffects()) { + if (consumeEffect instanceof ApplyStatusEffectsConsumeEffect statusEffects) { + for (MobEffectInstance instance : statusEffects.effects()) { + addEffectTooltip(instance, tooltipAdder, durationFactor, tickRate); + hasEffects = true; } + } + } - if (instance.getDuration() > 20) { - mutableComponent = Component.translatable("potion.withDuration", mutableComponent, MobEffectUtil.formatDuration(instance, durationFactor, tickRate)); - } + if (!hasEffects) { + tooltipAdder.accept(NO_EFFECTS); + } + } - tooltipAdder.accept(mutableComponent.withStyle(effect.getCategory().getTooltipFormatting())); - } + public static void addEffectTooltip(MobEffectInstance instance, Consumer tooltipAdder, float durationFactor, float tickRate) { + List, AttributeModifier>> attributeList = Lists.newArrayList(); + MutableComponent mutableComponent = Component.translatable(instance.getDescriptionId()); + MobEffect effect = instance.getEffect().value(); + effect.createModifiers(instance.getAmplifier(), (attributeHolder, attributeModifier) -> { + attributeList.add(new Pair<>(attributeHolder, attributeModifier)); + }); + + if (instance.getAmplifier() > 0) { + mutableComponent = Component.translatable("potion.withAmplifier", mutableComponent, Component.translatable("potion.potency." + instance.getAmplifier())); } + if (instance.getDuration() > 20) { + mutableComponent = Component.translatable("potion.withDuration", mutableComponent, MobEffectUtil.formatDuration(instance, durationFactor, tickRate)); + } + + tooltipAdder.accept(mutableComponent.withStyle(effect.getCategory().getTooltipFormatting())); + if (!attributeList.isEmpty()) { tooltipAdder.accept(CommonComponents.EMPTY); tooltipAdder.accept(Component.translatable("potion.whenDrank").withStyle(ChatFormatting.DARK_PURPLE)); for (Pair, AttributeModifier> pair : attributeList) { - AttributeModifier attributemodifier = pair.getSecond(); - double amount = attributemodifier.amount(); - double formattedAmount; - if (attributemodifier.operation() != AttributeModifier.Operation.ADD_MULTIPLIED_BASE && attributemodifier.operation() != AttributeModifier.Operation.ADD_MULTIPLIED_TOTAL) { - formattedAmount = attributemodifier.amount(); - } else { - formattedAmount = attributemodifier.amount() * 100.0; + AttributeModifier modifier = pair.getSecond(); + double amount = modifier.amount(); + double formattedAmount = amount; + if (modifier.operation() == AttributeModifier.Operation.ADD_MULTIPLIED_BASE || modifier.operation() == AttributeModifier.Operation.ADD_MULTIPLIED_TOTAL) { + formattedAmount *= 100.0; } if (amount > 0.0) { - tooltipAdder.accept(Component.translatable("attribute.modifier.plus." + attributemodifier.operation().id(), new Object[]{ItemAttributeModifiers.ATTRIBUTE_MODIFIER_FORMAT.format(formattedAmount), Component.translatable(((Attribute) ((Holder) pair.getFirst()).value()).getDescriptionId())}).withStyle(ChatFormatting.BLUE)); + tooltipAdder.accept(Component.translatable("attribute.modifier.plus." + modifier.operation().id(), ItemAttributeModifiers.ATTRIBUTE_MODIFIER_FORMAT.format(formattedAmount), Component.translatable(pair.getFirst().value().getDescriptionId())).withStyle(ChatFormatting.BLUE)); } else if (amount < 0.0) { formattedAmount *= -1.0; - tooltipAdder.accept(Component.translatable("attribute.modifier.take." + attributemodifier.operation().id(), new Object[]{ItemAttributeModifiers.ATTRIBUTE_MODIFIER_FORMAT.format(formattedAmount), Component.translatable(((Attribute) ((Holder) pair.getFirst()).value()).getDescriptionId())}).withStyle(ChatFormatting.RED)); + tooltipAdder.accept(Component.translatable("attribute.modifier.take." + modifier.operation().id(), ItemAttributeModifiers.ATTRIBUTE_MODIFIER_FORMAT.format(formattedAmount), Component.translatable(pair.getFirst().value().getDescriptionId())).withStyle(ChatFormatting.RED)); } } } diff --git a/src/main/java/vectorwing/farmersdelight/common/world/VillageStructures.java b/src/main/java/vectorwing/farmersdelight/common/world/VillageStructures.java index 9e3c36cec..d679ed12c 100644 --- a/src/main/java/vectorwing/farmersdelight/common/world/VillageStructures.java +++ b/src/main/java/vectorwing/farmersdelight/common/world/VillageStructures.java @@ -5,7 +5,7 @@ import net.minecraft.core.Registry; import net.minecraft.core.registries.Registries; import net.minecraft.resources.ResourceKey; -import net.minecraft.resources.ResourceLocation; +import net.minecraft.resources.Identifier; import net.minecraft.world.level.block.Blocks; import net.minecraft.world.level.levelgen.structure.pools.SinglePoolElement; import net.minecraft.world.level.levelgen.structure.pools.StructurePoolElement; @@ -23,18 +23,18 @@ public class VillageStructures { public static void addNewVillageBuilding(final ServerAboutToStartEvent event) { if (Configuration.GENERATE_VILLAGE_COMPOST_HEAPS.get()) { - Registry templatePools = event.getServer().registryAccess().registry(Registries.TEMPLATE_POOL).get(); - Registry processorLists = event.getServer().registryAccess().registry(Registries.PROCESSOR_LIST).get(); + Registry templatePools = event.getServer().registryAccess().lookupOrThrow(Registries.TEMPLATE_POOL); + Registry processorLists = event.getServer().registryAccess().lookupOrThrow(Registries.PROCESSOR_LIST); - VillageStructures.addBuildingToPool(templatePools, processorLists, ResourceLocation.parse("minecraft:village/plains/houses"), FarmersDelight.MODID + ":village/houses/plains_compost_pile", 5); - VillageStructures.addBuildingToPool(templatePools, processorLists, ResourceLocation.parse("minecraft:village/snowy/houses"), FarmersDelight.MODID + ":village/houses/snowy_compost_pile", 3); - VillageStructures.addBuildingToPool(templatePools, processorLists, ResourceLocation.parse("minecraft:village/savanna/houses"), FarmersDelight.MODID + ":village/houses/savanna_compost_pile", 4); - VillageStructures.addBuildingToPool(templatePools, processorLists, ResourceLocation.parse("minecraft:village/desert/houses"), FarmersDelight.MODID + ":village/houses/desert_compost_pile", 3); - VillageStructures.addBuildingToPool(templatePools, processorLists, ResourceLocation.parse("minecraft:village/taiga/houses"), FarmersDelight.MODID + ":village/houses/taiga_compost_pile", 4); + VillageStructures.addBuildingToPool(templatePools, processorLists, Identifier.parse("minecraft:village/plains/houses"), FarmersDelight.MODID + ":village/houses/plains_compost_pile", 5); + VillageStructures.addBuildingToPool(templatePools, processorLists, Identifier.parse("minecraft:village/snowy/houses"), FarmersDelight.MODID + ":village/houses/snowy_compost_pile", 3); + VillageStructures.addBuildingToPool(templatePools, processorLists, Identifier.parse("minecraft:village/savanna/houses"), FarmersDelight.MODID + ":village/houses/savanna_compost_pile", 4); + VillageStructures.addBuildingToPool(templatePools, processorLists, Identifier.parse("minecraft:village/desert/houses"), FarmersDelight.MODID + ":village/houses/desert_compost_pile", 3); + VillageStructures.addBuildingToPool(templatePools, processorLists, Identifier.parse("minecraft:village/taiga/houses"), FarmersDelight.MODID + ":village/houses/taiga_compost_pile", 4); } if (Configuration.GENERATE_VILLAGE_FARM_FD_CROPS.get()) { - Registry processorLists = event.getServer().registryAccess().registry(Registries.PROCESSOR_LIST).orElseThrow(); + Registry processorLists = event.getServer().registryAccess().lookupOrThrow(Registries.PROCESSOR_LIST); StructureProcessor temperateCropProcessor = new RuleProcessor(List.of( new ProcessorRule(new RandomBlockMatchTest(Blocks.WHEAT, 0.3F), AlwaysTrueTest.INSTANCE, ModBlocks.CABBAGE_CROP.get().defaultBlockState()), @@ -54,20 +54,20 @@ public static void addNewVillageBuilding(final ServerAboutToStartEvent event) { new ProcessorRule(new RandomBlockMatchTest(Blocks.WHEAT, 0.3F), AlwaysTrueTest.INSTANCE, ModBlocks.TOMATO_CROP.get().defaultBlockState()) )); - addNewRuleToProcessorList(ResourceLocation.parse("minecraft:farm_plains"), temperateCropProcessor, processorLists); - addNewRuleToProcessorList(ResourceLocation.parse("minecraft:farm_savanna"), aridCropProcessor, processorLists); - addNewRuleToProcessorList(ResourceLocation.parse("minecraft:farm_snowy"), coldCropProcessor, processorLists); - addNewRuleToProcessorList(ResourceLocation.parse("minecraft:farm_taiga"), temperateCropProcessor, processorLists); - addNewRuleToProcessorList(ResourceLocation.parse("minecraft:farm_desert"), aridCropProcessor, processorLists); + addNewRuleToProcessorList(Identifier.parse("minecraft:farm_plains"), temperateCropProcessor, processorLists); + addNewRuleToProcessorList(Identifier.parse("minecraft:farm_savanna"), aridCropProcessor, processorLists); + addNewRuleToProcessorList(Identifier.parse("minecraft:farm_snowy"), coldCropProcessor, processorLists); + addNewRuleToProcessorList(Identifier.parse("minecraft:farm_taiga"), temperateCropProcessor, processorLists); + addNewRuleToProcessorList(Identifier.parse("minecraft:farm_desert"), aridCropProcessor, processorLists); } } - public static void addBuildingToPool(Registry templatePoolRegistry, Registry processorListRegistry, ResourceLocation poolRL, String nbtPieceRL, int weight) { - StructureTemplatePool pool = templatePoolRegistry.get(poolRL); + public static void addBuildingToPool(Registry templatePoolRegistry, Registry processorListRegistry, Identifier poolRL, String nbtPieceRL, int weight) { + StructureTemplatePool pool = templatePoolRegistry.getValue(poolRL); if (pool == null) return; - ResourceLocation emptyProcessor = ResourceLocation.withDefaultNamespace("empty"); - Holder processorHolder = processorListRegistry.getHolderOrThrow(ResourceKey.create(Registries.PROCESSOR_LIST, emptyProcessor)); + Identifier emptyProcessor = Identifier.withDefaultNamespace("empty"); + Holder processorHolder = processorListRegistry.getOrThrow(ResourceKey.create(Registries.PROCESSOR_LIST, emptyProcessor)); SinglePoolElement piece = SinglePoolElement.single(nbtPieceRL, processorHolder).apply(StructureTemplatePool.Projection.RIGID); @@ -80,7 +80,7 @@ public static void addBuildingToPool(Registry templatePoo pool.rawTemplates = listOfPieceEntries; } - private static void addNewRuleToProcessorList(ResourceLocation targetProcessorList, StructureProcessor processorToAdd, Registry processorListRegistry) { + private static void addNewRuleToProcessorList(Identifier targetProcessorList, StructureProcessor processorToAdd, Registry processorListRegistry) { processorListRegistry.getOptional(targetProcessorList) .ifPresent(processorList -> { List newSafeList = new ArrayList<>(processorList.list()); diff --git a/src/main/java/vectorwing/farmersdelight/common/world/WildCropGeneration.java b/src/main/java/vectorwing/farmersdelight/common/world/WildCropGeneration.java index 1e76a845a..ed7167e78 100644 --- a/src/main/java/vectorwing/farmersdelight/common/world/WildCropGeneration.java +++ b/src/main/java/vectorwing/farmersdelight/common/world/WildCropGeneration.java @@ -6,7 +6,7 @@ import net.minecraft.core.registries.Registries; import net.minecraft.data.worldgen.BootstrapContext; import net.minecraft.resources.ResourceKey; -import net.minecraft.resources.ResourceLocation; +import net.minecraft.resources.Identifier; import net.minecraft.tags.BiomeTags; import net.minecraft.tags.BlockTags; import net.minecraft.tags.TagKey; @@ -17,7 +17,6 @@ import net.minecraft.world.level.levelgen.blockpredicates.BlockPredicate; import net.minecraft.world.level.levelgen.feature.ConfiguredFeature; import net.minecraft.world.level.levelgen.feature.Feature; -import net.minecraft.world.level.levelgen.feature.configurations.RandomPatchConfiguration; import net.minecraft.world.level.levelgen.feature.configurations.SimpleBlockConfiguration; import net.minecraft.world.level.levelgen.feature.stateproviders.BlockStateProvider; import net.minecraft.world.level.levelgen.feature.stateproviders.RandomizedIntStateProvider; @@ -29,6 +28,7 @@ import vectorwing.farmersdelight.common.registry.ModBlocks; import vectorwing.farmersdelight.common.tag.ModTags; import vectorwing.farmersdelight.common.world.configuration.WildCropConfiguration; +import vectorwing.farmersdelight.common.world.configuration.WildRiceConfiguration; import vectorwing.farmersdelight.common.world.filter.BiomeTagFilter; import javax.annotation.Nullable; @@ -59,18 +59,20 @@ public class WildCropGeneration public static ResourceKey PATCH_RED_MUSHROOM_COLONIES = registerPlacedFeatureKey("patch_red_mushroom_colony"); private static ResourceKey> registerConfiguredFeatureKey(String name) { - return ResourceKey.create(Registries.CONFIGURED_FEATURE, ResourceLocation.fromNamespaceAndPath(FarmersDelight.MODID, name)); + return ResourceKey.create(Registries.CONFIGURED_FEATURE, Identifier.fromNamespaceAndPath(FarmersDelight.MODID, name)); } private static ResourceKey registerPlacedFeatureKey(String name) { - return ResourceKey.create(Registries.PLACED_FEATURE, ResourceLocation.fromNamespaceAndPath(FarmersDelight.MODID, name)); + return ResourceKey.create(Registries.PLACED_FEATURE, Identifier.fromNamespaceAndPath(FarmersDelight.MODID, name)); } public static void bootstrapConfiguredFeatures(BootstrapContext> context) { context.register(FEATURE_PATCH_SANDY_SHRUB, new ConfiguredFeature<>( - Feature.RANDOM_PATCH, - new RandomPatchConfiguration(32, 2, 3, - plantPlacedFeature(ModBlocks.SANDY_SHRUB.get(), BlockTags.SAND)) + ModBiomeFeatures.WILD_CROP.get(), + new WildCropConfiguration(32, 2, 3, + plantPlacedFeature(ModBlocks.SANDY_SHRUB.get(), BlockTags.SAND), + plantPlacedFeature(ModBlocks.SANDY_SHRUB.get(), BlockTags.SAND), + null) )); context.register(FEATURE_PATCH_WILD_CABBAGES, wildCropConfiguredFeature( ModBlocks.WILD_CABBAGES.get(), @@ -103,9 +105,7 @@ public static void bootstrapConfiguredFeatures(BootstrapContext( ModBiomeFeatures.WILD_RICE.get(), - new RandomPatchConfiguration(96, 7, 3, - plantPlacedFeature(ModBlocks.WILD_RICE.get(), BlockTags.DIRT) - ) + new WildRiceConfiguration(96, 7, 3) )); context.register(FEATURE_PATCH_BROWN_MUSHROOM_COLONIES, mushroomColonyConfiguredFeature( ModBlocks.BROWN_MUSHROOM_COLONY.get(), diff --git a/src/main/java/vectorwing/farmersdelight/common/world/configuration/WildRiceConfiguration.java b/src/main/java/vectorwing/farmersdelight/common/world/configuration/WildRiceConfiguration.java new file mode 100644 index 000000000..aa7d22f38 --- /dev/null +++ b/src/main/java/vectorwing/farmersdelight/common/world/configuration/WildRiceConfiguration.java @@ -0,0 +1,15 @@ +package vectorwing.farmersdelight.common.world.configuration; + +import com.mojang.serialization.Codec; +import com.mojang.serialization.codecs.RecordCodecBuilder; +import net.minecraft.util.ExtraCodecs; +import net.minecraft.world.level.levelgen.feature.configurations.FeatureConfiguration; + +public record WildRiceConfiguration(int tries, int xzSpread, int ySpread) implements FeatureConfiguration +{ + public static final Codec CODEC = RecordCodecBuilder.create(config -> config.group( + ExtraCodecs.POSITIVE_INT.fieldOf("tries").orElse(64).forGetter(WildRiceConfiguration::tries), + ExtraCodecs.NON_NEGATIVE_INT.fieldOf("xz_spread").orElse(4).forGetter(WildRiceConfiguration::xzSpread), + ExtraCodecs.NON_NEGATIVE_INT.fieldOf("y_spread").orElse(3).forGetter(WildRiceConfiguration::ySpread) + ).apply(config, WildRiceConfiguration::new)); +} diff --git a/src/main/java/vectorwing/farmersdelight/common/world/feature/WildRiceFeature.java b/src/main/java/vectorwing/farmersdelight/common/world/feature/WildRiceFeature.java index dbd79aadf..0d9db6fec 100644 --- a/src/main/java/vectorwing/farmersdelight/common/world/feature/WildRiceFeature.java +++ b/src/main/java/vectorwing/farmersdelight/common/world/feature/WildRiceFeature.java @@ -11,21 +11,21 @@ import net.minecraft.world.level.levelgen.Heightmap; import net.minecraft.world.level.levelgen.feature.Feature; import net.minecraft.world.level.levelgen.feature.FeaturePlaceContext; -import net.minecraft.world.level.levelgen.feature.configurations.RandomPatchConfiguration; import vectorwing.farmersdelight.common.block.WildRiceBlock; import vectorwing.farmersdelight.common.registry.ModBlocks; +import vectorwing.farmersdelight.common.world.configuration.WildRiceConfiguration; -public class WildRiceFeature extends Feature +public class WildRiceFeature extends Feature { - public WildRiceFeature(Codec configFactoryIn) { + public WildRiceFeature(Codec configFactoryIn) { super(configFactoryIn); } @Override - public boolean place(FeaturePlaceContext context) { + public boolean place(FeaturePlaceContext context) { WorldGenLevel level = context.level(); BlockPos origin = context.origin(); - RandomPatchConfiguration config = context.config(); + WildRiceConfiguration config = context.config(); RandomSource random = context.random(); BlockPos blockpos = level.getHeightmapPos(Heightmap.Types.OCEAN_FLOOR_WG, origin); diff --git a/src/main/java/vectorwing/farmersdelight/data/Advancements.java b/src/main/java/vectorwing/farmersdelight/data/Advancements.java index a0ee15fab..8798706f7 100644 --- a/src/main/java/vectorwing/farmersdelight/data/Advancements.java +++ b/src/main/java/vectorwing/farmersdelight/data/Advancements.java @@ -1,10 +1,8 @@ package vectorwing.farmersdelight.data; -import net.minecraft.MethodsReturnNonnullByDefault; import net.minecraft.core.HolderLookup; import net.minecraft.data.PackOutput; -import net.neoforged.neoforge.common.data.AdvancementProvider; -import net.neoforged.neoforge.common.data.ExistingFileHelper; +import net.minecraft.data.advancements.AdvancementProvider; import vectorwing.farmersdelight.data.advancement.FDAdvancementGenerator; import javax.annotation.ParametersAreNonnullByDefault; @@ -12,10 +10,9 @@ import java.util.concurrent.CompletableFuture; @ParametersAreNonnullByDefault -@MethodsReturnNonnullByDefault public class Advancements extends AdvancementProvider { - public Advancements(PackOutput output, CompletableFuture lookupProvider, ExistingFileHelper existingFileHelper) { - super(output, lookupProvider, existingFileHelper, List.of(new FDAdvancementGenerator())); + public Advancements(PackOutput output, CompletableFuture lookupProvider) { + super(output, lookupProvider, List.of(new FDAdvancementGenerator())); } } diff --git a/src/main/java/vectorwing/farmersdelight/data/BlockStates.java b/src/main/java/vectorwing/farmersdelight/data/BlockStates.java index 51a62553c..869d66635 100644 --- a/src/main/java/vectorwing/farmersdelight/data/BlockStates.java +++ b/src/main/java/vectorwing/farmersdelight/data/BlockStates.java @@ -1,526 +1,794 @@ package vectorwing.farmersdelight.data; -import com.google.common.collect.Sets; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.mojang.serialization.JsonOps; +import net.minecraft.client.data.models.BlockModelGenerators; +import net.minecraft.client.data.models.ItemModelGenerators; +import net.minecraft.client.data.models.ModelProvider; +import net.minecraft.client.data.models.MultiVariant; +import net.minecraft.client.data.models.blockstates.MultiPartGenerator; +import net.minecraft.client.data.models.blockstates.PropertyDispatch; +import net.minecraft.client.data.models.blockstates.MultiVariantGenerator; +import net.minecraft.client.data.models.model.ModelLocationUtils; +import net.minecraft.client.data.models.model.ModelTemplate; +import net.minecraft.client.data.models.model.ModelTemplates; +import net.minecraft.client.data.models.model.TextureMapping; +import net.minecraft.client.data.models.model.TextureSlot; +import net.minecraft.client.resources.model.sprite.Material; +import net.minecraft.client.renderer.block.dispatch.VariantMutator; import net.minecraft.core.Direction; -import net.minecraft.core.registries.BuiltInRegistries; +import net.minecraft.core.Holder; import net.minecraft.data.PackOutput; -import net.minecraft.resources.ResourceLocation; -import net.minecraft.world.level.block.*; -import net.minecraft.world.level.block.state.BlockState; -import net.minecraft.world.level.block.state.properties.*; -import net.neoforged.neoforge.client.model.generators.BlockStateProvider; -import net.neoforged.neoforge.client.model.generators.ConfiguredModel; -import net.neoforged.neoforge.client.model.generators.ModelFile; -import net.neoforged.neoforge.client.model.generators.ModelProvider; -import net.neoforged.neoforge.common.data.ExistingFileHelper; +import net.minecraft.resources.Identifier; +import net.minecraft.world.item.Item; +import net.minecraft.world.level.block.Block; +import net.minecraft.world.level.block.CrossCollisionBlock; +import net.minecraft.world.level.block.DoublePlantBlock; +import net.minecraft.world.level.block.FenceGateBlock; +import net.minecraft.world.level.block.state.properties.DoubleBlockHalf; +import net.minecraft.world.level.block.state.properties.BedPart; +import net.minecraft.world.level.block.state.properties.IntegerProperty; import vectorwing.farmersdelight.FarmersDelight; -import vectorwing.farmersdelight.common.block.*; +import vectorwing.farmersdelight.common.block.AbstractStoveBlock; +import vectorwing.farmersdelight.common.block.BasketBlock; +import vectorwing.farmersdelight.common.block.BuddingBushBlock; +import vectorwing.farmersdelight.common.block.CabinetBlock; +import vectorwing.farmersdelight.common.block.CabbageBlock; +import vectorwing.farmersdelight.common.block.CookingPotBlock; +import vectorwing.farmersdelight.common.block.CuttingBoardBlock; +import vectorwing.farmersdelight.common.block.FeastBlock; +import vectorwing.farmersdelight.common.block.MushroomColonyBlock; +import vectorwing.farmersdelight.common.block.OnionBlock; +import vectorwing.farmersdelight.common.block.OrganicCompostBlock; +import vectorwing.farmersdelight.common.block.PieBlock; +import vectorwing.farmersdelight.common.block.RichSoilFarmlandBlock; +import vectorwing.farmersdelight.common.block.RiceBaleBlock; +import vectorwing.farmersdelight.common.block.RiceBlock; +import vectorwing.farmersdelight.common.block.RicePaniclesBlock; +import vectorwing.farmersdelight.common.block.RopeBlock; +import vectorwing.farmersdelight.common.block.SkilletBlock; +import vectorwing.farmersdelight.common.block.TatamiBlock; +import vectorwing.farmersdelight.common.block.TatamiHalfMatBlock; +import vectorwing.farmersdelight.common.block.TatamiMatBlock; +import vectorwing.farmersdelight.common.block.TomatoBlock; +import vectorwing.farmersdelight.common.block.state.CookingPotSupport; import vectorwing.farmersdelight.common.registry.ModBlocks; -import javax.annotation.Nullable; -import java.util.ArrayList; -import java.util.Arrays; import java.util.List; -import java.util.Set; -import java.util.function.Function; +import java.util.Map; +import java.util.Optional; +import java.util.stream.Stream; -public class BlockStates extends BlockStateProvider +public class BlockStates extends ModelProvider { - private static final int DEFAULT_ANGLE_OFFSET = 180; + private static final TextureSlot HANDLE = TextureSlot.create("handle"); + private static final TextureSlot INNER = TextureSlot.create("inner"); + private static final TextureSlot ROPE_SIDE = TextureSlot.create("rope_side"); + private static final TextureSlot ROPE_TOP = TextureSlot.create("rope_top"); - public BlockStates(PackOutput output, ExistingFileHelper existingFileHelper) { - super(output, FarmersDelight.MODID, existingFileHelper); + public BlockStates(PackOutput output) { + super(output, FarmersDelight.MODID); } - private String blockName(Block block) { - return BuiltInRegistries.BLOCK.getKey(block).getPath(); + @Override + protected Stream> getKnownItems() { + return Stream.empty(); + } + + @Override + protected Stream> getKnownBlocks() { + return Stream.concat(Stream.concat(standingSigns().stream().flatMap(pair -> Stream.of(pair.sign(), pair.wallSign())), + hangingSigns().stream().flatMap(pair -> Stream.of(pair.sign(), pair.wallSign()))), + generatedBlocks().stream()) + .map(Block::builtInRegistryHolder); + } + + @Override + protected void registerModels(BlockModelGenerators blockModels, ItemModelGenerators itemModels) { + registerSimpleBlocks(blockModels); + standingSigns().forEach(pair -> registerStandingSign(blockModels, pair)); + hangingSigns().forEach(pair -> registerHangingSign(blockModels, pair)); } - public ResourceLocation resourceMCBlock(String path) { - return ResourceLocation.withDefaultNamespace(ModelProvider.BLOCK_FOLDER + "/" + path); + @Override + public String getName() { + return "Block Model Definitions - " + FarmersDelight.MODID; + } + + private static void registerSimpleBlocks(BlockModelGenerators blockModels) { + registerSimpleExistingBlock(blockModels, ModBlocks.SAFETY_NET.get()); + registerSimpleExistingBlock(blockModels, ModBlocks.CANVAS_RUG.get()); + registerRiceBag(blockModels); + registerBasket(blockModels, ModBlocks.WOODEN_BASKET.get()); + registerBasket(blockModels, ModBlocks.BAMBOO_BASKET.get()); + registerDirectionalBottomTop(blockModels, ModBlocks.RICE_BALE.get()); + registerRope(blockModels); + registerRopeFence(blockModels); + registerRopeFenceGate(blockModels); + registerTatami(blockModels); + registerFullTatamiMat(blockModels); + registerCuttingBoard(blockModels); + registerHalfTatami(blockModels); + registerCrate(blockModels, ModBlocks.CARROT_CRATE.get(), "carrot"); + registerCrate(blockModels, ModBlocks.POTATO_CRATE.get(), "potato"); + registerCrate(blockModels, ModBlocks.BEETROOT_CRATE.get(), "beetroot"); + registerCrate(blockModels, ModBlocks.CABBAGE_CRATE.get(), "cabbage"); + registerCrate(blockModels, ModBlocks.TOMATO_CRATE.get(), "tomato"); + registerCrate(blockModels, ModBlocks.ONION_CRATE.get(), "onion"); + registerStrawBale(blockModels); + registerRichSoil(blockModels); + registerRichSoilFarmland(blockModels); + registerOrganicCompost(blockModels); + registerCabinet(blockModels, ModBlocks.OAK_CABINET.get(), "oak"); + registerCabinet(blockModels, ModBlocks.BIRCH_CABINET.get(), "birch"); + registerCabinet(blockModels, ModBlocks.SPRUCE_CABINET.get(), "spruce"); + registerCabinet(blockModels, ModBlocks.JUNGLE_CABINET.get(), "jungle"); + registerCabinet(blockModels, ModBlocks.ACACIA_CABINET.get(), "acacia"); + registerCabinet(blockModels, ModBlocks.DARK_OAK_CABINET.get(), "dark_oak"); + registerCabinet(blockModels, ModBlocks.MANGROVE_CABINET.get(), "mangrove"); + registerCabinet(blockModels, ModBlocks.CHERRY_CABINET.get(), "cherry"); + registerCabinet(blockModels, ModBlocks.BAMBOO_CABINET.get(), "bamboo"); + registerCabinet(blockModels, ModBlocks.CRIMSON_CABINET.get(), "crimson"); + registerCabinet(blockModels, ModBlocks.WARPED_CABINET.get(), "warped"); + registerCookingPot(blockModels); + registerSkillet(blockModels); + registerStove(blockModels); + registerPie(blockModels, ModBlocks.APPLE_PIE.get()); + registerCustomPie(blockModels, ModBlocks.CHOCOLATE_PIE.get()); + registerPie(blockModels, ModBlocks.SWEET_BERRY_CHEESECAKE.get()); + registerPie(blockModels, ModBlocks.PUMPKIN_PIE.get()); + registerFeast(blockModels, (FeastBlock) ModBlocks.STUFFED_PUMPKIN_BLOCK.get()); + registerFeast(blockModels, (FeastBlock) ModBlocks.ROAST_CHICKEN_BLOCK.get()); + registerFeast(blockModels, (FeastBlock) ModBlocks.HONEY_GLAZED_HAM_BLOCK.get()); + registerFeast(blockModels, (FeastBlock) ModBlocks.SHEPHERDS_PIE_BLOCK.get()); + registerFeast(blockModels, (FeastBlock) ModBlocks.GLEAMING_SALAD_BLOCK.get()); + registerFeast(blockModels, (FeastBlock) ModBlocks.RICE_ROLL_MEDLEY_BLOCK.get()); + registerStageBlock(blockModels, ModBlocks.BROWN_MUSHROOM_COLONY.get(), MushroomColonyBlock.COLONY_AGE); + registerStageBlock(blockModels, ModBlocks.RED_MUSHROOM_COLONY.get(), MushroomColonyBlock.COLONY_AGE); + registerCustomStageBlock(blockModels, ModBlocks.CABBAGE_CROP.get(), cutoutTemplate(blockId("template_crop_cross"), TextureSlot.CROSS), TextureSlot.CROSS, CabbageBlock.AGE); + registerCustomStageBlock(blockModels, ModBlocks.ONION_CROP.get(), cutoutTemplate(Identifier.withDefaultNamespace("block/crop"), TextureSlot.CROP), TextureSlot.CROP, OnionBlock.AGE, 0, 0, 1, 1, 2, 2, 2, 3); + registerCustomStageBlock(blockModels, ModBlocks.BUDDING_TOMATO_CROP.get(), cutoutTemplate(blockId("template_crop_cross"), TextureSlot.CROSS), TextureSlot.CROSS, BuddingBushBlock.AGE, 0, 1, 2, 3, 3); + registerTomato(blockModels); + registerRopedTomato(blockModels); + registerRiceRoot(blockModels); + registerStageBlock(blockModels, ModBlocks.RICE_CROP_PANICLES.get(), RicePaniclesBlock.RICE_AGE); + registerWildCrop(blockModels, ModBlocks.SANDY_SHRUB.get()); + registerWildCrop(blockModels, ModBlocks.WILD_BEETROOTS.get()); + registerWildCrop(blockModels, ModBlocks.WILD_CABBAGES.get()); + registerWildCrop(blockModels, ModBlocks.WILD_POTATOES.get()); + registerWildCrop(blockModels, ModBlocks.WILD_TOMATOES.get()); + registerWildCrop(blockModels, ModBlocks.WILD_CARROTS.get()); + registerWildCrop(blockModels, ModBlocks.WILD_ONIONS.get()); + registerDoublePlant(blockModels, ModBlocks.WILD_RICE.get()); + } + + private static void registerSimpleExistingBlock(BlockModelGenerators blockModels, Block block) { + blockModels.blockStateOutput.accept(BlockModelGenerators.createSimpleBlock(block, BlockModelGenerators.plainVariant(ModelLocationUtils.getModelLocation(block)))); + } + + private static void registerRiceBag(BlockModelGenerators blockModels) { + Block block = ModBlocks.RICE_BAG.get(); + TextureMapping mapping = new TextureMapping() + .put(TextureSlot.PARTICLE, blockMaterial("rice_bag_top")) + .put(TextureSlot.DOWN, blockMaterial("rice_bag_bottom")) + .put(TextureSlot.UP, blockMaterial("rice_bag_top")) + .put(TextureSlot.NORTH, blockMaterial("rice_bag_side_tied")) + .put(TextureSlot.SOUTH, blockMaterial("rice_bag_side_tied")) + .put(TextureSlot.EAST, blockMaterial("rice_bag_side")) + .put(TextureSlot.WEST, blockMaterial("rice_bag_side")); + Identifier model = ModelTemplates.CUBE.create(block, mapping, blockModels.modelOutput); + blockModels.blockStateOutput.accept(BlockModelGenerators.createSimpleBlock(block, BlockModelGenerators.plainVariant(model))); + } + + private static void registerBasket(BlockModelGenerators blockModels, Block block) { + String name = blockName(block); + TextureMapping mapping = new TextureMapping() + .put(TextureSlot.BOTTOM, blockMaterial(name + "_bottom")) + .put(HANDLE, blockMaterial(name + "_handle")) + .put(TextureSlot.SIDE, blockMaterial(name + "_side")) + .put(TextureSlot.TOP, blockMaterial(name + "_top")); + Identifier model = blockTemplate("template_basket", TextureSlot.BOTTOM, HANDLE, TextureSlot.SIDE, TextureSlot.TOP) + .create(block, mapping, blockModels.modelOutput); + MultiVariant variant = BlockModelGenerators.plainVariant(model); + blockModels.blockStateOutput.accept(MultiVariantGenerator.dispatch(block, variant) + .with(PropertyDispatch.modify(BasketBlock.FACING) + .select(Direction.DOWN, BlockModelGenerators.X_ROT_180) + .select(Direction.UP, BlockModelGenerators.NOP) + .select(Direction.NORTH, BlockModelGenerators.X_ROT_90) + .select(Direction.SOUTH, BlockModelGenerators.X_ROT_90.then(BlockModelGenerators.Y_ROT_180)) + .select(Direction.WEST, BlockModelGenerators.X_ROT_90.then(BlockModelGenerators.Y_ROT_270)) + .select(Direction.EAST, BlockModelGenerators.X_ROT_90.then(BlockModelGenerators.Y_ROT_90)))); + } + + private static void registerDirectionalBottomTop(BlockModelGenerators blockModels, Block block) { + Identifier model = ModelTemplates.CUBE_BOTTOM_TOP.create(block, cubeBottomTop(blockName(block)), blockModels.modelOutput); + MultiVariant variant = BlockModelGenerators.plainVariant(model); + blockModels.blockStateOutput.accept(MultiVariantGenerator.dispatch(block, variant) + .with(PropertyDispatch.modify(RiceBaleBlock.FACING) + .select(Direction.DOWN, BlockModelGenerators.X_ROT_180) + .select(Direction.UP, BlockModelGenerators.NOP) + .select(Direction.NORTH, BlockModelGenerators.X_ROT_90) + .select(Direction.SOUTH, BlockModelGenerators.X_ROT_90.then(BlockModelGenerators.Y_ROT_180)) + .select(Direction.WEST, BlockModelGenerators.X_ROT_90.then(BlockModelGenerators.Y_ROT_270)) + .select(Direction.EAST, BlockModelGenerators.X_ROT_90.then(BlockModelGenerators.Y_ROT_90)))); + } + + private static void registerRope(BlockModelGenerators blockModels) { + Block block = ModBlocks.ROPE.get(); + blockModels.blockStateOutput.accept(MultiPartGenerator.multiPart(block) + .with(BlockModelGenerators.plainVariant(blockId("rope_post"))) + .with(BlockModelGenerators.condition(RopeBlock.TIED_TO_BELL, true), BlockModelGenerators.plainVariant(blockId("rope_bell_tie"))) + .with(BlockModelGenerators.condition(CrossCollisionBlock.NORTH, true), BlockModelGenerators.plainVariant(blockId("rope_side"))) + .with(BlockModelGenerators.condition(CrossCollisionBlock.EAST, true), BlockModelGenerators.plainVariant(blockId("rope_side")).with(BlockModelGenerators.Y_ROT_90)) + .with(BlockModelGenerators.condition(CrossCollisionBlock.SOUTH, true), BlockModelGenerators.plainVariant(blockId("rope_side_alt"))) + .with(BlockModelGenerators.condition(CrossCollisionBlock.WEST, true), BlockModelGenerators.plainVariant(blockId("rope_side_alt")).with(BlockModelGenerators.Y_ROT_90))); + } + + private static void registerRopeFence(BlockModelGenerators blockModels) { + Block block = ModBlocks.ROPE_FENCE.get(); + blockModels.blockStateOutput.accept(MultiPartGenerator.multiPart(block) + .with(BlockModelGenerators.plainVariant(blockId("rope_fence_post"))) + .with(BlockModelGenerators.condition(CrossCollisionBlock.NORTH, true), BlockModelGenerators.plainVariant(blockId("rope_fence_side"))) + .with(BlockModelGenerators.condition(CrossCollisionBlock.EAST, true), BlockModelGenerators.plainVariant(blockId("rope_fence_side")).with(BlockModelGenerators.Y_ROT_90)) + .with(BlockModelGenerators.condition(CrossCollisionBlock.SOUTH, true), BlockModelGenerators.plainVariant(blockId("rope_fence_side_alt"))) + .with(BlockModelGenerators.condition(CrossCollisionBlock.WEST, true), BlockModelGenerators.plainVariant(blockId("rope_fence_side_alt")).with(BlockModelGenerators.Y_ROT_90))); + } + + private static void registerRopeFenceGate(BlockModelGenerators blockModels) { + Block block = ModBlocks.ROPE_FENCE_GATE.get(); + blockModels.blockStateOutput.accept(MultiVariantGenerator.dispatch(block) + .with(PropertyDispatch.initial(FenceGateBlock.FACING, FenceGateBlock.IN_WALL, FenceGateBlock.OPEN) + .generate((facing, inWall, open) -> BlockModelGenerators.plainVariant(blockId("rope_fence_gate" + (inWall ? "_wall" : "") + (open ? "_open" : ""))) + .with(fenceGateRotation(facing))))); + } + + private static void registerTatami(BlockModelGenerators blockModels) { + Block block = ModBlocks.TATAMI.get(); + ModelTemplates.CUBE_ALL.create(blockId("tatami_half"), TextureMapping.cube(blockMaterial("tatami_mat_half")), blockModels.modelOutput); + blockModels.blockStateOutput.accept(MultiVariantGenerator.dispatch(block) + .with(PropertyDispatch.initial(TatamiBlock.FACING, TatamiBlock.PAIRED) + .generate((facing, paired) -> BlockModelGenerators.plainVariant(blockId(tatamiModel(facing, paired))).with(directionRotation(facing))))); + } + + private static String tatamiModel(Direction facing, boolean paired) { + if (!paired) { + return "tatami_half"; + } + return facing.getAxisDirection() == Direction.AxisDirection.POSITIVE ? "tatami_odd" : "tatami_even"; + } + + private static void registerFullTatamiMat(BlockModelGenerators blockModels) { + Block block = ModBlocks.FULL_TATAMI_MAT.get(); + blockModels.blockStateOutput.accept(MultiVariantGenerator.dispatch(block) + .with(PropertyDispatch.initial(TatamiMatBlock.FACING, TatamiMatBlock.PART) + .generate((facing, part) -> BlockModelGenerators.plainVariant(blockId(part == BedPart.HEAD ? "tatami_mat_head" : "tatami_mat_foot")) + .with(fenceGateRotation(facing))))); + } + + private static void registerCuttingBoard(BlockModelGenerators blockModels) { + Block block = ModBlocks.CUTTING_BOARD.get(); + MultiVariant variant = BlockModelGenerators.plainVariant(ModelLocationUtils.getModelLocation(block)); + blockModels.blockStateOutput.accept(MultiVariantGenerator.dispatch(block, variant) + .with(PropertyDispatch.modify(CuttingBoardBlock.FACING) + .select(Direction.EAST, BlockModelGenerators.Y_ROT_90) + .select(Direction.SOUTH, BlockModelGenerators.Y_ROT_180) + .select(Direction.WEST, BlockModelGenerators.Y_ROT_270) + .select(Direction.NORTH, BlockModelGenerators.NOP))); + } + + private static void registerHalfTatami(BlockModelGenerators blockModels) { + Block block = ModBlocks.HALF_TATAMI_MAT.get(); + MultiVariant variant = BlockModelGenerators.plainVariant(blockId("tatami_mat_half")); + blockModels.blockStateOutput.accept(MultiVariantGenerator.dispatch(block, variant) + .with(PropertyDispatch.modify(TatamiHalfMatBlock.FACING) + .select(Direction.EAST, BlockModelGenerators.Y_ROT_90) + .select(Direction.SOUTH, BlockModelGenerators.Y_ROT_180) + .select(Direction.WEST, BlockModelGenerators.Y_ROT_270) + .select(Direction.NORTH, BlockModelGenerators.NOP))); + } + + private static void registerCrate(BlockModelGenerators blockModels, Block block, String cropName) { + TextureMapping mapping = new TextureMapping() + .put(TextureSlot.BOTTOM, blockMaterial("crate_bottom")) + .put(TextureSlot.SIDE, blockMaterial(cropName + "_crate_side")) + .put(TextureSlot.TOP, blockMaterial(cropName + "_crate_top")); + Identifier model = ModelTemplates.CUBE_BOTTOM_TOP.create(block, mapping, blockModels.modelOutput); + blockModels.blockStateOutput.accept(BlockModelGenerators.createSimpleBlock(block, BlockModelGenerators.plainVariant(model))); + } + + private static void registerStrawBale(BlockModelGenerators blockModels) { + Block block = ModBlocks.STRAW_BALE.get(); + TextureMapping mapping = new TextureMapping() + .put(TextureSlot.END, blockMaterial("straw_bale_end")) + .put(TextureSlot.SIDE, blockMaterial("straw_bale_side")); + MultiVariant model = BlockModelGenerators.plainVariant(ModelTemplates.CUBE_COLUMN.create(block, mapping, blockModels.modelOutput)); + MultiVariant horizontalModel = BlockModelGenerators.plainVariant(ModelTemplates.CUBE_COLUMN_HORIZONTAL.create(block, mapping, blockModels.modelOutput)); + blockModels.blockStateOutput.accept(BlockModelGenerators.createRotatedPillarWithHorizontalVariant(block, model, horizontalModel)); + } + + private static void registerRichSoil(BlockModelGenerators blockModels) { + Block block = ModBlocks.RICH_SOIL.get(); + Identifier model = ModelTemplates.CUBE_ALL.create(block, TextureMapping.cube(blockMaterial(blockName(block))), blockModels.modelOutput); + blockModels.blockStateOutput.accept(BlockModelGenerators.createSimpleBlock(block, randomRotatedVariant(model))); + } + + private static void registerRichSoilFarmland(BlockModelGenerators blockModels) { + Block block = ModBlocks.RICH_SOIL_FARMLAND.get(); + Identifier dryModel = farmlandModel(blockModels, false); + Identifier moistModel = farmlandModel(blockModels, true); + blockModels.blockStateOutput.accept(MultiVariantGenerator.dispatch(block) + .with(PropertyDispatch.initial(RichSoilFarmlandBlock.MOISTURE) + .generate(moisture -> BlockModelGenerators.plainVariant(moisture == 7 ? moistModel : dryModel)))); + } + + private static Identifier farmlandModel(BlockModelGenerators blockModels, boolean moist) { + String name = blockName(ModBlocks.RICH_SOIL_FARMLAND.get()); + String suffix = moist ? "_moist" : ""; + TextureMapping mapping = new TextureMapping() + .put(TextureSlot.BOTTOM, blockMaterial("rich_soil")) + .put(TextureSlot.SIDE, blockMaterial(moist ? name + suffix + "_side" : "rich_soil")) + .put(TextureSlot.TOP, blockMaterial(name + suffix)); + return blockTemplate("template_farmland_custom", TextureSlot.BOTTOM, TextureSlot.SIDE, TextureSlot.TOP) + .create(blockId(name + suffix), mapping, blockModels.modelOutput); + } + + private static void registerOrganicCompost(BlockModelGenerators blockModels) { + Block block = ModBlocks.ORGANIC_COMPOST.get(); + Identifier[] models = new Identifier[4]; + for (int stage = 0; stage < models.length; stage++) { + String stageName = blockName(block) + "_stage" + stage; + models[stage] = ModelTemplates.CUBE_ALL.create(blockId(stageName), TextureMapping.cube(blockMaterial(stageName)), blockModels.modelOutput); + } + + blockModels.blockStateOutput.accept(MultiVariantGenerator.dispatch(block) + .with(PropertyDispatch.initial(OrganicCompostBlock.COMPOSTING) + .generate(composting -> randomRotatedVariant(models[composting / 2])))); + } + + private static void registerCabinet(BlockModelGenerators blockModels, Block block, String woodType) { + Identifier closedModel = cabinetModel(blockModels, block, woodType, false); + Identifier openModel = cabinetModel(blockModels, block, woodType, true); + blockModels.blockStateOutput.accept(MultiVariantGenerator.dispatch(block) + .with(PropertyDispatch.initial(CabinetBlock.FACING, CabinetBlock.OPEN) + .generate((facing, open) -> BlockModelGenerators.plainVariant(open ? openModel : closedModel).with(horizontalRotation(facing))))); + } + + private static Identifier cabinetModel(BlockModelGenerators blockModels, Block block, String woodType, boolean open) { + String suffix = open ? "_open" : ""; + TextureMapping mapping = new TextureMapping() + .put(TextureSlot.FRONT, blockMaterial(woodType + "_cabinet_front" + suffix)) + .put(TextureSlot.SIDE, blockMaterial(woodType + "_cabinet_side")) + .put(TextureSlot.TOP, blockMaterial(woodType + "_cabinet_top")); + return ModelTemplates.CUBE_ORIENTABLE.create(blockId(blockName(block) + suffix), mapping, blockModels.modelOutput); + } + + private static void registerCookingPot(BlockModelGenerators blockModels) { + Block block = ModBlocks.COOKING_POT.get(); + blockModels.blockStateOutput.accept(MultiVariantGenerator.dispatch(block) + .with(PropertyDispatch.initial(CookingPotBlock.FACING, CookingPotBlock.SUPPORT) + .generate((facing, support) -> BlockModelGenerators.plainVariant(blockId(blockName(block) + cookingPotSupportSuffix(support))).with(horizontalRotation(facing))))); + } + + private static String cookingPotSupportSuffix(CookingPotSupport support) { + return switch (support) { + case NONE -> ""; + case TRAY -> "_tray"; + case HANDLE -> "_handle"; + }; + } + + private static void registerSkillet(BlockModelGenerators blockModels) { + Block block = ModBlocks.SKILLET.get(); + blockModels.blockStateOutput.accept(MultiVariantGenerator.dispatch(block) + .with(PropertyDispatch.initial(SkilletBlock.FACING, SkilletBlock.SUPPORT) + .generate((facing, support) -> BlockModelGenerators.plainVariant(blockId(blockName(block) + (support ? "_tray" : ""))).with(horizontalRotation(facing))))); + } + + private static void registerStove(BlockModelGenerators blockModels) { + Block block = ModBlocks.STOVE.get(); + Identifier offModel = stoveModel(blockModels, false); + Identifier onModel = stoveModel(blockModels, true); + blockModels.blockStateOutput.accept(MultiVariantGenerator.dispatch(block) + .with(PropertyDispatch.initial(AbstractStoveBlock.FACING, AbstractStoveBlock.LIT) + .generate((facing, lit) -> BlockModelGenerators.plainVariant(lit ? onModel : offModel).with(horizontalRotation(facing))))); + } + + private static Identifier stoveModel(BlockModelGenerators blockModels, boolean lit) { + String suffix = lit ? "_on" : ""; + TextureMapping mapping = new TextureMapping() + .put(TextureSlot.BOTTOM, blockMaterial("stove_bottom")) + .put(TextureSlot.FRONT, blockMaterial("stove_front" + suffix)) + .put(TextureSlot.SIDE, blockMaterial("stove_side")) + .put(TextureSlot.TOP, blockMaterial("stove_top" + suffix)); + return ModelTemplates.CUBE_ORIENTABLE_TOP_BOTTOM.create(blockId("stove" + suffix), mapping, blockModels.modelOutput); + } + + private static void registerPie(BlockModelGenerators blockModels, Block block) { + Identifier wholeModel = pieModel(blockModels, block); + Identifier slice1 = pieSliceModel(blockModels, block, 1); + Identifier slice2 = pieSliceModel(blockModels, block, 2); + Identifier slice3 = pieSliceModel(blockModels, block, 3); + blockModels.blockStateOutput.accept(MultiVariantGenerator.dispatch(block) + .with(PropertyDispatch.initial(PieBlock.BITES, PieBlock.FACING) + .generate((bites, facing) -> BlockModelGenerators.plainVariant(switch (bites) { + case 1 -> slice1; + case 2 -> slice2; + case 3 -> slice3; + default -> wholeModel; + }).with(horizontalRotation(facing))))); + } + + private static void registerCustomPie(BlockModelGenerators blockModels, Block block) { + blockModels.blockStateOutput.accept(MultiVariantGenerator.dispatch(block) + .with(PropertyDispatch.initial(PieBlock.BITES, PieBlock.FACING) + .generate((bites, facing) -> BlockModelGenerators.plainVariant(blockId(blockName(block) + (bites > 0 ? "_slice" + bites : ""))) + .with(horizontalRotation(facing))))); + } + + private static Identifier pieModel(BlockModelGenerators blockModels, Block block) { + String name = blockName(block); + TextureMapping mapping = new TextureMapping() + .put(TextureSlot.BOTTOM, blockMaterial("pie_bottom")) + .put(TextureSlot.SIDE, blockMaterial("pie_side")) + .put(TextureSlot.TOP, blockMaterial(name + "_top")); + return blockTemplate("template_pie", TextureSlot.BOTTOM, TextureSlot.SIDE, TextureSlot.TOP) + .create(block, mapping, blockModels.modelOutput); + } + + private static Identifier pieSliceModel(BlockModelGenerators blockModels, Block block, int bites) { + String name = blockName(block); + TextureMapping mapping = new TextureMapping() + .put(TextureSlot.BOTTOM, blockMaterial("pie_bottom")) + .put(TextureSlot.SIDE, blockMaterial("pie_side")) + .put(INNER, blockMaterial(name + "_inner")) + .put(TextureSlot.TOP, blockMaterial(name + "_top")); + return blockTemplate("template_pie_slice" + bites, TextureSlot.BOTTOM, INNER, TextureSlot.SIDE, TextureSlot.TOP) + .create(blockId(name + "_slice" + bites), mapping, blockModels.modelOutput); + } + + private static void registerFeast(BlockModelGenerators blockModels, FeastBlock block) { + IntegerProperty servingsProperty = block.getServingsProperty(); + blockModels.blockStateOutput.accept(MultiVariantGenerator.dispatch(block) + .with(PropertyDispatch.initial(FeastBlock.FACING, servingsProperty) + .generate((facing, servings) -> BlockModelGenerators.plainVariant(blockId(blockName(block) + feastSuffix(block, servingsProperty, servings))) + .with(horizontalRotation(facing))))); + } + + private static String feastSuffix(FeastBlock block, IntegerProperty servingsProperty, int servings) { + if (servings == 0) { + return block.hasLeftovers ? "_leftovers" : "_stage" + (servingsProperty.getPossibleValues().size() - 2); + } + return "_stage" + (block.getMaxServings() - servings); } - public ResourceLocation resourceFDBlock(String path) { - return ResourceLocation.fromNamespaceAndPath(FarmersDelight.MODID, ModelProvider.BLOCK_FOLDER + "/" + path); + private static void registerStageBlock(BlockModelGenerators blockModels, Block block, IntegerProperty ageProperty) { + registerCustomStageBlock(blockModels, block, cutoutTemplate(Identifier.withDefaultNamespace("block/cross"), TextureSlot.CROSS), TextureSlot.CROSS, ageProperty); } - public ModelFile existingModel(Block block) { - return new ModelFile.ExistingModelFile(resourceFDBlock(blockName(block)), models().existingFileHelper); + private static void registerCustomStageBlock(BlockModelGenerators blockModels, Block block, ModelTemplate template, TextureSlot textureSlot, IntegerProperty ageProperty, int... ageSuffixes) { + Map models = new java.util.HashMap<>(); + blockModels.blockStateOutput.accept(MultiVariantGenerator.dispatch(block) + .with(PropertyDispatch.initial(ageProperty) + .generate(age -> BlockModelGenerators.plainVariant(models.computeIfAbsent(ageSuffix(age, ageSuffixes), stage -> stageModel(blockModels, block, template, textureSlot, stage)))))); } - public ModelFile existingModel(String path) { - return new ModelFile.ExistingModelFile(resourceFDBlock(path), models().existingFileHelper); + private static int ageSuffix(int age, int... ageSuffixes) { + return ageSuffixes.length > age ? ageSuffixes[age] : age; } - @Override - protected void registerStatesAndModels() { - simpleBlock(ModBlocks.SAFETY_NET.get(), existingModel(ModBlocks.SAFETY_NET.get())); - simpleBlock(ModBlocks.CANVAS_RUG.get(), existingModel(ModBlocks.CANVAS_RUG.get())); - - String riceBag = blockName(ModBlocks.RICE_BAG.get()); - this.simpleBlock(ModBlocks.RICE_BAG.get(), models().withExistingParent(riceBag, "cube") - .texture("particle", resourceFDBlock(riceBag + "_top")) - .texture("down", resourceFDBlock(riceBag + "_bottom")) - .texture("up", resourceFDBlock(riceBag + "_top")) - .texture("north", resourceFDBlock(riceBag + "_side_tied")) - .texture("south", resourceFDBlock(riceBag + "_side_tied")) - .texture("east", resourceFDBlock(riceBag + "_side")) - .texture("west", resourceFDBlock(riceBag + "_side")) + private static Identifier stageModel(BlockModelGenerators blockModels, Block block, ModelTemplate template, TextureSlot textureSlot, int stage) { + String stageName = blockName(block) + "_stage" + stage; + return template.create(blockId(stageName), new TextureMapping().put(textureSlot, blockMaterial(stageName)), blockModels.modelOutput); + } + + private static void registerTomato(BlockModelGenerators blockModels) { + Block block = ModBlocks.TOMATO_CROP.get(); + blockModels.blockStateOutput.accept(MultiVariantGenerator.dispatch(block) + .with(PropertyDispatch.initial(TomatoBlock.VINE_AGE, TomatoBlock.ROPELOGGED) + .generate((age, ropelogged) -> BlockModelGenerators.plainVariant(ropelogged ? tomatoRopeModel(blockModels, age, true) : tomatoCropModel(blockModels, age))))); + } + + private static Identifier tomatoCropModel(BlockModelGenerators blockModels, int age) { + String stageName = blockName(ModBlocks.TOMATO_CROP.get()) + "_stage" + age; + return cutoutTemplate(blockId("template_crop_cross"), TextureSlot.CROSS) + .create(blockId(stageName), new TextureMapping().put(TextureSlot.CROSS, blockMaterial(stageName)), blockModels.modelOutput); + } + + private static Identifier tomatoRopeModel(BlockModelGenerators blockModels, int age, boolean old) { + String stageName = blockName(ModBlocks.TOMATO_CROP.get()) + (old ? "_old" : "_on_rope") + "_stage" + age; + return cutoutTemplate(blockId("template_crop_with_rope"), TextureSlot.CROP, ROPE_SIDE, ROPE_TOP) + .create(blockId(stageName), tomatoRopeMapping(stageName), blockModels.modelOutput); + } + + private static TextureMapping tomatoRopeMapping(String stageName) { + return new TextureMapping() + .put(TextureSlot.CROP, blockMaterial(stageName)) + .put(ROPE_SIDE, blockMaterial("tomatoes_coiled_rope")) + .put(ROPE_TOP, blockMaterial("rope_top")); + } + + private static void registerRopedTomato(BlockModelGenerators blockModels) { + Block block = ModBlocks.TOMATO_CROP_ON_ROPE.get(); + blockModels.blockStateOutput.accept(MultiVariantGenerator.dispatch(block) + .with(PropertyDispatch.initial(TomatoBlock.VINE_AGE) + .generate(age -> BlockModelGenerators.plainVariant(tomatoRopeModel(blockModels, age, false))))); + } + + private static void registerRiceRoot(BlockModelGenerators blockModels) { + Block block = ModBlocks.RICE_CROP.get(); + ModelTemplate template = cutoutTemplate(Identifier.withDefaultNamespace("block/cross"), TextureSlot.CROSS); + Map models = new java.util.HashMap<>(); + blockModels.blockStateOutput.accept(MultiVariantGenerator.dispatch(block) + .with(PropertyDispatch.initial(RiceBlock.AGE, RiceBlock.SUPPORTING) + .generate((age, supporting) -> { + String modelName = supporting && age == 3 ? blockName(block) + "_supporting" : blockName(block) + "_stage" + age; + Identifier model = models.computeIfAbsent(modelName, name -> template.create(blockId(name), new TextureMapping().put(TextureSlot.CROSS, blockMaterial(name)), blockModels.modelOutput)); + return BlockModelGenerators.plainVariant(model); + }))); + } + + private static void registerWildCrop(BlockModelGenerators blockModels, Block block) { + Identifier model = cutoutTemplate(Identifier.withDefaultNamespace("block/cross"), TextureSlot.CROSS) + .create(block, new TextureMapping().put(TextureSlot.CROSS, blockMaterial(blockName(block))), blockModels.modelOutput); + blockModels.blockStateOutput.accept(BlockModelGenerators.createSimpleBlock(block, BlockModelGenerators.plainVariant(model))); + } + + private static void registerDoublePlant(BlockModelGenerators blockModels, Block block) { + ModelTemplate template = cutoutTemplate(Identifier.withDefaultNamespace("block/cross"), TextureSlot.CROSS); + Identifier lowerModel = template.create(blockId(blockName(block) + "_bottom"), new TextureMapping().put(TextureSlot.CROSS, blockMaterial(blockName(block) + "_bottom")), blockModels.modelOutput); + Identifier upperModel = template.create(blockId(blockName(block) + "_top"), new TextureMapping().put(TextureSlot.CROSS, blockMaterial(blockName(block) + "_top")), blockModels.modelOutput); + blockModels.blockStateOutput.accept(MultiVariantGenerator.dispatch(block) + .with(PropertyDispatch.initial(DoublePlantBlock.HALF) + .generate(half -> BlockModelGenerators.plainVariant(half == DoubleBlockHalf.UPPER ? upperModel : lowerModel)))); + } + + private static void registerStandingSign(BlockModelGenerators blockModels, SignPair pair) { + TextureMapping mapping = signMapping(standingSignTexture(pair.texture()), Identifier.withDefaultNamespace("block/spruce_planks")); + MultiVariant rot0 = BlockModelGenerators.plainVariant(ModelTemplates.SIGN_ROT_0.create(ModelLocationUtils.getModelLocation(pair.sign(), "_rot_0"), mapping, blockModels.modelOutput)); + MultiVariant rot1 = BlockModelGenerators.plainVariant(ModelTemplates.SIGN_ROT_1.create(ModelLocationUtils.getModelLocation(pair.sign(), "_rot_1"), mapping, blockModels.modelOutput)); + MultiVariant rot2 = BlockModelGenerators.plainVariant(ModelTemplates.SIGN_ROT_2.create(ModelLocationUtils.getModelLocation(pair.sign(), "_rot_2"), mapping, blockModels.modelOutput)); + MultiVariant rot3 = BlockModelGenerators.plainVariant(ModelTemplates.SIGN_ROT_3.create(ModelLocationUtils.getModelLocation(pair.sign(), "_rot_3"), mapping, blockModels.modelOutput)); + + blockModels.blockStateOutput.accept(BlockModelGenerators.createSign(pair.sign(), rot0, rot1, rot2, rot3)); + + MultiVariant wallModel = BlockModelGenerators.plainVariant(ModelTemplates.WALL_SIGN.create(pair.wallSign(), mapping, blockModels.modelOutput)); + blockModels.blockStateOutput.accept(MultiVariantGenerator.dispatch(pair.wallSign(), wallModel).with(BlockModelGenerators.ROTATION_HORIZONTAL_FACING_ALT)); + } + + private static void registerHangingSign(BlockModelGenerators blockModels, SignPair pair) { + TextureMapping mapping = signMapping(hangingSignTexture(pair.texture()), Identifier.withDefaultNamespace("block/stripped_spruce_log")); + MultiVariant rot0 = BlockModelGenerators.plainVariant(ModelTemplates.HANGING_SIGN_ROT_0.create(ModelLocationUtils.getModelLocation(pair.sign(), "_rot_0"), mapping, blockModels.modelOutput)); + MultiVariant rot1 = BlockModelGenerators.plainVariant(ModelTemplates.HANGING_SIGN_ROT_1.create(ModelLocationUtils.getModelLocation(pair.sign(), "_rot_1"), mapping, blockModels.modelOutput)); + MultiVariant rot2 = BlockModelGenerators.plainVariant(ModelTemplates.HANGING_SIGN_ROT_2.create(ModelLocationUtils.getModelLocation(pair.sign(), "_rot_2"), mapping, blockModels.modelOutput)); + MultiVariant rot3 = BlockModelGenerators.plainVariant(ModelTemplates.HANGING_SIGN_ROT_3.create(ModelLocationUtils.getModelLocation(pair.sign(), "_rot_3"), mapping, blockModels.modelOutput)); + MultiVariant attachedRot0 = BlockModelGenerators.plainVariant(ModelTemplates.ATTACHED_HANGING_SIGN_ROT_0.create(ModelLocationUtils.getModelLocation(pair.sign(), "_attached_rot_0"), mapping, blockModels.modelOutput)); + MultiVariant attachedRot1 = BlockModelGenerators.plainVariant(ModelTemplates.ATTACHED_HANGING_SIGN_ROT_1.create(ModelLocationUtils.getModelLocation(pair.sign(), "_attached_rot_1"), mapping, blockModels.modelOutput)); + MultiVariant attachedRot2 = BlockModelGenerators.plainVariant(ModelTemplates.ATTACHED_HANGING_SIGN_ROT_2.create(ModelLocationUtils.getModelLocation(pair.sign(), "_attached_rot_2"), mapping, blockModels.modelOutput)); + MultiVariant attachedRot3 = BlockModelGenerators.plainVariant(ModelTemplates.ATTACHED_HANGING_SIGN_ROT_3.create(ModelLocationUtils.getModelLocation(pair.sign(), "_attached_rot_3"), mapping, blockModels.modelOutput)); + + blockModels.blockStateOutput.accept(BlockModelGenerators.createHangingSign(pair.sign(), rot0, rot1, rot2, rot3, attachedRot0, attachedRot1, attachedRot2, attachedRot3)); + + MultiVariant wallModel = BlockModelGenerators.plainVariant(ModelTemplates.WALL_HANGING_SIGN.create(pair.wallSign(), mapping, blockModels.modelOutput)); + blockModels.blockStateOutput.accept(MultiVariantGenerator.dispatch(pair.wallSign(), wallModel).with(BlockModelGenerators.ROTATION_HORIZONTAL_FACING_ALT)); + } + + private static TextureMapping signMapping(String texture, Identifier particle) { + return new TextureMapping() + .put(TextureSlot.ALL, new Material(Identifier.fromNamespaceAndPath(FarmersDelight.MODID, texture))) + .put(TextureSlot.PARTICLE, new Material(particle)); + } + + private static String standingSignTexture(String texture) { + return texture.equals("canvas") ? "block/canvas_sign" : "block/" + texture.substring("canvas_".length()) + "_canvas_sign"; + } + + private static String hangingSignTexture(String texture) { + return texture.equals("canvas") ? "block/hanging_canvas_sign" : "block/" + texture.substring("canvas_".length()) + "_hanging_canvas_sign"; + } + + private static TextureMapping cubeBottomTop(String baseName) { + return new TextureMapping() + .put(TextureSlot.BOTTOM, blockMaterial(baseName + "_bottom")) + .put(TextureSlot.SIDE, blockMaterial(baseName + "_side")) + .put(TextureSlot.TOP, blockMaterial(baseName + "_top")); + } + + private static MultiVariant randomRotatedVariant(Identifier model) { + return BlockModelGenerators.variants( + BlockModelGenerators.plainModel(model), + BlockModelGenerators.plainModel(model).with(BlockModelGenerators.Y_ROT_90), + BlockModelGenerators.plainModel(model).with(BlockModelGenerators.Y_ROT_180), + BlockModelGenerators.plainModel(model).with(BlockModelGenerators.Y_ROT_270)); + } + + private static VariantMutator horizontalRotation(Direction facing) { + return switch (facing) { + case EAST -> BlockModelGenerators.Y_ROT_90; + case SOUTH -> BlockModelGenerators.Y_ROT_180; + case WEST -> BlockModelGenerators.Y_ROT_270; + default -> BlockModelGenerators.NOP; + }; + } + + private static VariantMutator fenceGateRotation(Direction facing) { + return switch (facing) { + case WEST -> BlockModelGenerators.Y_ROT_90; + case NORTH -> BlockModelGenerators.Y_ROT_180; + case EAST -> BlockModelGenerators.Y_ROT_270; + default -> BlockModelGenerators.NOP; + }; + } + + private static VariantMutator directionRotation(Direction facing) { + return switch (facing) { + case DOWN -> BlockModelGenerators.X_ROT_180; + case NORTH -> BlockModelGenerators.X_ROT_90; + case SOUTH -> BlockModelGenerators.X_ROT_90.then(BlockModelGenerators.Y_ROT_180); + case WEST -> BlockModelGenerators.X_ROT_90.then(BlockModelGenerators.Y_ROT_270); + case EAST -> BlockModelGenerators.X_ROT_90.then(BlockModelGenerators.Y_ROT_90); + default -> BlockModelGenerators.NOP; + }; + } + + private static ModelTemplate blockTemplate(String parent, TextureSlot... slots) { + return new ModelTemplate(Optional.of(blockId(parent)), Optional.empty(), slots); + } + + private static ModelTemplate cutoutTemplate(Identifier parent, TextureSlot... slots) { + return new RenderTypeModelTemplate(parent, "minecraft:cutout", slots); + } + + private static Material blockMaterial(String path) { + return new Material(blockId(path)); + } + + private static Identifier blockId(String path) { + return Identifier.fromNamespaceAndPath(FarmersDelight.MODID, "block/" + path); + } + + private static String blockName(Block block) { + return ModelLocationUtils.getModelLocation(block).getPath().replace("block/", ""); + } + + private static List generatedBlocks() { + return List.of( + ModBlocks.SAFETY_NET.get(), + ModBlocks.CANVAS_RUG.get(), + ModBlocks.RICE_BAG.get(), + ModBlocks.WOODEN_BASKET.get(), + ModBlocks.BAMBOO_BASKET.get(), + ModBlocks.RICE_BALE.get(), + ModBlocks.ROPE.get(), + ModBlocks.ROPE_FENCE.get(), + ModBlocks.ROPE_FENCE_GATE.get(), + ModBlocks.TATAMI.get(), + ModBlocks.FULL_TATAMI_MAT.get(), + ModBlocks.CUTTING_BOARD.get(), + ModBlocks.HALF_TATAMI_MAT.get(), + ModBlocks.CARROT_CRATE.get(), + ModBlocks.POTATO_CRATE.get(), + ModBlocks.BEETROOT_CRATE.get(), + ModBlocks.CABBAGE_CRATE.get(), + ModBlocks.TOMATO_CRATE.get(), + ModBlocks.ONION_CRATE.get(), + ModBlocks.STRAW_BALE.get(), + ModBlocks.RICH_SOIL.get(), + ModBlocks.RICH_SOIL_FARMLAND.get(), + ModBlocks.ORGANIC_COMPOST.get(), + ModBlocks.OAK_CABINET.get(), + ModBlocks.BIRCH_CABINET.get(), + ModBlocks.SPRUCE_CABINET.get(), + ModBlocks.JUNGLE_CABINET.get(), + ModBlocks.ACACIA_CABINET.get(), + ModBlocks.DARK_OAK_CABINET.get(), + ModBlocks.MANGROVE_CABINET.get(), + ModBlocks.CHERRY_CABINET.get(), + ModBlocks.BAMBOO_CABINET.get(), + ModBlocks.CRIMSON_CABINET.get(), + ModBlocks.WARPED_CABINET.get(), + ModBlocks.COOKING_POT.get(), + ModBlocks.SKILLET.get(), + ModBlocks.STOVE.get(), + ModBlocks.APPLE_PIE.get(), + ModBlocks.CHOCOLATE_PIE.get(), + ModBlocks.SWEET_BERRY_CHEESECAKE.get(), + ModBlocks.PUMPKIN_PIE.get(), + ModBlocks.STUFFED_PUMPKIN_BLOCK.get(), + ModBlocks.ROAST_CHICKEN_BLOCK.get(), + ModBlocks.HONEY_GLAZED_HAM_BLOCK.get(), + ModBlocks.SHEPHERDS_PIE_BLOCK.get(), + ModBlocks.GLEAMING_SALAD_BLOCK.get(), + ModBlocks.RICE_ROLL_MEDLEY_BLOCK.get(), + ModBlocks.BROWN_MUSHROOM_COLONY.get(), + ModBlocks.RED_MUSHROOM_COLONY.get(), + ModBlocks.CABBAGE_CROP.get(), + ModBlocks.ONION_CROP.get(), + ModBlocks.BUDDING_TOMATO_CROP.get(), + ModBlocks.TOMATO_CROP.get(), + ModBlocks.TOMATO_CROP_ON_ROPE.get(), + ModBlocks.RICE_CROP.get(), + ModBlocks.RICE_CROP_PANICLES.get(), + ModBlocks.SANDY_SHRUB.get(), + ModBlocks.WILD_BEETROOTS.get(), + ModBlocks.WILD_CABBAGES.get(), + ModBlocks.WILD_POTATOES.get(), + ModBlocks.WILD_TOMATOES.get(), + ModBlocks.WILD_CARROTS.get(), + ModBlocks.WILD_ONIONS.get(), + ModBlocks.WILD_RICE.get() ); - customDirectionalBlock(ModBlocks.WOODEN_BASKET.get(), - $ -> modelBasket(blockName(ModBlocks.WOODEN_BASKET.get())), BasketBlock.ENABLED, BasketBlock.WATERLOGGED); - customDirectionalBlock(ModBlocks.BAMBOO_BASKET.get(), - $ -> modelBasket(blockName(ModBlocks.BAMBOO_BASKET.get())), BasketBlock.ENABLED, BasketBlock.WATERLOGGED); - customDirectionalBlock(ModBlocks.RICE_BALE.get(), - $ -> modelCubeBottomTop(blockName(ModBlocks.RICE_BALE.get()))); - customHorizontalBlock(ModBlocks.CUTTING_BOARD.get(), - $ -> existingModel(ModBlocks.CUTTING_BOARD.get()), BasketBlock.WATERLOGGED); - - horizontalBlock(ModBlocks.HALF_TATAMI_MAT.get(), existingModel("tatami_mat_half")); - - stageBlock(ModBlocks.BROWN_MUSHROOM_COLONY.get(), MushroomColonyBlock.COLONY_AGE); - stageBlock(ModBlocks.RED_MUSHROOM_COLONY.get(), MushroomColonyBlock.COLONY_AGE); - - customStageBlock(ModBlocks.CABBAGE_CROP.get(), resourceFDBlock("template_crop_cross"), "cross", CabbageBlock.AGE, new ArrayList<>()); - customStageBlock(ModBlocks.ONION_CROP.get(), mcLoc("crop"), "crop", OnionBlock.AGE, Arrays.asList(0, 0, 1, 1, 2, 2, 2, 3)); - customStageBlock(ModBlocks.BUDDING_TOMATO_CROP.get(), resourceFDBlock("template_crop_cross"), "cross", BuddingTomatoBlock.AGE, Arrays.asList(0, 1, 2, 3, 3)); - tomatoBlock(ModBlocks.TOMATO_CROP.get(), TomatoBlock.VINE_AGE, TomatoBlock.ROPELOGGED); - ropedTomatoBlock(ModBlocks.TOMATO_CROP_ON_ROPE.get(), TomatoBlock.VINE_AGE); - riceRootBlock(ModBlocks.RICE_CROP.get()); - stageBlock(ModBlocks.RICE_CROP_PANICLES.get(), RicePaniclesBlock.RICE_AGE); - - crateBlock(ModBlocks.CARROT_CRATE.get(), "carrot"); - crateBlock(ModBlocks.POTATO_CRATE.get(), "potato"); - crateBlock(ModBlocks.BEETROOT_CRATE.get(), "beetroot"); - crateBlock(ModBlocks.CABBAGE_CRATE.get(), "cabbage"); - crateBlock(ModBlocks.TOMATO_CRATE.get(), "tomato"); - crateBlock(ModBlocks.ONION_CRATE.get(), "onion"); - - axisBlock((RotatedPillarBlock) ModBlocks.STRAW_BALE.get()); - - organicCompostBlock(ModBlocks.ORGANIC_COMPOST.get()); - simpleBlock(ModBlocks.RICH_SOIL.get(), cubeRandomRotation(ModBlocks.RICH_SOIL.get(), "")); - farmlandBlock(ModBlocks.RICH_SOIL_FARMLAND.get(), ModBlocks.RICH_SOIL.get()); - - this.getMultipartBuilder(ModBlocks.ROPE.get()) - .part().modelFile(existingModel("rope_post")).addModel().end() - .part().modelFile(existingModel("rope_bell_tie")).addModel().condition(RopeBlock.TIED_TO_BELL, true).end() - .part().modelFile(existingModel("rope_side")).addModel().condition(RopeBlock.NORTH, true).end() - .part().modelFile(existingModel("rope_side")).rotationY(90).addModel().condition(RopeBlock.EAST, true).end() - .part().modelFile(existingModel("rope_side_alt")).addModel().condition(RopeBlock.SOUTH, true).end() - .part().modelFile(existingModel("rope_side_alt")).rotationY(90).addModel().condition(RopeBlock.WEST, true).end(); - - this.getMultipartBuilder(ModBlocks.ROPE_FENCE.get()) - .part().modelFile(existingModel("rope_fence_post")).addModel().end() - .part().modelFile(existingModel("rope_fence_side")).addModel().condition(FenceBlock.NORTH, true).end() - .part().modelFile(existingModel("rope_fence_side")).rotationY(90).addModel().condition(FenceBlock.EAST, true).end() - .part().modelFile(existingModel("rope_fence_side_alt")).addModel().condition(FenceBlock.SOUTH, true).end() - .part().modelFile(existingModel("rope_fence_side_alt")).rotationY(90).addModel().condition(FenceBlock.WEST, true).end(); - - ropeFenceGateBlock(ModBlocks.ROPE_FENCE_GATE.get()); - - ModelFile head = existingModel("tatami_mat_head"); - ModelFile foot = existingModel("tatami_mat_foot"); - this.getVariantBuilder(ModBlocks.FULL_TATAMI_MAT.get()).forAllStates(state -> - ConfiguredModel.builder().modelFile(state.getValue(TatamiMatBlock.PART) == BedPart.HEAD ? head : foot).rotationY((int) state.getValue(TatamiMatBlock.FACING).toYRot()).build()); - - ModelFile odd = existingModel("tatami_odd"); - ModelFile even = existingModel("tatami_even"); - ModelFile notPaired = models().cubeAll(blockName(ModBlocks.TATAMI.get()) + "_half", ResourceLocation.fromNamespaceAndPath(FarmersDelight.MODID, "block/tatami_mat_half")); - this.getVariantBuilder(ModBlocks.TATAMI.get()).forAllStates(state -> { - Direction dir = state.getValue(TatamiBlock.FACING); - return ConfiguredModel.builder().modelFile(state.getValue(TatamiBlock.PAIRED) ? dir.get3DDataValue() % 2 == 0 ? even : odd : notPaired) - .rotationX(dir == Direction.DOWN ? 180 : dir.getAxis().isHorizontal() ? 90 : 0) - .rotationY(dir.getAxis().isVertical() ? 0 : (((int) dir.toYRot()) + 180) % 360).build(); - }); - - cabinetBlock(ModBlocks.OAK_CABINET.get(), "oak"); - cabinetBlock(ModBlocks.BIRCH_CABINET.get(), "birch"); - cabinetBlock(ModBlocks.SPRUCE_CABINET.get(), "spruce"); - cabinetBlock(ModBlocks.JUNGLE_CABINET.get(), "jungle"); - cabinetBlock(ModBlocks.ACACIA_CABINET.get(), "acacia"); - cabinetBlock(ModBlocks.DARK_OAK_CABINET.get(), "dark_oak"); - cabinetBlock(ModBlocks.MANGROVE_CABINET.get(), "mangrove"); - cabinetBlock(ModBlocks.CHERRY_CABINET.get(), "cherry"); - cabinetBlock(ModBlocks.BAMBOO_CABINET.get(), "bamboo"); - cabinetBlock(ModBlocks.CRIMSON_CABINET.get(), "crimson"); - cabinetBlock(ModBlocks.WARPED_CABINET.get(), "warped"); - - pieBlock(ModBlocks.APPLE_PIE.get()); - customPieBlock(ModBlocks.CHOCOLATE_PIE.get()); - pieBlock(ModBlocks.SWEET_BERRY_CHEESECAKE.get()); - pieBlock(ModBlocks.PUMPKIN_PIE.get()); - - feastBlock((FeastBlock) ModBlocks.STUFFED_PUMPKIN_BLOCK.get()); - feastBlock((FeastBlock) ModBlocks.ROAST_CHICKEN_BLOCK.get()); - feastBlock((FeastBlock) ModBlocks.HONEY_GLAZED_HAM_BLOCK.get()); - feastBlock((FeastBlock) ModBlocks.SHEPHERDS_PIE_BLOCK.get()); - feastBlock((FeastBlock) ModBlocks.GLEAMING_SALAD_BLOCK.get()); - feastBlock((FeastBlock) ModBlocks.RICE_ROLL_MEDLEY_BLOCK.get()); - - wildCropBlock(ModBlocks.SANDY_SHRUB.get()); - wildCropBlock(ModBlocks.WILD_BEETROOTS.get()); - wildCropBlock(ModBlocks.WILD_CABBAGES.get()); - wildCropBlock(ModBlocks.WILD_POTATOES.get()); - wildCropBlock(ModBlocks.WILD_TOMATOES.get()); - wildCropBlock(ModBlocks.WILD_CARROTS.get()); - wildCropBlock(ModBlocks.WILD_ONIONS.get()); - doublePlantBlock(ModBlocks.WILD_RICE.get()); - - cookingPotBlock(ModBlocks.COOKING_POT.get()); - skilletBlock(ModBlocks.SKILLET.get()); - horizontalBlock(ModBlocks.STOVE.get(), state -> { - String name = blockName(ModBlocks.STOVE.get()); - String suffix = state.getValue(StoveBlock.LIT) ? "_on" : ""; - - return models().orientableWithBottom(name + suffix, - resourceFDBlock(name + "_side"), - resourceFDBlock(name + "_front" + suffix), - resourceFDBlock(name + "_bottom"), - resourceFDBlock(name + "_top" + suffix)); - }); - - Set canvasSigns = Sets.newHashSet( - // Standard - ModBlocks.CANVAS_SIGN.get(), - ModBlocks.HANGING_CANVAS_SIGN.get(), - ModBlocks.WHITE_CANVAS_SIGN.get(), - ModBlocks.WHITE_HANGING_CANVAS_SIGN.get(), - ModBlocks.ORANGE_CANVAS_SIGN.get(), - ModBlocks.ORANGE_HANGING_CANVAS_SIGN.get(), - ModBlocks.MAGENTA_CANVAS_SIGN.get(), - ModBlocks.MAGENTA_HANGING_CANVAS_SIGN.get(), - ModBlocks.LIGHT_BLUE_CANVAS_SIGN.get(), - ModBlocks.LIGHT_BLUE_HANGING_CANVAS_SIGN.get(), - ModBlocks.YELLOW_CANVAS_SIGN.get(), - ModBlocks.YELLOW_HANGING_CANVAS_SIGN.get(), - ModBlocks.LIME_CANVAS_SIGN.get(), - ModBlocks.LIME_HANGING_CANVAS_SIGN.get(), - ModBlocks.PINK_CANVAS_SIGN.get(), - ModBlocks.PINK_HANGING_CANVAS_SIGN.get(), - ModBlocks.GRAY_CANVAS_SIGN.get(), - ModBlocks.GRAY_HANGING_CANVAS_SIGN.get(), - ModBlocks.LIGHT_GRAY_CANVAS_SIGN.get(), - ModBlocks.LIGHT_GRAY_HANGING_CANVAS_SIGN.get(), - ModBlocks.CYAN_CANVAS_SIGN.get(), - ModBlocks.CYAN_HANGING_CANVAS_SIGN.get(), - ModBlocks.PURPLE_CANVAS_SIGN.get(), - ModBlocks.PURPLE_HANGING_CANVAS_SIGN.get(), - ModBlocks.BLUE_CANVAS_SIGN.get(), - ModBlocks.BLUE_HANGING_CANVAS_SIGN.get(), - ModBlocks.BROWN_CANVAS_SIGN.get(), - ModBlocks.BROWN_HANGING_CANVAS_SIGN.get(), - ModBlocks.GREEN_CANVAS_SIGN.get(), - ModBlocks.GREEN_HANGING_CANVAS_SIGN.get(), - ModBlocks.RED_CANVAS_SIGN.get(), - ModBlocks.RED_HANGING_CANVAS_SIGN.get(), - ModBlocks.BLACK_CANVAS_SIGN.get(), - ModBlocks.BLACK_HANGING_CANVAS_SIGN.get(), - // Wall - ModBlocks.CANVAS_WALL_SIGN.get(), - ModBlocks.HANGING_CANVAS_WALL_SIGN.get(), - ModBlocks.WHITE_CANVAS_WALL_SIGN.get(), - ModBlocks.WHITE_HANGING_CANVAS_WALL_SIGN.get(), - ModBlocks.ORANGE_CANVAS_WALL_SIGN.get(), - ModBlocks.ORANGE_HANGING_CANVAS_WALL_SIGN.get(), - ModBlocks.MAGENTA_CANVAS_WALL_SIGN.get(), - ModBlocks.MAGENTA_HANGING_CANVAS_WALL_SIGN.get(), - ModBlocks.LIGHT_BLUE_CANVAS_WALL_SIGN.get(), - ModBlocks.LIGHT_BLUE_HANGING_CANVAS_WALL_SIGN.get(), - ModBlocks.YELLOW_CANVAS_WALL_SIGN.get(), - ModBlocks.YELLOW_HANGING_CANVAS_WALL_SIGN.get(), - ModBlocks.LIME_CANVAS_WALL_SIGN.get(), - ModBlocks.LIME_HANGING_CANVAS_WALL_SIGN.get(), - ModBlocks.PINK_CANVAS_WALL_SIGN.get(), - ModBlocks.PINK_HANGING_CANVAS_WALL_SIGN.get(), - ModBlocks.GRAY_CANVAS_WALL_SIGN.get(), - ModBlocks.GRAY_HANGING_CANVAS_WALL_SIGN.get(), - ModBlocks.LIGHT_GRAY_CANVAS_WALL_SIGN.get(), - ModBlocks.LIGHT_GRAY_HANGING_CANVAS_WALL_SIGN.get(), - ModBlocks.CYAN_CANVAS_WALL_SIGN.get(), - ModBlocks.CYAN_HANGING_CANVAS_WALL_SIGN.get(), - ModBlocks.PURPLE_CANVAS_WALL_SIGN.get(), - ModBlocks.PURPLE_HANGING_CANVAS_WALL_SIGN.get(), - ModBlocks.BLUE_CANVAS_WALL_SIGN.get(), - ModBlocks.BLUE_HANGING_CANVAS_WALL_SIGN.get(), - ModBlocks.BROWN_CANVAS_WALL_SIGN.get(), - ModBlocks.BROWN_HANGING_CANVAS_WALL_SIGN.get(), - ModBlocks.GREEN_CANVAS_WALL_SIGN.get(), - ModBlocks.GREEN_HANGING_CANVAS_WALL_SIGN.get(), - ModBlocks.RED_CANVAS_WALL_SIGN.get(), - ModBlocks.RED_HANGING_CANVAS_WALL_SIGN.get(), - ModBlocks.BLACK_CANVAS_WALL_SIGN.get(), - ModBlocks.BLACK_HANGING_CANVAS_WALL_SIGN.get()); - - for (Block sign : canvasSigns) { - simpleBlock(sign, existingModel(ModBlocks.CANVAS_SIGN.get())); - } } - public void cookingPotBlock(Block block) { - getVariantBuilder(block).forAllStatesExcept(state -> { - String supportSuffix = switch (state.getValue(CookingPotBlock.SUPPORT)) { - case NONE -> ""; - case TRAY -> "_tray"; - case HANDLE -> "_handle"; - }; - return ConfiguredModel.builder() - .modelFile(existingModel(blockName(block) + supportSuffix)) - .rotationY(((int) state.getValue(BlockStateProperties.HORIZONTAL_FACING).toYRot() + DEFAULT_ANGLE_OFFSET) % 360) - .build(); - }, CookingPotBlock.WATERLOGGED); - } - - public void skilletBlock(Block block) { - getVariantBuilder(block).forAllStatesExcept(state -> { - String supportSuffix = state.getValue(SkilletBlock.SUPPORT) ? "_tray" : ""; - return ConfiguredModel.builder() - .modelFile(existingModel(blockName(block) + supportSuffix)) - .rotationY(((int) state.getValue(BlockStateProperties.HORIZONTAL_FACING).toYRot() + DEFAULT_ANGLE_OFFSET) % 360) - .build(); - }, SkilletBlock.WATERLOGGED); - } - - public void ropeFenceGateBlock(Block block) { - getVariantBuilder(block).forAllStatesExcept(state -> { - String wallInfix = state.getValue(FenceGateBlock.IN_WALL) ? "_wall" : ""; - ModelFile modelClosed = existingModel(blockName(block) + wallInfix); - ModelFile modelOpen = existingModel(blockName(block) + wallInfix + "_open"); - return ConfiguredModel.builder() - .modelFile(state.getValue(FenceGateBlock.OPEN) ? modelOpen : modelClosed) - .rotationY((int) state.getValue(FenceGateBlock.FACING).toYRot()) - .build(); - }, FenceGateBlock.POWERED); - } - - public void organicCompostBlock(Block block) { - getVariantBuilder(block).forAllStates(state -> { - int composting = state.getValue(OrganicCompostBlock.COMPOSTING); - String textureName = blockName(block) + "_stage" + composting / 2; - return ConfiguredModel.allYRotations(models().cubeAll(textureName, resourceFDBlock(textureName)), 0, false); - }); - } - - public void farmlandBlock(Block farmlandBlock, Block dirtBlock) { - getVariantBuilder(farmlandBlock).forAllStates(state -> { - int moisture = state.getValue(RichSoilFarmlandBlock.MOISTURE); - return ConfiguredModel.builder() - .modelFile(modelFarmland(blockName(farmlandBlock), blockName(dirtBlock), moisture == 7)) - .build(); - }); - } - - public void customDirectionalBlock(Block block, Function modelFunc, Property... ignored) { - getVariantBuilder(block).forAllStatesExcept(state -> { - Direction dir = state.getValue(BlockStateProperties.FACING); - return ConfiguredModel.builder() - .modelFile(modelFunc.apply(state)) - .rotationX(dir == Direction.DOWN ? 180 : dir.getAxis().isHorizontal() ? 90 : 0) - .rotationY(dir.getAxis().isVertical() ? 0 : ((int) dir.toYRot() + DEFAULT_ANGLE_OFFSET) % 360) - .build(); - }, ignored); - } - - public void customHorizontalBlock(Block block, Function modelFunc, Property... ignored) { - getVariantBuilder(block).forAllStatesExcept(state -> ConfiguredModel.builder() - .modelFile(modelFunc.apply(state)) - .rotationY(((int) state.getValue(BlockStateProperties.HORIZONTAL_FACING).toYRot() + DEFAULT_ANGLE_OFFSET) % 360) - .build(), ignored); - } - - public void stageBlock(Block block, IntegerProperty ageProperty, Property... ignored) { - getVariantBuilder(block).forAllStatesExcept(state -> { - int age = state.getValue(ageProperty); - String stageName = blockName(block) + "_stage" + age; - return ConfiguredModel.builder() - .modelFile(models().cross(stageName, resourceFDBlock(stageName)).renderType("cutout")).build(); - }, ignored); - } - - public void customStageBlock(Block block, @Nullable ResourceLocation parent, String textureKey, IntegerProperty ageProperty, List suffixes, Property... ignored) { - getVariantBuilder(block).forAllStatesExcept(state -> { - int age = state.getValue(ageProperty); - String stageName = blockName(block) + "_stage"; - stageName += suffixes.isEmpty() ? age : suffixes.get(Math.min(suffixes.size(), age)); - if (parent == null) { - return ConfiguredModel.builder() - .modelFile(models().cross(stageName, resourceFDBlock(stageName)).renderType("cutout")).build(); - } - return ConfiguredModel.builder() - .modelFile(models().singleTexture(stageName, parent, textureKey, resourceFDBlock(stageName)).renderType("cutout")).build(); - }, ignored); - } - - public void riceRootBlock(Block block) { - getVariantBuilder(block).forAllStatesExcept(state -> { - int age = state.getValue(RiceBlock.AGE); - boolean isSupporting = state.getValue(RiceBlock.SUPPORTING) && age == 3; - String stageName = isSupporting - ? blockName(block) + "_supporting" - : blockName(block) + "_stage" + age; - return ConfiguredModel.builder().modelFile(models().cross(stageName, resourceFDBlock(stageName)) - .renderType("cutout")).build(); - }); - } - - public void tomatoBlock(Block block, IntegerProperty ageProperty, BooleanProperty ropeloggedProperty, Property... ignored) { - getVariantBuilder(block).forAllStatesExcept(state -> { - int age = state.getValue(ageProperty); - boolean ropelogged = state.getValue(ropeloggedProperty); - String stageName = blockName(block) + "_stage" + age; - String ropeloggedStageName = blockName(block) + "_old_stage" + age; // TODO: Make this a customStageBlock once we remove the ropelogged state for good. - return ConfiguredModel.builder() - .modelFile(ropelogged - ? modelCropWithRope(ropeloggedStageName, "tomatoes_coiled_rope") - : models().singleTexture(stageName, resourceFDBlock("template_crop_cross"), "cross", resourceFDBlock(stageName)).renderType("cutout")).build(); - }, ignored); - } - - public void ropedTomatoBlock(Block block, IntegerProperty ageProperty, Property... ignored) { - getVariantBuilder(block).forAllStatesExcept(state -> { - int age = state.getValue(ageProperty); - String stageName = blockName(block) + "_stage" + age; - return ConfiguredModel.builder() - .modelFile(modelCropWithRope(stageName, "tomatoes_coiled_rope")).build(); - }, ignored); - } - - public void wildCropBlock(Block block) { - this.wildCropBlock(block, false); - } - - public void wildCropBlock(Block block, boolean isBushCrop) { - if (isBushCrop) { - this.simpleBlock(block, models().singleTexture(blockName(block), resourceFDBlock("template_bush_crop"), "crop", resourceFDBlock(blockName(block))).renderType("cutout")); - } else { - this.simpleBlock(block, models().cross(blockName(block), resourceFDBlock(blockName(block))).renderType("cutout")); - } + private static List standingSigns() { + return List.of( + new SignPair(ModBlocks.CANVAS_SIGN.get(), ModBlocks.CANVAS_WALL_SIGN.get(), "canvas"), + new SignPair(ModBlocks.WHITE_CANVAS_SIGN.get(), ModBlocks.WHITE_CANVAS_WALL_SIGN.get(), "canvas_white"), + new SignPair(ModBlocks.ORANGE_CANVAS_SIGN.get(), ModBlocks.ORANGE_CANVAS_WALL_SIGN.get(), "canvas_orange"), + new SignPair(ModBlocks.MAGENTA_CANVAS_SIGN.get(), ModBlocks.MAGENTA_CANVAS_WALL_SIGN.get(), "canvas_magenta"), + new SignPair(ModBlocks.LIGHT_BLUE_CANVAS_SIGN.get(), ModBlocks.LIGHT_BLUE_CANVAS_WALL_SIGN.get(), "canvas_light_blue"), + new SignPair(ModBlocks.YELLOW_CANVAS_SIGN.get(), ModBlocks.YELLOW_CANVAS_WALL_SIGN.get(), "canvas_yellow"), + new SignPair(ModBlocks.LIME_CANVAS_SIGN.get(), ModBlocks.LIME_CANVAS_WALL_SIGN.get(), "canvas_lime"), + new SignPair(ModBlocks.PINK_CANVAS_SIGN.get(), ModBlocks.PINK_CANVAS_WALL_SIGN.get(), "canvas_pink"), + new SignPair(ModBlocks.GRAY_CANVAS_SIGN.get(), ModBlocks.GRAY_CANVAS_WALL_SIGN.get(), "canvas_gray"), + new SignPair(ModBlocks.LIGHT_GRAY_CANVAS_SIGN.get(), ModBlocks.LIGHT_GRAY_CANVAS_WALL_SIGN.get(), "canvas_light_gray"), + new SignPair(ModBlocks.CYAN_CANVAS_SIGN.get(), ModBlocks.CYAN_CANVAS_WALL_SIGN.get(), "canvas_cyan"), + new SignPair(ModBlocks.PURPLE_CANVAS_SIGN.get(), ModBlocks.PURPLE_CANVAS_WALL_SIGN.get(), "canvas_purple"), + new SignPair(ModBlocks.BLUE_CANVAS_SIGN.get(), ModBlocks.BLUE_CANVAS_WALL_SIGN.get(), "canvas_blue"), + new SignPair(ModBlocks.BROWN_CANVAS_SIGN.get(), ModBlocks.BROWN_CANVAS_WALL_SIGN.get(), "canvas_brown"), + new SignPair(ModBlocks.GREEN_CANVAS_SIGN.get(), ModBlocks.GREEN_CANVAS_WALL_SIGN.get(), "canvas_green"), + new SignPair(ModBlocks.RED_CANVAS_SIGN.get(), ModBlocks.RED_CANVAS_WALL_SIGN.get(), "canvas_red"), + new SignPair(ModBlocks.BLACK_CANVAS_SIGN.get(), ModBlocks.BLACK_CANVAS_WALL_SIGN.get(), "canvas_black") + ); } - public void crateBlock(Block block, String cropName) { - this.simpleBlock(block, - models().cubeBottomTop(blockName(block), resourceFDBlock(cropName + "_crate_side"), resourceFDBlock("crate_bottom"), resourceFDBlock(cropName + "_crate_top"))); + private static List hangingSigns() { + return List.of( + new SignPair(ModBlocks.HANGING_CANVAS_SIGN.get(), ModBlocks.HANGING_CANVAS_WALL_SIGN.get(), "canvas"), + new SignPair(ModBlocks.WHITE_HANGING_CANVAS_SIGN.get(), ModBlocks.WHITE_HANGING_CANVAS_WALL_SIGN.get(), "canvas_white"), + new SignPair(ModBlocks.ORANGE_HANGING_CANVAS_SIGN.get(), ModBlocks.ORANGE_HANGING_CANVAS_WALL_SIGN.get(), "canvas_orange"), + new SignPair(ModBlocks.MAGENTA_HANGING_CANVAS_SIGN.get(), ModBlocks.MAGENTA_HANGING_CANVAS_WALL_SIGN.get(), "canvas_magenta"), + new SignPair(ModBlocks.LIGHT_BLUE_HANGING_CANVAS_SIGN.get(), ModBlocks.LIGHT_BLUE_HANGING_CANVAS_WALL_SIGN.get(), "canvas_light_blue"), + new SignPair(ModBlocks.YELLOW_HANGING_CANVAS_SIGN.get(), ModBlocks.YELLOW_HANGING_CANVAS_WALL_SIGN.get(), "canvas_yellow"), + new SignPair(ModBlocks.LIME_HANGING_CANVAS_SIGN.get(), ModBlocks.LIME_HANGING_CANVAS_WALL_SIGN.get(), "canvas_lime"), + new SignPair(ModBlocks.PINK_HANGING_CANVAS_SIGN.get(), ModBlocks.PINK_HANGING_CANVAS_WALL_SIGN.get(), "canvas_pink"), + new SignPair(ModBlocks.GRAY_HANGING_CANVAS_SIGN.get(), ModBlocks.GRAY_HANGING_CANVAS_WALL_SIGN.get(), "canvas_gray"), + new SignPair(ModBlocks.LIGHT_GRAY_HANGING_CANVAS_SIGN.get(), ModBlocks.LIGHT_GRAY_HANGING_CANVAS_WALL_SIGN.get(), "canvas_light_gray"), + new SignPair(ModBlocks.CYAN_HANGING_CANVAS_SIGN.get(), ModBlocks.CYAN_HANGING_CANVAS_WALL_SIGN.get(), "canvas_cyan"), + new SignPair(ModBlocks.PURPLE_HANGING_CANVAS_SIGN.get(), ModBlocks.PURPLE_HANGING_CANVAS_WALL_SIGN.get(), "canvas_purple"), + new SignPair(ModBlocks.BLUE_HANGING_CANVAS_SIGN.get(), ModBlocks.BLUE_HANGING_CANVAS_WALL_SIGN.get(), "canvas_blue"), + new SignPair(ModBlocks.BROWN_HANGING_CANVAS_SIGN.get(), ModBlocks.BROWN_HANGING_CANVAS_WALL_SIGN.get(), "canvas_brown"), + new SignPair(ModBlocks.GREEN_HANGING_CANVAS_SIGN.get(), ModBlocks.GREEN_HANGING_CANVAS_WALL_SIGN.get(), "canvas_green"), + new SignPair(ModBlocks.RED_HANGING_CANVAS_SIGN.get(), ModBlocks.RED_HANGING_CANVAS_WALL_SIGN.get(), "canvas_red"), + new SignPair(ModBlocks.BLACK_HANGING_CANVAS_SIGN.get(), ModBlocks.BLACK_HANGING_CANVAS_WALL_SIGN.get(), "canvas_black") + ); } - public void cabinetBlock(Block block, String woodType) { - this.horizontalBlock(block, state -> { - String suffix = state.getValue(CabinetBlock.OPEN) ? "_open" : ""; - return models().orientable(blockName(block) + suffix, - resourceFDBlock(woodType + "_cabinet_side"), - resourceFDBlock(woodType + "_cabinet_front" + suffix), - resourceFDBlock(woodType + "_cabinet_top")); - }); + private record SignPair(Block sign, Block wallSign, String texture) { } - public void feastBlock(FeastBlock block) { - getVariantBuilder(block).forAllStates(state -> { - IntegerProperty servingsProperty = block.getServingsProperty(); - int servings = state.getValue(servingsProperty); + private static class RenderTypeModelTemplate extends ModelTemplate { + private final String renderType; - String suffix = "_stage" + (block.getMaxServings() - servings); + RenderTypeModelTemplate(Identifier parent, String renderType, TextureSlot... slots) { + super(Optional.of(parent), Optional.empty(), slots); + this.renderType = renderType; + } - if (servings == 0) { - suffix = block.hasLeftovers ? "_leftovers" : "_stage" + (servingsProperty.getPossibleValues().toArray().length - 2); + @Override + public JsonObject createBaseTemplate(Identifier target, Map slots) { + JsonObject result = new JsonObject(); + this.model.ifPresent(model -> result.addProperty("parent", model.toString())); + result.addProperty("render_type", this.renderType); + if (!slots.isEmpty()) { + JsonObject textures = new JsonObject(); + slots.forEach((slot, material) -> { + JsonElement value = Material.CODEC.encodeStart(JsonOps.INSTANCE, material).getOrThrow(); + textures.add(slot.getId(), value); + }); + result.add("textures", textures); } - - return ConfiguredModel.builder() - .modelFile(existingModel(blockName(block) + suffix)) - .rotationY(((int) state.getValue(FeastBlock.FACING).toYRot() + DEFAULT_ANGLE_OFFSET) % 360) - .build(); - }); - } - - public void doublePlantBlock(Block block) { - getVariantBuilder(block) - .partialState().with(DoublePlantBlock.HALF, DoubleBlockHalf.LOWER) - .modelForState().modelFile(models().cross(blockName(block) + "_bottom", resourceFDBlock(blockName(block) + "_bottom")).renderType("cutout")).addModel() - .partialState().with(DoublePlantBlock.HALF, DoubleBlockHalf.UPPER) - .modelForState().modelFile(models().cross(blockName(block) + "_top", resourceFDBlock(blockName(block) + "_top")).renderType("cutout")).addModel(); - } - - /** - * Creates blockstates for a pie whose model is based on the pie template. - */ - public void pieBlock(Block block) { - getVariantBuilder(block).forAllStates(state -> { - int bites = state.getValue(PieBlock.BITES); - return ConfiguredModel.builder() - .modelFile(bites > 0 ? modelPieSlice(blockName(block), bites) : modelPie(blockName(block))) - .rotationY(((int) state.getValue(PieBlock.FACING).toYRot() + DEFAULT_ANGLE_OFFSET) % 360) - .build(); - }); - } - - /** - * Creates blockstates for a pie whose model is custom, in an existing file. - */ - public void customPieBlock(Block block) { - getVariantBuilder(block).forAllStates(state -> { - int bites = state.getValue(PieBlock.BITES); - String suffix = bites > 0 ? "_slice" + bites : ""; - return ConfiguredModel.builder() - .modelFile(existingModel(blockName(block) + suffix)) - .rotationY(((int) state.getValue(PieBlock.FACING).toYRot() + DEFAULT_ANGLE_OFFSET) % 360) - .build(); - }); - } - - // Model Functions -------------------------- - - public ConfiguredModel[] cubeRandomRotation(Block block, String suffix) { - String formattedName = blockName(block) + (suffix.isEmpty() ? "" : "_" + suffix); - return ConfiguredModel.allYRotations(models().cubeAll(formattedName, resourceFDBlock(formattedName)), 0, false); - } - - private ModelFile modelCubeBottomTop(String baseName) { - return models().withExistingParent(baseName, resourceMCBlock("cube_bottom_top")) - .texture("bottom", resourceFDBlock(baseName + "_bottom")) - .texture("side", resourceFDBlock(baseName + "_side")) - .texture("top", resourceFDBlock(baseName + "_top")); - } - - private ModelFile modelBasket(String baseName) { - return models().withExistingParent(baseName, resourceFDBlock("template_basket")) - .texture("bottom", resourceFDBlock(baseName + "_bottom")) - .texture("side", resourceFDBlock(baseName + "_side")) - .texture("top", resourceFDBlock(baseName + "_top")) - .texture("handle", resourceFDBlock(baseName + "_handle")); - } - - private ModelFile modelCropCross(String baseName) { - return models().withExistingParent(baseName, resourceFDBlock("template_crop_cross")) - .texture("cross", resourceFDBlock(baseName)) - .renderType("cutout"); - } - - private ModelFile modelCropWithRope(String baseName, String ropeSideTextureName) { - return models().withExistingParent(baseName, resourceFDBlock("template_crop_with_rope")) - .texture("crop", resourceFDBlock(baseName)) - .texture("rope_side", resourceFDBlock(ropeSideTextureName)) - .texture("rope_top", resourceFDBlock("rope_top")) - .renderType("cutout"); - } - - private ModelFile modelPie(String baseName) { - return models().withExistingParent(baseName, resourceFDBlock("template_pie")) - .texture("bottom", resourceFDBlock("pie_bottom")) - .texture("side", resourceFDBlock("pie_side")) - .texture("top", resourceFDBlock(baseName + "_top")); - } - - private ModelFile modelPieSlice(String baseName, int bites) { - return models().withExistingParent(baseName + "_slice" + bites, resourceFDBlock("template_pie_slice" + bites)) - .texture("bottom", resourceFDBlock("pie_bottom")) - .texture("side", resourceFDBlock("pie_side")) - .texture("inner", resourceFDBlock(baseName + "_inner")) - .texture("top", resourceFDBlock(baseName + "_top")); - } - - private ModelFile modelFarmland(String farmlandName, String dirtName, boolean moist) { - String moistSuffix = moist ? "_moist" : ""; - return models().withExistingParent(farmlandName + moistSuffix, resourceFDBlock("template_farmland_custom")) - .texture("bottom", resourceFDBlock(dirtName)) - .texture("side", resourceFDBlock(moist ? farmlandName + moistSuffix + "_side" : dirtName)) - .texture("top", resourceFDBlock(farmlandName + moistSuffix)); + return result; + } } } diff --git a/src/main/java/vectorwing/farmersdelight/data/BlockTags.java b/src/main/java/vectorwing/farmersdelight/data/BlockTags.java index 109d7c821..f597ee7d7 100644 --- a/src/main/java/vectorwing/farmersdelight/data/BlockTags.java +++ b/src/main/java/vectorwing/farmersdelight/data/BlockTags.java @@ -1,12 +1,15 @@ package vectorwing.farmersdelight.data; import net.minecraft.core.HolderLookup; +import net.minecraft.core.registries.BuiltInRegistries; +import net.minecraft.core.registries.Registries; import net.minecraft.data.PackOutput; -import net.minecraft.resources.ResourceLocation; +import net.minecraft.resources.Identifier; +import net.minecraft.resources.ResourceKey; +import net.minecraft.world.level.block.Block; import net.minecraft.world.level.block.Blocks; import net.neoforged.neoforge.common.Tags; import net.neoforged.neoforge.common.data.BlockTagsProvider; -import net.neoforged.neoforge.common.data.ExistingFileHelper; import org.jetbrains.annotations.NotNull; import vectorwing.farmersdelight.FarmersDelight; import vectorwing.farmersdelight.common.registry.ModBlocks; @@ -14,13 +17,12 @@ import vectorwing.farmersdelight.common.tag.CompatibilityTags; import vectorwing.farmersdelight.common.tag.ModTags; -import javax.annotation.Nullable; import java.util.concurrent.CompletableFuture; public class BlockTags extends BlockTagsProvider { - public BlockTags(PackOutput output, CompletableFuture lookupProvider, @Nullable ExistingFileHelper existingFileHelper) { - super(output, lookupProvider, FarmersDelight.MODID, existingFileHelper); + public BlockTags(PackOutput output, CompletableFuture lookupProvider) { + super(output, lookupProvider, FarmersDelight.MODID); } @Override @@ -34,65 +36,69 @@ protected void addTags(HolderLookup.@NotNull Provider provider) { this.registerBlockMineables(); } + private static ResourceKey key(Block block) { + return BuiltInRegistries.BLOCK.getResourceKey(block).orElseThrow(); + } + protected void registerBlockMineables() { tag(net.minecraft.tags.BlockTags.MINEABLE_WITH_AXE).add( - ModBlocks.WOODEN_BASKET.get(), - ModBlocks.BAMBOO_BASKET.get(), - ModBlocks.ROPE_FENCE.get(), - ModBlocks.ROPE_FENCE_GATE.get(), - ModBlocks.CUTTING_BOARD.get(), - ModBlocks.CARROT_CRATE.get(), - ModBlocks.POTATO_CRATE.get(), - ModBlocks.BEETROOT_CRATE.get(), - ModBlocks.CABBAGE_CRATE.get(), - ModBlocks.TOMATO_CRATE.get(), - ModBlocks.ONION_CRATE.get(), - ModBlocks.OAK_CABINET.get(), - ModBlocks.BIRCH_CABINET.get(), - ModBlocks.SPRUCE_CABINET.get(), - ModBlocks.JUNGLE_CABINET.get(), - ModBlocks.ACACIA_CABINET.get(), - ModBlocks.DARK_OAK_CABINET.get(), - ModBlocks.MANGROVE_CABINET.get(), - ModBlocks.CHERRY_CABINET.get(), - ModBlocks.BAMBOO_CABINET.get(), - ModBlocks.CRIMSON_CABINET.get(), - ModBlocks.WARPED_CABINET.get(), - ModBlocks.SANDY_SHRUB.get(), - ModBlocks.ROAST_CHICKEN_BLOCK.get(), - ModBlocks.STUFFED_PUMPKIN_BLOCK.get(), - ModBlocks.SHEPHERDS_PIE_BLOCK.get(), - ModBlocks.HONEY_GLAZED_HAM_BLOCK.get(), - ModBlocks.GLEAMING_SALAD_BLOCK.get(), - ModBlocks.RICE_ROLL_MEDLEY_BLOCK.get() + key(ModBlocks.WOODEN_BASKET.get()), + key(ModBlocks.BAMBOO_BASKET.get()), + key(ModBlocks.ROPE_FENCE.get()), + key(ModBlocks.ROPE_FENCE_GATE.get()), + key(ModBlocks.CUTTING_BOARD.get()), + key(ModBlocks.CARROT_CRATE.get()), + key(ModBlocks.POTATO_CRATE.get()), + key(ModBlocks.BEETROOT_CRATE.get()), + key(ModBlocks.CABBAGE_CRATE.get()), + key(ModBlocks.TOMATO_CRATE.get()), + key(ModBlocks.ONION_CRATE.get()), + key(ModBlocks.OAK_CABINET.get()), + key(ModBlocks.BIRCH_CABINET.get()), + key(ModBlocks.SPRUCE_CABINET.get()), + key(ModBlocks.JUNGLE_CABINET.get()), + key(ModBlocks.ACACIA_CABINET.get()), + key(ModBlocks.DARK_OAK_CABINET.get()), + key(ModBlocks.MANGROVE_CABINET.get()), + key(ModBlocks.CHERRY_CABINET.get()), + key(ModBlocks.BAMBOO_CABINET.get()), + key(ModBlocks.CRIMSON_CABINET.get()), + key(ModBlocks.WARPED_CABINET.get()), + key(ModBlocks.SANDY_SHRUB.get()), + key(ModBlocks.ROAST_CHICKEN_BLOCK.get()), + key(ModBlocks.STUFFED_PUMPKIN_BLOCK.get()), + key(ModBlocks.SHEPHERDS_PIE_BLOCK.get()), + key(ModBlocks.HONEY_GLAZED_HAM_BLOCK.get()), + key(ModBlocks.GLEAMING_SALAD_BLOCK.get()), + key(ModBlocks.RICE_ROLL_MEDLEY_BLOCK.get()) ); tag(net.minecraft.tags.BlockTags.MINEABLE_WITH_HOE).add( - ModBlocks.RICE_BALE.get(), - ModBlocks.STRAW_BALE.get() + key(ModBlocks.RICE_BALE.get()), + key(ModBlocks.STRAW_BALE.get()) ); tag(net.minecraft.tags.BlockTags.MINEABLE_WITH_PICKAXE).add( - ModBlocks.STOVE.get(), - ModBlocks.COOKING_POT.get(), - ModBlocks.SKILLET.get() + key(ModBlocks.STOVE.get()), + key(ModBlocks.COOKING_POT.get()), + key(ModBlocks.SKILLET.get()) ); tag(net.minecraft.tags.BlockTags.MINEABLE_WITH_SHOVEL).add( - ModBlocks.ORGANIC_COMPOST.get(), - ModBlocks.RICH_SOIL.get(), - ModBlocks.RICH_SOIL_FARMLAND.get() + key(ModBlocks.ORGANIC_COMPOST.get()), + key(ModBlocks.RICH_SOIL.get()), + key(ModBlocks.RICH_SOIL_FARMLAND.get()) ); tag(ModTags.Blocks.MINEABLE_WITH_KNIFE).add( - Blocks.CACTUS, - Blocks.MELON, - Blocks.PUMPKIN, - Blocks.CARVED_PUMPKIN, - Blocks.JACK_O_LANTERN, - Blocks.COBWEB, - Blocks.CAKE, - ModBlocks.RICE_BAG.get(), - ModBlocks.APPLE_PIE.get(), - ModBlocks.SWEET_BERRY_CHEESECAKE.get(), - ModBlocks.CHOCOLATE_PIE.get(), - ModBlocks.PUMPKIN_PIE.get()) + key(Blocks.CACTUS), + key(Blocks.MELON), + key(Blocks.PUMPKIN), + key(Blocks.CARVED_PUMPKIN), + key(Blocks.JACK_O_LANTERN), + key(Blocks.COBWEB), + key(Blocks.CAKE), + key(ModBlocks.RICE_BAG.get()), + key(ModBlocks.APPLE_PIE.get()), + key(ModBlocks.SWEET_BERRY_CHEESECAKE.get()), + key(ModBlocks.CHOCOLATE_PIE.get()), + key(ModBlocks.PUMPKIN_PIE.get())) .addTag(net.minecraft.tags.BlockTags.WOOL_CARPETS) .addTag(net.minecraft.tags.BlockTags.WOOL) .addTag(net.minecraft.tags.BlockTags.CANDLE_CAKES) @@ -104,129 +110,129 @@ protected void registerBlockMineables() { protected void registerMinecraftTags() { tag(net.minecraft.tags.BlockTags.CLIMBABLE).add( - ModBlocks.ROPE.get(), - ModBlocks.TOMATO_CROP_ON_ROPE.get()); - tag(net.minecraft.tags.BlockTags.FENCES).add(ModBlocks.ROPE_FENCE.get()); - tag(net.minecraft.tags.BlockTags.FENCE_GATES).add(ModBlocks.ROPE_FENCE_GATE.get()); + key(ModBlocks.ROPE.get()), + key(ModBlocks.TOMATO_CROP_ON_ROPE.get())); + tag(net.minecraft.tags.BlockTags.FENCES).add(key(ModBlocks.ROPE_FENCE.get())); + tag(net.minecraft.tags.BlockTags.FENCE_GATES).add(key(ModBlocks.ROPE_FENCE_GATE.get())); tag(net.minecraft.tags.BlockTags.REPLACEABLE).add( - ModBlocks.SANDY_SHRUB.get()); + key(ModBlocks.SANDY_SHRUB.get())); tag(net.minecraft.tags.BlockTags.REPLACEABLE_BY_TREES).add( - ModBlocks.SANDY_SHRUB.get()); - tag(net.minecraft.tags.BlockTags.BAMBOO_PLANTABLE_ON).add( - ModBlocks.RICH_SOIL.get()); - tag(net.minecraft.tags.BlockTags.MUSHROOM_GROW_BLOCK).add( - ModBlocks.ORGANIC_COMPOST.get(), - ModBlocks.RICH_SOIL.get()); + key(ModBlocks.SANDY_SHRUB.get())); + tag(net.minecraft.tags.BlockTags.SUPPORTS_BAMBOO).add( + key(ModBlocks.RICH_SOIL.get())); + tag(net.minecraft.tags.BlockTags.HUGE_BROWN_MUSHROOM_CAN_PLACE_ON).add( + key(ModBlocks.ORGANIC_COMPOST.get()), + key(ModBlocks.RICH_SOIL.get())); tag(net.minecraft.tags.BlockTags.CROPS).add( - ModBlocks.CABBAGE_CROP.get(), - ModBlocks.ONION_CROP.get(), - ModBlocks.RICE_CROP_PANICLES.get(), - ModBlocks.BUDDING_TOMATO_CROP.get(), - ModBlocks.TOMATO_CROP.get(), - ModBlocks.TOMATO_CROP_ON_ROPE.get()); + key(ModBlocks.CABBAGE_CROP.get()), + key(ModBlocks.ONION_CROP.get()), + key(ModBlocks.RICE_CROP_PANICLES.get()), + key(ModBlocks.BUDDING_TOMATO_CROP.get()), + key(ModBlocks.TOMATO_CROP.get()), + key(ModBlocks.TOMATO_CROP_ON_ROPE.get())); tag(net.minecraft.tags.BlockTags.STANDING_SIGNS).add( - ModBlocks.CANVAS_SIGN.get(), - ModBlocks.WHITE_CANVAS_SIGN.get(), - ModBlocks.ORANGE_CANVAS_SIGN.get(), - ModBlocks.MAGENTA_CANVAS_SIGN.get(), - ModBlocks.LIGHT_BLUE_CANVAS_SIGN.get(), - ModBlocks.YELLOW_CANVAS_SIGN.get(), - ModBlocks.LIME_CANVAS_SIGN.get(), - ModBlocks.PINK_CANVAS_SIGN.get(), - ModBlocks.GRAY_CANVAS_SIGN.get(), - ModBlocks.LIGHT_GRAY_CANVAS_SIGN.get(), - ModBlocks.CYAN_CANVAS_SIGN.get(), - ModBlocks.PURPLE_CANVAS_SIGN.get(), - ModBlocks.BLUE_CANVAS_SIGN.get(), - ModBlocks.BROWN_CANVAS_SIGN.get(), - ModBlocks.GREEN_CANVAS_SIGN.get(), - ModBlocks.RED_CANVAS_SIGN.get(), - ModBlocks.BLACK_CANVAS_SIGN.get()); + key(ModBlocks.CANVAS_SIGN.get()), + key(ModBlocks.WHITE_CANVAS_SIGN.get()), + key(ModBlocks.ORANGE_CANVAS_SIGN.get()), + key(ModBlocks.MAGENTA_CANVAS_SIGN.get()), + key(ModBlocks.LIGHT_BLUE_CANVAS_SIGN.get()), + key(ModBlocks.YELLOW_CANVAS_SIGN.get()), + key(ModBlocks.LIME_CANVAS_SIGN.get()), + key(ModBlocks.PINK_CANVAS_SIGN.get()), + key(ModBlocks.GRAY_CANVAS_SIGN.get()), + key(ModBlocks.LIGHT_GRAY_CANVAS_SIGN.get()), + key(ModBlocks.CYAN_CANVAS_SIGN.get()), + key(ModBlocks.PURPLE_CANVAS_SIGN.get()), + key(ModBlocks.BLUE_CANVAS_SIGN.get()), + key(ModBlocks.BROWN_CANVAS_SIGN.get()), + key(ModBlocks.GREEN_CANVAS_SIGN.get()), + key(ModBlocks.RED_CANVAS_SIGN.get()), + key(ModBlocks.BLACK_CANVAS_SIGN.get())); tag(net.minecraft.tags.BlockTags.WALL_SIGNS).add( - ModBlocks.CANVAS_WALL_SIGN.get(), - ModBlocks.WHITE_CANVAS_WALL_SIGN.get(), - ModBlocks.ORANGE_CANVAS_WALL_SIGN.get(), - ModBlocks.MAGENTA_CANVAS_WALL_SIGN.get(), - ModBlocks.LIGHT_BLUE_CANVAS_WALL_SIGN.get(), - ModBlocks.YELLOW_CANVAS_WALL_SIGN.get(), - ModBlocks.LIME_CANVAS_WALL_SIGN.get(), - ModBlocks.PINK_CANVAS_WALL_SIGN.get(), - ModBlocks.GRAY_CANVAS_WALL_SIGN.get(), - ModBlocks.LIGHT_GRAY_CANVAS_WALL_SIGN.get(), - ModBlocks.CYAN_CANVAS_WALL_SIGN.get(), - ModBlocks.PURPLE_CANVAS_WALL_SIGN.get(), - ModBlocks.BLUE_CANVAS_WALL_SIGN.get(), - ModBlocks.BROWN_CANVAS_WALL_SIGN.get(), - ModBlocks.GREEN_CANVAS_WALL_SIGN.get(), - ModBlocks.RED_CANVAS_WALL_SIGN.get(), - ModBlocks.BLACK_CANVAS_WALL_SIGN.get()); + key(ModBlocks.CANVAS_WALL_SIGN.get()), + key(ModBlocks.WHITE_CANVAS_WALL_SIGN.get()), + key(ModBlocks.ORANGE_CANVAS_WALL_SIGN.get()), + key(ModBlocks.MAGENTA_CANVAS_WALL_SIGN.get()), + key(ModBlocks.LIGHT_BLUE_CANVAS_WALL_SIGN.get()), + key(ModBlocks.YELLOW_CANVAS_WALL_SIGN.get()), + key(ModBlocks.LIME_CANVAS_WALL_SIGN.get()), + key(ModBlocks.PINK_CANVAS_WALL_SIGN.get()), + key(ModBlocks.GRAY_CANVAS_WALL_SIGN.get()), + key(ModBlocks.LIGHT_GRAY_CANVAS_WALL_SIGN.get()), + key(ModBlocks.CYAN_CANVAS_WALL_SIGN.get()), + key(ModBlocks.PURPLE_CANVAS_WALL_SIGN.get()), + key(ModBlocks.BLUE_CANVAS_WALL_SIGN.get()), + key(ModBlocks.BROWN_CANVAS_WALL_SIGN.get()), + key(ModBlocks.GREEN_CANVAS_WALL_SIGN.get()), + key(ModBlocks.RED_CANVAS_WALL_SIGN.get()), + key(ModBlocks.BLACK_CANVAS_WALL_SIGN.get())); tag(net.minecraft.tags.BlockTags.CEILING_HANGING_SIGNS).add( - ModBlocks.HANGING_CANVAS_SIGN.get(), - ModBlocks.WHITE_HANGING_CANVAS_SIGN.get(), - ModBlocks.ORANGE_HANGING_CANVAS_SIGN.get(), - ModBlocks.MAGENTA_HANGING_CANVAS_SIGN.get(), - ModBlocks.LIGHT_BLUE_HANGING_CANVAS_SIGN.get(), - ModBlocks.YELLOW_HANGING_CANVAS_SIGN.get(), - ModBlocks.LIME_HANGING_CANVAS_SIGN.get(), - ModBlocks.PINK_HANGING_CANVAS_SIGN.get(), - ModBlocks.GRAY_HANGING_CANVAS_SIGN.get(), - ModBlocks.LIGHT_GRAY_HANGING_CANVAS_SIGN.get(), - ModBlocks.CYAN_HANGING_CANVAS_SIGN.get(), - ModBlocks.PURPLE_HANGING_CANVAS_SIGN.get(), - ModBlocks.BLUE_HANGING_CANVAS_SIGN.get(), - ModBlocks.BROWN_HANGING_CANVAS_SIGN.get(), - ModBlocks.GREEN_HANGING_CANVAS_SIGN.get(), - ModBlocks.RED_HANGING_CANVAS_SIGN.get(), - ModBlocks.BLACK_HANGING_CANVAS_SIGN.get()); + key(ModBlocks.HANGING_CANVAS_SIGN.get()), + key(ModBlocks.WHITE_HANGING_CANVAS_SIGN.get()), + key(ModBlocks.ORANGE_HANGING_CANVAS_SIGN.get()), + key(ModBlocks.MAGENTA_HANGING_CANVAS_SIGN.get()), + key(ModBlocks.LIGHT_BLUE_HANGING_CANVAS_SIGN.get()), + key(ModBlocks.YELLOW_HANGING_CANVAS_SIGN.get()), + key(ModBlocks.LIME_HANGING_CANVAS_SIGN.get()), + key(ModBlocks.PINK_HANGING_CANVAS_SIGN.get()), + key(ModBlocks.GRAY_HANGING_CANVAS_SIGN.get()), + key(ModBlocks.LIGHT_GRAY_HANGING_CANVAS_SIGN.get()), + key(ModBlocks.CYAN_HANGING_CANVAS_SIGN.get()), + key(ModBlocks.PURPLE_HANGING_CANVAS_SIGN.get()), + key(ModBlocks.BLUE_HANGING_CANVAS_SIGN.get()), + key(ModBlocks.BROWN_HANGING_CANVAS_SIGN.get()), + key(ModBlocks.GREEN_HANGING_CANVAS_SIGN.get()), + key(ModBlocks.RED_HANGING_CANVAS_SIGN.get()), + key(ModBlocks.BLACK_HANGING_CANVAS_SIGN.get())); tag(net.minecraft.tags.BlockTags.WALL_HANGING_SIGNS).add( - ModBlocks.HANGING_CANVAS_WALL_SIGN.get(), - ModBlocks.WHITE_HANGING_CANVAS_WALL_SIGN.get(), - ModBlocks.ORANGE_HANGING_CANVAS_WALL_SIGN.get(), - ModBlocks.MAGENTA_HANGING_CANVAS_WALL_SIGN.get(), - ModBlocks.LIGHT_BLUE_HANGING_CANVAS_WALL_SIGN.get(), - ModBlocks.YELLOW_HANGING_CANVAS_WALL_SIGN.get(), - ModBlocks.LIME_HANGING_CANVAS_WALL_SIGN.get(), - ModBlocks.PINK_HANGING_CANVAS_WALL_SIGN.get(), - ModBlocks.GRAY_HANGING_CANVAS_WALL_SIGN.get(), - ModBlocks.LIGHT_GRAY_HANGING_CANVAS_WALL_SIGN.get(), - ModBlocks.CYAN_HANGING_CANVAS_WALL_SIGN.get(), - ModBlocks.PURPLE_HANGING_CANVAS_WALL_SIGN.get(), - ModBlocks.BLUE_HANGING_CANVAS_WALL_SIGN.get(), - ModBlocks.BROWN_HANGING_CANVAS_WALL_SIGN.get(), - ModBlocks.GREEN_HANGING_CANVAS_WALL_SIGN.get(), - ModBlocks.RED_HANGING_CANVAS_WALL_SIGN.get(), - ModBlocks.BLACK_HANGING_CANVAS_WALL_SIGN.get()); + key(ModBlocks.HANGING_CANVAS_WALL_SIGN.get()), + key(ModBlocks.WHITE_HANGING_CANVAS_WALL_SIGN.get()), + key(ModBlocks.ORANGE_HANGING_CANVAS_WALL_SIGN.get()), + key(ModBlocks.MAGENTA_HANGING_CANVAS_WALL_SIGN.get()), + key(ModBlocks.LIGHT_BLUE_HANGING_CANVAS_WALL_SIGN.get()), + key(ModBlocks.YELLOW_HANGING_CANVAS_WALL_SIGN.get()), + key(ModBlocks.LIME_HANGING_CANVAS_WALL_SIGN.get()), + key(ModBlocks.PINK_HANGING_CANVAS_WALL_SIGN.get()), + key(ModBlocks.GRAY_HANGING_CANVAS_WALL_SIGN.get()), + key(ModBlocks.LIGHT_GRAY_HANGING_CANVAS_WALL_SIGN.get()), + key(ModBlocks.CYAN_HANGING_CANVAS_WALL_SIGN.get()), + key(ModBlocks.PURPLE_HANGING_CANVAS_WALL_SIGN.get()), + key(ModBlocks.BLUE_HANGING_CANVAS_WALL_SIGN.get()), + key(ModBlocks.BROWN_HANGING_CANVAS_WALL_SIGN.get()), + key(ModBlocks.GREEN_HANGING_CANVAS_WALL_SIGN.get()), + key(ModBlocks.RED_HANGING_CANVAS_WALL_SIGN.get()), + key(ModBlocks.BLACK_HANGING_CANVAS_WALL_SIGN.get())); tag(net.minecraft.tags.BlockTags.SMALL_FLOWERS).add( - ModBlocks.WILD_CARROTS.get(), - ModBlocks.WILD_POTATOES.get(), - ModBlocks.WILD_BEETROOTS.get(), - ModBlocks.WILD_CABBAGES.get(), - ModBlocks.WILD_TOMATOES.get(), - ModBlocks.WILD_ONIONS.get() + key(ModBlocks.WILD_CARROTS.get()), + key(ModBlocks.WILD_POTATOES.get()), + key(ModBlocks.WILD_BEETROOTS.get()), + key(ModBlocks.WILD_CABBAGES.get()), + key(ModBlocks.WILD_TOMATOES.get()), + key(ModBlocks.WILD_ONIONS.get()) ); - tag(net.minecraft.tags.BlockTags.TALL_FLOWERS).add(ModBlocks.WILD_RICE.get()); + tag(net.minecraft.tags.BlockTags.FLOWERS).add(key(ModBlocks.WILD_RICE.get())); tag(net.minecraft.tags.BlockTags.DIRT).add( - ModBlocks.RICH_SOIL.get()); + key(ModBlocks.RICH_SOIL.get())); tag(net.minecraft.tags.BlockTags.MAINTAINS_FARMLAND).add( - ModBlocks.CABBAGE_CROP.get(), - ModBlocks.BUDDING_TOMATO_CROP.get(), - ModBlocks.TOMATO_CROP.get(), - ModBlocks.ONION_CROP.get(), - ModBlocks.RICE_CROP.get() + key(ModBlocks.CABBAGE_CROP.get()), + key(ModBlocks.BUDDING_TOMATO_CROP.get()), + key(ModBlocks.TOMATO_CROP.get()), + key(ModBlocks.ONION_CROP.get()), + key(ModBlocks.RICE_CROP.get()) ); tag(net.minecraft.tags.BlockTags.COMBINATION_STEP_SOUND_BLOCKS).add( - ModBlocks.CANVAS_RUG.get(), - ModBlocks.FULL_TATAMI_MAT.get(), - ModBlocks.HALF_TATAMI_MAT.get(), - ModBlocks.CUTTING_BOARD.get() + key(ModBlocks.CANVAS_RUG.get()), + key(ModBlocks.FULL_TATAMI_MAT.get()), + key(ModBlocks.HALF_TATAMI_MAT.get()), + key(ModBlocks.CUTTING_BOARD.get()) ); } protected void registerNeoForgeTags() { - tag(Tags.Blocks.ROPES).add(ModBlocks.ROPE.get()); - tag(Tags.Blocks.VILLAGER_FARMLANDS).add(ModBlocks.RICH_SOIL_FARMLAND.get()); - tag(Tags.Blocks.FENCES).add(ModBlocks.ROPE_FENCE.get()); - tag(Tags.Blocks.FENCE_GATES).add(ModBlocks.ROPE_FENCE_GATE.get()); + tag(Tags.Blocks.ROPES).add(key(ModBlocks.ROPE.get())); + tag(Tags.Blocks.VILLAGER_FARMLANDS).add(key(ModBlocks.RICH_SOIL_FARMLAND.get())); + tag(Tags.Blocks.FENCES).add(key(ModBlocks.ROPE_FENCE.get())); + tag(Tags.Blocks.FENCE_GATES).add(key(ModBlocks.ROPE_FENCE_GATE.get())); tag(Tags.Blocks.STORAGE_BLOCKS).addTags( CommonTags.Blocks.STORAGE_BLOCKS_CARROT, CommonTags.Blocks.STORAGE_BLOCKS_POTATO, @@ -242,167 +248,150 @@ protected void registerNeoForgeTags() { protected void registerCommonTags() { tag(CommonTags.Blocks.MINEABLE_WITH_KNIFE); - tag(CommonTags.Blocks.STORAGE_BLOCKS_CARROT).add(ModBlocks.CARROT_CRATE.get()); - tag(CommonTags.Blocks.STORAGE_BLOCKS_POTATO).add(ModBlocks.POTATO_CRATE.get()); - tag(CommonTags.Blocks.STORAGE_BLOCKS_BEETROOT).add(ModBlocks.BEETROOT_CRATE.get()); - tag(CommonTags.Blocks.STORAGE_BLOCKS_CABBAGE).add(ModBlocks.CABBAGE_CRATE.get()); - tag(CommonTags.Blocks.STORAGE_BLOCKS_TOMATO).add(ModBlocks.TOMATO_CRATE.get()); - tag(CommonTags.Blocks.STORAGE_BLOCKS_ONION).add(ModBlocks.ONION_CRATE.get()); - tag(CommonTags.Blocks.STORAGE_BLOCKS_RICE).add(ModBlocks.RICE_BAG.get()); - tag(CommonTags.Blocks.STORAGE_BLOCKS_RICE_PANICLE).add(ModBlocks.RICE_BALE.get()); - tag(CommonTags.Blocks.STORAGE_BLOCKS_STRAW).add(ModBlocks.STRAW_BALE.get()); + tag(CommonTags.Blocks.STORAGE_BLOCKS_CARROT).add(key(ModBlocks.CARROT_CRATE.get())); + tag(CommonTags.Blocks.STORAGE_BLOCKS_POTATO).add(key(ModBlocks.POTATO_CRATE.get())); + tag(CommonTags.Blocks.STORAGE_BLOCKS_BEETROOT).add(key(ModBlocks.BEETROOT_CRATE.get())); + tag(CommonTags.Blocks.STORAGE_BLOCKS_CABBAGE).add(key(ModBlocks.CABBAGE_CRATE.get())); + tag(CommonTags.Blocks.STORAGE_BLOCKS_TOMATO).add(key(ModBlocks.TOMATO_CRATE.get())); + tag(CommonTags.Blocks.STORAGE_BLOCKS_ONION).add(key(ModBlocks.ONION_CRATE.get())); + tag(CommonTags.Blocks.STORAGE_BLOCKS_RICE).add(key(ModBlocks.RICE_BAG.get())); + tag(CommonTags.Blocks.STORAGE_BLOCKS_RICE_PANICLE).add(key(ModBlocks.RICE_BALE.get())); + tag(CommonTags.Blocks.STORAGE_BLOCKS_STRAW).add(key(ModBlocks.STRAW_BALE.get())); } protected void registerModTags() { tag(ModTags.Blocks.FEASTS).add( - ModBlocks.ROAST_CHICKEN_BLOCK.get(), - ModBlocks.STUFFED_PUMPKIN_BLOCK.get(), - ModBlocks.SHEPHERDS_PIE_BLOCK.get(), - ModBlocks.HONEY_GLAZED_HAM_BLOCK.get(), - ModBlocks.GLEAMING_SALAD_BLOCK.get(), - ModBlocks.RICE_ROLL_MEDLEY_BLOCK.get() + key(ModBlocks.ROAST_CHICKEN_BLOCK.get()), + key(ModBlocks.STUFFED_PUMPKIN_BLOCK.get()), + key(ModBlocks.SHEPHERDS_PIE_BLOCK.get()), + key(ModBlocks.HONEY_GLAZED_HAM_BLOCK.get()), + key(ModBlocks.GLEAMING_SALAD_BLOCK.get()), + key(ModBlocks.RICE_ROLL_MEDLEY_BLOCK.get()) ); tag(ModTags.Blocks.PIES).add( - ModBlocks.APPLE_PIE.get(), - ModBlocks.SWEET_BERRY_CHEESECAKE.get(), - ModBlocks.CHOCOLATE_PIE.get(), - ModBlocks.PUMPKIN_PIE.get() + key(ModBlocks.APPLE_PIE.get()), + key(ModBlocks.SWEET_BERRY_CHEESECAKE.get()), + key(ModBlocks.CHOCOLATE_PIE.get()), + key(ModBlocks.PUMPKIN_PIE.get()) ); tag(ModTags.Blocks.TERRAIN) .addTag(net.minecraft.tags.BlockTags.DIRT) .addTag(net.minecraft.tags.BlockTags.SAND); tag(ModTags.Blocks.STRAW_BLOCKS).add( - ModBlocks.ROPE.get(), - ModBlocks.SAFETY_NET.get(), - ModBlocks.CANVAS_RUG.get(), - ModBlocks.TATAMI.get(), - ModBlocks.FULL_TATAMI_MAT.get(), - ModBlocks.HALF_TATAMI_MAT.get() + key(ModBlocks.ROPE.get()), + key(ModBlocks.SAFETY_NET.get()), + key(ModBlocks.CANVAS_RUG.get()), + key(ModBlocks.TATAMI.get()), + key(ModBlocks.FULL_TATAMI_MAT.get()), + key(ModBlocks.HALF_TATAMI_MAT.get()) ); tag(ModTags.Blocks.WILD_CROPS).add( - ModBlocks.WILD_CARROTS.get(), - ModBlocks.WILD_POTATOES.get(), - ModBlocks.WILD_BEETROOTS.get(), - ModBlocks.WILD_CABBAGES.get(), - ModBlocks.WILD_TOMATOES.get(), - ModBlocks.WILD_ONIONS.get(), - ModBlocks.WILD_RICE.get()); + key(ModBlocks.WILD_CARROTS.get()), + key(ModBlocks.WILD_POTATOES.get()), + key(ModBlocks.WILD_BEETROOTS.get()), + key(ModBlocks.WILD_CABBAGES.get()), + key(ModBlocks.WILD_TOMATOES.get()), + key(ModBlocks.WILD_ONIONS.get()), + key(ModBlocks.WILD_RICE.get())); tag(ModTags.Blocks.CABINETS_WOODEN) - .add(ModBlocks.OAK_CABINET.get()) - .add(ModBlocks.SPRUCE_CABINET.get()) - .add(ModBlocks.BIRCH_CABINET.get()) - .add(ModBlocks.JUNGLE_CABINET.get()) - .add(ModBlocks.ACACIA_CABINET.get()) - .add(ModBlocks.DARK_OAK_CABINET.get()) - .add(ModBlocks.MANGROVE_CABINET.get()) - .add(ModBlocks.CHERRY_CABINET.get()) - .add(ModBlocks.BAMBOO_CABINET.get()) - .add(ModBlocks.CRIMSON_CABINET.get()) - .add(ModBlocks.WARPED_CABINET.get()); + .add(key(ModBlocks.OAK_CABINET.get())) + .add(key(ModBlocks.SPRUCE_CABINET.get())) + .add(key(ModBlocks.BIRCH_CABINET.get())) + .add(key(ModBlocks.JUNGLE_CABINET.get())) + .add(key(ModBlocks.ACACIA_CABINET.get())) + .add(key(ModBlocks.DARK_OAK_CABINET.get())) + .add(key(ModBlocks.MANGROVE_CABINET.get())) + .add(key(ModBlocks.CHERRY_CABINET.get())) + .add(key(ModBlocks.BAMBOO_CABINET.get())) + .add(key(ModBlocks.CRIMSON_CABINET.get())) + .add(key(ModBlocks.WARPED_CABINET.get())); tag(ModTags.Blocks.CABINETS).addTag(ModTags.Blocks.CABINETS_WOODEN); tag(ModTags.Blocks.MUSHROOM_COLONIES) - .add(ModBlocks.BROWN_MUSHROOM_COLONY.get()) - .add(ModBlocks.RED_MUSHROOM_COLONY.get()); - tag(ModTags.Blocks.ROPES).add(ModBlocks.ROPE.get()) - .addOptional(ResourceLocation.parse("quark:rope")) - .addOptional(ResourceLocation.parse("supplementaries:rope")); + .add(key(ModBlocks.BROWN_MUSHROOM_COLONY.get())) + .add(key(ModBlocks.RED_MUSHROOM_COLONY.get())); + tag(ModTags.Blocks.ROPES).add(key(ModBlocks.ROPE.get())) + .addOptional(ResourceKey.create(Registries.BLOCK, Identifier.parse("quark:rope"))) + .addOptional(ResourceKey.create(Registries.BLOCK, Identifier.parse("supplementaries:rope"))); tag(ModTags.Blocks.TRAY_HEAT_SOURCES).add( - Blocks.LAVA) + key(Blocks.LAVA)) .addTag(net.minecraft.tags.BlockTags.CAMPFIRES) .addTag(net.minecraft.tags.BlockTags.FIRE); tag(ModTags.Blocks.HEAT_SOURCES).add( - Blocks.MAGMA_BLOCK, - Blocks.LAVA_CAULDRON, - ModBlocks.STOVE.get()) + key(Blocks.MAGMA_BLOCK), + key(Blocks.LAVA_CAULDRON), + key(ModBlocks.STOVE.get())) .addTag(ModTags.Blocks.TRAY_HEAT_SOURCES); tag(ModTags.Blocks.HEAT_CONDUCTORS).add( - Blocks.HOPPER) - .addOptional(ResourceLocation.parse("create:chute")); + key(Blocks.HOPPER)) + .addOptional(ResourceKey.create(Registries.BLOCK, Identifier.parse("create:chute"))); tag(ModTags.Blocks.COMPOST_ACTIVATORS).add( - Blocks.BROWN_MUSHROOM, - Blocks.RED_MUSHROOM, - Blocks.PODZOL, - Blocks.MYCELIUM, - ModBlocks.ORGANIC_COMPOST.get(), - ModBlocks.RICH_SOIL.get(), - ModBlocks.RICH_SOIL_FARMLAND.get()) + key(Blocks.BROWN_MUSHROOM), + key(Blocks.RED_MUSHROOM), + key(Blocks.PODZOL), + key(Blocks.MYCELIUM), + key(ModBlocks.ORGANIC_COMPOST.get()), + key(ModBlocks.RICH_SOIL.get()), + key(ModBlocks.RICH_SOIL_FARMLAND.get())) .addTag(ModTags.Blocks.MUSHROOM_COLONIES); tag(ModTags.Blocks.UNAFFECTED_BY_RICH_SOIL).add( - Blocks.GRASS_BLOCK, - Blocks.SHORT_GRASS, - Blocks.MOSS_BLOCK, - Blocks.CRIMSON_NYLIUM, - Blocks.WARPED_NYLIUM, - Blocks.FERN, - Blocks.TWISTING_VINES, - Blocks.TWISTING_VINES_PLANT, - Blocks.BIG_DRIPLEAF, - Blocks.BIG_DRIPLEAF_STEM, - Blocks.PINK_PETALS, - ModBlocks.SANDY_SHRUB.get()) + key(Blocks.GRASS_BLOCK), + key(Blocks.SHORT_GRASS), + key(Blocks.MOSS_BLOCK), + key(Blocks.CRIMSON_NYLIUM), + key(Blocks.WARPED_NYLIUM), + key(Blocks.FERN), + key(Blocks.TWISTING_VINES), + key(Blocks.TWISTING_VINES_PLANT), + key(Blocks.BIG_DRIPLEAF), + key(Blocks.BIG_DRIPLEAF_STEM), + key(Blocks.PINK_PETALS), + key(ModBlocks.SANDY_SHRUB.get())) .addTag(ModTags.Blocks.MUSHROOM_COLONIES) .addTag(ModTags.Blocks.WILD_CROPS) - .addTag(net.minecraft.tags.BlockTags.TALL_FLOWERS); - tag(ModTags.Blocks.MUSHROOM_COLONY_GROWABLE_ON).add(ModBlocks.RICH_SOIL.get()); - tag(ModTags.Blocks.DROPS_CAKE_SLICE).add( - Blocks.CANDLE_CAKE, - Blocks.WHITE_CANDLE_CAKE, - Blocks.ORANGE_CANDLE_CAKE, - Blocks.MAGENTA_CANDLE_CAKE, - Blocks.LIGHT_BLUE_CANDLE_CAKE, - Blocks.YELLOW_CANDLE_CAKE, - Blocks.LIME_CANDLE_CAKE, - Blocks.PINK_CANDLE_CAKE, - Blocks.GRAY_CANDLE_CAKE, - Blocks.LIGHT_GRAY_CANDLE_CAKE, - Blocks.CYAN_CANDLE_CAKE, - Blocks.PURPLE_CANDLE_CAKE, - Blocks.BLUE_CANDLE_CAKE, - Blocks.BROWN_CANDLE_CAKE, - Blocks.GREEN_CANDLE_CAKE, - Blocks.RED_CANDLE_CAKE, - Blocks.BLACK_CANDLE_CAKE); - tag(ModTags.Blocks.CAMPFIRE_SIGNAL_SMOKE).add(ModBlocks.STRAW_BALE.get()).add(ModBlocks.RICE_BALE.get()); - tag(ModTags.Blocks.PLANTED_FROM_BELOW).add(Blocks.CAVE_VINES, Blocks.CAVE_VINES_PLANT); + .addTag(net.minecraft.tags.BlockTags.FLOWERS); + tag(ModTags.Blocks.MUSHROOM_COLONY_GROWABLE_ON).add(key(ModBlocks.RICH_SOIL.get())); + tag(ModTags.Blocks.DROPS_CAKE_SLICE).addTag(net.minecraft.tags.BlockTags.CANDLE_CAKES); + tag(ModTags.Blocks.CAMPFIRE_SIGNAL_SMOKE).add(key(ModBlocks.STRAW_BALE.get())).add(key(ModBlocks.RICE_BALE.get())); + tag(ModTags.Blocks.PLANTED_FROM_BELOW).add(key(Blocks.CAVE_VINES), key(Blocks.CAVE_VINES_PLANT)); } private void registerCompatibilityTags() { - tag(CompatibilityTags.CREATE_FAN_TRANSPARENT).add(ModBlocks.SAFETY_NET.get()); - tag(CompatibilityTags.CREATE_PASSIVE_BOILER_HEATERS).add(ModBlocks.STOVE.get()); + tag(CompatibilityTags.CREATE_FAN_TRANSPARENT).add(key(ModBlocks.SAFETY_NET.get())); + tag(CompatibilityTags.CREATE_PASSIVE_BOILER_HEATERS).add(key(ModBlocks.STOVE.get())); tag(CompatibilityTags.CREATE_BRITTLE).add( - ModBlocks.CUTTING_BOARD.get(), - ModBlocks.FULL_TATAMI_MAT.get(), - ModBlocks.HALF_TATAMI_MAT.get()) + key(ModBlocks.CUTTING_BOARD.get()), + key(ModBlocks.FULL_TATAMI_MAT.get()), + key(ModBlocks.HALF_TATAMI_MAT.get())) .addTag(ModTags.Blocks.FEASTS) .addTag(ModTags.Blocks.PIES); tag(CompatibilityTags.SABLE_SUPER_LIGHT) - .add(ModBlocks.CUTTING_BOARD.get()) - .add(ModBlocks.CANVAS_RUG.get()) - .add(ModBlocks.FULL_TATAMI_MAT.get()) - .add(ModBlocks.HALF_TATAMI_MAT.get()) - .add(ModBlocks.SAFETY_NET.get()); + .add(key(ModBlocks.CUTTING_BOARD.get())) + .add(key(ModBlocks.CANVAS_RUG.get())) + .add(key(ModBlocks.FULL_TATAMI_MAT.get())) + .add(key(ModBlocks.HALF_TATAMI_MAT.get())) + .add(key(ModBlocks.SAFETY_NET.get())); tag(CompatibilityTags.SABLE_LIGHT) .addTag(ModTags.Blocks.CABINETS) - .add(ModBlocks.WOODEN_BASKET.get()) - .add(ModBlocks.BAMBOO_BASKET.get()); + .add(key(ModBlocks.WOODEN_BASKET.get())) + .add(key(ModBlocks.BAMBOO_BASKET.get())); tag(CompatibilityTags.SERENE_SEASONS_AUTUMN_CROPS_BLOCK).add( - ModBlocks.CABBAGE_CROP.get(), - ModBlocks.ONION_CROP.get(), - ModBlocks.RICE_CROP.get(), - ModBlocks.RICE_CROP_PANICLES.get()); + key(ModBlocks.CABBAGE_CROP.get()), + key(ModBlocks.ONION_CROP.get()), + key(ModBlocks.RICE_CROP.get()), + key(ModBlocks.RICE_CROP_PANICLES.get())); tag(CompatibilityTags.SERENE_SEASONS_SPRING_CROPS_BLOCK).add( - ModBlocks.ONION_CROP.get()); + key(ModBlocks.ONION_CROP.get())); tag(CompatibilityTags.SERENE_SEASONS_SUMMER_CROPS_BLOCK).add( - ModBlocks.BUDDING_TOMATO_CROP.get(), - ModBlocks.TOMATO_CROP.get(), - ModBlocks.TOMATO_CROP_ON_ROPE.get(), - ModBlocks.RICE_CROP.get(), - ModBlocks.RICE_CROP_PANICLES.get()); + key(ModBlocks.BUDDING_TOMATO_CROP.get()), + key(ModBlocks.TOMATO_CROP.get()), + key(ModBlocks.TOMATO_CROP_ON_ROPE.get()), + key(ModBlocks.RICE_CROP.get()), + key(ModBlocks.RICE_CROP_PANICLES.get())); tag(CompatibilityTags.SERENE_SEASONS_WINTER_CROPS_BLOCK).add( - ModBlocks.CABBAGE_CROP.get()); + key(ModBlocks.CABBAGE_CROP.get())); tag(CompatibilityTags.SERENE_SEASONS_UNBREAKABLE_FERTILE_CROPS).add( - ModBlocks.ONION_CROP.get()); + key(ModBlocks.ONION_CROP.get())); } } diff --git a/src/main/java/vectorwing/farmersdelight/data/DamageTypeTags.java b/src/main/java/vectorwing/farmersdelight/data/DamageTypeTags.java index 019f35208..4255f0465 100644 --- a/src/main/java/vectorwing/farmersdelight/data/DamageTypeTags.java +++ b/src/main/java/vectorwing/farmersdelight/data/DamageTypeTags.java @@ -5,16 +5,14 @@ import net.minecraft.data.PackOutput; import net.minecraft.data.tags.TagsProvider; import net.minecraft.world.damagesource.DamageType; -import net.neoforged.neoforge.common.data.ExistingFileHelper; -import org.jetbrains.annotations.Nullable; import vectorwing.farmersdelight.common.registry.ModDamageTypes; import java.util.concurrent.CompletableFuture; public class DamageTypeTags extends TagsProvider { - public DamageTypeTags(PackOutput output, CompletableFuture lookupProvider, String modId, @Nullable ExistingFileHelper existingFileHelper) { - super(output, Registries.DAMAGE_TYPE, lookupProvider, modId, existingFileHelper); + public DamageTypeTags(PackOutput output, CompletableFuture lookupProvider, String modId) { + super(output, Registries.DAMAGE_TYPE, lookupProvider, modId); } @Override diff --git a/src/main/java/vectorwing/farmersdelight/data/DataGenerators.java b/src/main/java/vectorwing/farmersdelight/data/DataGenerators.java index 58068ef7e..860723a31 100644 --- a/src/main/java/vectorwing/farmersdelight/data/DataGenerators.java +++ b/src/main/java/vectorwing/farmersdelight/data/DataGenerators.java @@ -1,21 +1,15 @@ package vectorwing.farmersdelight.data; -import net.minecraft.DetectedVersion; import net.minecraft.core.HolderLookup; import net.minecraft.core.RegistrySetBuilder; import net.minecraft.core.registries.Registries; -import net.minecraft.data.DataGenerator; import net.minecraft.data.PackOutput; import net.minecraft.data.loot.LootTableProvider; -import net.minecraft.data.metadata.PackMetadataGenerator; -import net.minecraft.network.chat.Component; import net.minecraft.server.packs.PackType; -import net.minecraft.server.packs.metadata.pack.PackMetadataSection; import net.minecraft.world.level.storage.loot.parameters.LootContextParamSets; import net.neoforged.bus.api.SubscribeEvent; import net.neoforged.fml.common.EventBusSubscriber; import net.neoforged.neoforge.common.data.DatapackBuiltinEntriesProvider; -import net.neoforged.neoforge.common.data.ExistingFileHelper; import net.neoforged.neoforge.data.event.GatherDataEvent; import net.neoforged.neoforge.registries.NeoForgeRegistries; import vectorwing.farmersdelight.FarmersDelight; @@ -26,24 +20,19 @@ import vectorwing.farmersdelight.data.loot.FDChestLoot; import vectorwing.farmersdelight.data.tools.StructureUpdater; -import java.util.Arrays; import java.util.Collections; import java.util.List; import java.util.Set; import java.util.concurrent.CompletableFuture; -import java.util.function.Function; -import java.util.stream.Collectors; @SuppressWarnings("unused") @EventBusSubscriber(modid = FarmersDelight.MODID) public class DataGenerators { @SubscribeEvent - public static void gatherData(GatherDataEvent event) { - DataGenerator generator = event.getGenerator(); - PackOutput output = generator.getPackOutput(); - ExistingFileHelper helper = event.getExistingFileHelper(); - + public static void gatherServerData(GatherDataEvent.Server event) { + PackOutput output = event.getGenerator().getPackOutput(); + event.addProvider(new GeneratedResourcePreserver(output, "assets")); RegistrySetBuilder registrySetBuilder = new RegistrySetBuilder() .add(Registries.CONFIGURED_FEATURE, WildCropGeneration::bootstrapConfiguredFeatures) .add(Registries.PLACED_FEATURE, WildCropGeneration::bootstrapPlacedFeatures) @@ -52,27 +41,32 @@ public static void gatherData(GatherDataEvent event) { .add(Registries.ENCHANTMENT, ModEnchantments::bootstrap); DatapackBuiltinEntriesProvider datapackProvider = new DatapackBuiltinEntriesProvider(output, event.getLookupProvider(), registrySetBuilder, Set.of(FarmersDelight.MODID)); CompletableFuture lookupProvider = datapackProvider.getRegistryProvider(); - generator.addProvider(event.includeServer(), datapackProvider); + event.addProvider(datapackProvider); - BlockTags blockTags = new BlockTags(output, lookupProvider, helper); - generator.addProvider(event.includeServer(), blockTags); - generator.addProvider(event.includeServer(), new ItemTags(output, lookupProvider, blockTags.contentsGetter(), helper)); - generator.addProvider(event.includeServer(), new EntityTags(output, lookupProvider, helper)); - generator.addProvider(event.includeServer(), new DamageTypeTags(output, lookupProvider, FarmersDelight.MODID, helper)); - generator.addProvider(event.includeServer(), new EnchantmentTags(output, lookupProvider, helper)); - generator.addProvider(event.includeServer(), new Recipes(output, lookupProvider)); - generator.addProvider(event.includeServer(), new LootModifiers(output, lookupProvider)); - generator.addProvider(event.includeServer(), new DataMaps(output, lookupProvider)); - generator.addProvider(event.includeServer(), new Advancements(output, lookupProvider, helper)); - generator.addProvider(event.includeServer(), new LootTableProvider(output, Collections.emptySet(), List.of( + BlockTags blockTags = new BlockTags(output, lookupProvider); + event.addProvider(blockTags); + event.addProvider(new ItemTags(output, lookupProvider)); + event.addProvider(new EntityTags(output, lookupProvider)); + event.addProvider(new DamageTypeTags(output, lookupProvider, FarmersDelight.MODID)); + event.addProvider(new EnchantmentTags(output, lookupProvider)); + event.addProvider(new Recipes(output, lookupProvider)); + event.addProvider(new LootModifiers(output, lookupProvider)); + event.addProvider(new DataMaps(output, lookupProvider)); + event.addProvider(new Advancements(output, lookupProvider)); + event.addProvider(new LootTableProvider(output, Collections.emptySet(), List.of( new LootTableProvider.SubProviderEntry(FDBlockLoot::new, LootContextParamSets.BLOCK), new LootTableProvider.SubProviderEntry(FDChestLoot::new, LootContextParamSets.CHEST) ), lookupProvider)); - generator.addProvider(event.includeServer(), new StructureUpdater("structures/village/houses", FarmersDelight.MODID, helper, output)); + event.addProvider(new StructureUpdater("structures/village/houses", FarmersDelight.MODID, event.getResourceManager(PackType.SERVER_DATA), output)); + + } - BlockStates blockStates = new BlockStates(output, helper); - generator.addProvider(event.includeClient(), blockStates); - generator.addProvider(event.includeClient(), new ItemModels(output, blockStates.models().existingFileHelper)); - generator.addProvider(event.includeClient(), new SoundDefinitions(output, helper)); + @SubscribeEvent + public static void gatherClientData(GatherDataEvent.Client event) { + PackOutput output = event.getGenerator().getPackOutput(); + event.addProvider(new GeneratedResourcePreserver(output, "data")); + event.addProvider(new BlockStates(output)); + event.addProvider(new ItemModels(output)); + event.addProvider(new SoundDefinitions(output)); } } diff --git a/src/main/java/vectorwing/farmersdelight/data/EnchantmentTags.java b/src/main/java/vectorwing/farmersdelight/data/EnchantmentTags.java index 78f669e13..7ed8ca747 100644 --- a/src/main/java/vectorwing/farmersdelight/data/EnchantmentTags.java +++ b/src/main/java/vectorwing/farmersdelight/data/EnchantmentTags.java @@ -3,16 +3,14 @@ import net.minecraft.core.HolderLookup; import net.minecraft.data.PackOutput; import net.minecraft.data.tags.EnchantmentTagsProvider; -import net.neoforged.neoforge.common.data.ExistingFileHelper; -import org.jetbrains.annotations.Nullable; import vectorwing.farmersdelight.FarmersDelight; import java.util.concurrent.CompletableFuture; public class EnchantmentTags extends EnchantmentTagsProvider { - public EnchantmentTags(PackOutput output, CompletableFuture lookupProvider, @Nullable ExistingFileHelper existingFileHelper) { - super(output, lookupProvider, FarmersDelight.MODID, existingFileHelper); + public EnchantmentTags(PackOutput output, CompletableFuture lookupProvider) { + super(output, lookupProvider, FarmersDelight.MODID); } @Override diff --git a/src/main/java/vectorwing/farmersdelight/data/EntityTags.java b/src/main/java/vectorwing/farmersdelight/data/EntityTags.java index 0ac59d29c..9be841f65 100644 --- a/src/main/java/vectorwing/farmersdelight/data/EntityTags.java +++ b/src/main/java/vectorwing/farmersdelight/data/EntityTags.java @@ -4,32 +4,32 @@ import net.minecraft.data.PackOutput; import net.minecraft.data.tags.EntityTypeTagsProvider; import net.minecraft.world.entity.EntityType; -import net.neoforged.neoforge.common.data.ExistingFileHelper; +import net.minecraft.world.entity.EntityTypeIds; import vectorwing.farmersdelight.FarmersDelight; import vectorwing.farmersdelight.common.tag.ModTags; -import javax.annotation.Nullable; import java.util.concurrent.CompletableFuture; public class EntityTags extends EntityTypeTagsProvider { - public EntityTags(PackOutput output, CompletableFuture lookupProvider, @Nullable ExistingFileHelper existingFileHelper) { - super(output, lookupProvider, FarmersDelight.MODID, existingFileHelper); + public EntityTags(PackOutput output, CompletableFuture lookupProvider) { + super(output, lookupProvider, FarmersDelight.MODID); } @Override protected void addTags(HolderLookup.Provider provider) { - this.tag(ModTags.EntityTypes.DOG_FOOD_USERS).add(EntityType.WOLF); + this.tag(ModTags.EntityTypes.DOG_FOOD_USERS).add(EntityTypeIds.WOLF); this.tag(ModTags.EntityTypes.HORSE_FEED_USERS).add( - EntityType.HORSE, - EntityType.SKELETON_HORSE, - EntityType.ZOMBIE_HORSE, - EntityType.DONKEY, - EntityType.MULE, - EntityType.LLAMA); + EntityTypeIds.HORSE, + EntityTypeIds.SKELETON_HORSE, + EntityTypeIds.ZOMBIE_HORSE, + EntityTypeIds.DONKEY, + EntityTypeIds.MULE, + EntityTypeIds.LLAMA); this.tag(ModTags.EntityTypes.HORSE_FEED_TEMPTED).add( - EntityType.HORSE, - EntityType.DONKEY, - EntityType.MULE); + EntityTypeIds.HORSE, + EntityTypeIds.DONKEY, + EntityTypeIds.MULE); } + } diff --git a/src/main/java/vectorwing/farmersdelight/data/GeneratedResourcePreserver.java b/src/main/java/vectorwing/farmersdelight/data/GeneratedResourcePreserver.java new file mode 100644 index 000000000..332d3ca46 --- /dev/null +++ b/src/main/java/vectorwing/farmersdelight/data/GeneratedResourcePreserver.java @@ -0,0 +1,72 @@ +package vectorwing.farmersdelight.data; + +import com.google.common.hash.Hashing; +import net.minecraft.data.CachedOutput; +import net.minecraft.data.DataProvider; +import net.minecraft.data.PackOutput; + +import java.io.IOException; +import java.io.UncheckedIOException; +import java.nio.file.Files; +import java.nio.file.Path; +import java.util.List; +import java.util.concurrent.CompletableFuture; + +/** + * Preserves the other generated resource pack while client and server datagen share one output root. + */ +public class GeneratedResourcePreserver implements DataProvider +{ + private final Path generatedRoot; + private final String directory; + + public GeneratedResourcePreserver(PackOutput output, String directory) { + this.generatedRoot = output.getOutputFolder().resolve(directory); + this.directory = directory; + } + + @Override + public CompletableFuture run(CachedOutput cache) { + if (!Files.exists(this.generatedRoot)) { + return CompletableFuture.completedFuture(null); + } + + List resources; + try (var paths = Files.walk(this.generatedRoot)) { + resources = paths + .filter(Files::isRegularFile) + .map(GeneratedResourcePreserver::readResource) + .toList(); + } catch (IOException exception) { + throw new UncheckedIOException("Failed to read generated " + this.directory + " resources", exception); + } + + return CompletableFuture.allOf(resources.stream() + .map(resource -> CompletableFuture.runAsync(() -> writeResource(cache, resource))) + .toArray(CompletableFuture[]::new)); + } + + @Override + public String getName() { + return "Generated " + this.directory + " Resource Preserver"; + } + + private static GeneratedResource readResource(Path path) { + try { + return new GeneratedResource(path, Files.readAllBytes(path)); + } catch (IOException exception) { + throw new UncheckedIOException("Failed to read " + path, exception); + } + } + + private static void writeResource(CachedOutput cache, GeneratedResource resource) { + try { + cache.writeIfNeeded(resource.path(), resource.contents(), Hashing.sha1().hashBytes(resource.contents())); + } catch (IOException exception) { + throw new UncheckedIOException("Failed to write " + resource.path(), exception); + } + } + + private record GeneratedResource(Path path, byte[] contents) { + } +} diff --git a/src/main/java/vectorwing/farmersdelight/data/ItemModels.java b/src/main/java/vectorwing/farmersdelight/data/ItemModels.java index c5047fff8..b5cfab16f 100644 --- a/src/main/java/vectorwing/farmersdelight/data/ItemModels.java +++ b/src/main/java/vectorwing/farmersdelight/data/ItemModels.java @@ -1,70 +1,93 @@ package vectorwing.farmersdelight.data; import com.google.common.collect.Sets; +import net.minecraft.client.data.models.BlockModelGenerators; +import net.minecraft.client.data.models.ItemModelGenerators; +import net.minecraft.client.data.models.ModelProvider; +import net.minecraft.client.data.models.model.ItemModelUtils; +import net.minecraft.client.data.models.model.ModelTemplate; +import net.minecraft.client.data.models.model.ModelTemplates; +import net.minecraft.client.data.models.model.TextureMapping; +import net.minecraft.client.data.models.model.TextureSlot; +import net.minecraft.client.resources.model.sprite.Material; +import net.minecraft.core.Holder; import net.minecraft.core.registries.BuiltInRegistries; import net.minecraft.data.PackOutput; -import net.minecraft.resources.ResourceLocation; +import net.minecraft.resources.Identifier; import net.minecraft.world.item.BlockItem; import net.minecraft.world.item.Item; -import net.neoforged.neoforge.client.model.generators.ItemModelProvider; -import net.neoforged.neoforge.common.data.ExistingFileHelper; +import net.minecraft.world.level.block.Block; import vectorwing.farmersdelight.FarmersDelight; import vectorwing.farmersdelight.common.registry.ModItems; -import java.util.*; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.Collection; +import java.util.Iterator; +import java.util.LinkedHashSet; +import java.util.Set; import java.util.function.Predicate; import java.util.stream.Collectors; +import java.util.stream.Stream; /** * Credits to Vazkii and team for some references on mass-reading blocks to datagen! */ -public class ItemModels extends ItemModelProvider +public class ItemModels extends ModelProvider { - public static final String GENERATED = "item/generated"; - public static final String HANDHELD = "item/handheld"; - public static final ResourceLocation MUG = ResourceLocation.fromNamespaceAndPath(FarmersDelight.MODID, "item/mug"); + public static final Identifier MUG = resourceItem("mug"); + private static final ModelTemplate MUG_TEMPLATE = new ModelTemplate(java.util.Optional.of(MUG), java.util.Optional.empty(), TextureSlot.LAYER0); - public ItemModels(PackOutput output, ExistingFileHelper existingFileHelper) { - super(output, FarmersDelight.MODID, existingFileHelper); + public ItemModels(PackOutput output) { + super(output, FarmersDelight.MODID); } @Override - protected void registerModels() { - Set items = BuiltInRegistries.ITEM.stream().filter(i -> FarmersDelight.MODID.equals(BuiltInRegistries.ITEM.getKey(i).getNamespace())) - .collect(Collectors.toSet()); + protected Stream> getKnownBlocks() { + return Stream.empty(); + } + + @Override + protected Stream> getKnownItems() { + return BuiltInRegistries.ITEM.listElements() + .filter(holder -> holder.getKey().identifier().getNamespace().equals(FarmersDelight.MODID)) + .filter(holder -> holder.value() != ModItems.SKILLET.get()); + } - // Specific cases - items.remove(ModItems.SKILLET.get()); + @Override + protected void registerModels(BlockModelGenerators blockModels, ItemModelGenerators itemModels) { + Set items = BuiltInRegistries.ITEM.stream() + .filter(item -> FarmersDelight.MODID.equals(BuiltInRegistries.ITEM.getKey(item).getNamespace())) + .filter(item -> item != ModItems.SKILLET.get()) + .collect(Collectors.toCollection(LinkedHashSet::new)); - itemGeneratedModel(ModItems.WILD_RICE.get(), resourceBlock(itemName(ModItems.WILD_RICE.get()) + "_top")); + itemGeneratedModel(itemModels, ModItems.WILD_RICE.get(), resourceBlock(itemName(ModItems.WILD_RICE.get()) + "_top")); items.remove(ModItems.WILD_RICE.get()); - itemGeneratedModel(ModItems.BROWN_MUSHROOM_COLONY.get(), resourceBlock(itemName(ModItems.BROWN_MUSHROOM_COLONY.get()) + "_stage3")); + itemGeneratedModel(itemModels, ModItems.BROWN_MUSHROOM_COLONY.get(), resourceBlock(itemName(ModItems.BROWN_MUSHROOM_COLONY.get()) + "_stage3")); items.remove(ModItems.BROWN_MUSHROOM_COLONY.get()); - itemGeneratedModel(ModItems.DEBUG_PUMPKIN_PIE.get(), resourceItem("debug_pumpkin_pie")); + itemGeneratedModel(itemModels, ModItems.DEBUG_PUMPKIN_PIE.get(), resourceItem("debug_pumpkin_pie")); items.remove(ModItems.DEBUG_PUMPKIN_PIE.get()); - itemGeneratedModel(ModItems.RED_MUSHROOM_COLONY.get(), resourceBlock(itemName(ModItems.RED_MUSHROOM_COLONY.get()) + "_stage3")); + itemGeneratedModel(itemModels, ModItems.RED_MUSHROOM_COLONY.get(), resourceBlock(itemName(ModItems.RED_MUSHROOM_COLONY.get()) + "_stage3")); items.remove(ModItems.RED_MUSHROOM_COLONY.get()); - blockBasedModel(ModItems.TATAMI.get(), "_half"); + blockBasedModel(itemModels, ModItems.TATAMI.get(), "_half"); items.remove(ModItems.TATAMI.get()); - blockBasedModel(ModItems.ORGANIC_COMPOST.get(), "_stage0"); + blockBasedModel(itemModels, ModItems.ORGANIC_COMPOST.get(), "_stage0"); items.remove(ModItems.ORGANIC_COMPOST.get()); - blockBasedModel(ModItems.ROPE_FENCE.get(), "_inventory"); + blockBasedModel(itemModels, ModItems.ROPE_FENCE.get(), "_inventory"); items.remove(ModItems.ROPE_FENCE.get()); - // Items that should be held like a mug Set mugItems = Sets.newHashSet( ModItems.HOT_COCOA.get(), ModItems.APPLE_CIDER.get(), ModItems.MELON_JUICE.get()); - takeAll(items, mugItems.toArray(new Item[0])).forEach(item -> itemMugModel(item, resourceItem(itemName(item)))); + takeAll(items, mugItems.toArray(new Item[0])).forEach(item -> itemMugModel(itemModels, item, resourceItem(itemName(item)))); - // Blocks with special item sprites Set spriteBlockItems = Sets.newHashSet( ModItems.FULL_TATAMI_MAT.get(), ModItems.HALF_TATAMI_MAT.get(), @@ -117,9 +140,8 @@ protected void registerModels() { ModItems.GLEAMING_SALAD_BLOCK.get(), ModItems.RICE_ROLL_MEDLEY_BLOCK.get() ); - takeAll(items, spriteBlockItems.toArray(new Item[0])).forEach(item -> withExistingParent(itemName(item), GENERATED).texture("layer0", resourceItem(itemName(item)))); + takeAll(items, spriteBlockItems.toArray(new Item[0])).forEach(item -> itemGeneratedModel(itemModels, item, resourceItem(itemName(item)))); - // Blocks with flat block textures for their items Set flatBlockItems = Sets.newHashSet( ModItems.SAFETY_NET.get(), ModItems.SANDY_SHRUB.get(), @@ -130,12 +152,10 @@ protected void registerModels() { ModItems.WILD_POTATOES.get(), ModItems.WILD_TOMATOES.get() ); - takeAll(items, flatBlockItems.toArray(new Item[0])).forEach(item -> itemGeneratedModel(item, resourceBlock(itemName(item)))); + takeAll(items, flatBlockItems.toArray(new Item[0])).forEach(item -> itemGeneratedModel(itemModels, item, resourceBlock(itemName(item)))); - // Blocks whose items look alike - takeAll(items, i -> i instanceof BlockItem).forEach(item -> blockBasedModel(item, "")); + takeAll(items, item -> item instanceof BlockItem).forEach(item -> blockBasedModel(itemModels, item, "")); - // Handheld items Set handheldItems = Sets.newHashSet( ModItems.BARBECUE_STICK.get(), ModItems.HAM.get(), @@ -146,48 +166,50 @@ protected void registerModels() { ModItems.GOLDEN_KNIFE.get(), ModItems.NETHERITE_KNIFE.get() ); - takeAll(items, handheldItems.toArray(new Item[0])).forEach(item -> itemHandheldModel(item, resourceItem(itemName(item)))); + takeAll(items, handheldItems.toArray(new Item[0])).forEach(item -> itemHandheldModel(itemModels, item)); - // Generated items - items.forEach(item -> itemGeneratedModel(item, resourceItem(itemName(item)))); + items.forEach(item -> itemGeneratedModel(itemModels, item, resourceItem(itemName(item)))); } - public void blockBasedModel(Item item, String suffix) { - withExistingParent(itemName(item), resourceBlock(itemName(item) + suffix)); + @Override + public String getName() { + return "Item Model Definitions - " + FarmersDelight.MODID; } - public void blockBasedModel(Item item, ResourceLocation block) { - withExistingParent(itemName(item), block); + public static void blockBasedModel(ItemModelGenerators itemModels, Item item, String suffix) { + itemModels.itemModelOutput.accept(item, ItemModelUtils.plainModel(resourceBlock(itemName(item) + suffix))); } - public void itemHandheldModel(Item item, ResourceLocation texture) { - withExistingParent(itemName(item), HANDHELD).texture("layer0", texture); + public static void itemHandheldModel(ItemModelGenerators itemModels, Item item) { + itemModels.generateFlatItem(item, ModelTemplates.FLAT_HANDHELD_ITEM); } - public void itemGeneratedModel(Item item, ResourceLocation texture) { - withExistingParent(itemName(item), GENERATED).texture("layer0", texture); + public static void itemGeneratedModel(ItemModelGenerators itemModels, Item item, Identifier texture) { + Identifier model = ModelTemplates.FLAT_ITEM.create(resourceItem(itemName(item)), TextureMapping.layer0(new Material(texture)), itemModels.modelOutput); + itemModels.itemModelOutput.accept(item, ItemModelUtils.plainModel(model)); } - public void itemMugModel(Item item, ResourceLocation texture) { - withExistingParent(itemName(item), MUG).texture("layer0", texture); + public static void itemMugModel(ItemModelGenerators itemModels, Item item, Identifier texture) { + Identifier model = MUG_TEMPLATE.create(resourceItem(itemName(item)), TextureMapping.layer0(new Material(texture)), itemModels.modelOutput); + itemModels.itemModelOutput.accept(item, ItemModelUtils.plainModel(model)); } - private String itemName(Item item) { + private static String itemName(Item item) { return BuiltInRegistries.ITEM.getKey(item).getPath(); } - public ResourceLocation resourceBlock(String path) { - return ResourceLocation.fromNamespaceAndPath(FarmersDelight.MODID, "block/" + path); + public static Identifier resourceBlock(String path) { + return Identifier.fromNamespaceAndPath(FarmersDelight.MODID, "block/" + path); } - public ResourceLocation resourceItem(String path) { - return ResourceLocation.fromNamespaceAndPath(FarmersDelight.MODID, "item/" + path); + public static Identifier resourceItem(String path) { + return Identifier.fromNamespaceAndPath(FarmersDelight.MODID, "item/" + path); } @SafeVarargs @SuppressWarnings("varargs") public static Collection takeAll(Set src, T... items) { - List ret = Arrays.asList(items); + java.util.List ret = Arrays.asList(items); for (T item : items) { if (!src.contains(item)) { FarmersDelight.LOGGER.warn("Item {} not found in set", item); @@ -200,7 +222,7 @@ public static Collection takeAll(Set src, T... items) { } public static Collection takeAll(Set src, Predicate pred) { - List ret = new ArrayList<>(); + java.util.List ret = new ArrayList<>(); Iterator iter = src.iterator(); while (iter.hasNext()) { @@ -216,4 +238,4 @@ public static Collection takeAll(Set src, Predicate pred) { } return ret; } -} \ No newline at end of file +} diff --git a/src/main/java/vectorwing/farmersdelight/data/ItemTags.java b/src/main/java/vectorwing/farmersdelight/data/ItemTags.java index 434360f68..5e3749707 100644 --- a/src/main/java/vectorwing/farmersdelight/data/ItemTags.java +++ b/src/main/java/vectorwing/farmersdelight/data/ItemTags.java @@ -1,15 +1,17 @@ package vectorwing.farmersdelight.data; import net.minecraft.core.HolderLookup; +import net.minecraft.core.registries.BuiltInRegistries; +import net.minecraft.core.registries.Registries; import net.minecraft.data.PackOutput; -import net.minecraft.data.tags.ItemTagsProvider; import net.minecraft.data.tags.TagsProvider; -import net.minecraft.resources.ResourceLocation; +import net.minecraft.resources.Identifier; +import net.minecraft.resources.ResourceKey; +import net.minecraft.tags.TagKey; import net.minecraft.tags.BlockTags; +import net.minecraft.world.item.Item; import net.minecraft.world.item.Items; -import net.minecraft.world.level.block.Block; import net.neoforged.neoforge.common.Tags; -import net.neoforged.neoforge.common.data.ExistingFileHelper; import org.jetbrains.annotations.NotNull; import vectorwing.farmersdelight.FarmersDelight; import vectorwing.farmersdelight.common.registry.ModItems; @@ -17,19 +19,17 @@ import vectorwing.farmersdelight.common.tag.CompatibilityTags; import vectorwing.farmersdelight.common.tag.ModTags; -import javax.annotation.Nullable; import java.util.concurrent.CompletableFuture; -public class ItemTags extends ItemTagsProvider +public class ItemTags extends TagsProvider { - public ItemTags(PackOutput output, CompletableFuture provider, CompletableFuture> blockTagProvider, @Nullable ExistingFileHelper existingFileHelper) { - super(output, provider, blockTagProvider, FarmersDelight.MODID, existingFileHelper); + public ItemTags(PackOutput output, CompletableFuture provider) { + super(output, Registries.ITEM, provider, FarmersDelight.MODID); } @Override protected void addTags(HolderLookup.@NotNull Provider provider) { copy(ModTags.Blocks.WILD_CROPS, ModTags.Items.WILD_CROPS); - copy(BlockTags.SMALL_FLOWERS, net.minecraft.tags.ItemTags.SMALL_FLOWERS); this.registerMinecraftTags(); this.registerModTags(); @@ -40,179 +40,177 @@ protected void addTags(HolderLookup.@NotNull Provider provider) { private void registerMinecraftTags() { tag(net.minecraft.tags.ItemTags.BREAKS_DECORATED_POTS).addTag(ModTags.Items.KNIVES); - tag(net.minecraft.tags.ItemTags.TALL_FLOWERS).add(ModItems.WILD_RICE.get()); - tag(net.minecraft.tags.ItemTags.PIGLIN_LOVED).add(ModItems.GOLDEN_KNIFE.get()); + tag(net.minecraft.tags.ItemTags.PIGLIN_LOVED).add(key(ModItems.GOLDEN_KNIFE.get())); tag(net.minecraft.tags.ItemTags.SIGNS).addTag(ModTags.Items.CANVAS_SIGNS); tag(net.minecraft.tags.ItemTags.HANGING_SIGNS).addTag(ModTags.Items.HANGING_CANVAS_SIGNS); tag(net.minecraft.tags.ItemTags.VILLAGER_PLANTABLE_SEEDS) - .add(ModItems.CABBAGE_SEEDS.get()) - .add(ModItems.TOMATO_SEEDS.get()) - .add(ModItems.ONION.get()); + .add(key(ModItems.CABBAGE_SEEDS.get())) + .add(key(ModItems.TOMATO_SEEDS.get())) + .add(key(ModItems.ONION.get())); - tag(net.minecraft.tags.ItemTags.DURABILITY_ENCHANTABLE).addTag(ModTags.Items.KNIVES).add(ModItems.SKILLET.get()); - tag(net.minecraft.tags.ItemTags.WEAPON_ENCHANTABLE).addTag(ModTags.Items.KNIVES).add(ModItems.SKILLET.get()); - tag(net.minecraft.tags.ItemTags.SHARP_WEAPON_ENCHANTABLE).addTag(ModTags.Items.KNIVES).add(ModItems.SKILLET.get()); - tag(net.minecraft.tags.ItemTags.FIRE_ASPECT_ENCHANTABLE).addTag(ModTags.Items.KNIVES).add(ModItems.SKILLET.get()); - tag(net.minecraft.tags.ItemTags.SWORD_ENCHANTABLE).addTag(ModTags.Items.KNIVES).add(ModItems.SKILLET.get()); + tag(net.minecraft.tags.ItemTags.DURABILITY_ENCHANTABLE).addTag(ModTags.Items.KNIVES).add(key(ModItems.SKILLET.get())); + tag(net.minecraft.tags.ItemTags.WEAPON_ENCHANTABLE).addTag(ModTags.Items.KNIVES).add(key(ModItems.SKILLET.get())); + tag(net.minecraft.tags.ItemTags.SHARP_WEAPON_ENCHANTABLE).addTag(ModTags.Items.KNIVES).add(key(ModItems.SKILLET.get())); + tag(net.minecraft.tags.ItemTags.FIRE_ASPECT_ENCHANTABLE).addTag(ModTags.Items.KNIVES).add(key(ModItems.SKILLET.get())); tag(net.minecraft.tags.ItemTags.MINING_ENCHANTABLE).addTag(ModTags.Items.KNIVES); tag(net.minecraft.tags.ItemTags.MINING_LOOT_ENCHANTABLE).addTag(ModTags.Items.KNIVES); tag(net.minecraft.tags.ItemTags.MEAT) - .add(ModItems.MINCED_BEEF.get()) - .add(ModItems.BEEF_PATTY.get()) - .add(ModItems.CHICKEN_CUTS.get()) - .add(ModItems.COOKED_CHICKEN_CUTS.get()) - .add(ModItems.BACON.get()) - .add(ModItems.COOKED_BACON.get()) - .add(ModItems.MUTTON_CHOPS.get()) - .add(ModItems.COOKED_MUTTON_CHOPS.get()) - .add(ModItems.HAM.get()) - .add(ModItems.SMOKED_HAM.get()) - .add(ModItems.DOG_FOOD.get()); + .add(key(ModItems.MINCED_BEEF.get())) + .add(key(ModItems.BEEF_PATTY.get())) + .add(key(ModItems.CHICKEN_CUTS.get())) + .add(key(ModItems.COOKED_CHICKEN_CUTS.get())) + .add(key(ModItems.BACON.get())) + .add(key(ModItems.COOKED_BACON.get())) + .add(key(ModItems.MUTTON_CHOPS.get())) + .add(key(ModItems.COOKED_MUTTON_CHOPS.get())) + .add(key(ModItems.HAM.get())) + .add(key(ModItems.SMOKED_HAM.get())) + .add(key(ModItems.DOG_FOOD.get())); tag(net.minecraft.tags.ItemTags.CAT_FOOD) - .add((ModItems.SALMON_SLICE.get())) - .add((ModItems.COD_SLICE.get())); + .add((key(ModItems.SALMON_SLICE.get()))) + .add((key(ModItems.COD_SLICE.get()))); tag(net.minecraft.tags.ItemTags.CHICKEN_FOOD) - .add(ModItems.CABBAGE_SEEDS.get()) - .add(ModItems.TOMATO_SEEDS.get()) - .add(ModItems.RICE.get()); + .add(key(ModItems.CABBAGE_SEEDS.get())) + .add(key(ModItems.TOMATO_SEEDS.get())) + .add(key(ModItems.RICE.get())); tag(net.minecraft.tags.ItemTags.PIG_FOOD) - .add(ModItems.CABBAGE.get()) - .add(ModItems.TOMATO.get()); + .add(key(ModItems.CABBAGE.get())) + .add(key(ModItems.TOMATO.get())); tag(net.minecraft.tags.ItemTags.RABBIT_FOOD) - .add(ModItems.CABBAGE.get()); + .add(key(ModItems.CABBAGE.get())); tag(net.minecraft.tags.ItemTags.PARROT_FOOD) - .add(ModItems.CABBAGE_SEEDS.get()) - .add(ModItems.TOMATO_SEEDS.get()) - .add(ModItems.RICE.get()); + .add(key(ModItems.CABBAGE_SEEDS.get())) + .add(key(ModItems.TOMATO_SEEDS.get())) + .add(key(ModItems.RICE.get())); tag(net.minecraft.tags.ItemTags.HORSE_TEMPT_ITEMS) - .add(ModItems.HORSE_FEED.get()); + .add(key(ModItems.HORSE_FEED.get())); } private void registerModTags() { tag(ModTags.Items.SNACKS).add( - ModItems.BARBECUE_STICK.get(), - ModItems.EGG_SANDWICH.get(), - ModItems.CHICKEN_SANDWICH.get(), - ModItems.HAMBURGER.get(), - ModItems.BACON_SANDWICH.get(), - ModItems.MUTTON_WRAP.get(), - ModItems.DUMPLINGS.get(), - ModItems.STUFFED_POTATO.get(), - ModItems.CABBAGE_ROLLS.get(), - ModItems.SALMON_ROLL.get(), - ModItems.COD_ROLL.get(), - ModItems.KELP_ROLL.get(), - ModItems.KELP_ROLL_SLICE.get() + key(ModItems.BARBECUE_STICK.get()), + key(ModItems.EGG_SANDWICH.get()), + key(ModItems.CHICKEN_SANDWICH.get()), + key(ModItems.HAMBURGER.get()), + key(ModItems.BACON_SANDWICH.get()), + key(ModItems.MUTTON_WRAP.get()), + key(ModItems.DUMPLINGS.get()), + key(ModItems.STUFFED_POTATO.get()), + key(ModItems.CABBAGE_ROLLS.get()), + key(ModItems.SALMON_ROLL.get()), + key(ModItems.COD_ROLL.get()), + key(ModItems.KELP_ROLL.get()), + key(ModItems.KELP_ROLL_SLICE.get()) ); tag(ModTags.Items.MEALS).add( - Items.MUSHROOM_STEW, - Items.BEETROOT_SOUP, - Items.RABBIT_STEW, - ModItems.MIXED_SALAD.get(), - ModItems.COOKED_RICE.get(), - ModItems.BONE_BROTH.get(), - ModItems.BEEF_STEW.get(), - ModItems.VEGETABLE_SOUP.get(), - ModItems.FISH_STEW.get(), - ModItems.CHICKEN_SOUP.get(), - ModItems.FRIED_RICE.get(), - ModItems.PUMPKIN_SOUP.get(), - ModItems.BAKED_COD_STEW.get(), - ModItems.NOODLE_SOUP.get(), - ModItems.ONION_SOUP.get(), - ModItems.BACON_AND_EGGS.get(), - ModItems.RATATOUILLE.get(), - ModItems.STEAK_AND_POTATOES.get(), - ModItems.PASTA_WITH_MEATBALLS.get(), - ModItems.PASTA_WITH_MUTTON_CHOP.get(), - ModItems.MUSHROOM_RICE.get(), - ModItems.ROASTED_MUTTON_CHOPS.get(), - ModItems.VEGETABLE_NOODLES.get(), - ModItems.SQUID_INK_PASTA.get(), - ModItems.GRILLED_SALMON.get(), - ModItems.ROAST_CHICKEN.get(), - ModItems.STUFFED_PUMPKIN.get(), - ModItems.HONEY_GLAZED_HAM.get(), - ModItems.SHEPHERDS_PIE.get(), - ModItems.GLEAMING_SALAD.get() + key(Items.MUSHROOM_STEW), + key(Items.BEETROOT_SOUP), + key(Items.RABBIT_STEW), + key(ModItems.MIXED_SALAD.get()), + key(ModItems.COOKED_RICE.get()), + key(ModItems.BONE_BROTH.get()), + key(ModItems.BEEF_STEW.get()), + key(ModItems.VEGETABLE_SOUP.get()), + key(ModItems.FISH_STEW.get()), + key(ModItems.CHICKEN_SOUP.get()), + key(ModItems.FRIED_RICE.get()), + key(ModItems.PUMPKIN_SOUP.get()), + key(ModItems.BAKED_COD_STEW.get()), + key(ModItems.NOODLE_SOUP.get()), + key(ModItems.ONION_SOUP.get()), + key(ModItems.BACON_AND_EGGS.get()), + key(ModItems.RATATOUILLE.get()), + key(ModItems.STEAK_AND_POTATOES.get()), + key(ModItems.PASTA_WITH_MEATBALLS.get()), + key(ModItems.PASTA_WITH_MUTTON_CHOP.get()), + key(ModItems.MUSHROOM_RICE.get()), + key(ModItems.ROASTED_MUTTON_CHOPS.get()), + key(ModItems.VEGETABLE_NOODLES.get()), + key(ModItems.SQUID_INK_PASTA.get()), + key(ModItems.GRILLED_SALMON.get()), + key(ModItems.ROAST_CHICKEN.get()), + key(ModItems.STUFFED_PUMPKIN.get()), + key(ModItems.HONEY_GLAZED_HAM.get()), + key(ModItems.SHEPHERDS_PIE.get()), + key(ModItems.GLEAMING_SALAD.get()) ); tag(ModTags.Items.DRINKS).add( - ModItems.MILK_BOTTLE.get(), - ModItems.APPLE_CIDER.get(), - ModItems.MELON_JUICE.get(), - ModItems.HOT_COCOA.get() + key(ModItems.MILK_BOTTLE.get()), + key(ModItems.APPLE_CIDER.get()), + key(ModItems.MELON_JUICE.get()), + key(ModItems.HOT_COCOA.get()) ); tag(ModTags.Items.SWEETS).add( - Items.CAKE, - Items.COOKIE, - ModItems.CAKE_SLICE.get(), - ModItems.APPLE_PIE_SLICE.get(), - ModItems.SWEET_BERRY_CHEESECAKE_SLICE.get(), - ModItems.CHOCOLATE_PIE_SLICE.get(), - ModItems.PUMPKIN_PIE_SLICE.get(), - ModItems.SWEET_BERRY_COOKIE.get(), - ModItems.HONEY_COOKIE.get(), - ModItems.MELON_POPSICLE.get(), - ModItems.GLOW_BERRY_CUSTARD.get(), - ModItems.FRUIT_SALAD.get() + key(Items.CAKE), + key(Items.COOKIE), + key(ModItems.CAKE_SLICE.get()), + key(ModItems.APPLE_PIE_SLICE.get()), + key(ModItems.SWEET_BERRY_CHEESECAKE_SLICE.get()), + key(ModItems.CHOCOLATE_PIE_SLICE.get()), + key(ModItems.PUMPKIN_PIE_SLICE.get()), + key(ModItems.SWEET_BERRY_COOKIE.get()), + key(ModItems.HONEY_COOKIE.get()), + key(ModItems.MELON_POPSICLE.get()), + key(ModItems.GLOW_BERRY_CUSTARD.get()), + key(ModItems.FRUIT_SALAD.get()) ); copy(ModTags.Blocks.FEASTS, ModTags.Items.FEASTS); tag(ModTags.Items.PIES).add( - Items.PUMPKIN_PIE, - ModItems.APPLE_PIE.get(), - ModItems.SWEET_BERRY_CHEESECAKE.get(), - ModItems.CHOCOLATE_PIE.get() + key(Items.PUMPKIN_PIE), + key(ModItems.APPLE_PIE.get()), + key(ModItems.SWEET_BERRY_CHEESECAKE.get()), + key(ModItems.CHOCOLATE_PIE.get()) ); - tag(ModTags.Items.KNIVES).add(ModItems.FLINT_KNIFE.get(), ModItems.IRON_KNIFE.get(), ModItems.DIAMOND_KNIFE.get(), ModItems.GOLDEN_KNIFE.get(), ModItems.NETHERITE_KNIFE.get()); + tag(ModTags.Items.KNIVES).add(key(ModItems.FLINT_KNIFE.get()), key(ModItems.IRON_KNIFE.get()), key(ModItems.DIAMOND_KNIFE.get()), key(ModItems.GOLDEN_KNIFE.get()), key(ModItems.NETHERITE_KNIFE.get())); tag(ModTags.Items.KNIFE_ENCHANTABLE).addTag(ModTags.Items.KNIVES); tag(ModTags.Items.STRAW_HARVESTERS).addTag(ModTags.Items.KNIVES); tag(ModTags.Items.CANVAS_SIGNS) - .add(ModItems.CANVAS_SIGN.get()) - .add(ModItems.WHITE_CANVAS_SIGN.get()) - .add(ModItems.ORANGE_CANVAS_SIGN.get()) - .add(ModItems.MAGENTA_CANVAS_SIGN.get()) - .add(ModItems.LIGHT_BLUE_CANVAS_SIGN.get()) - .add(ModItems.YELLOW_CANVAS_SIGN.get()) - .add(ModItems.LIME_CANVAS_SIGN.get()) - .add(ModItems.PINK_CANVAS_SIGN.get()) - .add(ModItems.GRAY_CANVAS_SIGN.get()) - .add(ModItems.LIGHT_GRAY_CANVAS_SIGN.get()) - .add(ModItems.CYAN_CANVAS_SIGN.get()) - .add(ModItems.PURPLE_CANVAS_SIGN.get()) - .add(ModItems.BLUE_CANVAS_SIGN.get()) - .add(ModItems.BROWN_CANVAS_SIGN.get()) - .add(ModItems.GREEN_CANVAS_SIGN.get()) - .add(ModItems.RED_CANVAS_SIGN.get()) - .add(ModItems.BLACK_CANVAS_SIGN.get()); + .add(key(ModItems.CANVAS_SIGN.get())) + .add(key(ModItems.WHITE_CANVAS_SIGN.get())) + .add(key(ModItems.ORANGE_CANVAS_SIGN.get())) + .add(key(ModItems.MAGENTA_CANVAS_SIGN.get())) + .add(key(ModItems.LIGHT_BLUE_CANVAS_SIGN.get())) + .add(key(ModItems.YELLOW_CANVAS_SIGN.get())) + .add(key(ModItems.LIME_CANVAS_SIGN.get())) + .add(key(ModItems.PINK_CANVAS_SIGN.get())) + .add(key(ModItems.GRAY_CANVAS_SIGN.get())) + .add(key(ModItems.LIGHT_GRAY_CANVAS_SIGN.get())) + .add(key(ModItems.CYAN_CANVAS_SIGN.get())) + .add(key(ModItems.PURPLE_CANVAS_SIGN.get())) + .add(key(ModItems.BLUE_CANVAS_SIGN.get())) + .add(key(ModItems.BROWN_CANVAS_SIGN.get())) + .add(key(ModItems.GREEN_CANVAS_SIGN.get())) + .add(key(ModItems.RED_CANVAS_SIGN.get())) + .add(key(ModItems.BLACK_CANVAS_SIGN.get())); tag(ModTags.Items.HANGING_CANVAS_SIGNS) - .add(ModItems.HANGING_CANVAS_SIGN.get()) - .add(ModItems.WHITE_HANGING_CANVAS_SIGN.get()) - .add(ModItems.ORANGE_HANGING_CANVAS_SIGN.get()) - .add(ModItems.MAGENTA_HANGING_CANVAS_SIGN.get()) - .add(ModItems.LIGHT_BLUE_HANGING_CANVAS_SIGN.get()) - .add(ModItems.YELLOW_HANGING_CANVAS_SIGN.get()) - .add(ModItems.LIME_HANGING_CANVAS_SIGN.get()) - .add(ModItems.PINK_HANGING_CANVAS_SIGN.get()) - .add(ModItems.GRAY_HANGING_CANVAS_SIGN.get()) - .add(ModItems.LIGHT_GRAY_HANGING_CANVAS_SIGN.get()) - .add(ModItems.CYAN_HANGING_CANVAS_SIGN.get()) - .add(ModItems.PURPLE_HANGING_CANVAS_SIGN.get()) - .add(ModItems.BLUE_HANGING_CANVAS_SIGN.get()) - .add(ModItems.BROWN_HANGING_CANVAS_SIGN.get()) - .add(ModItems.GREEN_HANGING_CANVAS_SIGN.get()) - .add(ModItems.RED_HANGING_CANVAS_SIGN.get()) - .add(ModItems.BLACK_HANGING_CANVAS_SIGN.get()); + .add(key(ModItems.HANGING_CANVAS_SIGN.get())) + .add(key(ModItems.WHITE_HANGING_CANVAS_SIGN.get())) + .add(key(ModItems.ORANGE_HANGING_CANVAS_SIGN.get())) + .add(key(ModItems.MAGENTA_HANGING_CANVAS_SIGN.get())) + .add(key(ModItems.LIGHT_BLUE_HANGING_CANVAS_SIGN.get())) + .add(key(ModItems.YELLOW_HANGING_CANVAS_SIGN.get())) + .add(key(ModItems.LIME_HANGING_CANVAS_SIGN.get())) + .add(key(ModItems.PINK_HANGING_CANVAS_SIGN.get())) + .add(key(ModItems.GRAY_HANGING_CANVAS_SIGN.get())) + .add(key(ModItems.LIGHT_GRAY_HANGING_CANVAS_SIGN.get())) + .add(key(ModItems.CYAN_HANGING_CANVAS_SIGN.get())) + .add(key(ModItems.PURPLE_HANGING_CANVAS_SIGN.get())) + .add(key(ModItems.BLUE_HANGING_CANVAS_SIGN.get())) + .add(key(ModItems.BROWN_HANGING_CANVAS_SIGN.get())) + .add(key(ModItems.GREEN_HANGING_CANVAS_SIGN.get())) + .add(key(ModItems.RED_HANGING_CANVAS_SIGN.get())) + .add(key(ModItems.BLACK_HANGING_CANVAS_SIGN.get())); copy(ModTags.Blocks.CABINETS, ModTags.Items.CABINETS); copy(ModTags.Blocks.CABINETS_WOODEN, ModTags.Items.CABINETS_WOODEN); copy(ModTags.Blocks.MUSHROOM_COLONIES, ModTags.Items.MUSHROOM_COLONIES); - tag(ModTags.Items.SERVING_CONTAINERS).add(Items.BOWL, Items.GLASS_BOTTLE, Items.BUCKET); - tag(ModTags.Items.FLAT_ON_CUTTING_BOARD).add(Items.TRIDENT, Items.SPYGLASS) - .addOptional(ResourceLocation.parse("supplementaries:quiver")) - .addOptional(ResourceLocation.parse("autumnity:turkey")) - .addOptional(ResourceLocation.parse("autumnity:cooked_turkey")); + tag(ModTags.Items.SERVING_CONTAINERS).add(key(Items.BOWL), key(Items.GLASS_BOTTLE), key(Items.BUCKET)); + tag(ModTags.Items.FLAT_ON_CUTTING_BOARD).add(key(Items.TRIDENT), key(Items.SPYGLASS)) + .addOptional(ResourceKey.create(Registries.ITEM, Identifier.parse("supplementaries:quiver"))) + .addOptional(ResourceKey.create(Registries.ITEM, Identifier.parse("autumnity:turkey"))) + .addOptional(ResourceKey.create(Registries.ITEM, Identifier.parse("autumnity:cooked_turkey"))); } @SuppressWarnings("unchecked") @@ -223,12 +221,12 @@ private void registerNeoForgeTags() { tag(Tags.Items.DRINKS) .addTag(ModTags.Items.DRINKS); tag(Tags.Items.FOODS) - .add(ModItems.TOMATO_SAUCE.get()) - .add(ModItems.PIE_CRUST.get()) - .add(ModItems.PUMPKIN_SLICE.get()) - .add(ModItems.HAM.get()) - .add(ModItems.SMOKED_HAM.get()) - .add(ModItems.DOG_FOOD.get()) + .add(key(ModItems.TOMATO_SAUCE.get())) + .add(key(ModItems.PIE_CRUST.get())) + .add(key(ModItems.PUMPKIN_SLICE.get())) + .add(key(ModItems.HAM.get())) + .add(key(ModItems.SMOKED_HAM.get())) + .add(key(ModItems.DOG_FOOD.get())) .addTag(ModTags.Items.SNACKS) .addTag(ModTags.Items.MEALS) .addTag(ModTags.Items.SWEETS) @@ -237,47 +235,47 @@ private void registerNeoForgeTags() { .addTag(CommonTags.Items.FOODS_PASTA) .addTag(CommonTags.Items.FOODS_COOKED_EGG); - tag(Tags.Items.FENCES).add(ModItems.ROPE_FENCE.get()); - tag(Tags.Items.FENCE_GATES).add(ModItems.ROPE_FENCE_GATE.get()); + tag(Tags.Items.FENCES).add(key(ModItems.ROPE_FENCE.get())); + tag(Tags.Items.FENCE_GATES).add(key(ModItems.ROPE_FENCE_GATE.get())); - tag(Tags.Items.DRINKS_MILK).add(ModItems.MILK_BOTTLE.get()); + tag(Tags.Items.DRINKS_MILK).add(key(ModItems.MILK_BOTTLE.get())); - tag(Tags.Items.FOODS_VEGETABLE).add(ModItems.ONION.get(), ModItems.TOMATO.get()); - tag(Tags.Items.FOODS_COOKIE).add(ModItems.HONEY_COOKIE.get(), ModItems.SWEET_BERRY_COOKIE.get()); + tag(Tags.Items.FOODS_VEGETABLE).add(key(ModItems.ONION.get()), key(ModItems.TOMATO.get())); + tag(Tags.Items.FOODS_COOKIE).add(key(ModItems.HONEY_COOKIE.get()), key(ModItems.SWEET_BERRY_COOKIE.get())); tag(Tags.Items.FOODS_DOUGH).addTag(CommonTags.Items.FOODS_DOUGH_WHEAT); tag(Tags.Items.FOODS_RAW_MEAT).addTags(CommonTags.Items.FOODS_RAW_CHICKEN, CommonTags.Items.FOODS_RAW_PORK, CommonTags.Items.FOODS_RAW_BEEF, CommonTags.Items.FOODS_RAW_MUTTON); tag(Tags.Items.FOODS_RAW_FISH).addTags(CommonTags.Items.FOODS_RAW_COD, CommonTags.Items.FOODS_RAW_SALMON); tag(Tags.Items.FOODS_COOKED_MEAT).addTags(CommonTags.Items.FOODS_COOKED_CHICKEN, CommonTags.Items.FOODS_COOKED_PORK, CommonTags.Items.FOODS_COOKED_BEEF, CommonTags.Items.FOODS_COOKED_MUTTON); tag(Tags.Items.FOODS_COOKED_FISH).addTags(CommonTags.Items.FOODS_COOKED_COD, CommonTags.Items.FOODS_COOKED_SALMON); tag(Tags.Items.FOODS_FOOD_POISONING).add( - ModItems.WHEAT_DOUGH.get(), - ModItems.RAW_PASTA.get(), - ModItems.CHICKEN_CUTS.get(), - ModItems.NETHER_SALAD.get() + key(ModItems.WHEAT_DOUGH.get()), + key(ModItems.RAW_PASTA.get()), + key(ModItems.CHICKEN_CUTS.get()), + key(ModItems.NETHER_SALAD.get()) ); tag(Tags.Items.FOODS_EDIBLE_WHEN_PLACED) - .add(ModItems.APPLE_PIE.get()) - .add(ModItems.SWEET_BERRY_CHEESECAKE.get()) - .add(ModItems.CHOCOLATE_PIE.get()) + .add(key(ModItems.APPLE_PIE.get())) + .add(key(ModItems.SWEET_BERRY_CHEESECAKE.get())) + .add(key(ModItems.CHOCOLATE_PIE.get())) .addTag(ModTags.Items.FEASTS); tag(Tags.Items.FOODS_SOUP) - .add(ModItems.BONE_BROTH.get()) - .add(ModItems.BEEF_STEW.get()) - .add(ModItems.VEGETABLE_SOUP.get()) - .add(ModItems.CHICKEN_SOUP.get()) - .add(ModItems.FISH_STEW.get()) - .add(ModItems.PUMPKIN_SOUP.get()) - .add(ModItems.BAKED_COD_STEW.get()) - .add(ModItems.NOODLE_SOUP.get()); + .add(key(ModItems.BONE_BROTH.get())) + .add(key(ModItems.BEEF_STEW.get())) + .add(key(ModItems.VEGETABLE_SOUP.get())) + .add(key(ModItems.CHICKEN_SOUP.get())) + .add(key(ModItems.FISH_STEW.get())) + .add(key(ModItems.PUMPKIN_SOUP.get())) + .add(key(ModItems.BAKED_COD_STEW.get())) + .add(key(ModItems.NOODLE_SOUP.get())); tag(Tags.Items.FOODS_PIE) - .add(ModItems.APPLE_PIE_SLICE.get()) - .add(ModItems.SWEET_BERRY_CHEESECAKE_SLICE.get()) - .add(ModItems.CHOCOLATE_PIE_SLICE.get()) - .add(ModItems.PUMPKIN_PIE_SLICE.get()); + .add(key(ModItems.APPLE_PIE_SLICE.get())) + .add(key(ModItems.SWEET_BERRY_CHEESECAKE_SLICE.get())) + .add(key(ModItems.CHOCOLATE_PIE_SLICE.get())) + .add(key(ModItems.PUMPKIN_PIE_SLICE.get())); tag(Tags.Items.TOOLS).addTag(CommonTags.Items.TOOLS_KNIFE); - tag(Tags.Items.ROPES).add(ModItems.ROPE.get()); - tag(Tags.Items.SEEDS).add(ModItems.CABBAGE_SEEDS.get(), ModItems.RICE.get(), ModItems.TOMATO_SEEDS.get()); + tag(Tags.Items.ROPES).add(key(ModItems.ROPE.get())); + tag(Tags.Items.SEEDS).add(key(ModItems.CABBAGE_SEEDS.get()), key(ModItems.RICE.get()), key(ModItems.TOMATO_SEEDS.get())); tag(Tags.Items.CROPS).addTags(CommonTags.Items.CROPS_CABBAGE, CommonTags.Items.CROPS_ONION, CommonTags.Items.CROPS_RICE, CommonTags.Items.CROPS_TOMATO); tag(Tags.Items.STORAGE_BLOCKS).addTags( CommonTags.Items.STORAGE_BLOCKS_CARROT, @@ -293,49 +291,49 @@ private void registerNeoForgeTags() { } public void registerCommonTags() { - tag(CommonTags.Items.CROPS_CABBAGE).add(ModItems.CABBAGE.get(), ModItems.CABBAGE_LEAF.get()); - tag(CommonTags.Items.CROPS_ONION).add(ModItems.ONION.get()); - tag(CommonTags.Items.CROPS_TOMATO).add(ModItems.TOMATO.get()); - tag(CommonTags.Items.CROPS_RICE).add(ModItems.RICE.get()); + tag(CommonTags.Items.CROPS_CABBAGE).add(key(ModItems.CABBAGE.get()), key(ModItems.CABBAGE_LEAF.get())); + tag(CommonTags.Items.CROPS_ONION).add(key(ModItems.ONION.get())); + tag(CommonTags.Items.CROPS_TOMATO).add(key(ModItems.TOMATO.get())); + tag(CommonTags.Items.CROPS_RICE).add(key(ModItems.RICE.get())); - tag(CommonTags.Items.FOODS_CABBAGE).add(ModItems.CABBAGE.get(), ModItems.CABBAGE_LEAF.get()); - tag(CommonTags.Items.FOODS_TOMATO).add(ModItems.TOMATO.get()); - tag(CommonTags.Items.FOODS_ONION).add(ModItems.ONION.get()); + tag(CommonTags.Items.FOODS_CABBAGE).add(key(ModItems.CABBAGE.get()), key(ModItems.CABBAGE_LEAF.get())); + tag(CommonTags.Items.FOODS_TOMATO).add(key(ModItems.TOMATO.get())); + tag(CommonTags.Items.FOODS_ONION).add(key(ModItems.ONION.get())); - tag(CommonTags.Items.FOODS_DOUGH_WHEAT).add(ModItems.WHEAT_DOUGH.get()); - tag(CommonTags.Items.CROPS_GRAIN).add(Items.WHEAT, ModItems.RICE.get()); - tag(CommonTags.Items.FOODS_PASTA).add(ModItems.RAW_PASTA.get()); + tag(CommonTags.Items.FOODS_DOUGH_WHEAT).add(key(ModItems.WHEAT_DOUGH.get())); + tag(CommonTags.Items.CROPS_GRAIN).add(key(Items.WHEAT), key(ModItems.RICE.get())); + tag(CommonTags.Items.FOODS_PASTA).add(key(ModItems.RAW_PASTA.get())); tag(CommonTags.Items.FOODS_LEAFY_GREEN).addTag(CommonTags.Items.FOODS_CABBAGE); - tag(CommonTags.Items.FOODS_RAW_BACON).add(ModItems.BACON.get()); - tag(CommonTags.Items.FOODS_RAW_BEEF).add(Items.BEEF, ModItems.MINCED_BEEF.get()); - tag(CommonTags.Items.FOODS_RAW_CHICKEN).add(Items.CHICKEN, ModItems.CHICKEN_CUTS.get()); - tag(CommonTags.Items.FOODS_RAW_PORK).add(Items.PORKCHOP).addTag(CommonTags.Items.FOODS_RAW_BACON); - tag(CommonTags.Items.FOODS_RAW_MUTTON).add(Items.MUTTON, ModItems.MUTTON_CHOPS.get()); - tag(CommonTags.Items.FOODS_RAW_COD).add(Items.COD, ModItems.COD_SLICE.get()); - tag(CommonTags.Items.FOODS_RAW_SALMON).add(Items.SALMON, ModItems.SALMON_SLICE.get()); - tag(CommonTags.Items.FOODS_SAFE_RAW_FISH).addTag(Tags.Items.FOODS_RAW_FISH).remove(Items.PUFFERFISH); + tag(CommonTags.Items.FOODS_RAW_BACON).add(key(ModItems.BACON.get())); + tag(CommonTags.Items.FOODS_RAW_BEEF).add(key(Items.BEEF), key(ModItems.MINCED_BEEF.get())); + tag(CommonTags.Items.FOODS_RAW_CHICKEN).add(key(Items.CHICKEN), key(ModItems.CHICKEN_CUTS.get())); + tag(CommonTags.Items.FOODS_RAW_PORK).add(key(Items.PORKCHOP)).addTag(CommonTags.Items.FOODS_RAW_BACON); + tag(CommonTags.Items.FOODS_RAW_MUTTON).add(key(Items.MUTTON), key(ModItems.MUTTON_CHOPS.get())); + tag(CommonTags.Items.FOODS_RAW_COD).add(key(Items.COD), key(ModItems.COD_SLICE.get())); + tag(CommonTags.Items.FOODS_RAW_SALMON).add(key(Items.SALMON), key(ModItems.SALMON_SLICE.get())); + tag(CommonTags.Items.FOODS_SAFE_RAW_FISH).addTag(Tags.Items.FOODS_RAW_FISH).remove(key(Items.PUFFERFISH)); - tag(CommonTags.Items.FOODS_COOKED_BACON).add(ModItems.COOKED_BACON.get()); - tag(CommonTags.Items.FOODS_COOKED_BEEF).add(Items.COOKED_BEEF, ModItems.BEEF_PATTY.get()); - tag(CommonTags.Items.FOODS_COOKED_CHICKEN).add(Items.COOKED_CHICKEN, ModItems.COOKED_CHICKEN_CUTS.get()); - tag(CommonTags.Items.FOODS_COOKED_PORK).add(Items.COOKED_PORKCHOP).addTag(CommonTags.Items.FOODS_COOKED_BACON); - tag(CommonTags.Items.FOODS_COOKED_MUTTON).add(Items.COOKED_MUTTON, ModItems.COOKED_MUTTON_CHOPS.get()); - tag(CommonTags.Items.FOODS_COOKED_COD).add(Items.COOKED_COD, ModItems.COOKED_COD_SLICE.get()); - tag(CommonTags.Items.FOODS_COOKED_SALMON).add(Items.COOKED_SALMON, ModItems.COOKED_SALMON_SLICE.get()); - tag(CommonTags.Items.FOODS_COOKED_EGG).add(ModItems.FRIED_EGG.get()); + tag(CommonTags.Items.FOODS_COOKED_BACON).add(key(ModItems.COOKED_BACON.get())); + tag(CommonTags.Items.FOODS_COOKED_BEEF).add(key(Items.COOKED_BEEF), key(ModItems.BEEF_PATTY.get())); + tag(CommonTags.Items.FOODS_COOKED_CHICKEN).add(key(Items.COOKED_CHICKEN), key(ModItems.COOKED_CHICKEN_CUTS.get())); + tag(CommonTags.Items.FOODS_COOKED_PORK).add(key(Items.COOKED_PORKCHOP)).addTag(CommonTags.Items.FOODS_COOKED_BACON); + tag(CommonTags.Items.FOODS_COOKED_MUTTON).add(key(Items.COOKED_MUTTON), key(ModItems.COOKED_MUTTON_CHOPS.get())); + tag(CommonTags.Items.FOODS_COOKED_COD).add(key(Items.COOKED_COD), key(ModItems.COOKED_COD_SLICE.get())); + tag(CommonTags.Items.FOODS_COOKED_SALMON).add(key(Items.COOKED_SALMON), key(ModItems.COOKED_SALMON_SLICE.get())); + tag(CommonTags.Items.FOODS_COOKED_EGG).add(key(ModItems.FRIED_EGG.get())); - tag(CommonTags.Items.STORAGE_BLOCKS_CARROT).add(ModItems.CARROT_CRATE.get()); - tag(CommonTags.Items.STORAGE_BLOCKS_POTATO).add(ModItems.POTATO_CRATE.get()); - tag(CommonTags.Items.STORAGE_BLOCKS_BEETROOT).add(ModItems.BEETROOT_CRATE.get()); - tag(CommonTags.Items.STORAGE_BLOCKS_CABBAGE).add(ModItems.CABBAGE_CRATE.get()); - tag(CommonTags.Items.STORAGE_BLOCKS_TOMATO).add(ModItems.TOMATO_CRATE.get()); - tag(CommonTags.Items.STORAGE_BLOCKS_ONION).add(ModItems.ONION_CRATE.get()); - tag(CommonTags.Items.STORAGE_BLOCKS_RICE).add(ModItems.RICE_BAG.get()); - tag(CommonTags.Items.STORAGE_BLOCKS_RICE_PANICLE).add(ModItems.RICE_BALE.get()); - tag(CommonTags.Items.STORAGE_BLOCKS_STRAW).add(ModItems.STRAW_BALE.get()); + tag(CommonTags.Items.STORAGE_BLOCKS_CARROT).add(key(ModItems.CARROT_CRATE.get())); + tag(CommonTags.Items.STORAGE_BLOCKS_POTATO).add(key(ModItems.POTATO_CRATE.get())); + tag(CommonTags.Items.STORAGE_BLOCKS_BEETROOT).add(key(ModItems.BEETROOT_CRATE.get())); + tag(CommonTags.Items.STORAGE_BLOCKS_CABBAGE).add(key(ModItems.CABBAGE_CRATE.get())); + tag(CommonTags.Items.STORAGE_BLOCKS_TOMATO).add(key(ModItems.TOMATO_CRATE.get())); + tag(CommonTags.Items.STORAGE_BLOCKS_ONION).add(key(ModItems.ONION_CRATE.get())); + tag(CommonTags.Items.STORAGE_BLOCKS_RICE).add(key(ModItems.RICE_BAG.get())); + tag(CommonTags.Items.STORAGE_BLOCKS_RICE_PANICLE).add(key(ModItems.RICE_BALE.get())); + tag(CommonTags.Items.STORAGE_BLOCKS_STRAW).add(key(ModItems.STRAW_BALE.get())); - tag(CommonTags.Items.TOOLS_KNIFE).add(ModItems.FLINT_KNIFE.get(), ModItems.IRON_KNIFE.get(), ModItems.DIAMOND_KNIFE.get(), ModItems.GOLDEN_KNIFE.get(), ModItems.NETHERITE_KNIFE.get()); + tag(CommonTags.Items.TOOLS_KNIFE).add(key(ModItems.FLINT_KNIFE.get()), key(ModItems.IRON_KNIFE.get()), key(ModItems.DIAMOND_KNIFE.get()), key(ModItems.GOLDEN_KNIFE.get()), key(ModItems.NETHERITE_KNIFE.get())); } public void registerCompatibilityTags() { @@ -343,44 +341,86 @@ public void registerCompatibilityTags() { .addTag(ModTags.Items.MEALS) .addTag(ModTags.Items.DRINKS) .addTag(ModTags.Items.FEASTS) - .add(ModItems.TOMATO_SAUCE.get()) - .add(ModItems.DOG_FOOD.get()) - .add(ModItems.FRUIT_SALAD.get()) - .add(ModItems.NETHER_SALAD.get()) - .add(ModItems.PIE_CRUST.get()) - .add(ModItems.APPLE_PIE.get()) - .add(ModItems.SWEET_BERRY_CHEESECAKE.get()) - .add(ModItems.CHOCOLATE_PIE.get()); + .add(key(ModItems.TOMATO_SAUCE.get())) + .add(key(ModItems.DOG_FOOD.get())) + .add(key(ModItems.FRUIT_SALAD.get())) + .add(key(ModItems.NETHER_SALAD.get())) + .add(key(ModItems.PIE_CRUST.get())) + .add(key(ModItems.APPLE_PIE.get())) + .add(key(ModItems.SWEET_BERRY_CHEESECAKE.get())) + .add(key(ModItems.CHOCOLATE_PIE.get())); tag(CompatibilityTags.CREATE_CA_PLANT_FOODS) - .add(ModItems.PUMPKIN_SLICE.get()) - .add(ModItems.ROTTEN_TOMATO.get()) - .add(ModItems.RICE_PANICLE.get()); + .add(key(ModItems.PUMPKIN_SLICE.get())) + .add(key(ModItems.ROTTEN_TOMATO.get())) + .add(key(ModItems.RICE_PANICLE.get())); tag(CompatibilityTags.CREATE_CA_PLANTS) - .add(ModItems.SANDY_SHRUB.get()) - .add(ModItems.BROWN_MUSHROOM_COLONY.get()) - .add(ModItems.RED_MUSHROOM_COLONY.get()); + .add(key(ModItems.SANDY_SHRUB.get())) + .add(key(ModItems.BROWN_MUSHROOM_COLONY.get())) + .add(key(ModItems.RED_MUSHROOM_COLONY.get())); tag(CompatibilityTags.ORIGINS_MEAT) - .add(ModItems.FRIED_EGG.get()) - .add(ModItems.COD_SLICE.get()) - .add(ModItems.COOKED_COD_SLICE.get()) - .add(ModItems.SALMON_SLICE.get()) - .add(ModItems.COOKED_SALMON_SLICE.get()) - .add(ModItems.BACON_AND_EGGS.get()); + .add(key(ModItems.FRIED_EGG.get())) + .add(key(ModItems.COD_SLICE.get())) + .add(key(ModItems.COOKED_COD_SLICE.get())) + .add(key(ModItems.SALMON_SLICE.get())) + .add(key(ModItems.COOKED_SALMON_SLICE.get())) + .add(key(ModItems.BACON_AND_EGGS.get())); tag(CompatibilityTags.SERENE_SEASONS_AUTUMN_CROPS) - .add(ModItems.CABBAGE_SEEDS.get()) - .add(ModItems.ONION.get()) - .add(ModItems.RICE.get()); + .add(key(ModItems.CABBAGE_SEEDS.get())) + .add(key(ModItems.ONION.get())) + .add(key(ModItems.RICE.get())); tag(CompatibilityTags.SERENE_SEASONS_SPRING_CROPS) - .add(ModItems.ONION.get()); + .add(key(ModItems.ONION.get())); tag(CompatibilityTags.SERENE_SEASONS_SUMMER_CROPS) - .add(ModItems.TOMATO_SEEDS.get()) - .add(ModItems.RICE.get()); + .add(key(ModItems.TOMATO_SEEDS.get())) + .add(key(ModItems.RICE.get())); tag(CompatibilityTags.SERENE_SEASONS_WINTER_CROPS) - .add(ModItems.CABBAGE_SEEDS.get()); + .add(key(ModItems.CABBAGE_SEEDS.get())); - tag(CompatibilityTags.TINKERS_CONSTRUCT_SEEDS).add(ModItems.ONION.get()); + tag(CompatibilityTags.TINKERS_CONSTRUCT_SEEDS).add(key(ModItems.ONION.get())); + } + + private static ResourceKey key(Item item) { + return BuiltInRegistries.ITEM.getResourceKey(item).orElseThrow(); + } + + private void copy(TagKey blockTag, TagKey itemTag) { + if (blockTag == ModTags.Blocks.WILD_CROPS && itemTag == ModTags.Items.WILD_CROPS) { + tag(itemTag).add( + key(ModItems.WILD_CARROTS.get()), + key(ModItems.WILD_POTATOES.get()), + key(ModItems.WILD_BEETROOTS.get()), + key(ModItems.WILD_CABBAGES.get()), + key(ModItems.WILD_TOMATOES.get()), + key(ModItems.WILD_ONIONS.get()), + key(ModItems.WILD_RICE.get())); + } else if (blockTag == ModTags.Blocks.FEASTS && itemTag == ModTags.Items.FEASTS) { + tag(itemTag).add( + key(ModItems.ROAST_CHICKEN_BLOCK.get()), + key(ModItems.STUFFED_PUMPKIN_BLOCK.get()), + key(ModItems.SHEPHERDS_PIE_BLOCK.get()), + key(ModItems.HONEY_GLAZED_HAM_BLOCK.get()), + key(ModItems.GLEAMING_SALAD_BLOCK.get()), + key(ModItems.RICE_ROLL_MEDLEY_BLOCK.get())); + } else if (blockTag == ModTags.Blocks.CABINETS && itemTag == ModTags.Items.CABINETS) { + tag(itemTag).addTag(ModTags.Items.CABINETS_WOODEN); + } else if (blockTag == ModTags.Blocks.CABINETS_WOODEN && itemTag == ModTags.Items.CABINETS_WOODEN) { + tag(itemTag).add( + key(ModItems.OAK_CABINET.get()), + key(ModItems.SPRUCE_CABINET.get()), + key(ModItems.BIRCH_CABINET.get()), + key(ModItems.JUNGLE_CABINET.get()), + key(ModItems.ACACIA_CABINET.get()), + key(ModItems.DARK_OAK_CABINET.get()), + key(ModItems.MANGROVE_CABINET.get()), + key(ModItems.CHERRY_CABINET.get()), + key(ModItems.BAMBOO_CABINET.get()), + key(ModItems.CRIMSON_CABINET.get()), + key(ModItems.WARPED_CABINET.get())); + } else if (blockTag == ModTags.Blocks.MUSHROOM_COLONIES && itemTag == ModTags.Items.MUSHROOM_COLONIES) { + tag(itemTag).add(key(ModItems.BROWN_MUSHROOM_COLONY.get()), key(ModItems.RED_MUSHROOM_COLONY.get())); + } } } diff --git a/src/main/java/vectorwing/farmersdelight/data/LootModifiers.java b/src/main/java/vectorwing/farmersdelight/data/LootModifiers.java index 05b67fe8f..93ad76f79 100644 --- a/src/main/java/vectorwing/farmersdelight/data/LootModifiers.java +++ b/src/main/java/vectorwing/farmersdelight/data/LootModifiers.java @@ -1,11 +1,20 @@ package vectorwing.farmersdelight.data; -import net.minecraft.advancements.critereon.*; +import net.minecraft.advancements.predicates.*; +import net.minecraft.advancements.predicates.entity.EntityEquipmentPredicate; +import net.minecraft.advancements.predicates.entity.EntityFlagsPredicate; +import net.minecraft.advancements.predicates.entity.EntityPredicate; +import net.minecraft.advancements.predicates.entity.EntityTypePredicate; +import net.minecraft.advancements.triggers.*; +import net.minecraft.core.HolderSet; import net.minecraft.core.HolderLookup; +import net.minecraft.core.component.predicates.DataComponentPredicates; +import net.minecraft.core.component.predicates.EnchantmentsPredicate; import net.minecraft.core.registries.Registries; import net.minecraft.data.PackOutput; import net.minecraft.resources.ResourceKey; import net.minecraft.world.entity.EntityType; +import net.minecraft.world.entity.EntityTypeIds; import net.minecraft.world.item.Item; import net.minecraft.world.item.Items; import net.minecraft.world.item.enchantment.Enchantment; @@ -59,24 +68,24 @@ protected void start() { this.add("add_loot_village_taiga_house", this.addNewLootPool(BuiltInLootTables.VILLAGE_TAIGA_HOUSE, ModChestLootTables.VILLAGE_TAIGA_HOUSE)); // Entity Loot - this.add("add_onion_to_illagers", this.addItemOnPlayerKill(ModItems.ONION.get(), 0.02F, EntityType.PILLAGER, EntityType.EVOKER, EntityType.VINDICATOR)); - this.add("add_onion_to_zombies", this.addItemOnPlayerKill(ModItems.ONION.get(), 0.02F, EntityType.ZOMBIE, EntityType.HUSK, EntityType.ZOMBIE_VILLAGER)); + this.add("add_onion_to_illagers", this.addItemOnPlayerKill(ModItems.ONION.get(), 0.02F, EntityTypeIds.PILLAGER, EntityTypeIds.EVOKER, EntityTypeIds.VINDICATOR)); + this.add("add_onion_to_zombies", this.addItemOnPlayerKill(ModItems.ONION.get(), 0.02F, EntityTypeIds.ZOMBIE, EntityTypeIds.HUSK, EntityTypeIds.ZOMBIE_VILLAGER)); // Knife Scavenging - this.add("scavenging_feather", this.addItemOnKnifeKill(Items.FEATHER, EntityType.CHICKEN)); - this.add("scavenging_ham_from_hoglin", this.addItemOnKnifeKill(ModItems.HAM.get(), false, 1.0F, EntityType.HOGLIN)); - this.add("scavenging_ham_from_pig", this.addItemOnKnifeKill(ModItems.HAM.get(), false, 0.5F, EntityType.PIG)); - this.add("scavenging_leather", this.addItemOnKnifeKill(Items.LEATHER, EntityType.COW, EntityType.MOOSHROOM, EntityType.HORSE, EntityType.DONKEY, EntityType.MULE, EntityType.LLAMA, EntityType.TRADER_LLAMA)); - this.add("scavenging_rabbit_hide", this.addItemOnKnifeKill(Items.RABBIT_HIDE, EntityType.RABBIT)); - this.add("scavenging_shulker_shell", this.addItemOnKnifeKill(Items.SHULKER_SHELL, EntityType.SHULKER)); - this.add("scavenging_smoked_ham_from_hoglin", this.addItemOnKnifeKill(ModItems.SMOKED_HAM.get(), true, 1.0F, EntityType.HOGLIN)); - this.add("scavenging_smoked_ham_from_pig", this.addItemOnKnifeKill(ModItems.SMOKED_HAM.get(), true, 0.5F, EntityType.PIG)); - this.add("scavenging_string", this.addItemOnKnifeKill(Items.STRING, EntityType.SPIDER, EntityType.CAVE_SPIDER)); + this.add("scavenging_feather", this.addItemOnKnifeKill(Items.FEATHER, EntityTypeIds.CHICKEN)); + this.add("scavenging_ham_from_hoglin", this.addItemOnKnifeKill(ModItems.HAM.get(), false, 1.0F, EntityTypeIds.HOGLIN)); + this.add("scavenging_ham_from_pig", this.addItemOnKnifeKill(ModItems.HAM.get(), false, 0.5F, EntityTypeIds.PIG)); + this.add("scavenging_leather", this.addItemOnKnifeKill(Items.LEATHER, EntityTypeIds.COW, EntityTypeIds.MOOSHROOM, EntityTypeIds.HORSE, EntityTypeIds.DONKEY, EntityTypeIds.MULE, EntityTypeIds.LLAMA, EntityTypeIds.TRADER_LLAMA)); + this.add("scavenging_rabbit_hide", this.addItemOnKnifeKill(Items.RABBIT_HIDE, EntityTypeIds.RABBIT)); + this.add("scavenging_shulker_shell", this.addItemOnKnifeKill(Items.SHULKER_SHELL, EntityTypeIds.SHULKER)); + this.add("scavenging_smoked_ham_from_hoglin", this.addItemOnKnifeKill(ModItems.SMOKED_HAM.get(), true, 1.0F, EntityTypeIds.HOGLIN)); + this.add("scavenging_smoked_ham_from_pig", this.addItemOnKnifeKill(ModItems.SMOKED_HAM.get(), true, 0.5F, EntityTypeIds.PIG)); + this.add("scavenging_string", this.addItemOnKnifeKill(Items.STRING, EntityTypeIds.SPIDER, EntityTypeIds.CAVE_SPIDER)); this.add("scavenging_pumpkin", new ReplaceItemModifier(new LootItemCondition[]{ LootItemBlockStatePropertyCondition.hasBlockStateProperties(Blocks.PUMPKIN).build(), - MatchTool.toolMatches(ItemPredicate.Builder.item().of(ModTags.Items.KNIVES)) + MatchTool.toolMatches(ItemPredicate.Builder.item().of(registries.lookupOrThrow(Registries.ITEM), ModTags.Items.KNIVES)) .and(hasSilkTouch().invert()).build() - },Items.PUMPKIN, ModItems.PUMPKIN_SLICE.get(), 4)); + }, 0, Items.PUMPKIN, ModItems.PUMPKIN_SLICE.get(), 4)); // Pastry Slicing this.add("slicing_apple_pie", this.pastrySlicing(ModItems.APPLE_PIE_SLICE.get(), ModBlocks.APPLE_PIE.get())); @@ -95,14 +104,14 @@ protected void start() { } private AddTableLootModifier addNewLootPool(ResourceKey lootToAddTo, ResourceKey newPool) { - return new AddTableLootModifier(new LootItemCondition[]{LootTableIdCondition.builder(lootToAddTo.location()).build()}, newPool); + return new AddTableLootModifier(new LootItemCondition[]{LootTableIdCondition.builder(lootToAddTo.identifier()).build()}, 0, newPool); } - private AddItemModifier addItemOnPlayerKill(Item item, float chance, EntityType... entity) { + private AddItemModifier addItemOnPlayerKill(Item item, float chance, ResourceKey>... entity) { LootItemCondition.Builder[] entityConditions = new LootItemCondition.Builder[entity.length]; for (int i = 0; i < entity.length; i++) { entityConditions[i] = LootItemEntityPropertyCondition.hasProperties(LootContext.EntityTarget.THIS, - EntityPredicate.Builder.entity().of(entity[i]).build()); + entityPredicate(entity[i]).build()); } List conditions = new ArrayList<>(); conditions.add(entityConditions.length > 1 ? AnyOfCondition.anyOf(entityConditions).build() : entityConditions[0].build()); @@ -112,22 +121,22 @@ private AddItemModifier addItemOnPlayerKill(Item item, float chance, EntityType< conditions.add(LootItemRandomChanceWithEnchantedBonusCondition.randomChanceAndLootingBoost(registries, chance, 0.01F).build()); } - return new AddItemModifier(conditions.toArray(LootItemCondition[]::new), item, 1); + return new AddItemModifier(conditions.toArray(LootItemCondition[]::new), 0, item, 1); } - private AddItemModifier addItemOnKnifeKill(Item item, EntityType... entity) { + private AddItemModifier addItemOnKnifeKill(Item item, ResourceKey>... entity) { return this.addItemOnKnifeKill(item, null, 1.0F, entity); } - private AddItemModifier addItemOnKnifeKill(Item item, Boolean onFire, float chance, EntityType... entity) { + private AddItemModifier addItemOnKnifeKill(Item item, Boolean onFire, float chance, ResourceKey>... entity) { LootItemCondition.Builder[] entityConditions = new LootItemCondition.Builder[entity.length]; for (int i = 0; i < entity.length; i++) { entityConditions[i] = LootItemEntityPropertyCondition.hasProperties(LootContext.EntityTarget.THIS, - EntityPredicate.Builder.entity().of(entity[i]).build()); + entityPredicate(entity[i]).build()); } List conditions = new ArrayList<>(); - conditions.add(LootItemEntityPropertyCondition.hasProperties(LootContext.EntityTarget.ATTACKER, EntityPredicate.Builder.entity().equipment(EntityEquipmentPredicate.Builder.equipment().mainhand(ItemPredicate.Builder.item().of(ModTags.Items.KNIVES)).build()).build()).build()); + conditions.add(LootItemEntityPropertyCondition.hasProperties(LootContext.EntityTarget.ATTACKER, EntityPredicate.Builder.entity().equipment(EntityEquipmentPredicate.Builder.equipment().mainhand(ItemPredicate.Builder.item().of(registries.lookupOrThrow(Registries.ITEM), ModTags.Items.KNIVES)).build()).build()).build()); conditions.add(entityConditions.length > 1 ? AnyOfCondition.anyOf(entityConditions).build() : entityConditions[0].build()); if (onFire != null) { @@ -138,50 +147,60 @@ private AddItemModifier addItemOnKnifeKill(Item item, Boolean onFire, float chan conditions.add(LootItemRandomChanceWithEnchantedBonusCondition.randomChanceAndLootingBoost(registries, chance, 0.1F).build()); } - return new AddItemModifier(conditions.toArray(LootItemCondition[]::new), item, 1); + return new AddItemModifier(conditions.toArray(LootItemCondition[]::new), 0, item, 1); } private AddItemModifier candleCakeSlicing() { - List cakes = List.of(Blocks.CANDLE_CAKE, Blocks.WHITE_CANDLE_CAKE, Blocks.ORANGE_CANDLE_CAKE, Blocks.MAGENTA_CANDLE_CAKE, Blocks.LIGHT_BLUE_CANDLE_CAKE, Blocks.YELLOW_CANDLE_CAKE, Blocks.LIME_CANDLE_CAKE, Blocks.PINK_CANDLE_CAKE, Blocks.GRAY_CANDLE_CAKE, Blocks.LIGHT_GRAY_CANDLE_CAKE, Blocks.CYAN_CANDLE_CAKE, Blocks.PURPLE_CANDLE_CAKE, Blocks.BLUE_CANDLE_CAKE, Blocks.BROWN_CANDLE_CAKE, Blocks.GREEN_CANDLE_CAKE, Blocks.RED_CANDLE_CAKE, Blocks.BLACK_CANDLE_CAKE); + List cakes = new ArrayList<>(); + cakes.add(Blocks.CANDLE_CAKE); + cakes.addAll(Blocks.DYED_CANDLE_CAKE.asList()); LootItemCondition.Builder[] conditions = new LootItemCondition.Builder[cakes.size()]; for (int i = 0; i < cakes.size(); i++) { conditions[i] = LootItemBlockStatePropertyCondition.hasBlockStateProperties(cakes.get(i)); } return new AddItemModifier(new LootItemCondition[]{ - MatchTool.toolMatches(ItemPredicate.Builder.item().of(ModTags.Items.KNIVES)).build(), + MatchTool.toolMatches(ItemPredicate.Builder.item().of(registries.lookupOrThrow(Registries.ITEM), ModTags.Items.KNIVES)).build(), AnyOfCondition.anyOf(conditions).build() - }, ModItems.CAKE_SLICE.get(), 7); + }, 0, ModItems.CAKE_SLICE.get(), 7); } private PastrySlicingModifier pastrySlicing(Item receivedItem, Block slicedBlock) { return new PastrySlicingModifier(new LootItemCondition[]{ - MatchTool.toolMatches(ItemPredicate.Builder.item().of(ModTags.Items.KNIVES)).build(), + MatchTool.toolMatches(ItemPredicate.Builder.item().of(registries.lookupOrThrow(Registries.ITEM), ModTags.Items.KNIVES)).build(), LootItemBlockStatePropertyCondition.hasBlockStateProperties(slicedBlock).build() - }, receivedItem); + }, 0, receivedItem); } private AddItemModifier strawHarvesting(LootItemBlockStatePropertyCondition.Builder slicedBlock, float chance) { List conditions = new ArrayList<>(); - conditions.add(MatchTool.toolMatches(ItemPredicate.Builder.item().of(ModTags.Items.STRAW_HARVESTERS)).build()); + conditions.add(MatchTool.toolMatches(ItemPredicate.Builder.item().of(registries.lookupOrThrow(Registries.ITEM), ModTags.Items.STRAW_HARVESTERS)).build()); if (chance < 1.0F) { conditions.add(LootItemRandomChanceCondition.randomChance(chance).build()); } conditions.add(slicedBlock.build()); - return new AddItemModifier(conditions.toArray(LootItemCondition[]::new), ModItems.STRAW.get(), 1); + return new AddItemModifier(conditions.toArray(LootItemCondition[]::new), 0, ModItems.STRAW.get(), 1); } protected LootItemCondition.Builder hasSilkTouch() { HolderLookup.RegistryLookup registrylookup = this.registries.lookupOrThrow(Registries.ENCHANTMENT); return MatchTool.toolMatches( ItemPredicate.Builder.item() - .withSubPredicate( - ItemSubPredicates.ENCHANTMENTS, - ItemEnchantmentsPredicate.enchantments( - List.of(new EnchantmentPredicate(registrylookup.getOrThrow(Enchantments.SILK_TOUCH), MinMaxBounds.Ints.atLeast(1))) - ) + .withComponents( + DataComponentMatchers.Builder.components() + .partial( + DataComponentPredicates.ENCHANTMENTS, + EnchantmentsPredicate.enchantments( + List.of(new EnchantmentPredicate(registrylookup.getOrThrow(Enchantments.SILK_TOUCH), MinMaxBounds.Ints.atLeast(1))) + ) + ).build() ) ); } + + private EntityPredicate.Builder entityPredicate(ResourceKey> entity) { + HolderLookup.RegistryLookup> entityTypes = this.registries.lookupOrThrow(Registries.ENTITY_TYPE); + return EntityPredicate.Builder.entity().entityType(new EntityTypePredicate(HolderSet.direct(entityTypes.getOrThrow(entity)))); + } } diff --git a/src/main/java/vectorwing/farmersdelight/data/ModEnchantments.java b/src/main/java/vectorwing/farmersdelight/data/ModEnchantments.java index bf0fe0b7e..fc46e7e83 100644 --- a/src/main/java/vectorwing/farmersdelight/data/ModEnchantments.java +++ b/src/main/java/vectorwing/farmersdelight/data/ModEnchantments.java @@ -4,7 +4,7 @@ import net.minecraft.core.registries.Registries; import net.minecraft.data.worldgen.BootstrapContext; import net.minecraft.resources.ResourceKey; -import net.minecraft.resources.ResourceLocation; +import net.minecraft.resources.Identifier; import net.minecraft.world.entity.EquipmentSlotGroup; import net.minecraft.world.item.Item; import net.minecraft.world.item.enchantment.Enchantment; @@ -36,10 +36,10 @@ public static void bootstrap(BootstrapContext context) { } private static void register(BootstrapContext context, ResourceKey key, Enchantment.Builder builder) { - context.register(key, builder.build(key.location())); + context.register(key, builder.build(key.identifier())); } private static ResourceKey key(String name) { - return ResourceKey.create(Registries.ENCHANTMENT, ResourceLocation.fromNamespaceAndPath(FarmersDelight.MODID, name)); + return ResourceKey.create(Registries.ENCHANTMENT, Identifier.fromNamespaceAndPath(FarmersDelight.MODID, name)); } } diff --git a/src/main/java/vectorwing/farmersdelight/data/Recipes.java b/src/main/java/vectorwing/farmersdelight/data/Recipes.java index b326df05d..c17ec9128 100644 --- a/src/main/java/vectorwing/farmersdelight/data/Recipes.java +++ b/src/main/java/vectorwing/farmersdelight/data/Recipes.java @@ -1,6 +1,5 @@ package vectorwing.farmersdelight.data; -import net.minecraft.MethodsReturnNonnullByDefault; import net.minecraft.core.HolderLookup; import net.minecraft.data.PackOutput; import net.minecraft.data.recipes.RecipeOutput; @@ -14,18 +13,28 @@ import java.util.concurrent.CompletableFuture; @ParametersAreNonnullByDefault -@MethodsReturnNonnullByDefault -public class Recipes extends RecipeProvider +public class Recipes extends RecipeProvider.Runner { public Recipes(PackOutput output, CompletableFuture registries) { super(output, registries); } @Override - protected void buildRecipes(RecipeOutput output) { - CraftingRecipes.register(output); - SmeltingRecipes.register(output); - CookingRecipes.register(output); - CuttingRecipes.register(output); + protected RecipeProvider createRecipeProvider(HolderLookup.Provider registries, RecipeOutput output) { + return new RecipeProvider(registries, output) + { + @Override + protected void buildRecipes() { + CraftingRecipes.register(output, items); + SmeltingRecipes.register(output); + CookingRecipes.register(output, items); + CuttingRecipes.register(output, items); + } + }; + } + + @Override + public String getName() { + return "Farmer's Delight Recipes"; } } diff --git a/src/main/java/vectorwing/farmersdelight/data/SoundDefinitions.java b/src/main/java/vectorwing/farmersdelight/data/SoundDefinitions.java index 2a1fae82c..b4f8bcbd3 100644 --- a/src/main/java/vectorwing/farmersdelight/data/SoundDefinitions.java +++ b/src/main/java/vectorwing/farmersdelight/data/SoundDefinitions.java @@ -1,10 +1,9 @@ package vectorwing.farmersdelight.data; import net.minecraft.data.PackOutput; -import net.minecraft.resources.ResourceLocation; +import net.minecraft.resources.Identifier; import net.minecraft.sounds.SoundEvent; import net.minecraft.sounds.SoundEvents; -import net.neoforged.neoforge.common.data.ExistingFileHelper; import net.neoforged.neoforge.common.data.SoundDefinition; import net.neoforged.neoforge.common.data.SoundDefinitionsProvider; import org.jetbrains.annotations.Nullable; @@ -16,8 +15,8 @@ public class SoundDefinitions extends SoundDefinitionsProvider { - protected SoundDefinitions(PackOutput output, ExistingFileHelper helper) { - super(output, FarmersDelight.MODID, helper); + protected SoundDefinitions(PackOutput output) { + super(output, FarmersDelight.MODID); } @Override @@ -34,8 +33,8 @@ public void registerSounds() { this.generateExistingSoundWithSubtitle(ModSounds.BLOCK_CUTTING_BOARD_PLACE, SoundEvents.WOOD_PLACE); this.generateExistingSoundWithSubtitle(ModSounds.BLOCK_CUTTING_BOARD_REMOVE, SoundEvents.WOOD_HIT); this.generateExistingSoundWithSubtitle(ModSounds.BLOCK_STOVE_CRACKLE, SoundEvents.CAMPFIRE_CRACKLE); - this.generateExistingSoundWithSubtitle(ModSounds.BLOCK_ROPE_FENCE_GATE_CLOSE, SoundEvents.LEASH_KNOT_PLACE); - this.generateExistingSoundWithSubtitle(ModSounds.BLOCK_ROPE_FENCE_GATE_OPEN, SoundEvents.LEASH_KNOT_BREAK); + this.generateExistingSoundWithSubtitle(ModSounds.BLOCK_ROPE_FENCE_GATE_CLOSE, SoundEvents.LEAD_TIED); + this.generateExistingSoundWithSubtitle(ModSounds.BLOCK_ROPE_FENCE_GATE_OPEN, SoundEvents.LEAD_UNTIED); this.generateExistingSoundWithSubtitle(ModSounds.BLOCK_CABINET_CLOSE, SoundEvents.BARREL_CLOSE); this.generateExistingSoundWithSubtitle(ModSounds.BLOCK_CABINET_OPEN, SoundEvents.BARREL_OPEN); this.generateExistingSoundWithSubtitle(ModSounds.BLOCK_TOMATOES_PICK_TOMATOES, SoundEvents.SWEET_BERRY_BUSH_PICK_BERRIES); @@ -50,7 +49,7 @@ public void generateNewSoundWithSubtitle(Supplier event, String base } public void generateNewSound(Supplier event, String baseSoundDirectory, int numberOfSounds, boolean subtitle) { - String formattedSub = subtitle ? TextUtils.subtitleKey(event.get().getLocation().getPath()) : null; + String formattedSub = subtitle ? TextUtils.subtitleKey(event.get().location().getPath()) : null; this.generateNewSoundCustomSubtitle(event, baseSoundDirectory, numberOfSounds, formattedSub); } @@ -60,9 +59,9 @@ public void generateNewSoundCustomSubtitle(Supplier event, String ba definition.subtitle(subtitle); } for (int i = 1; i <= numberOfSounds; i++) { - definition.with(SoundDefinition.Sound.sound(ResourceLocation.fromNamespaceAndPath(FarmersDelight.MODID, baseSoundDirectory + (numberOfSounds > 1 ? i : "")), SoundDefinition.SoundType.SOUND)); + definition.with(SoundDefinition.Sound.sound(Identifier.fromNamespaceAndPath(FarmersDelight.MODID, baseSoundDirectory + (numberOfSounds > 1 ? i : "")), SoundDefinition.SoundType.SOUND)); } - this.add(event, definition); + this.add(event.get(), definition); } public void generateExistingSoundWithSubtitle(Supplier event, SoundEvent referencedSound) { @@ -72,9 +71,9 @@ public void generateExistingSoundWithSubtitle(Supplier event, SoundE public void generateExistingSound(Supplier event, SoundEvent referencedSound, boolean subtitle) { SoundDefinition definition = SoundDefinition.definition(); if (subtitle) { - definition.subtitle(TextUtils.subtitleKey(event.get().getLocation().getPath())); + definition.subtitle(TextUtils.subtitleKey(event.get().location().getPath())); } - this.add(event, definition - .with(SoundDefinition.Sound.sound(referencedSound.getLocation(), SoundDefinition.SoundType.EVENT))); + this.add(event.get(), definition + .with(SoundDefinition.Sound.sound(referencedSound.location(), SoundDefinition.SoundType.EVENT))); } } diff --git a/src/main/java/vectorwing/farmersdelight/data/advancement/FDAdvancementGenerator.java b/src/main/java/vectorwing/farmersdelight/data/advancement/FDAdvancementGenerator.java index 1093b8c81..cf79d6ffa 100644 --- a/src/main/java/vectorwing/farmersdelight/data/advancement/FDAdvancementGenerator.java +++ b/src/main/java/vectorwing/farmersdelight/data/advancement/FDAdvancementGenerator.java @@ -1,16 +1,18 @@ package vectorwing.farmersdelight.data.advancement; import net.minecraft.advancements.*; -import net.minecraft.advancements.critereon.*; +import net.minecraft.advancements.predicates.*; +import net.minecraft.advancements.predicates.entity.EntityPredicate; +import net.minecraft.advancements.triggers.*; import net.minecraft.core.HolderLookup; -import net.minecraft.resources.ResourceLocation; +import net.minecraft.core.registries.Registries; +import net.minecraft.data.advancements.AdvancementSubProvider; +import net.minecraft.resources.Identifier; import net.minecraft.tags.DamageTypeTags; import net.minecraft.tags.EntityTypeTags; import net.minecraft.world.level.ItemLike; import net.minecraft.world.level.block.Blocks; import net.minecraft.world.level.storage.loot.predicates.LocationCheck; -import net.neoforged.neoforge.common.data.AdvancementProvider; -import net.neoforged.neoforge.common.data.ExistingFileHelper; import vectorwing.farmersdelight.FarmersDelight; import vectorwing.farmersdelight.common.advancement.CuttingBoardTrigger; import vectorwing.farmersdelight.common.block.TomatoBlock; @@ -23,15 +25,19 @@ import java.util.Optional; import java.util.function.Consumer; -public class FDAdvancementGenerator implements AdvancementProvider.AdvancementGenerator +public class FDAdvancementGenerator implements AdvancementSubProvider { @Override - public void generate(HolderLookup.Provider registries, Consumer consumer, ExistingFileHelper existingFileHelper) { + public void generate(HolderLookup.Provider registries, Consumer consumer) { + var blocks = registries.lookupOrThrow(Registries.BLOCK); + var entityTypes = registries.lookupOrThrow(Registries.ENTITY_TYPE); + var items = registries.lookupOrThrow(Registries.ITEM); + AdvancementHolder farmersDelight = Advancement.Builder.advancement() .display(ModItems.COOKING_POT.get(), TextUtils.advancement("root.title"), TextUtils.advancement("root.description"), - ResourceLocation.parse("minecraft:textures/block/bricks.png"), + Identifier.parse("minecraft:textures/block/bricks.png"), AdvancementType.TASK, false, false, false) .addCriterion("seeds", InventoryChangeTrigger.TriggerInstance.hasItems(new ItemLike[]{})) .save(consumer, getNameId("main/root")); @@ -99,7 +105,7 @@ public void generate(HolderLookup.Provider registries, Consumer ingredients = NonNullList.create(); private final Item result; - private final ItemStack resultStack; + private final ItemStackTemplate resultStack; private final int cookingTime; private final float experience; - private final ItemStack container; + private final Optional container; private final Map> criteria = new LinkedHashMap<>(); @Nullable private String namespace; public CookingPotRecipeBuilder(ItemLike result, int count, int cookingTime, float experience, @Nullable ItemLike container) { - this(new ItemStack(result, count), cookingTime, experience, container); + this(result.asItem(), count, cookingTime, experience, container); } public CookingPotRecipeBuilder(ItemStack resultIn, int cookingTime, float experience, @Nullable ItemLike container) { - this.result = resultIn.getItem(); - this.resultStack = resultIn; + this(resultIn.getItem(), resultIn.getCount(), cookingTime, experience, container); + } + + public CookingPotRecipeBuilder(Item resultIn, int count, int cookingTime, float experience, @Nullable ItemLike container) { + this.result = resultIn; + this.resultStack = new ItemStackTemplate(resultIn, count); this.cookingTime = cookingTime; this.experience = experience; - this.container = container != null ? new ItemStack(container) : ItemStack.EMPTY; + this.container = container != null ? Optional.of(new ItemStackTemplate(container.asItem())) : Optional.empty(); this.tab = null; } @@ -66,7 +73,7 @@ public static CookingPotRecipeBuilder cookingPotRecipe(ItemLike mainResult, int } public CookingPotRecipeBuilder addIngredient(TagKey tagIn) { - return addIngredient(Ingredient.of(tagIn)); + return addIngredient(Ingredient.of(HolderSet.emptyNamed(BuiltInRegistries.ITEM, tagIn))); } public CookingPotRecipeBuilder addIngredient(ItemLike itemIn) { @@ -101,11 +108,6 @@ public CookingPotRecipeBuilder setRecipeBookTab(CookingPotRecipeBookTab tab) { return this; } - @Override - public Item getResult() { - return this.result; - } - @Override public CookingPotRecipeBuilder unlockedBy(String criterionName, Criterion criterionTrigger) { this.criteria.put(criterionName, criterionTrigger); @@ -117,7 +119,7 @@ public CookingPotRecipeBuilder unlockedByItems(String criterionName, ItemLike... } public CookingPotRecipeBuilder unlockedByAnyIngredient(ItemLike... items) { - this.criteria.put("has_any_ingredient", InventoryChangeTrigger.TriggerInstance.hasItems(ItemPredicate.Builder.item().of(items).build())); + this.criteria.put("has_any_ingredient", InventoryChangeTrigger.TriggerInstance.hasItems(ItemPredicate.Builder.item().of(BuiltInRegistries.ITEM, items).build())); return this; } @@ -129,7 +131,7 @@ public CookingPotRecipeBuilder setNamespace(String namespace) { return this; } - public static ResourceLocation getDefaultRecipeId(ItemLike itemLike) { + public static Identifier getDefaultRecipeId(ItemLike itemLike) { return Objects.requireNonNull(BuiltInRegistries.ITEM.getKey(itemLike.asItem())); } @@ -141,25 +143,34 @@ public void saveToFD(RecipeOutput output) { } public void save(RecipeOutput output) { - ResourceLocation defaultLocation = getDefaultRecipeId(result); - save(output, ResourceLocation.fromNamespaceAndPath(this.namespace != null ? namespace : defaultLocation.getNamespace(), defaultLocation.getPath()).withPrefix("cooking/")); + Identifier defaultLocation = getDefaultRecipeId(result); + save(output, ResourceKey.create(Registries.RECIPE, Identifier.fromNamespaceAndPath(this.namespace != null ? namespace : defaultLocation.getNamespace(), defaultLocation.getPath()).withPrefix("cooking/"))); + } + + public void save(RecipeOutput output, Identifier id) { + save(output, ResourceKey.create(Registries.RECIPE, id)); } // public void build(RecipeOutput outputIn, String save) { -// ResourceLocation resourcelocation = BuiltInRegistries.ITEM.getKey(result); -// if ((ResourceLocation.parse(save)).equals(resourcelocation)) { +// Identifier Identifier = BuiltInRegistries.ITEM.getKey(result); +// if ((Identifier.parse(save)).equals(Identifier)) { // throw new IllegalStateException("Cooking Recipe " + save + " should remove its 'save' argument"); // } else { -// save(outputIn, ResourceLocation.parse(save)); +// save(outputIn, Identifier.parse(save)); // } // } @Override - public void save(RecipeOutput output, ResourceLocation id) { - ResourceLocation recipeId = id; + public ResourceKey> defaultId() { + Identifier defaultLocation = getDefaultRecipeId(result); + return ResourceKey.create(Registries.RECIPE, Identifier.fromNamespaceAndPath(this.namespace != null ? namespace : defaultLocation.getNamespace(), defaultLocation.getPath()).withPrefix("cooking/")); + } + + @Override + public void save(RecipeOutput output, ResourceKey> id) { Advancement.Builder advancementBuilder = output.advancement() - .addCriterion("has_the_recipe", RecipeUnlockedTrigger.unlocked(recipeId)) - .rewards(AdvancementRewards.Builder.recipe(recipeId)) + .addCriterion("has_the_recipe", RecipeUnlockedTrigger.unlocked(id)) + .rewards(AdvancementRewards.Builder.recipe(id)) .requirements(AdvancementRequirements.Strategy.OR); this.criteria.forEach(advancementBuilder::addCriterion); CookingPotRecipe recipe = new CookingPotRecipe( @@ -171,6 +182,6 @@ public void save(RecipeOutput output, ResourceLocation id) { this.experience, this.cookingTime ); - output.accept(recipeId, recipe, advancementBuilder.build(id.withPrefix("recipes/"))); + output.accept(id, recipe, advancementBuilder.build(id.identifier().withPrefix("recipes/"))); } } diff --git a/src/main/java/vectorwing/farmersdelight/data/builder/CuttingBoardRecipeBuilder.java b/src/main/java/vectorwing/farmersdelight/data/builder/CuttingBoardRecipeBuilder.java index e4d17f8f3..d45d456dc 100644 --- a/src/main/java/vectorwing/farmersdelight/data/builder/CuttingBoardRecipeBuilder.java +++ b/src/main/java/vectorwing/farmersdelight/data/builder/CuttingBoardRecipeBuilder.java @@ -1,16 +1,19 @@ package vectorwing.farmersdelight.data.builder; -import net.minecraft.MethodsReturnNonnullByDefault; -import net.minecraft.advancements.Criterion; +import net.minecraft.advancements.triggers.Criterion; import net.minecraft.core.NonNullList; import net.minecraft.core.registries.BuiltInRegistries; +import net.minecraft.core.registries.Registries; import net.minecraft.data.recipes.RecipeBuilder; import net.minecraft.data.recipes.RecipeOutput; -import net.minecraft.resources.ResourceLocation; +import net.minecraft.resources.Identifier; +import net.minecraft.resources.ResourceKey; import net.minecraft.sounds.SoundEvent; import net.minecraft.world.item.Item; import net.minecraft.world.item.ItemStack; +import net.minecraft.world.item.ItemStackTemplate; import net.minecraft.world.item.crafting.Ingredient; +import net.minecraft.world.item.crafting.Recipe; import net.minecraft.world.level.ItemLike; import org.jetbrains.annotations.Nullable; import vectorwing.farmersdelight.FarmersDelight; @@ -20,9 +23,7 @@ import javax.annotation.ParametersAreNonnullByDefault; import java.util.Objects; import java.util.Optional; -import java.util.function.Consumer; -@MethodsReturnNonnullByDefault @ParametersAreNonnullByDefault public class CuttingBoardRecipeBuilder implements RecipeBuilder { @@ -35,7 +36,7 @@ public class CuttingBoardRecipeBuilder implements RecipeBuilder private CuttingRecipeFolder folder; public CuttingBoardRecipeBuilder(Ingredient ingredient, Ingredient tool, ItemLike mainResult, int count, float chance) { - this.results.add(new ChanceResult(new ItemStack(mainResult.asItem(), count), chance)); + this.results.add(new ChanceResult(new ItemStackTemplate(mainResult.asItem(), count), chance)); this.ingredient = ingredient; this.tool = tool; this.folder = CuttingRecipeFolder.CUTTING; @@ -67,7 +68,7 @@ public CuttingBoardRecipeBuilder addResult(ItemLike result) { } public CuttingBoardRecipeBuilder addResult(ItemLike result, int count) { - this.results.add(new ChanceResult(new ItemStack(result.asItem(), count), 1)); + this.results.add(new ChanceResult(new ItemStackTemplate(result.asItem(), count), 1)); return this; } @@ -76,7 +77,7 @@ public CuttingBoardRecipeBuilder addResultWithChance(ItemLike result, float chan } public CuttingBoardRecipeBuilder addResultWithChance(ItemLike result, float chance, int count) { - this.results.add(new ChanceResult(new ItemStack(result.asItem(), count), chance)); + this.results.add(new ChanceResult(new ItemStackTemplate(result.asItem(), count), chance)); return this; } @@ -108,12 +109,11 @@ public RecipeBuilder group(@Nullable String p_176495_) { return this; } - @Override public Item getResult() { - return this.ingredient.getItems()[0].getItem(); + return this.ingredient.items().findFirst().orElseThrow().value(); } - public static ResourceLocation getDefaultRecipeId(ItemLike itemLike) { + public static Identifier getDefaultRecipeId(ItemLike itemLike) { return Objects.requireNonNull(BuiltInRegistries.ITEM.getKey(itemLike.asItem())); } @@ -125,25 +125,35 @@ public void saveToFD(RecipeOutput output) { } public void save(RecipeOutput output) { - ResourceLocation defaultLocation = getDefaultRecipeId(getResult()); - save(output, ResourceLocation.fromNamespaceAndPath(this.namespace != null ? namespace : defaultLocation.getNamespace(), defaultLocation.getPath()).withPrefix(folder.getSerializedName() + "/")); + Identifier defaultLocation = getDefaultRecipeId(getResult()); + save(output, ResourceKey.create(Registries.RECIPE, Identifier.fromNamespaceAndPath(this.namespace != null ? namespace : defaultLocation.getNamespace(), defaultLocation.getPath()).withPrefix(folder.getSerializedName() + "/"))); } public void build(RecipeOutput outputIn, String save) { - ResourceLocation resourcelocation = BuiltInRegistries.ITEM.getKey(getResult()); - if ((ResourceLocation.parse(save)).equals(resourcelocation)) { + Identifier Identifier = BuiltInRegistries.ITEM.getKey(getResult()); + if ((Identifier.parse(save)).equals(Identifier)) { throw new IllegalStateException("Cutting Recipe " + save + " should remove its 'save' argument"); } else { - this.build(outputIn, ResourceLocation.parse(save)); + this.build(outputIn, Identifier.parse(save)); } } - public void build(RecipeOutput output, ResourceLocation id) { - save(output, id); + public void build(RecipeOutput output, Identifier id) { + save(output, ResourceKey.create(Registries.RECIPE, id)); + } + + public void save(RecipeOutput output, Identifier id) { + save(output, ResourceKey.create(Registries.RECIPE, id)); + } + + @Override + public ResourceKey> defaultId() { + Identifier defaultLocation = getDefaultRecipeId(getResult()); + return ResourceKey.create(Registries.RECIPE, Identifier.fromNamespaceAndPath(this.namespace != null ? namespace : defaultLocation.getNamespace(), defaultLocation.getPath()).withPrefix(folder.getSerializedName() + "/")); } @Override - public void save(RecipeOutput output, ResourceLocation id) { + public void save(RecipeOutput output, ResourceKey> id) { CuttingBoardRecipe recipe = new CuttingBoardRecipe( "", this.ingredient, diff --git a/src/main/java/vectorwing/farmersdelight/data/loot/FDBlockLoot.java b/src/main/java/vectorwing/farmersdelight/data/loot/FDBlockLoot.java index 171c01330..76b222a1c 100644 --- a/src/main/java/vectorwing/farmersdelight/data/loot/FDBlockLoot.java +++ b/src/main/java/vectorwing/farmersdelight/data/loot/FDBlockLoot.java @@ -1,9 +1,9 @@ package vectorwing.farmersdelight.data.loot; -import net.minecraft.advancements.critereon.BlockPredicate; -import net.minecraft.advancements.critereon.ItemPredicate; -import net.minecraft.advancements.critereon.LocationPredicate; -import net.minecraft.advancements.critereon.StatePropertiesPredicate; +import net.minecraft.advancements.predicates.BlockPredicate; +import net.minecraft.advancements.predicates.ItemPredicate; +import net.minecraft.advancements.predicates.LocationPredicate; +import net.minecraft.advancements.predicates.StatePropertiesPredicate; import net.minecraft.core.BlockPos; import net.minecraft.core.HolderLookup; import net.minecraft.core.component.DataComponents; @@ -26,6 +26,7 @@ import net.minecraft.world.level.storage.loot.functions.ApplyBonusCount; import net.minecraft.world.level.storage.loot.functions.ApplyExplosionDecay; import net.minecraft.world.level.storage.loot.functions.CopyComponentsFunction; +import net.minecraft.world.level.storage.loot.parameters.LootContextParams; import net.minecraft.world.level.storage.loot.functions.SetItemCountFunction; import net.minecraft.world.level.storage.loot.predicates.*; import net.minecraft.world.level.storage.loot.providers.number.ConstantValue; @@ -53,12 +54,14 @@ public FDBlockLoot(HolderLookup.Provider holder) { @Override protected void generate() { HolderLookup.RegistryLookup registryLookup = this.registries.lookupOrThrow(Registries.ENCHANTMENT); + HolderLookup.RegistryLookup items = this.registries.lookupOrThrow(Registries.ITEM); + HolderLookup.RegistryLookup blocks = this.registries.lookupOrThrow(Registries.BLOCK); dropSelf(ModBlocks.STOVE.get()); dropNamedContainer(ModBlocks.WOODEN_BASKET.get()); dropNamedContainer(ModBlocks.BAMBOO_BASKET.get()); add(ModBlocks.COOKING_POT.get(), (block) -> LootTable.lootTable().withPool(this.applyExplosionCondition(block, LootPool.lootPool().setRolls(ConstantValue.exactly(1.0F)).add(LootItem.lootTableItem(block) - .apply(CopyComponentsFunction.copyComponents(CopyComponentsFunction.Source.BLOCK_ENTITY) + .apply(CopyComponentsFunction.copyComponentsFromBlockEntity(LootContextParams.BLOCK_ENTITY) .include(DataComponents.CUSTOM_NAME) .include(ModDataComponents.MEAL.get()) .include(ModDataComponents.CONTAINER.get()) @@ -77,7 +80,7 @@ protected void generate() { LootItem.lootTableItem(ModItems.RICE.get()) .when(LootItemBlockStatePropertyCondition.hasBlockStateProperties(block) .setProperties(StatePropertiesPredicate.Builder.properties().hasProperty(RicePaniclesBlock.RICE_AGE, 3))) - .when(MatchTool.toolMatches(ItemPredicate.Builder.item().of(ModTags.Items.KNIVES))), + .when(MatchTool.toolMatches(ItemPredicate.Builder.item().of(items, ModTags.Items.KNIVES))), LootItem.lootTableItem(ModItems.RICE_PANICLE.get()) .when(LootItemBlockStatePropertyCondition.hasBlockStateProperties(block) .setProperties(StatePropertiesPredicate.Builder.properties().hasProperty(RicePaniclesBlock.RICE_AGE, 3)))))))); @@ -152,7 +155,7 @@ protected void generate() { .setProperties(StatePropertiesPredicate.Builder.properties() .hasProperty(DoublePlantBlock.HALF, DoubleBlockHalf.LOWER))) .when(LocationCheck.checkLocation(LocationPredicate.Builder.location() - .setBlock(BlockPredicate.Builder.block().of(block) + .setBlock(BlockPredicate.Builder.block().of(blocks, block) .setProperties(StatePropertiesPredicate.Builder.properties() .hasProperty(DoublePlantBlock.HALF, DoubleBlockHalf.UPPER))), new BlockPos(0, 1, 0)))) .withPool(LootPool.lootPool() @@ -165,7 +168,7 @@ protected void generate() { .setProperties(StatePropertiesPredicate.Builder.properties() .hasProperty(DoublePlantBlock.HALF, DoubleBlockHalf.UPPER))) .when(LocationCheck.checkLocation(LocationPredicate.Builder.location() - .setBlock(BlockPredicate.Builder.block().of(block) + .setBlock(BlockPredicate.Builder.block().of(blocks, block) .setProperties(StatePropertiesPredicate.Builder.properties() .hasProperty(DoublePlantBlock.HALF, DoubleBlockHalf.LOWER))), new BlockPos(0, -1, 0))))); @@ -202,6 +205,24 @@ protected void generate() { dropSelf(ModBlocks.RED_CANVAS_SIGN.get()); dropSelf(ModBlocks.BLACK_CANVAS_SIGN.get()); + dropOther(ModBlocks.CANVAS_WALL_SIGN.get(), ModItems.CANVAS_SIGN.get()); + dropOther(ModBlocks.WHITE_CANVAS_WALL_SIGN.get(), ModItems.WHITE_CANVAS_SIGN.get()); + dropOther(ModBlocks.ORANGE_CANVAS_WALL_SIGN.get(), ModItems.ORANGE_CANVAS_SIGN.get()); + dropOther(ModBlocks.MAGENTA_CANVAS_WALL_SIGN.get(), ModItems.MAGENTA_CANVAS_SIGN.get()); + dropOther(ModBlocks.LIGHT_BLUE_CANVAS_WALL_SIGN.get(), ModItems.LIGHT_BLUE_CANVAS_SIGN.get()); + dropOther(ModBlocks.YELLOW_CANVAS_WALL_SIGN.get(), ModItems.YELLOW_CANVAS_SIGN.get()); + dropOther(ModBlocks.LIME_CANVAS_WALL_SIGN.get(), ModItems.LIME_CANVAS_SIGN.get()); + dropOther(ModBlocks.PINK_CANVAS_WALL_SIGN.get(), ModItems.PINK_CANVAS_SIGN.get()); + dropOther(ModBlocks.GRAY_CANVAS_WALL_SIGN.get(), ModItems.GRAY_CANVAS_SIGN.get()); + dropOther(ModBlocks.LIGHT_GRAY_CANVAS_WALL_SIGN.get(), ModItems.LIGHT_GRAY_CANVAS_SIGN.get()); + dropOther(ModBlocks.CYAN_CANVAS_WALL_SIGN.get(), ModItems.CYAN_CANVAS_SIGN.get()); + dropOther(ModBlocks.PURPLE_CANVAS_WALL_SIGN.get(), ModItems.PURPLE_CANVAS_SIGN.get()); + dropOther(ModBlocks.BLUE_CANVAS_WALL_SIGN.get(), ModItems.BLUE_CANVAS_SIGN.get()); + dropOther(ModBlocks.BROWN_CANVAS_WALL_SIGN.get(), ModItems.BROWN_CANVAS_SIGN.get()); + dropOther(ModBlocks.GREEN_CANVAS_WALL_SIGN.get(), ModItems.GREEN_CANVAS_SIGN.get()); + dropOther(ModBlocks.RED_CANVAS_WALL_SIGN.get(), ModItems.RED_CANVAS_SIGN.get()); + dropOther(ModBlocks.BLACK_CANVAS_WALL_SIGN.get(), ModItems.BLACK_CANVAS_SIGN.get()); + dropSelf(ModBlocks.HANGING_CANVAS_SIGN.get()); dropSelf(ModBlocks.WHITE_HANGING_CANVAS_SIGN.get()); dropSelf(ModBlocks.ORANGE_HANGING_CANVAS_SIGN.get()); @@ -220,6 +241,24 @@ protected void generate() { dropSelf(ModBlocks.RED_HANGING_CANVAS_SIGN.get()); dropSelf(ModBlocks.BLACK_HANGING_CANVAS_SIGN.get()); + dropOther(ModBlocks.HANGING_CANVAS_WALL_SIGN.get(), ModItems.HANGING_CANVAS_SIGN.get()); + dropOther(ModBlocks.WHITE_HANGING_CANVAS_WALL_SIGN.get(), ModItems.WHITE_HANGING_CANVAS_SIGN.get()); + dropOther(ModBlocks.ORANGE_HANGING_CANVAS_WALL_SIGN.get(), ModItems.ORANGE_HANGING_CANVAS_SIGN.get()); + dropOther(ModBlocks.MAGENTA_HANGING_CANVAS_WALL_SIGN.get(), ModItems.MAGENTA_HANGING_CANVAS_SIGN.get()); + dropOther(ModBlocks.LIGHT_BLUE_HANGING_CANVAS_WALL_SIGN.get(), ModItems.LIGHT_BLUE_HANGING_CANVAS_SIGN.get()); + dropOther(ModBlocks.YELLOW_HANGING_CANVAS_WALL_SIGN.get(), ModItems.YELLOW_HANGING_CANVAS_SIGN.get()); + dropOther(ModBlocks.LIME_HANGING_CANVAS_WALL_SIGN.get(), ModItems.LIME_HANGING_CANVAS_SIGN.get()); + dropOther(ModBlocks.PINK_HANGING_CANVAS_WALL_SIGN.get(), ModItems.PINK_HANGING_CANVAS_SIGN.get()); + dropOther(ModBlocks.GRAY_HANGING_CANVAS_WALL_SIGN.get(), ModItems.GRAY_HANGING_CANVAS_SIGN.get()); + dropOther(ModBlocks.LIGHT_GRAY_HANGING_CANVAS_WALL_SIGN.get(), ModItems.LIGHT_GRAY_HANGING_CANVAS_SIGN.get()); + dropOther(ModBlocks.CYAN_HANGING_CANVAS_WALL_SIGN.get(), ModItems.CYAN_HANGING_CANVAS_SIGN.get()); + dropOther(ModBlocks.PURPLE_HANGING_CANVAS_WALL_SIGN.get(), ModItems.PURPLE_HANGING_CANVAS_SIGN.get()); + dropOther(ModBlocks.BLUE_HANGING_CANVAS_WALL_SIGN.get(), ModItems.BLUE_HANGING_CANVAS_SIGN.get()); + dropOther(ModBlocks.BROWN_HANGING_CANVAS_WALL_SIGN.get(), ModItems.BROWN_HANGING_CANVAS_SIGN.get()); + dropOther(ModBlocks.GREEN_HANGING_CANVAS_WALL_SIGN.get(), ModItems.GREEN_HANGING_CANVAS_SIGN.get()); + dropOther(ModBlocks.RED_HANGING_CANVAS_WALL_SIGN.get(), ModItems.RED_HANGING_CANVAS_SIGN.get()); + dropOther(ModBlocks.BLACK_HANGING_CANVAS_WALL_SIGN.get(), ModItems.BLACK_HANGING_CANVAS_SIGN.get()); + dropNamedContainer(ModBlocks.OAK_CABINET.get()); dropNamedContainer(ModBlocks.SPRUCE_CABINET.get()); dropNamedContainer(ModBlocks.BIRCH_CABINET.get()); diff --git a/src/main/java/vectorwing/farmersdelight/data/recipe/CookingRecipes.java b/src/main/java/vectorwing/farmersdelight/data/recipe/CookingRecipes.java index 233e3eac8..cadc71a08 100644 --- a/src/main/java/vectorwing/farmersdelight/data/recipe/CookingRecipes.java +++ b/src/main/java/vectorwing/farmersdelight/data/recipe/CookingRecipes.java @@ -1,7 +1,9 @@ package vectorwing.farmersdelight.data.recipe; +import net.minecraft.core.HolderGetter; import net.minecraft.data.recipes.RecipeOutput; -import net.minecraft.world.item.ItemStack; +import net.minecraft.tags.TagKey; +import net.minecraft.world.item.Item; import net.minecraft.world.item.Items; import net.minecraft.world.item.crafting.Ingredient; import net.minecraft.world.level.block.Blocks; @@ -13,10 +15,10 @@ import vectorwing.farmersdelight.common.tag.CommonTags; import vectorwing.farmersdelight.data.builder.CookingPotRecipeBuilder; -import java.util.stream.Stream; - public class CookingRecipes { + private static HolderGetter items; + public static final int FAST_COOKING = 100; // 5 seconds public static final int NORMAL_COOKING = 200; // 10 seconds public static final int SLOW_COOKING = 400; // 20 seconds @@ -25,7 +27,8 @@ public class CookingRecipes public static final float MEDIUM_EXP = 1.0F; public static final float LARGE_EXP = 2.0F; - public static void register(RecipeOutput output) { + public static void register(RecipeOutput output, HolderGetter itemLookup) { + items = itemLookup; cookMiscellaneous(output); cookMinecraftSoups(output); cookMeals(output); @@ -33,7 +36,11 @@ public static void register(RecipeOutput output) { // TODO: Deprecate this if NeoForge removes melon_slice from the vegetables tag. private static Ingredient vegetablesPatch() { - return DifferenceIngredient.of(Ingredient.of(Tags.Items.FOODS_VEGETABLE), Ingredient.of(Items.MELON_SLICE)); + return DifferenceIngredient.of(ingredient(Tags.Items.FOODS_VEGETABLE), Ingredient.of(Items.MELON_SLICE)); + } + + private static Ingredient ingredient(TagKey tag) { + return Ingredient.of(items.getOrThrow(tag)); } private static void cookMiscellaneous(RecipeOutput output) { @@ -118,22 +125,22 @@ private static void cookMeals(RecipeOutput output) { .save(output); CookingPotRecipeBuilder.cookingPotRecipe(ModItems.BONE_BROTH.get(), 1, NORMAL_COOKING, SMALL_EXP) .addIngredient(Tags.Items.BONES) - .addIngredient(Ingredient.fromValues(Stream.of( - new Ingredient.ItemValue(new ItemStack(Items.GLOW_BERRIES)), - new Ingredient.TagValue(Tags.Items.MUSHROOMS), - new Ingredient.ItemValue(new ItemStack(Items.HANGING_ROOTS)), - new Ingredient.ItemValue(new ItemStack(Items.GLOW_LICHEN)) - ))) + .addIngredient(CompoundIngredient.of( + Ingredient.of(Items.GLOW_BERRIES), + ingredient(Tags.Items.MUSHROOMS), + Ingredient.of(Items.HANGING_ROOTS), + Ingredient.of(Items.GLOW_LICHEN) + )) .unlockedByItems("has_bone", Items.BONE) .setRecipeBookTab(CookingPotRecipeBookTab.MEALS) .save(output); CookingPotRecipeBuilder.cookingPotRecipe(ModItems.CABBAGE_ROLLS.get(), 1, FAST_COOKING, SMALL_EXP) .addIngredient(CommonTags.Items.CROPS_CABBAGE) .addIngredient(CompoundIngredient.of( - Ingredient.of(Tags.Items.FOODS_RAW_MEAT), - Ingredient.of(CommonTags.Items.FOODS_SAFE_RAW_FISH), - Ingredient.of(Tags.Items.FOODS_VEGETABLE), - Ingredient.of(Tags.Items.MUSHROOMS) + ingredient(Tags.Items.FOODS_RAW_MEAT), + ingredient(CommonTags.Items.FOODS_SAFE_RAW_FISH), + ingredient(Tags.Items.FOODS_VEGETABLE), + ingredient(Tags.Items.MUSHROOMS) )) .unlockedByAnyIngredient(ModItems.CABBAGE.get(), ModItems.CABBAGE_LEAF.get()) .setRecipeBookTab(CookingPotRecipeBookTab.MISC) @@ -155,12 +162,12 @@ private static void cookMeals(RecipeOutput output) { .addIngredient(CommonTags.Items.FOODS_DOUGH) .addIngredient(CommonTags.Items.CROPS_CABBAGE) .addIngredient(CommonTags.Items.CROPS_ONION) - .addIngredient(Ingredient.fromValues(Stream.of( - new Ingredient.TagValue(CommonTags.Items.FOODS_RAW_CHICKEN), - new Ingredient.TagValue(CommonTags.Items.FOODS_RAW_PORK), - new Ingredient.TagValue(CommonTags.Items.FOODS_RAW_BEEF), - new Ingredient.ItemValue(new ItemStack(Items.BROWN_MUSHROOM)) - ))) + .addIngredient(CompoundIngredient.of( + ingredient(CommonTags.Items.FOODS_RAW_CHICKEN), + ingredient(CommonTags.Items.FOODS_RAW_PORK), + ingredient(CommonTags.Items.FOODS_RAW_BEEF), + Ingredient.of(Items.BROWN_MUSHROOM) + )) .unlockedByAnyIngredient(ModItems.WHEAT_DOUGH.get(), ModItems.CABBAGE.get(), ModItems.ONION.get()) .setRecipeBookTab(CookingPotRecipeBookTab.MISC) .save(output); diff --git a/src/main/java/vectorwing/farmersdelight/data/recipe/CraftingRecipes.java b/src/main/java/vectorwing/farmersdelight/data/recipe/CraftingRecipes.java index de2581801..954010fbb 100644 --- a/src/main/java/vectorwing/farmersdelight/data/recipe/CraftingRecipes.java +++ b/src/main/java/vectorwing/farmersdelight/data/recipe/CraftingRecipes.java @@ -1,6 +1,7 @@ package vectorwing.farmersdelight.data.recipe; -import net.minecraft.advancements.critereon.InventoryChangeTrigger; +import net.minecraft.advancements.triggers.InventoryChangeTrigger; +import net.minecraft.core.HolderGetter; import net.minecraft.data.recipes.*; import net.minecraft.tags.ItemTags; import net.minecraft.tags.TagKey; @@ -22,7 +23,10 @@ public class CraftingRecipes { - public static void register(RecipeOutput output) { + private static HolderGetter items; + + public static void register(RecipeOutput output, HolderGetter itemLookup) { + items = itemLookup; recipesVanillaAlternatives(output); recipesBlocks(output); recipesCanvasSigns(output); @@ -35,14 +39,18 @@ public static void register(RecipeOutput output) { SpecialRecipeBuilder.special(DoughRecipe::new).save(output, FarmersDelight.MODID + ":wheat_dough_from_water"); } + private static HolderGetter items() { + return items; + } + public static void canvasSignDyeing(RecipeOutput output, ItemLike canvasSign, ItemLike hangingCanvasSign, TagKey dyeTag) { - ShapelessRecipeBuilder.shapeless(RecipeCategory.DECORATIONS, canvasSign, 1) + ShapelessRecipeBuilder.shapeless(items(), RecipeCategory.DECORATIONS, canvasSign, 1) .requires(ModTags.Items.CANVAS_SIGNS) .requires(dyeTag) .unlockedBy("has_canvas_sign", InventoryChangeTrigger.TriggerInstance.hasItems(ModItems.CANVAS_SIGN.get())) .group("fd_canvas_sign") .save(output); - ShapelessRecipeBuilder.shapeless(RecipeCategory.DECORATIONS, hangingCanvasSign, 1) + ShapelessRecipeBuilder.shapeless(items(), RecipeCategory.DECORATIONS, hangingCanvasSign, 1) .requires(ModTags.Items.HANGING_CANVAS_SIGNS) .requires(dyeTag) .unlockedBy("has_hanging_canvas_sign", InventoryChangeTrigger.TriggerInstance.hasItems(ModItems.HANGING_CANVAS_SIGN.get())) @@ -55,40 +63,40 @@ public static void canvasSignDyeing(RecipeOutput output, ItemLike canvasSign, It * If not, they fall on the minecraft namespace, overriding vanilla recipes instead of being alternatives. */ private static void recipesVanillaAlternatives(RecipeOutput output) { - ShapelessRecipeBuilder.shapeless(RecipeCategory.MISC, Items.PUMPKIN_SEEDS) + ShapelessRecipeBuilder.shapeless(items(), RecipeCategory.MISC, Items.PUMPKIN_SEEDS) .requires(ModItems.PUMPKIN_SLICE.get()) .unlockedBy("has_pumpkin_slice", InventoryChangeTrigger.TriggerInstance.hasItems(ModItems.PUMPKIN_SLICE.get())) - .save(output, RecipeUtils.FDLocation("pumpkin_seeds_from_slice")); - ShapedRecipeBuilder.shaped(RecipeCategory.DECORATIONS, Items.SCAFFOLDING, 6) + .save(output, RecipeUtils.FDLocation("pumpkin_seeds_from_slice").toString()); + ShapedRecipeBuilder.shaped(items(), RecipeCategory.DECORATIONS, Items.SCAFFOLDING, 6) .pattern("b#b") .pattern("b b") .pattern("b b") .define('b', Items.BAMBOO) .define('#', ModItems.CANVAS.get()) .unlockedBy("has_canvas", InventoryChangeTrigger.TriggerInstance.hasItems(ModItems.CANVAS.get())) - .save(output, RecipeUtils.FDLocation("scaffolding_from_canvas")); - ShapedRecipeBuilder.shaped(RecipeCategory.TOOLS, Items.LEAD) + .save(output, RecipeUtils.FDLocation("scaffolding_from_canvas").toString()); + ShapedRecipeBuilder.shaped(items(), RecipeCategory.TOOLS, Items.LEAD) .pattern("ss ") .pattern("ss ") .pattern(" s") .define('s', ModItems.STRAW.get()) .unlockedBy("has_straw", InventoryChangeTrigger.TriggerInstance.hasItems(ModItems.STRAW.get())) - .save(output, RecipeUtils.FDLocation("lead_from_straw")); - ShapedRecipeBuilder.shaped(RecipeCategory.DECORATIONS, Items.PAINTING) + .save(output, RecipeUtils.FDLocation("lead_from_straw").toString()); + ShapedRecipeBuilder.shaped(items(), RecipeCategory.DECORATIONS, Items.PAINTING) .pattern("sss") .pattern("scs") .pattern("sss") .define('s', Items.STICK) .define('c', ModItems.CANVAS.get()) .unlockedBy("has_canvas", InventoryChangeTrigger.TriggerInstance.hasItems(ModItems.CANVAS.get())) - .save(output, RecipeUtils.FDLocation("painting_from_canvas")); - ShapedRecipeBuilder.shaped(RecipeCategory.BUILDING_BLOCKS, Items.PUMPKIN) + .save(output, RecipeUtils.FDLocation("painting_from_canvas").toString()); + ShapedRecipeBuilder.shaped(items(), RecipeCategory.BUILDING_BLOCKS, Items.PUMPKIN) .pattern("##") .pattern("##") .define('#', ModItems.PUMPKIN_SLICE.get()) .unlockedBy("has_pumpkin_slice", InventoryChangeTrigger.TriggerInstance.hasItems(ModItems.PUMPKIN_SLICE.get())) - .save(output, RecipeUtils.FDLocation("pumpkin_from_slices")); - ShapedRecipeBuilder.shaped(RecipeCategory.FOOD, Items.CAKE) + .save(output, RecipeUtils.FDLocation("pumpkin_from_slices").toString()); + ShapedRecipeBuilder.shaped(items(), RecipeCategory.FOOD, Items.CAKE) .pattern("mmm") .pattern("ses") .pattern("www") @@ -98,8 +106,8 @@ private static void recipesVanillaAlternatives(RecipeOutput output) { .define('w', Tags.Items.CROPS_WHEAT) .unlockedBy("has_milk_bottle", InventoryChangeTrigger.TriggerInstance.hasItems(ModItems.MILK_BOTTLE.get())) .group("cake") - .save(output, RecipeUtils.FDLocation("cake_from_milk_bottle")); - ShapelessRecipeBuilder.shapeless(RecipeCategory.FOOD, Items.CAKE) + .save(output, RecipeUtils.FDLocation("cake_from_milk_bottle").toString()); + ShapelessRecipeBuilder.shapeless(items(), RecipeCategory.FOOD, Items.CAKE) .requires(ModItems.CAKE_SLICE.get()) .requires(ModItems.CAKE_SLICE.get()) .requires(ModItems.CAKE_SLICE.get()) @@ -109,38 +117,38 @@ private static void recipesVanillaAlternatives(RecipeOutput output) { .requires(ModItems.CAKE_SLICE.get()) .unlockedBy("has_cake_slice", InventoryChangeTrigger.TriggerInstance.hasItems(ModItems.CAKE_SLICE.get())) .group("cake") - .save(output, RecipeUtils.FDLocation("cake_from_slices")); - ShapelessRecipeBuilder.shapeless(RecipeCategory.MISC, Items.BOOK) + .save(output, RecipeUtils.FDLocation("cake_from_slices").toString()); + ShapelessRecipeBuilder.shapeless(items(), RecipeCategory.MISC, Items.BOOK) .requires(Items.PAPER) .requires(Items.PAPER) .requires(Items.PAPER) .requires(ModItems.CANVAS.get()) .unlockedBy("has_canvas", InventoryChangeTrigger.TriggerInstance.hasItems(ModItems.CANVAS.get())) - .save(output, RecipeUtils.FDLocation("book_from_canvas")); - ShapelessRecipeBuilder.shapeless(RecipeCategory.MISC, Items.MILK_BUCKET) + .save(output, RecipeUtils.FDLocation("book_from_canvas").toString()); + ShapelessRecipeBuilder.shapeless(items(), RecipeCategory.MISC, Items.MILK_BUCKET) .requires(Items.BUCKET) .requires(ModItems.MILK_BOTTLE.get()) .requires(ModItems.MILK_BOTTLE.get()) .requires(ModItems.MILK_BOTTLE.get()) .requires(ModItems.MILK_BOTTLE.get()) .unlockedBy("has_milk_bottle", InventoryChangeTrigger.TriggerInstance.hasItems(ModItems.MILK_BOTTLE.get())) - .save(output, RecipeUtils.FDLocation("milk_bucket_from_bottles")); - ShapelessRecipeBuilder.shapeless(RecipeCategory.MISC, Items.PAPER) + .save(output, RecipeUtils.FDLocation("milk_bucket_from_bottles").toString()); + ShapelessRecipeBuilder.shapeless(items(), RecipeCategory.MISC, Items.PAPER) .requires(ModItems.TREE_BARK.get()) .requires(ModItems.TREE_BARK.get()) .requires(ModItems.TREE_BARK.get()) .unlockedBy("has_tree_bark", InventoryChangeTrigger.TriggerInstance.hasItems(ModItems.TREE_BARK.get())) - .save(output, RecipeUtils.FDLocation("paper_from_tree_bark")); - ShapelessRecipeBuilder.shapeless(RecipeCategory.BUILDING_BLOCKS, Items.PACKED_MUD, 2) + .save(output, RecipeUtils.FDLocation("paper_from_tree_bark").toString()); + ShapelessRecipeBuilder.shapeless(items(), RecipeCategory.BUILDING_BLOCKS, Items.PACKED_MUD, 2) .requires(ModItems.STRAW.get()) .requires(Items.MUD) .requires(Items.MUD) .unlockedBy("has_straw", InventoryChangeTrigger.TriggerInstance.hasItems(ModItems.STRAW.get())) - .save(output, RecipeUtils.FDLocation("packed_mud_from_straw")); + .save(output, RecipeUtils.FDLocation("packed_mud_from_straw").toString()); } private static void recipesCanvasSigns(RecipeOutput output) { - ShapedRecipeBuilder.shaped(RecipeCategory.DECORATIONS, ModItems.CANVAS_SIGN.get(), 3) + ShapedRecipeBuilder.shaped(items(), RecipeCategory.DECORATIONS, ModItems.CANVAS_SIGN.get(), 3) .pattern("w#w") .pattern("w#w") .pattern(" / ") @@ -149,11 +157,11 @@ private static void recipesCanvasSigns(RecipeOutput output) { .define('/', Items.STICK) .unlockedBy("has_canvas", InventoryChangeTrigger.TriggerInstance.hasItems(ModItems.CANVAS.get())) .save(output); - ShapedRecipeBuilder.shaped(RecipeCategory.DECORATIONS, ModItems.HANGING_CANVAS_SIGN.get(), 6) + ShapedRecipeBuilder.shaped(items(), RecipeCategory.DECORATIONS, ModItems.HANGING_CANVAS_SIGN.get(), 6) .pattern("X X") .pattern("w#w") .pattern("w#w") - .define('X', Items.CHAIN) + .define('X', Items.IRON_CHAIN) .define('w', ItemTags.LOGS) .define('#', ModItems.CANVAS.get()) .unlockedBy("has_canvas", InventoryChangeTrigger.TriggerInstance.hasItems(ModItems.CANVAS.get())) @@ -178,7 +186,7 @@ private static void recipesCanvasSigns(RecipeOutput output) { } private static void recipesBlocks(RecipeOutput output) { - ShapedRecipeBuilder.shaped(RecipeCategory.DECORATIONS, ModBlocks.STOVE.get()) + ShapedRecipeBuilder.shaped(items(), RecipeCategory.DECORATIONS, ModBlocks.STOVE.get()) .pattern("iii") .pattern("B B") .pattern("BCB") @@ -187,7 +195,7 @@ private static void recipesBlocks(RecipeOutput output) { .define('C', Blocks.CAMPFIRE) .unlockedBy("has_campfire", InventoryChangeTrigger.TriggerInstance.hasItems(Blocks.CAMPFIRE)) .save(output); - ShapedRecipeBuilder.shaped(RecipeCategory.DECORATIONS, ModBlocks.COOKING_POT.get()) + ShapedRecipeBuilder.shaped(items(), RecipeCategory.DECORATIONS, ModBlocks.COOKING_POT.get()) .pattern("bSb") .pattern("iWi") .pattern("iii") @@ -197,7 +205,7 @@ private static void recipesBlocks(RecipeOutput output) { .define('W', Tags.Items.BUCKETS_WATER) .unlockedBy("has_iron_ingot", InventoryChangeTrigger.TriggerInstance.hasItems(Items.IRON_INGOT)) .save(output); - ShapedRecipeBuilder.shaped(RecipeCategory.DECORATIONS, ModBlocks.WOODEN_BASKET.get()) + ShapedRecipeBuilder.shaped(items(), RecipeCategory.DECORATIONS, ModBlocks.WOODEN_BASKET.get()) .pattern("/ /") .pattern("# #") .pattern("/#/") @@ -205,7 +213,7 @@ private static void recipesBlocks(RecipeOutput output) { .define('#', ModItems.CANVAS.get()) .unlockedBy("has_canvas", InventoryChangeTrigger.TriggerInstance.hasItems(ModItems.CANVAS.get())) .save(output); - ShapedRecipeBuilder.shaped(RecipeCategory.DECORATIONS, ModBlocks.BAMBOO_BASKET.get()) + ShapedRecipeBuilder.shaped(items(), RecipeCategory.DECORATIONS, ModBlocks.BAMBOO_BASKET.get()) .pattern("/ /") .pattern("# #") .pattern("/#/") @@ -213,14 +221,14 @@ private static void recipesBlocks(RecipeOutput output) { .define('#', ModItems.CANVAS.get()) .unlockedBy("has_canvas", InventoryChangeTrigger.TriggerInstance.hasItems(ModItems.CANVAS.get())) .save(output); - ShapedRecipeBuilder.shaped(RecipeCategory.DECORATIONS, ModBlocks.CUTTING_BOARD.get()) + ShapedRecipeBuilder.shaped(items(), RecipeCategory.DECORATIONS, ModBlocks.CUTTING_BOARD.get()) .pattern("/##") .pattern("/##") .define('/', Items.STICK) .define('#', ItemTags.PLANKS) .unlockedBy("has_stick", InventoryChangeTrigger.TriggerInstance.hasItems(Items.STICK)) .save(output); - ShapedRecipeBuilder.shaped(RecipeCategory.DECORATIONS, ModBlocks.SKILLET.get()) + ShapedRecipeBuilder.shaped(items(), RecipeCategory.DECORATIONS, ModBlocks.SKILLET.get()) .pattern(" ##") .pattern(" ##") .pattern("/ ") @@ -228,7 +236,7 @@ private static void recipesBlocks(RecipeOutput output) { .define('#', Tags.Items.INGOTS_IRON) .unlockedBy("has_brick", InventoryChangeTrigger.TriggerInstance.hasItems(Items.BRICK)) .save(output); - ShapedRecipeBuilder.shaped(RecipeCategory.DECORATIONS, ModBlocks.OAK_CABINET.get()) + ShapedRecipeBuilder.shaped(items(), RecipeCategory.DECORATIONS, ModBlocks.OAK_CABINET.get()) .pattern("___") .pattern("D D") .pattern("___") @@ -237,7 +245,7 @@ private static void recipesBlocks(RecipeOutput output) { .unlockedBy("has_oak_trapdoor", InventoryChangeTrigger.TriggerInstance.hasItems(Items.OAK_TRAPDOOR)) .group("fd_cabinet") .save(output); - ShapedRecipeBuilder.shaped(RecipeCategory.DECORATIONS, ModBlocks.BIRCH_CABINET.get()) + ShapedRecipeBuilder.shaped(items(), RecipeCategory.DECORATIONS, ModBlocks.BIRCH_CABINET.get()) .pattern("___") .pattern("D D") .pattern("___") @@ -246,7 +254,7 @@ private static void recipesBlocks(RecipeOutput output) { .unlockedBy("has_birch_trapdoor", InventoryChangeTrigger.TriggerInstance.hasItems(Items.BIRCH_TRAPDOOR)) .group("fd_cabinet") .save(output); - ShapedRecipeBuilder.shaped(RecipeCategory.DECORATIONS, ModBlocks.SPRUCE_CABINET.get()) + ShapedRecipeBuilder.shaped(items(), RecipeCategory.DECORATIONS, ModBlocks.SPRUCE_CABINET.get()) .pattern("___") .pattern("D D") .pattern("___") @@ -255,7 +263,7 @@ private static void recipesBlocks(RecipeOutput output) { .unlockedBy("has_spruce_trapdoor", InventoryChangeTrigger.TriggerInstance.hasItems(Items.SPRUCE_TRAPDOOR)) .group("fd_cabinet") .save(output); - ShapedRecipeBuilder.shaped(RecipeCategory.DECORATIONS, ModBlocks.JUNGLE_CABINET.get()) + ShapedRecipeBuilder.shaped(items(), RecipeCategory.DECORATIONS, ModBlocks.JUNGLE_CABINET.get()) .pattern("___") .pattern("D D") .pattern("___") @@ -264,7 +272,7 @@ private static void recipesBlocks(RecipeOutput output) { .unlockedBy("has_jungle_trapdoor", InventoryChangeTrigger.TriggerInstance.hasItems(Items.JUNGLE_TRAPDOOR)) .group("fd_cabinet") .save(output); - ShapedRecipeBuilder.shaped(RecipeCategory.DECORATIONS, ModBlocks.ACACIA_CABINET.get()) + ShapedRecipeBuilder.shaped(items(), RecipeCategory.DECORATIONS, ModBlocks.ACACIA_CABINET.get()) .pattern("___") .pattern("D D") .pattern("___") @@ -273,7 +281,7 @@ private static void recipesBlocks(RecipeOutput output) { .unlockedBy("has_acacia_trapdoor", InventoryChangeTrigger.TriggerInstance.hasItems(Items.ACACIA_TRAPDOOR)) .group("fd_cabinet") .save(output); - ShapedRecipeBuilder.shaped(RecipeCategory.DECORATIONS, ModBlocks.DARK_OAK_CABINET.get()) + ShapedRecipeBuilder.shaped(items(), RecipeCategory.DECORATIONS, ModBlocks.DARK_OAK_CABINET.get()) .pattern("___") .pattern("D D") .pattern("___") @@ -282,7 +290,7 @@ private static void recipesBlocks(RecipeOutput output) { .unlockedBy("has_dark_oak_trapdoor", InventoryChangeTrigger.TriggerInstance.hasItems(Items.DARK_OAK_TRAPDOOR)) .group("fd_cabinet") .save(output); - ShapedRecipeBuilder.shaped(RecipeCategory.DECORATIONS, ModBlocks.MANGROVE_CABINET.get()) + ShapedRecipeBuilder.shaped(items(), RecipeCategory.DECORATIONS, ModBlocks.MANGROVE_CABINET.get()) .pattern("___") .pattern("D D") .pattern("___") @@ -291,7 +299,7 @@ private static void recipesBlocks(RecipeOutput output) { .unlockedBy("has_mangrove_trapdoor", InventoryChangeTrigger.TriggerInstance.hasItems(Items.MANGROVE_TRAPDOOR)) .group("fd_cabinet") .save(output); - ShapedRecipeBuilder.shaped(RecipeCategory.DECORATIONS, ModBlocks.CHERRY_CABINET.get()) + ShapedRecipeBuilder.shaped(items(), RecipeCategory.DECORATIONS, ModBlocks.CHERRY_CABINET.get()) .pattern("___") .pattern("D D") .pattern("___") @@ -300,7 +308,7 @@ private static void recipesBlocks(RecipeOutput output) { .unlockedBy("has_cherry_trapdoor", InventoryChangeTrigger.TriggerInstance.hasItems(Items.CHERRY_TRAPDOOR)) .group("fd_cabinet") .save(output); - ShapedRecipeBuilder.shaped(RecipeCategory.DECORATIONS, ModBlocks.BAMBOO_CABINET.get()) + ShapedRecipeBuilder.shaped(items(), RecipeCategory.DECORATIONS, ModBlocks.BAMBOO_CABINET.get()) .pattern("___") .pattern("D D") .pattern("___") @@ -309,7 +317,7 @@ private static void recipesBlocks(RecipeOutput output) { .unlockedBy("has_bamboo_trapdoor", InventoryChangeTrigger.TriggerInstance.hasItems(Items.BAMBOO_TRAPDOOR)) .group("fd_cabinet") .save(output); - ShapedRecipeBuilder.shaped(RecipeCategory.DECORATIONS, ModBlocks.CRIMSON_CABINET.get()) + ShapedRecipeBuilder.shaped(items(), RecipeCategory.DECORATIONS, ModBlocks.CRIMSON_CABINET.get()) .pattern("___") .pattern("D D") .pattern("___") @@ -318,7 +326,7 @@ private static void recipesBlocks(RecipeOutput output) { .unlockedBy("has_crimson_trapdoor", InventoryChangeTrigger.TriggerInstance.hasItems(Items.CRIMSON_TRAPDOOR)) .group("fd_cabinet") .save(output); - ShapedRecipeBuilder.shaped(RecipeCategory.DECORATIONS, ModBlocks.WARPED_CABINET.get()) + ShapedRecipeBuilder.shaped(items(), RecipeCategory.DECORATIONS, ModBlocks.WARPED_CABINET.get()) .pattern("___") .pattern("D D") .pattern("___") @@ -327,112 +335,112 @@ private static void recipesBlocks(RecipeOutput output) { .unlockedBy("has_warped_trapdoor", InventoryChangeTrigger.TriggerInstance.hasItems(Items.WARPED_TRAPDOOR)) .group("fd_cabinet") .save(output); - ShapedRecipeBuilder.shaped(RecipeCategory.DECORATIONS, ModItems.ROPE.get(), 4) + ShapedRecipeBuilder.shaped(items(), RecipeCategory.DECORATIONS, ModItems.ROPE.get(), 4) .pattern("s") .pattern("s") .define('s', ModItems.STRAW.get()) .unlockedBy("has_straw", InventoryChangeTrigger.TriggerInstance.hasItems(ModItems.STRAW.get())) .group("fd_rope") .save(output); - ShapelessRecipeBuilder.shapeless(RecipeCategory.DECORATIONS, ModItems.ROPE.get(), 4) + ShapelessRecipeBuilder.shapeless(items(), RecipeCategory.DECORATIONS, ModItems.ROPE.get(), 4) .requires(ModItems.SAFETY_NET.get()) .unlockedBy("has_safety_net", InventoryChangeTrigger.TriggerInstance.hasItems(ModItems.SAFETY_NET.get())) .group("fd_rope") - .save(output, RecipeUtils.FDLocation("rope_from_safety_net")); - ShapedRecipeBuilder.shaped(RecipeCategory.DECORATIONS, ModItems.SAFETY_NET.get(), 1) + .save(output, RecipeUtils.FDLocation("rope_from_safety_net").toString()); + ShapedRecipeBuilder.shaped(items(), RecipeCategory.DECORATIONS, ModItems.SAFETY_NET.get(), 1) .pattern("rr") .pattern("rr") .define('r', ModItems.ROPE.get()) .unlockedBy("has_rope", InventoryChangeTrigger.TriggerInstance.hasItems(ModItems.ROPE.get())) .save(output); - ShapedRecipeBuilder.shaped(RecipeCategory.DECORATIONS, ModItems.ROPE_FENCE.get(), 3) + ShapedRecipeBuilder.shaped(items(), RecipeCategory.DECORATIONS, ModItems.ROPE_FENCE.get(), 3) .pattern("r/r") .pattern("r/r") .define('/', Items.STICK) .define('r', ModItems.ROPE.get()) .unlockedBy("has_rope", InventoryChangeTrigger.TriggerInstance.hasItems(ModItems.ROPE.get())) .save(output); - ShapedRecipeBuilder.shaped(RecipeCategory.DECORATIONS, ModItems.ROPE_FENCE_GATE.get()) + ShapedRecipeBuilder.shaped(items(), RecipeCategory.DECORATIONS, ModItems.ROPE_FENCE_GATE.get()) .pattern("/r/") .pattern("/r/") .define('/', Items.STICK) .define('r', ModItems.ROPE.get()) .unlockedBy("has_rope", InventoryChangeTrigger.TriggerInstance.hasItems(ModItems.ROPE.get())) .save(output); - ShapedRecipeBuilder.shaped(RecipeCategory.BUILDING_BLOCKS, ModItems.BEETROOT_CRATE.get()) + ShapedRecipeBuilder.shaped(items(), RecipeCategory.BUILDING_BLOCKS, ModItems.BEETROOT_CRATE.get()) .pattern("###") .pattern("###") .pattern("###") .define('#', Items.BEETROOT) .unlockedBy("has_beetroot", InventoryChangeTrigger.TriggerInstance.hasItems(Items.BEETROOT)) - .save(output.withConditions(VanillaCrateEnabledCondition.INSTANCE), RecipeUtils.FDLocation("beetroot_crate")); - ShapedRecipeBuilder.shaped(RecipeCategory.BUILDING_BLOCKS, ModItems.CARROT_CRATE.get()) + .save(output.withConditions(VanillaCrateEnabledCondition.INSTANCE)); + ShapedRecipeBuilder.shaped(items(), RecipeCategory.BUILDING_BLOCKS, ModItems.CARROT_CRATE.get()) .pattern("###") .pattern("###") .pattern("###") .define('#', Items.CARROT) .unlockedBy("has_carrot", InventoryChangeTrigger.TriggerInstance.hasItems(Items.CARROT)) - .save(output.withConditions(VanillaCrateEnabledCondition.INSTANCE), RecipeUtils.FDLocation("carrot_crate")); - ShapedRecipeBuilder.shaped(RecipeCategory.BUILDING_BLOCKS, ModItems.POTATO_CRATE.get()) + .save(output.withConditions(VanillaCrateEnabledCondition.INSTANCE)); + ShapedRecipeBuilder.shaped(items(), RecipeCategory.BUILDING_BLOCKS, ModItems.POTATO_CRATE.get()) .pattern("###") .pattern("###") .pattern("###") .define('#', Items.POTATO) .unlockedBy("has_potato", InventoryChangeTrigger.TriggerInstance.hasItems(Items.POTATO)) - .save(output.withConditions(VanillaCrateEnabledCondition.INSTANCE), RecipeUtils.FDLocation("potato_crate")); - ShapedRecipeBuilder.shaped(RecipeCategory.BUILDING_BLOCKS, ModItems.CABBAGE_CRATE.get(), 1) + .save(output.withConditions(VanillaCrateEnabledCondition.INSTANCE)); + ShapedRecipeBuilder.shaped(items(), RecipeCategory.BUILDING_BLOCKS, ModItems.CABBAGE_CRATE.get(), 1) .pattern("###") .pattern("###") .pattern("###") .define('#', ModItems.CABBAGE.get()) .unlockedBy("has_cabbage", InventoryChangeTrigger.TriggerInstance.hasItems(ModItems.CABBAGE.get())) .save(output); - ShapedRecipeBuilder.shaped(RecipeCategory.BUILDING_BLOCKS, ModItems.TOMATO_CRATE.get(), 1) + ShapedRecipeBuilder.shaped(items(), RecipeCategory.BUILDING_BLOCKS, ModItems.TOMATO_CRATE.get(), 1) .pattern("###") .pattern("###") .pattern("###") .define('#', ModItems.TOMATO.get()) .unlockedBy("has_tomato", InventoryChangeTrigger.TriggerInstance.hasItems(ModItems.TOMATO.get())) .save(output); - ShapedRecipeBuilder.shaped(RecipeCategory.BUILDING_BLOCKS, ModItems.ONION_CRATE.get(), 1) + ShapedRecipeBuilder.shaped(items(), RecipeCategory.BUILDING_BLOCKS, ModItems.ONION_CRATE.get(), 1) .pattern("###") .pattern("###") .pattern("###") .define('#', ModItems.ONION.get()) .unlockedBy("has_onion", InventoryChangeTrigger.TriggerInstance.hasItems(ModItems.ONION.get())) .save(output); - ShapedRecipeBuilder.shaped(RecipeCategory.BUILDING_BLOCKS, ModItems.RICE_BALE.get(), 1) + ShapedRecipeBuilder.shaped(items(), RecipeCategory.BUILDING_BLOCKS, ModItems.RICE_BALE.get(), 1) .pattern("###") .pattern("###") .pattern("###") .define('#', ModItems.RICE_PANICLE.get()) .unlockedBy("has_rice_panicle", InventoryChangeTrigger.TriggerInstance.hasItems(ModItems.RICE_PANICLE.get())) .save(output); - ShapedRecipeBuilder.shaped(RecipeCategory.BUILDING_BLOCKS, ModItems.RICE_BAG.get(), 1) + ShapedRecipeBuilder.shaped(items(), RecipeCategory.BUILDING_BLOCKS, ModItems.RICE_BAG.get(), 1) .pattern("###") .pattern("###") .pattern("###") .define('#', ModItems.RICE.get()) .unlockedBy("has_rice", InventoryChangeTrigger.TriggerInstance.hasItems(ModItems.RICE.get())) .save(output); - ShapedRecipeBuilder.shaped(RecipeCategory.BUILDING_BLOCKS, ModItems.STRAW_BALE.get(), 1) + ShapedRecipeBuilder.shaped(items(), RecipeCategory.BUILDING_BLOCKS, ModItems.STRAW_BALE.get(), 1) .pattern("###") .pattern("###") .pattern("###") .define('#', ModItems.STRAW.get()) .unlockedBy("has_straw", InventoryChangeTrigger.TriggerInstance.hasItems(ModItems.STRAW.get())) .save(output); - ShapelessRecipeBuilder.shapeless(RecipeCategory.DECORATIONS, ModItems.CANVAS_RUG.get(), 2) + ShapelessRecipeBuilder.shapeless(items(), RecipeCategory.DECORATIONS, ModItems.CANVAS_RUG.get(), 2) .requires(ModItems.CANVAS.get()) .unlockedBy("has_canvas", InventoryChangeTrigger.TriggerInstance.hasItems(ModItems.CANVAS.get())) .save(output); - ShapelessRecipeBuilder.shapeless(RecipeCategory.MISC, ModItems.CANVAS.get(), 1) + ShapelessRecipeBuilder.shapeless(items(), RecipeCategory.MISC, ModItems.CANVAS.get(), 1) .requires(ModItems.CANVAS_RUG.get()) .requires(ModItems.CANVAS_RUG.get()) .unlockedBy("has_canvas_rug", InventoryChangeTrigger.TriggerInstance.hasItems(ModItems.CANVAS_RUG.get())) .group("fd_canvas") - .save(output, RecipeUtils.FDLocation("canvas_from_canvas_rug")); - ShapelessRecipeBuilder.shapeless(RecipeCategory.BUILDING_BLOCKS, ModItems.ORGANIC_COMPOST.get(), 1) + .save(output, RecipeUtils.FDLocation("canvas_from_canvas_rug").toString()); + ShapelessRecipeBuilder.shapeless(items(), RecipeCategory.BUILDING_BLOCKS, ModItems.ORGANIC_COMPOST.get(), 1) .requires(Items.DIRT) .requires(Items.ROTTEN_FLESH) .requires(Items.ROTTEN_FLESH) @@ -445,8 +453,8 @@ private static void recipesBlocks(RecipeOutput output) { .unlockedBy("has_rotten_flesh", InventoryChangeTrigger.TriggerInstance.hasItems(Items.ROTTEN_FLESH)) .unlockedBy("has_straw", InventoryChangeTrigger.TriggerInstance.hasItems(ModItems.STRAW.get())) .group("fd_organic_compost") - .save(output, RecipeUtils.FDLocation("organic_compost_from_rotten_flesh")); - ShapelessRecipeBuilder.shapeless(RecipeCategory.BUILDING_BLOCKS, ModItems.ORGANIC_COMPOST.get(), 1) + .save(output, RecipeUtils.FDLocation("organic_compost_from_rotten_flesh").toString()); + ShapelessRecipeBuilder.shapeless(items(), RecipeCategory.BUILDING_BLOCKS, ModItems.ORGANIC_COMPOST.get(), 1) .requires(Items.DIRT) .requires(ModItems.STRAW.get()) .requires(ModItems.STRAW.get()) @@ -459,8 +467,8 @@ private static void recipesBlocks(RecipeOutput output) { .unlockedBy("has_tree_bark", InventoryChangeTrigger.TriggerInstance.hasItems(ModItems.TREE_BARK.get())) .unlockedBy("has_straw", InventoryChangeTrigger.TriggerInstance.hasItems(ModItems.STRAW.get())) .group("fd_organic_compost") - .save(output, RecipeUtils.FDLocation("organic_compost_from_tree_bark")); - ShapedRecipeBuilder.shaped(RecipeCategory.BUILDING_BLOCKS, ModItems.TATAMI.get(), 2) + .save(output, RecipeUtils.FDLocation("organic_compost_from_tree_bark").toString()); + ShapedRecipeBuilder.shaped(items(), RecipeCategory.BUILDING_BLOCKS, ModItems.TATAMI.get(), 2) .pattern("cs") .pattern("sc") .define('c', ModItems.CANVAS.get()) @@ -470,54 +478,54 @@ private static void recipesBlocks(RecipeOutput output) { .save(output); // BREAKING DOWN - ShapelessRecipeBuilder.shapeless(RecipeCategory.DECORATIONS, ModItems.FULL_TATAMI_MAT.get(), 2) + ShapelessRecipeBuilder.shapeless(items(), RecipeCategory.DECORATIONS, ModItems.FULL_TATAMI_MAT.get(), 2) .requires(ModItems.TATAMI.get()) .unlockedBy("has_canvas", InventoryChangeTrigger.TriggerInstance.hasItems(ModItems.CANVAS.get())) .group("fd_full_tatami_mat") .save(output); - ShapelessRecipeBuilder.shapeless(RecipeCategory.DECORATIONS, ModItems.HALF_TATAMI_MAT.get(), 2) + ShapelessRecipeBuilder.shapeless(items(), RecipeCategory.DECORATIONS, ModItems.HALF_TATAMI_MAT.get(), 2) .requires(ModItems.FULL_TATAMI_MAT.get()) .unlockedBy("has_canvas", InventoryChangeTrigger.TriggerInstance.hasItems(ModItems.CANVAS.get())) .save(output); // COMBINING BACK - ShapelessRecipeBuilder.shapeless(RecipeCategory.DECORATIONS, ModItems.FULL_TATAMI_MAT.get(), 1) + ShapelessRecipeBuilder.shapeless(items(), RecipeCategory.DECORATIONS, ModItems.FULL_TATAMI_MAT.get(), 1) .requires(ModItems.HALF_TATAMI_MAT.get()) .requires(ModItems.HALF_TATAMI_MAT.get()) .unlockedBy("has_canvas", InventoryChangeTrigger.TriggerInstance.hasItems(ModItems.CANVAS.get())) .group("fd_full_tatami_mat") - .save(output, RecipeUtils.FDLocation("full_tatami_mat_from_halves")); - ShapelessRecipeBuilder.shapeless(RecipeCategory.BUILDING_BLOCKS, ModItems.TATAMI.get(), 1) + .save(output, RecipeUtils.FDLocation("full_tatami_mat_from_halves").toString()); + ShapelessRecipeBuilder.shapeless(items(), RecipeCategory.BUILDING_BLOCKS, ModItems.TATAMI.get(), 1) .requires(ModItems.FULL_TATAMI_MAT.get()) .requires(ModItems.FULL_TATAMI_MAT.get()) .unlockedBy("has_canvas", InventoryChangeTrigger.TriggerInstance.hasItems(ModItems.CANVAS.get())) .group("fd_tatami") - .save(output, RecipeUtils.FDLocation("tatami_block_from_full")); + .save(output, RecipeUtils.FDLocation("tatami_block_from_full").toString()); } private static void recipesTools(RecipeOutput output) { - ShapedRecipeBuilder.shaped(RecipeCategory.COMBAT, ModItems.FLINT_KNIFE.get()) + ShapedRecipeBuilder.shaped(items(), RecipeCategory.COMBAT, ModItems.FLINT_KNIFE.get()) .pattern("m") .pattern("s") .define('m', Items.FLINT) .define('s', Items.STICK) .unlockedBy("has_stick", InventoryChangeTrigger.TriggerInstance.hasItems(Items.STICK)) .save(output); - ShapedRecipeBuilder.shaped(RecipeCategory.COMBAT, ModItems.IRON_KNIFE.get()) + ShapedRecipeBuilder.shaped(items(), RecipeCategory.COMBAT, ModItems.IRON_KNIFE.get()) .pattern("m") .pattern("s") .define('m', Tags.Items.INGOTS_IRON) .define('s', Items.STICK) .unlockedBy("has_iron_ingot", InventoryChangeTrigger.TriggerInstance.hasItems(Items.IRON_INGOT)) .save(output); - ShapedRecipeBuilder.shaped(RecipeCategory.COMBAT, ModItems.DIAMOND_KNIFE.get()) + ShapedRecipeBuilder.shaped(items(), RecipeCategory.COMBAT, ModItems.DIAMOND_KNIFE.get()) .pattern("m") .pattern("s") .define('m', Items.DIAMOND) .define('s', Items.STICK) .unlockedBy("has_diamond", InventoryChangeTrigger.TriggerInstance.hasItems(Items.DIAMOND)) .save(output); - ShapedRecipeBuilder.shaped(RecipeCategory.COMBAT, ModItems.GOLDEN_KNIFE.get()) + ShapedRecipeBuilder.shaped(items(), RecipeCategory.COMBAT, ModItems.GOLDEN_KNIFE.get()) .pattern("m") .pattern("s") .define('m', Items.GOLD_INGOT) @@ -530,52 +538,52 @@ private static void recipesTools(RecipeOutput output) { } private static void recipesMaterials(RecipeOutput output) { - ShapedRecipeBuilder.shaped(RecipeCategory.MISC, ModItems.CANVAS.get()) + ShapedRecipeBuilder.shaped(items(), RecipeCategory.MISC, ModItems.CANVAS.get()) .pattern("##") .pattern("##") .define('#', ModItems.STRAW.get()) .unlockedBy("has_straw", InventoryChangeTrigger.TriggerInstance.hasItems(ModItems.STRAW.get())) .group("fd_canvas") .save(output); - ShapelessRecipeBuilder.shapeless(RecipeCategory.FOOD, Items.CARROT, 9) + ShapelessRecipeBuilder.shapeless(items(), RecipeCategory.FOOD, Items.CARROT, 9) .requires(ModItems.CARROT_CRATE.get()) .unlockedBy("has_carrot_crate", InventoryChangeTrigger.TriggerInstance.hasItems(ModItems.CARROT_CRATE.get())) - .save(output, RecipeUtils.FDLocation("carrot_from_crate")); - ShapelessRecipeBuilder.shapeless(RecipeCategory.FOOD, Items.POTATO, 9) + .save(output, RecipeUtils.FDLocation("carrot_from_crate").toString()); + ShapelessRecipeBuilder.shapeless(items(), RecipeCategory.FOOD, Items.POTATO, 9) .requires(ModItems.POTATO_CRATE.get()) .unlockedBy("has_potato_crate", InventoryChangeTrigger.TriggerInstance.hasItems(ModItems.POTATO_CRATE.get())) - .save(output, RecipeUtils.FDLocation("potato_from_crate")); - ShapelessRecipeBuilder.shapeless(RecipeCategory.FOOD, Items.BEETROOT, 9) + .save(output, RecipeUtils.FDLocation("potato_from_crate").toString()); + ShapelessRecipeBuilder.shapeless(items(), RecipeCategory.FOOD, Items.BEETROOT, 9) .requires(ModItems.BEETROOT_CRATE.get()) .unlockedBy("has_beetroot_crate", InventoryChangeTrigger.TriggerInstance.hasItems(ModItems.BEETROOT_CRATE.get())) - .save(output, RecipeUtils.FDLocation("beetroot_from_crate")); - ShapelessRecipeBuilder.shapeless(RecipeCategory.FOOD, ModItems.CABBAGE.get(), 9) + .save(output, RecipeUtils.FDLocation("beetroot_from_crate").toString()); + ShapelessRecipeBuilder.shapeless(items(), RecipeCategory.FOOD, ModItems.CABBAGE.get(), 9) .requires(ModItems.CABBAGE_CRATE.get()) .unlockedBy("has_cabbage_crate", InventoryChangeTrigger.TriggerInstance.hasItems(ModItems.CABBAGE_CRATE.get())) .group("fd_cabbage") .save(output); - ShapelessRecipeBuilder.shapeless(RecipeCategory.FOOD, ModItems.TOMATO.get(), 9) + ShapelessRecipeBuilder.shapeless(items(), RecipeCategory.FOOD, ModItems.TOMATO.get(), 9) .requires(ModItems.TOMATO_CRATE.get()) .unlockedBy("has_tomato_crate", InventoryChangeTrigger.TriggerInstance.hasItems(ModItems.TOMATO_CRATE.get())) .save(output); - ShapelessRecipeBuilder.shapeless(RecipeCategory.FOOD, ModItems.ONION.get(), 9) + ShapelessRecipeBuilder.shapeless(items(), RecipeCategory.FOOD, ModItems.ONION.get(), 9) .requires(ModItems.ONION_CRATE.get()) .unlockedBy("has_onion_crate", InventoryChangeTrigger.TriggerInstance.hasItems(ModItems.ONION_CRATE.get())) .save(output); - ShapelessRecipeBuilder.shapeless(RecipeCategory.FOOD, ModItems.RICE_PANICLE.get(), 9) + ShapelessRecipeBuilder.shapeless(items(), RecipeCategory.FOOD, ModItems.RICE_PANICLE.get(), 9) .requires(ModItems.RICE_BALE.get()) .unlockedBy("has_rice_bale", InventoryChangeTrigger.TriggerInstance.hasItems(ModItems.RICE_BALE.get())) .save(output); - ShapelessRecipeBuilder.shapeless(RecipeCategory.FOOD, ModItems.RICE.get(), 9) + ShapelessRecipeBuilder.shapeless(items(), RecipeCategory.FOOD, ModItems.RICE.get(), 9) .requires(ModItems.RICE_BAG.get()) .unlockedBy("has_rice_bag", InventoryChangeTrigger.TriggerInstance.hasItems(ModItems.RICE_BAG.get())) .group("fd_rice") .save(output, FarmersDelight.MODID + ":rice_from_bag"); - ShapelessRecipeBuilder.shapeless(RecipeCategory.MISC, ModItems.STRAW.get(), 9) + ShapelessRecipeBuilder.shapeless(items(), RecipeCategory.MISC, ModItems.STRAW.get(), 9) .requires(ModItems.STRAW_BALE.get()) .unlockedBy("has_straw_bale", InventoryChangeTrigger.TriggerInstance.hasItems(ModItems.STRAW_BALE.get())) .save(output); - ShapelessRecipeBuilder.shapeless(RecipeCategory.FOOD, ModItems.RICE.get()) + ShapelessRecipeBuilder.shapeless(items(), RecipeCategory.FOOD, ModItems.RICE.get()) .requires(ModItems.RICE_PANICLE.get()) .unlockedBy("has_rice_panicle", InventoryChangeTrigger.TriggerInstance.hasItems(ModItems.RICE_PANICLE.get())) .group("fd_rice") @@ -583,11 +591,11 @@ private static void recipesMaterials(RecipeOutput output) { } private static void recipesFoodstuffs(RecipeOutput output) { - ShapelessRecipeBuilder.shapeless(RecipeCategory.MISC, ModItems.TOMATO_SEEDS.get()) + ShapelessRecipeBuilder.shapeless(items(), RecipeCategory.MISC, ModItems.TOMATO_SEEDS.get()) .requires(Ingredient.of(ModItems.TOMATO.get(), ModItems.ROTTEN_TOMATO.get())) .unlockedBy("has_tomato", InventoryChangeTrigger.TriggerInstance.hasItems(ModItems.TOMATO.get())) .save(output); - ShapelessRecipeBuilder.shapeless(RecipeCategory.FOOD, ModItems.MILK_BOTTLE.get(), 4) + ShapelessRecipeBuilder.shapeless(items(), RecipeCategory.FOOD, ModItems.MILK_BOTTLE.get(), 4) .requires(Items.MILK_BUCKET) .requires(Items.GLASS_BOTTLE) .requires(Items.GLASS_BOTTLE) @@ -595,7 +603,7 @@ private static void recipesFoodstuffs(RecipeOutput output) { .requires(Items.GLASS_BOTTLE) .unlockedBy("has_milk_bucket", InventoryChangeTrigger.TriggerInstance.hasItems(Items.MILK_BUCKET)) .save(output); - ShapelessRecipeBuilder.shapeless(RecipeCategory.FOOD, ModItems.MELON_JUICE.get(), 1) + ShapelessRecipeBuilder.shapeless(items(), RecipeCategory.FOOD, ModItems.MELON_JUICE.get(), 1) .requires(Items.MELON_SLICE) .requires(Items.MELON_SLICE) .requires(Items.SUGAR) @@ -604,47 +612,47 @@ private static void recipesFoodstuffs(RecipeOutput output) { .requires(Items.GLASS_BOTTLE) .unlockedBy("has_melon_slice", InventoryChangeTrigger.TriggerInstance.hasItems(Items.MELON_SLICE)) .save(output); - ShapelessRecipeBuilder.shapeless(RecipeCategory.FOOD, ModItems.WHEAT_DOUGH.get(), 3) + ShapelessRecipeBuilder.shapeless(items(), RecipeCategory.FOOD, ModItems.WHEAT_DOUGH.get(), 3) .requires(Tags.Items.CROPS_WHEAT) .requires(Tags.Items.CROPS_WHEAT) .requires(Tags.Items.CROPS_WHEAT) .requires(Tags.Items.EGGS) .group("fd_dough") .unlockedBy("has_wheat", InventoryChangeTrigger.TriggerInstance.hasItems(Items.WHEAT)) - .save(output, RecipeUtils.FDLocation("wheat_dough_from_egg")); - ShapedRecipeBuilder.shaped(RecipeCategory.FOOD, ModItems.PIE_CRUST.get(), 1) + .save(output, RecipeUtils.FDLocation("wheat_dough_from_egg").toString()); + ShapedRecipeBuilder.shaped(items(), RecipeCategory.FOOD, ModItems.PIE_CRUST.get(), 1) .pattern("wMw") .pattern(" w ") .define('w', Tags.Items.CROPS_WHEAT) .define('M', Tags.Items.DRINKS_MILK) .unlockedBy("has_wheat", InventoryChangeTrigger.TriggerInstance.hasItems(Items.WHEAT)) .save(output); - ShapelessRecipeBuilder.shapeless(RecipeCategory.FOOD, ModItems.SWEET_BERRY_COOKIE.get(), 8) + ShapelessRecipeBuilder.shapeless(items(), RecipeCategory.FOOD, ModItems.SWEET_BERRY_COOKIE.get(), 8) .requires(Items.SWEET_BERRIES) .requires(Tags.Items.CROPS_WHEAT) .requires(Tags.Items.CROPS_WHEAT) .unlockedBy("has_sweet_berries", InventoryChangeTrigger.TriggerInstance.hasItems(Items.SWEET_BERRIES)) .save(output); - ShapelessRecipeBuilder.shapeless(RecipeCategory.FOOD, ModItems.HONEY_COOKIE.get(), 8) + ShapelessRecipeBuilder.shapeless(items(), RecipeCategory.FOOD, ModItems.HONEY_COOKIE.get(), 8) .requires(Items.HONEY_BOTTLE) .requires(Tags.Items.CROPS_WHEAT) .requires(Tags.Items.CROPS_WHEAT) .unlockedBy("has_honey_bottle", InventoryChangeTrigger.TriggerInstance.hasItems(Items.HONEY_BOTTLE)) .save(output); - ShapelessRecipeBuilder.shapeless(RecipeCategory.FOOD, ModItems.CABBAGE.get()) + ShapelessRecipeBuilder.shapeless(items(), RecipeCategory.FOOD, ModItems.CABBAGE.get()) .requires(ModItems.CABBAGE_LEAF.get()) .requires(ModItems.CABBAGE_LEAF.get()) .unlockedBy("has_cabbage_leaf", InventoryChangeTrigger.TriggerInstance.hasItems(ModItems.CABBAGE_LEAF.get())) .group("fd_cabbage") - .save(output, RecipeUtils.FDLocation("cabbage_from_leaves")); - ShapelessRecipeBuilder.shapeless(RecipeCategory.FOOD, ModItems.HORSE_FEED.get(), 1) + .save(output, RecipeUtils.FDLocation("cabbage_from_leaves").toString()); + ShapelessRecipeBuilder.shapeless(items(), RecipeCategory.FOOD, ModItems.HORSE_FEED.get(), 1) .requires(Ingredient.of(Items.HAY_BLOCK, ModItems.RICE_BALE.get())) .requires(Items.APPLE) .requires(Items.APPLE) .requires(Items.GOLDEN_CARROT) .unlockedBy("has_golden_carrot", InventoryChangeTrigger.TriggerInstance.hasItems(Items.GOLDEN_CARROT)) .save(output); - ShapedRecipeBuilder.shaped(RecipeCategory.FOOD, ModItems.MELON_POPSICLE.get(), 1) + ShapedRecipeBuilder.shaped(items(), RecipeCategory.FOOD, ModItems.MELON_POPSICLE.get(), 1) .pattern(" mm") .pattern("imm") .pattern("-i ") @@ -653,7 +661,7 @@ private static void recipesFoodstuffs(RecipeOutput output) { .define('-', Items.STICK) .unlockedBy("has_melon", InventoryChangeTrigger.TriggerInstance.hasItems(Items.MELON_SLICE)) .save(output); - ShapelessRecipeBuilder.shapeless(RecipeCategory.FOOD, ModItems.FRUIT_SALAD.get(), 1) + ShapelessRecipeBuilder.shapeless(items(), RecipeCategory.FOOD, ModItems.FRUIT_SALAD.get(), 1) .requires(Items.APPLE) .requires(Items.MELON_SLICE) .requires(Items.MELON_SLICE) @@ -666,7 +674,7 @@ private static void recipesFoodstuffs(RecipeOutput output) { } private static void recipesFoodBlocks(RecipeOutput output) { - ShapedRecipeBuilder.shaped(RecipeCategory.FOOD, ModItems.APPLE_PIE.get(), 1) + ShapedRecipeBuilder.shaped(items(), RecipeCategory.FOOD, ModItems.APPLE_PIE.get(), 1) .pattern("###") .pattern("aaa") .pattern("xOx") @@ -677,14 +685,14 @@ private static void recipesFoodBlocks(RecipeOutput output) { .unlockedBy("has_pie_crust", InventoryChangeTrigger.TriggerInstance.hasItems(ModItems.PIE_CRUST.get())) .group("fd_apple_pie") .save(output); - ShapedRecipeBuilder.shaped(RecipeCategory.FOOD, ModItems.APPLE_PIE.get(), 1) + ShapedRecipeBuilder.shaped(items(), RecipeCategory.FOOD, ModItems.APPLE_PIE.get(), 1) .pattern("##") .pattern("##") .define('#', ModItems.APPLE_PIE_SLICE.get()) .unlockedBy("has_apple_pie_slice", InventoryChangeTrigger.TriggerInstance.hasItems(ModItems.APPLE_PIE_SLICE.get())) .group("fd_apple_pie") - .save(output, RecipeUtils.FDLocation("apple_pie_from_slices")); - ShapedRecipeBuilder.shaped(RecipeCategory.FOOD, ModItems.SWEET_BERRY_CHEESECAKE.get(), 1) + .save(output, RecipeUtils.FDLocation("apple_pie_from_slices").toString()); + ShapedRecipeBuilder.shaped(items(), RecipeCategory.FOOD, ModItems.SWEET_BERRY_CHEESECAKE.get(), 1) .pattern("sss") .pattern("sss") .pattern("mOm") @@ -694,14 +702,14 @@ private static void recipesFoodBlocks(RecipeOutput output) { .unlockedBy("has_pie_crust", InventoryChangeTrigger.TriggerInstance.hasItems(ModItems.PIE_CRUST.get())) .group("fd_sweet_berry_cheesecake") .save(output); - ShapedRecipeBuilder.shaped(RecipeCategory.FOOD, ModItems.SWEET_BERRY_CHEESECAKE.get(), 1) + ShapedRecipeBuilder.shaped(items(), RecipeCategory.FOOD, ModItems.SWEET_BERRY_CHEESECAKE.get(), 1) .pattern("##") .pattern("##") .define('#', ModItems.SWEET_BERRY_CHEESECAKE_SLICE.get()) .unlockedBy("has_sweet_berry_cheesecake_slice", InventoryChangeTrigger.TriggerInstance.hasItems(ModItems.SWEET_BERRY_CHEESECAKE_SLICE.get())) .group("fd_sweet_berry_cheesecake") - .save(output, RecipeUtils.FDLocation("sweet_berry_cheesecake_from_slices")); - ShapedRecipeBuilder.shaped(RecipeCategory.FOOD, ModItems.CHOCOLATE_PIE.get(), 1) + .save(output, RecipeUtils.FDLocation("sweet_berry_cheesecake_from_slices").toString()); + ShapedRecipeBuilder.shaped(items(), RecipeCategory.FOOD, ModItems.CHOCOLATE_PIE.get(), 1) .pattern("ccc") .pattern("mmm") .pattern("xOx") @@ -712,14 +720,14 @@ private static void recipesFoodBlocks(RecipeOutput output) { .unlockedBy("has_pie_crust", InventoryChangeTrigger.TriggerInstance.hasItems(ModItems.PIE_CRUST.get())) .group("fd_chocolate_pie") .save(output); - ShapedRecipeBuilder.shaped(RecipeCategory.FOOD, ModItems.CHOCOLATE_PIE.get(), 1) + ShapedRecipeBuilder.shaped(items(), RecipeCategory.FOOD, ModItems.CHOCOLATE_PIE.get(), 1) .pattern("##") .pattern("##") .define('#', ModItems.CHOCOLATE_PIE_SLICE.get()) .unlockedBy("has_chocolate_pie_slice", InventoryChangeTrigger.TriggerInstance.hasItems(ModItems.CHOCOLATE_PIE_SLICE.get())) .group("fd_chocolate_pie") - .save(output, RecipeUtils.FDLocation("chocolate_pie_from_slices")); - ShapedRecipeBuilder.shaped(RecipeCategory.FOOD, Items.PUMPKIN_PIE, 2) + .save(output, RecipeUtils.FDLocation("chocolate_pie_from_slices").toString()); + ShapedRecipeBuilder.shaped(items(), RecipeCategory.FOOD, Items.PUMPKIN_PIE, 2) .pattern("cec") .pattern("csc") .pattern(" O ") @@ -729,31 +737,31 @@ private static void recipesFoodBlocks(RecipeOutput output) { .define('O', ModItems.PIE_CRUST.get()) .unlockedBy("has_pie_crust", InventoryChangeTrigger.TriggerInstance.hasItems(ModItems.PIE_CRUST.get())) .group("fd_pumpkin_pie") - .save(output, RecipeUtils.FDLocation("pumpkin_pie_from_pie_crust")); - ShapedRecipeBuilder.shaped(RecipeCategory.FOOD, Items.PUMPKIN_PIE, 1) + .save(output, RecipeUtils.FDLocation("pumpkin_pie_from_pie_crust").toString()); + ShapedRecipeBuilder.shaped(items(), RecipeCategory.FOOD, Items.PUMPKIN_PIE, 1) .pattern("##") .pattern("##") .define('#', ModItems.PUMPKIN_PIE_SLICE.get()) .unlockedBy("has_pumpkin_pie_slice", InventoryChangeTrigger.TriggerInstance.hasItems(ModItems.PUMPKIN_PIE_SLICE.get())) .group("fd_pumpkin_pie") - .save(output, RecipeUtils.FDLocation("pumpkin_pie_from_slices")); + .save(output, RecipeUtils.FDLocation("pumpkin_pie_from_slices").toString()); } private static void recipesCraftedMeals(RecipeOutput output) { - ShapelessRecipeBuilder.shapeless(RecipeCategory.FOOD, ModItems.MIXED_SALAD.get()) + ShapelessRecipeBuilder.shapeless(items(), RecipeCategory.FOOD, ModItems.MIXED_SALAD.get()) .requires(CommonTags.Items.FOODS_LEAFY_GREEN) .requires(CommonTags.Items.CROPS_TOMATO) .requires(Tags.Items.CROPS_BEETROOT) .requires(Items.BOWL) .unlockedBy("has_bowl", InventoryChangeTrigger.TriggerInstance.hasItems(Items.BOWL)) .save(output); - ShapelessRecipeBuilder.shapeless(RecipeCategory.FOOD, ModItems.NETHER_SALAD.get()) + ShapelessRecipeBuilder.shapeless(items(), RecipeCategory.FOOD, ModItems.NETHER_SALAD.get()) .requires(Items.CRIMSON_FUNGUS) .requires(Items.WARPED_FUNGUS) .requires(Items.BOWL) .unlockedBy("has_bowl", InventoryChangeTrigger.TriggerInstance.hasItems(Items.BOWL)) .save(output); - ShapelessRecipeBuilder.shapeless(RecipeCategory.FOOD, ModItems.BARBECUE_STICK.get()) + ShapelessRecipeBuilder.shapeless(items(), RecipeCategory.FOOD, ModItems.BARBECUE_STICK.get()) .requires(CommonTags.Items.CROPS_TOMATO) .requires(CommonTags.Items.CROPS_ONION) .requires(Tags.Items.FOODS_COOKED_MEAT) @@ -761,20 +769,20 @@ private static void recipesCraftedMeals(RecipeOutput output) { .unlockedBy("has_tomato", InventoryChangeTrigger.TriggerInstance.hasItems(ModItems.TOMATO.get())) .unlockedBy("has_onion", InventoryChangeTrigger.TriggerInstance.hasItems(ModItems.ONION.get())) .save(output); - ShapelessRecipeBuilder.shapeless(RecipeCategory.FOOD, ModItems.EGG_SANDWICH.get()) + ShapelessRecipeBuilder.shapeless(items(), RecipeCategory.FOOD, ModItems.EGG_SANDWICH.get()) .requires(Tags.Items.FOODS_BREAD) .requires(CommonTags.Items.FOODS_COOKED_EGG) .requires(CommonTags.Items.FOODS_COOKED_EGG) .unlockedBy("has_fried_egg", InventoryChangeTrigger.TriggerInstance.hasItems(ModItems.FRIED_EGG.get())) .save(output); - ShapelessRecipeBuilder.shapeless(RecipeCategory.FOOD, ModItems.CHICKEN_SANDWICH.get()) + ShapelessRecipeBuilder.shapeless(items(), RecipeCategory.FOOD, ModItems.CHICKEN_SANDWICH.get()) .requires(Tags.Items.FOODS_BREAD) .requires(CommonTags.Items.FOODS_COOKED_CHICKEN) .requires(CommonTags.Items.FOODS_LEAFY_GREEN) .requires(Tags.Items.CROPS_CARROT) .unlockedBy("has_cooked_chicken", InventoryChangeTrigger.TriggerInstance.hasItems(Items.COOKED_CHICKEN)) .save(output); - ShapelessRecipeBuilder.shapeless(RecipeCategory.FOOD, ModItems.HAMBURGER.get()) + ShapelessRecipeBuilder.shapeless(items(), RecipeCategory.FOOD, ModItems.HAMBURGER.get()) .requires(Tags.Items.FOODS_BREAD) .requires(ModItems.BEEF_PATTY.get()) .requires(CommonTags.Items.FOODS_LEAFY_GREEN) @@ -782,39 +790,39 @@ private static void recipesCraftedMeals(RecipeOutput output) { .requires(CommonTags.Items.CROPS_ONION) .unlockedBy("has_beef_patty", InventoryChangeTrigger.TriggerInstance.hasItems(ModItems.BEEF_PATTY.get())) .save(output); - ShapelessRecipeBuilder.shapeless(RecipeCategory.FOOD, ModItems.BACON_SANDWICH.get()) + ShapelessRecipeBuilder.shapeless(items(), RecipeCategory.FOOD, ModItems.BACON_SANDWICH.get()) .requires(Tags.Items.FOODS_BREAD) .requires(CommonTags.Items.FOODS_COOKED_BACON) .requires(CommonTags.Items.FOODS_LEAFY_GREEN) .requires(CommonTags.Items.CROPS_TOMATO) .unlockedBy("has_bacon", InventoryChangeTrigger.TriggerInstance.hasItems(ModItems.COOKED_BACON.get())) .save(output); - ShapelessRecipeBuilder.shapeless(RecipeCategory.FOOD, ModItems.MUTTON_WRAP.get()) + ShapelessRecipeBuilder.shapeless(items(), RecipeCategory.FOOD, ModItems.MUTTON_WRAP.get()) .requires(Tags.Items.FOODS_BREAD) .requires(CommonTags.Items.FOODS_COOKED_MUTTON) .requires(CommonTags.Items.FOODS_LEAFY_GREEN) .requires(CommonTags.Items.CROPS_ONION) .unlockedBy("has_mutton", InventoryChangeTrigger.TriggerInstance.hasItems(Items.COOKED_MUTTON)) .save(output); - ShapelessRecipeBuilder.shapeless(RecipeCategory.FOOD, ModItems.STUFFED_POTATO.get()) + ShapelessRecipeBuilder.shapeless(items(), RecipeCategory.FOOD, ModItems.STUFFED_POTATO.get()) .requires(Items.BAKED_POTATO) .requires(CommonTags.Items.FOODS_COOKED_BEEF) .requires(Tags.Items.DRINKS_MILK) .unlockedBy("has_baked_potato", InventoryChangeTrigger.TriggerInstance.hasItems(Items.BAKED_POTATO)) .save(output); - ShapelessRecipeBuilder.shapeless(RecipeCategory.FOOD, ModItems.SALMON_ROLL.get(), 2) + ShapelessRecipeBuilder.shapeless(items(), RecipeCategory.FOOD, ModItems.SALMON_ROLL.get(), 2) .requires(ModItems.SALMON_SLICE.get()) .requires(ModItems.SALMON_SLICE.get()) .requires(ModItems.COOKED_RICE.get()) .unlockedBy("has_salmon_slice", InventoryChangeTrigger.TriggerInstance.hasItems(ModItems.SALMON_SLICE.get())) .save(output); - ShapelessRecipeBuilder.shapeless(RecipeCategory.FOOD, ModItems.COD_ROLL.get(), 2) + ShapelessRecipeBuilder.shapeless(items(), RecipeCategory.FOOD, ModItems.COD_ROLL.get(), 2) .requires(ModItems.COD_SLICE.get()) .requires(ModItems.COD_SLICE.get()) .requires(ModItems.COOKED_RICE.get()) .unlockedBy("has_cod_slice", InventoryChangeTrigger.TriggerInstance.hasItems(ModItems.COD_SLICE.get())) .save(output); - ShapedRecipeBuilder.shaped(RecipeCategory.FOOD, ModItems.KELP_ROLL.get(), 1) + ShapedRecipeBuilder.shaped(items(), RecipeCategory.FOOD, ModItems.KELP_ROLL.get(), 1) .pattern("RXR") .pattern("###") .define('#', Items.DRIED_KELP) @@ -822,7 +830,7 @@ private static void recipesCraftedMeals(RecipeOutput output) { .define('X', Tags.Items.FOODS_VEGETABLE) .unlockedBy("has_dried_kelp", InventoryChangeTrigger.TriggerInstance.hasItems(Items.DRIED_KELP)) .save(output); - ShapelessRecipeBuilder.shapeless(RecipeCategory.FOOD, ModItems.GRILLED_SALMON.get()) + ShapelessRecipeBuilder.shapeless(items(), RecipeCategory.FOOD, ModItems.GRILLED_SALMON.get()) .requires(CommonTags.Items.FOODS_COOKED_SALMON) .requires(Items.SWEET_BERRIES) .requires(Items.BOWL) @@ -830,7 +838,7 @@ private static void recipesCraftedMeals(RecipeOutput output) { .requires(CommonTags.Items.CROPS_ONION) .unlockedBy("has_salmon", InventoryChangeTrigger.TriggerInstance.hasItems(Items.SALMON)) .save(output); - ShapelessRecipeBuilder.shapeless(RecipeCategory.FOOD, ModItems.STEAK_AND_POTATOES.get()) + ShapelessRecipeBuilder.shapeless(items(), RecipeCategory.FOOD, ModItems.STEAK_AND_POTATOES.get()) .requires(Items.BAKED_POTATO) .requires(Items.COOKED_BEEF) .requires(Items.BOWL) @@ -838,7 +846,7 @@ private static void recipesCraftedMeals(RecipeOutput output) { .requires(ModItems.COOKED_RICE.get()) .unlockedBy("has_baked_potato", InventoryChangeTrigger.TriggerInstance.hasItems(Items.BAKED_POTATO)) .save(output); - ShapelessRecipeBuilder.shapeless(RecipeCategory.FOOD, ModItems.ROASTED_MUTTON_CHOPS.get()) + ShapelessRecipeBuilder.shapeless(items(), RecipeCategory.FOOD, ModItems.ROASTED_MUTTON_CHOPS.get()) .requires(ModItems.COOKED_MUTTON_CHOPS.get()) .requires(Tags.Items.CROPS_BEETROOT) .requires(Items.BOWL) @@ -846,7 +854,7 @@ private static void recipesCraftedMeals(RecipeOutput output) { .requires(CommonTags.Items.CROPS_TOMATO) .unlockedBy("has_mutton", InventoryChangeTrigger.TriggerInstance.hasItems(Items.COOKED_MUTTON)) .save(output); - ShapelessRecipeBuilder.shapeless(RecipeCategory.FOOD, ModItems.BACON_AND_EGGS.get()) + ShapelessRecipeBuilder.shapeless(items(), RecipeCategory.FOOD, ModItems.BACON_AND_EGGS.get()) .requires(CommonTags.Items.FOODS_COOKED_BACON) .requires(CommonTags.Items.FOODS_COOKED_BACON) .requires(Items.BOWL) @@ -854,7 +862,7 @@ private static void recipesCraftedMeals(RecipeOutput output) { .requires(CommonTags.Items.FOODS_COOKED_EGG) .unlockedBy("has_bacon", InventoryChangeTrigger.TriggerInstance.hasItems(ModItems.COOKED_BACON.get())) .save(output); - ShapelessRecipeBuilder.shapeless(RecipeCategory.FOOD, ModItems.ROAST_CHICKEN_BLOCK.get()) + ShapelessRecipeBuilder.shapeless(items(), RecipeCategory.FOOD, ModItems.ROAST_CHICKEN_BLOCK.get()) .requires(CommonTags.Items.CROPS_ONION) .requires(Tags.Items.EGGS) .requires(Tags.Items.FOODS_BREAD) @@ -866,7 +874,7 @@ private static void recipesCraftedMeals(RecipeOutput output) { .requires(Items.BAKED_POTATO) .unlockedBy("has_cooked_chicken", InventoryChangeTrigger.TriggerInstance.hasItems(Items.COOKED_CHICKEN)) .save(output); - ShapelessRecipeBuilder.shapeless(RecipeCategory.FOOD, ModItems.SHEPHERDS_PIE_BLOCK.get()) + ShapelessRecipeBuilder.shapeless(items(), RecipeCategory.FOOD, ModItems.SHEPHERDS_PIE_BLOCK.get()) .requires(Items.BAKED_POTATO) .requires(Tags.Items.DRINKS_MILK) .requires(Items.BAKED_POTATO) @@ -878,7 +886,7 @@ private static void recipesCraftedMeals(RecipeOutput output) { .requires(CommonTags.Items.CROPS_ONION) .unlockedBy("has_cooked_mutton", InventoryChangeTrigger.TriggerInstance.hasItems(Items.COOKED_MUTTON)) .save(output); - ShapelessRecipeBuilder.shapeless(RecipeCategory.FOOD, ModItems.HONEY_GLAZED_HAM_BLOCK.get()) + ShapelessRecipeBuilder.shapeless(items(), RecipeCategory.FOOD, ModItems.HONEY_GLAZED_HAM_BLOCK.get()) .requires(Items.SWEET_BERRIES) .requires(Items.HONEY_BOTTLE) .requires(Items.SWEET_BERRIES) @@ -890,7 +898,7 @@ private static void recipesCraftedMeals(RecipeOutput output) { .requires(ModItems.COOKED_RICE.get()) .unlockedBy("has_smoked_ham", InventoryChangeTrigger.TriggerInstance.hasItems(ModItems.SMOKED_HAM.get())) .save(output); - ShapelessRecipeBuilder.shapeless(RecipeCategory.FOOD, ModItems.GLEAMING_SALAD_BLOCK.get()) + ShapelessRecipeBuilder.shapeless(items(), RecipeCategory.FOOD, ModItems.GLEAMING_SALAD_BLOCK.get()) .requires(Items.GLOW_BERRIES) .requires(Items.HONEY_BOTTLE) .requires(Items.GLOW_BERRIES) @@ -902,7 +910,7 @@ private static void recipesCraftedMeals(RecipeOutput output) { .requires(ModItems.CABBAGE.get()) .unlockedBy("has_glow_berries", InventoryChangeTrigger.TriggerInstance.hasItems(ModItems.GLOW_BERRY_CUSTARD.get())) .save(output); - ShapelessRecipeBuilder.shapeless(RecipeCategory.FOOD, ModItems.RICE_ROLL_MEDLEY_BLOCK.get()) + ShapelessRecipeBuilder.shapeless(items(), RecipeCategory.FOOD, ModItems.RICE_ROLL_MEDLEY_BLOCK.get()) .requires(ModItems.KELP_ROLL_SLICE.get()) .requires(ModItems.KELP_ROLL_SLICE.get()) .requires(ModItems.KELP_ROLL_SLICE.get()) diff --git a/src/main/java/vectorwing/farmersdelight/data/recipe/CuttingRecipes.java b/src/main/java/vectorwing/farmersdelight/data/recipe/CuttingRecipes.java index 38647b90e..5180828db 100644 --- a/src/main/java/vectorwing/farmersdelight/data/recipe/CuttingRecipes.java +++ b/src/main/java/vectorwing/farmersdelight/data/recipe/CuttingRecipes.java @@ -1,10 +1,13 @@ package vectorwing.farmersdelight.data.recipe; +import net.minecraft.core.registries.BuiltInRegistries; +import net.minecraft.core.HolderGetter; import net.minecraft.data.recipes.RecipeOutput; -import net.minecraft.resources.ResourceLocation; +import net.minecraft.resources.Identifier; import net.minecraft.sounds.SoundEvents; import net.minecraft.tags.ItemTags; import net.minecraft.tags.TagKey; +import net.minecraft.world.item.DyeColor; import net.minecraft.world.item.Item; import net.minecraft.world.item.Items; import net.minecraft.world.item.crafting.Ingredient; @@ -24,15 +27,25 @@ public class CuttingRecipes { - public static Ingredient KNIVES = matchesTool(KnifeItem.KNIFE_DIG, CommonTags.Items.TOOLS_KNIFE); - public static Ingredient PICKAXES = matchesTool(ItemAbilities.PICKAXE_DIG, ItemTags.PICKAXES); - public static Ingredient AXES = matchesTool(ItemAbilities.AXE_DIG, ItemTags.AXES); - public static Ingredient AXES_STRIP = matchesTool(ItemAbilities.AXE_STRIP, ItemTags.AXES); - public static Ingredient SHOVELS = matchesTool(ItemAbilities.SHOVEL_DIG, ItemTags.SHOVELS); - public static Ingredient HOES = matchesTool(ItemAbilities.HOE_DIG, ItemTags.HOES); - public static Ingredient SHEARS = matchesTool(ItemAbilities.SHEARS_DIG, Tags.Items.TOOLS_SHEAR); + private static HolderGetter items; + public static Ingredient KNIVES; + public static Ingredient PICKAXES; + public static Ingredient AXES; + public static Ingredient AXES_STRIP; + public static Ingredient SHOVELS; + public static Ingredient HOES; + public static Ingredient SHEARS; + + public static void register(RecipeOutput output, HolderGetter itemLookup) { + items = itemLookup; + KNIVES = matchesTool(KnifeItem.KNIFE_DIG, CommonTags.Items.TOOLS_KNIFE); + PICKAXES = matchesTool(ItemAbility.get("pickaxe_dig"), ItemTags.PICKAXES); + AXES = matchesTool(ItemAbility.get("axe_dig"), ItemTags.AXES); + AXES_STRIP = matchesTool(ItemAbilities.AXE_STRIP, ItemTags.AXES); + SHOVELS = matchesTool(ItemAbility.get("shovel_dig"), ItemTags.SHOVELS); + HOES = matchesTool(ItemAbility.get("hoe_dig"), ItemTags.HOES); + SHEARS = matchesTool(ItemAbilities.SHEARS_DIG, Tags.Items.TOOLS_SHEAR); - public static void register(RecipeOutput output) { // Knife cuttingAnimalItems(output); cuttingVegetables(output); @@ -89,7 +102,7 @@ private static void cuttingAnimalItems(RecipeOutput output) { .saveToFD(output); CuttingBoardRecipeBuilder.cuttingRecipe(Ingredient.of(Items.COOKED_MUTTON), KNIVES, ModItems.COOKED_MUTTON_CHOPS.get(), 2) .saveToFD(output); - CuttingBoardRecipeBuilder.cuttingRecipe(Ingredient.of(Items.INK_SAC), KNIVES, Items.BLACK_DYE, 2) + CuttingBoardRecipeBuilder.cuttingRecipe(Ingredient.of(Items.INK_SAC), KNIVES, Items.DYE.pick(DyeColor.BLACK), 2) .saveToFD(output); } @@ -110,7 +123,7 @@ private static void cuttingVegetables(RecipeOutput output) { } private static void cuttingFoods(RecipeOutput output) { - CuttingBoardRecipeBuilder.cuttingRecipe(Ingredient.of(CommonTags.Items.FOODS_DOUGH), KNIVES, ModItems.RAW_PASTA.get(), 1) + CuttingBoardRecipeBuilder.cuttingRecipe(ingredient(CommonTags.Items.FOODS_DOUGH), KNIVES, ModItems.RAW_PASTA.get(), 1) .save(output, RecipeUtils.FDLocation("cutting/tag_dough")); CuttingBoardRecipeBuilder.cuttingRecipe(Ingredient.of(ModItems.KELP_ROLL.get()), KNIVES, ModItems.KELP_ROLL_SLICE.get(), 3) .saveToFD(output); @@ -127,56 +140,56 @@ private static void cuttingFoods(RecipeOutput output) { } private static void cuttingFlowers(RecipeOutput output) { - CuttingBoardRecipeBuilder.cuttingRecipe(Ingredient.of(Items.WITHER_ROSE), KNIVES, Items.BLACK_DYE, 2) + CuttingBoardRecipeBuilder.cuttingRecipe(Ingredient.of(Items.WITHER_ROSE), KNIVES, Items.DYE.pick(DyeColor.BLACK), 2) .saveToFD(output); - CuttingBoardRecipeBuilder.cuttingRecipe(Ingredient.of(Items.CORNFLOWER), KNIVES, Items.BLUE_DYE, 2) + CuttingBoardRecipeBuilder.cuttingRecipe(Ingredient.of(Items.CORNFLOWER), KNIVES, Items.DYE.pick(DyeColor.BLUE), 2) .saveToFD(output); - CuttingBoardRecipeBuilder.cuttingRecipe(Ingredient.of(Items.BLUE_ORCHID), KNIVES, Items.LIGHT_BLUE_DYE, 2) + CuttingBoardRecipeBuilder.cuttingRecipe(Ingredient.of(Items.BLUE_ORCHID), KNIVES, Items.DYE.pick(DyeColor.LIGHT_BLUE), 2) .saveToFD(output); - CuttingBoardRecipeBuilder.cuttingRecipe(Ingredient.of(Items.AZURE_BLUET), KNIVES, Items.LIGHT_GRAY_DYE, 2) + CuttingBoardRecipeBuilder.cuttingRecipe(Ingredient.of(Items.AZURE_BLUET), KNIVES, Items.DYE.pick(DyeColor.LIGHT_GRAY), 2) .saveToFD(output); - CuttingBoardRecipeBuilder.cuttingRecipe(Ingredient.of(Items.OXEYE_DAISY), KNIVES, Items.LIGHT_GRAY_DYE, 2) + CuttingBoardRecipeBuilder.cuttingRecipe(Ingredient.of(Items.OXEYE_DAISY), KNIVES, Items.DYE.pick(DyeColor.LIGHT_GRAY), 2) .saveToFD(output); - CuttingBoardRecipeBuilder.cuttingRecipe(Ingredient.of(Items.WHITE_TULIP), KNIVES, Items.LIGHT_GRAY_DYE, 2) + CuttingBoardRecipeBuilder.cuttingRecipe(Ingredient.of(Items.WHITE_TULIP), KNIVES, Items.DYE.pick(DyeColor.LIGHT_GRAY), 2) .saveToFD(output); - CuttingBoardRecipeBuilder.cuttingRecipe(Ingredient.of(Items.ALLIUM), KNIVES, Items.MAGENTA_DYE, 2) + CuttingBoardRecipeBuilder.cuttingRecipe(Ingredient.of(Items.ALLIUM), KNIVES, Items.DYE.pick(DyeColor.MAGENTA), 2) .saveToFD(output); - CuttingBoardRecipeBuilder.cuttingRecipe(Ingredient.of(Items.ORANGE_TULIP), KNIVES, Items.ORANGE_DYE, 2) + CuttingBoardRecipeBuilder.cuttingRecipe(Ingredient.of(Items.ORANGE_TULIP), KNIVES, Items.DYE.pick(DyeColor.ORANGE), 2) .saveToFD(output); - CuttingBoardRecipeBuilder.cuttingRecipe(Ingredient.of(Items.PINK_TULIP), KNIVES, Items.PINK_DYE, 2) + CuttingBoardRecipeBuilder.cuttingRecipe(Ingredient.of(Items.PINK_TULIP), KNIVES, Items.DYE.pick(DyeColor.PINK), 2) .saveToFD(output); - CuttingBoardRecipeBuilder.cuttingRecipe(Ingredient.of(Items.RED_TULIP), KNIVES, Items.RED_DYE, 2) + CuttingBoardRecipeBuilder.cuttingRecipe(Ingredient.of(Items.RED_TULIP), KNIVES, Items.DYE.pick(DyeColor.RED), 2) .saveToFD(output); - CuttingBoardRecipeBuilder.cuttingRecipe(Ingredient.of(Items.POPPY), KNIVES, Items.RED_DYE, 2) + CuttingBoardRecipeBuilder.cuttingRecipe(Ingredient.of(Items.POPPY), KNIVES, Items.DYE.pick(DyeColor.RED), 2) .saveToFD(output); - CuttingBoardRecipeBuilder.cuttingRecipe(Ingredient.of(Items.LILY_OF_THE_VALLEY), KNIVES, Items.WHITE_DYE, 2) + CuttingBoardRecipeBuilder.cuttingRecipe(Ingredient.of(Items.LILY_OF_THE_VALLEY), KNIVES, Items.DYE.pick(DyeColor.WHITE), 2) .saveToFD(output); - CuttingBoardRecipeBuilder.cuttingRecipe(Ingredient.of(Items.DANDELION), KNIVES, Items.YELLOW_DYE, 2) + CuttingBoardRecipeBuilder.cuttingRecipe(Ingredient.of(Items.DANDELION), KNIVES, Items.DYE.pick(DyeColor.YELLOW), 2) .saveToFD(output); - CuttingBoardRecipeBuilder.cuttingRecipe(Ingredient.of(Items.TORCHFLOWER), KNIVES, Items.ORANGE_DYE, 2) + CuttingBoardRecipeBuilder.cuttingRecipe(Ingredient.of(Items.TORCHFLOWER), KNIVES, Items.DYE.pick(DyeColor.ORANGE), 2) .saveToFD(output); CuttingBoardRecipeBuilder.cuttingRecipe(Ingredient.of(ModItems.WILD_BEETROOTS.get()), KNIVES, Items.BEETROOT_SEEDS, 1) - .addResult(Items.RED_DYE) + .addResult(Items.DYE.pick(DyeColor.RED)) .saveToFD(output); CuttingBoardRecipeBuilder.cuttingRecipe(Ingredient.of(ModItems.WILD_CABBAGES.get()), KNIVES, ModItems.CABBAGE_SEEDS.get(), 1) - .addResultWithChance(Items.YELLOW_DYE, 0.5F, 2) + .addResultWithChance(Items.DYE.pick(DyeColor.YELLOW), 0.5F, 2) .saveToFD(output); CuttingBoardRecipeBuilder.cuttingRecipe(Ingredient.of(ModItems.WILD_CARROTS.get()), KNIVES, Items.CARROT, 1) - .addResultWithChance(Items.LIGHT_GRAY_DYE, 0.5F, 2) + .addResultWithChance(Items.DYE.pick(DyeColor.LIGHT_GRAY), 0.5F, 2) .saveToFD(output); CuttingBoardRecipeBuilder.cuttingRecipe(Ingredient.of(ModItems.WILD_ONIONS.get()), KNIVES, ModItems.ONION.get(), 1) - .addResult(Items.MAGENTA_DYE, 2) - .addResultWithChance(Items.LIME_DYE, 0.1F) + .addResult(Items.DYE.pick(DyeColor.MAGENTA), 2) + .addResultWithChance(Items.DYE.pick(DyeColor.LIME), 0.1F) .saveToFD(output); CuttingBoardRecipeBuilder.cuttingRecipe(Ingredient.of(ModItems.WILD_POTATOES.get()), KNIVES, Items.POTATO, 1) - .addResultWithChance(Items.PURPLE_DYE, 0.5F, 2) + .addResultWithChance(Items.DYE.pick(DyeColor.PURPLE), 0.5F, 2) .saveToFD(output); CuttingBoardRecipeBuilder.cuttingRecipe(Ingredient.of(ModItems.WILD_RICE.get()), KNIVES, ModItems.RICE.get(), 1) .addResultWithChance(ModItems.STRAW.get(), 0.5F) .saveToFD(output); CuttingBoardRecipeBuilder.cuttingRecipe(Ingredient.of(ModItems.WILD_TOMATOES.get()), KNIVES, ModItems.TOMATO_SEEDS.get(), 1) .addResultWithChance(ModItems.TOMATO.get(), 0.2F) - .addResultWithChance(Items.GREEN_DYE, 0.1F) + .addResultWithChance(Items.DYE.pick(DyeColor.GREEN), 0.1F) .saveToFD(output); } @@ -365,10 +378,14 @@ private static void stripLogForBark(RecipeOutput output, ItemLike log, ItemLike } private static Ingredient matchesTool(ItemAbility toolAction, TagKey fallbackTag) { - return CompoundIngredient.of(new ItemAbilityIngredient(toolAction).toVanilla(), Ingredient.of(fallbackTag)); + return CompoundIngredient.of(new ItemAbilityIngredient(toolAction).toVanilla(), ingredient(fallbackTag)); + } + + private static Ingredient ingredient(TagKey tag) { + return Ingredient.of(items.getOrThrow(tag)); } - private static ResourceLocation salvagingRecipe(String name) { - return ResourceLocation.fromNamespaceAndPath(FarmersDelight.MODID, "salvaging/" + name); + private static Identifier salvagingRecipe(String name) { + return Identifier.fromNamespaceAndPath(FarmersDelight.MODID, "salvaging/" + name); } } diff --git a/src/main/java/vectorwing/farmersdelight/data/recipe/SmeltingRecipes.java b/src/main/java/vectorwing/farmersdelight/data/recipe/SmeltingRecipes.java index 84fc2f797..2a3e0aeee 100644 --- a/src/main/java/vectorwing/farmersdelight/data/recipe/SmeltingRecipes.java +++ b/src/main/java/vectorwing/farmersdelight/data/recipe/SmeltingRecipes.java @@ -1,11 +1,12 @@ package vectorwing.farmersdelight.data.recipe; -import net.minecraft.advancements.critereon.InventoryChangeTrigger; +import net.minecraft.advancements.triggers.InventoryChangeTrigger; import net.minecraft.data.recipes.RecipeCategory; import net.minecraft.data.recipes.RecipeOutput; import net.minecraft.data.recipes.SimpleCookingRecipeBuilder; -import net.minecraft.resources.ResourceLocation; +import net.minecraft.resources.Identifier; import net.minecraft.world.item.Items; +import net.minecraft.world.item.crafting.CookingBookCategory; import net.minecraft.world.item.crafting.Ingredient; import net.minecraft.world.level.ItemLike; import vectorwing.farmersdelight.FarmersDelight; @@ -23,13 +24,13 @@ public static void register(RecipeOutput output) { foodSmeltingRecipes("cooked_mutton_chops", ModItems.MUTTON_CHOPS.get(), ModItems.COOKED_MUTTON_CHOPS.get(), 0.35F, output); SimpleCookingRecipeBuilder.smelting(Ingredient.of(ModItems.WHEAT_DOUGH.get()), RecipeCategory.FOOD, - Items.BREAD, 0.35F, 200) + CookingBookCategory.FOOD, Items.BREAD, 0.35F, 200) .unlockedBy("has_dough", InventoryChangeTrigger.TriggerInstance.hasItems(ModItems.WHEAT_DOUGH.get())) - .save(output, ResourceLocation.fromNamespaceAndPath(FarmersDelight.MODID, "bread").toString() + "_from_smelting"); + .save(output, Identifier.fromNamespaceAndPath(FarmersDelight.MODID, "bread").toString() + "_from_smelting"); SimpleCookingRecipeBuilder.smoking(Ingredient.of(ModItems.WHEAT_DOUGH.get()), RecipeCategory.FOOD, Items.BREAD, 0.35F, 100) .unlockedBy("has_dough", InventoryChangeTrigger.TriggerInstance.hasItems(ModItems.WHEAT_DOUGH.get())) - .save(output, ResourceLocation.fromNamespaceAndPath(FarmersDelight.MODID, "bread").toString() + "_from_smoking"); + .save(output, Identifier.fromNamespaceAndPath(FarmersDelight.MODID, "bread").toString() + "_from_smoking"); SimpleCookingRecipeBuilder.smoking(Ingredient.of(ModItems.HAM.get()), RecipeCategory.FOOD, ModItems.SMOKED_HAM.get(), 0.35F, 200) @@ -37,26 +38,26 @@ public static void register(RecipeOutput output) { .save(output); SimpleCookingRecipeBuilder.smelting(Ingredient.of(ModItems.IRON_KNIFE.get()), RecipeCategory.MISC, - Items.IRON_NUGGET, 0.1F, 200) + CookingBookCategory.MISC, Items.IRON_NUGGET, 0.1F, 200) .unlockedBy("has_iron_knife", InventoryChangeTrigger.TriggerInstance.hasItems(ModItems.IRON_KNIFE.get())) - .save(output, ResourceLocation.fromNamespaceAndPath(FarmersDelight.MODID, "iron_nugget_from_smelting_knife")); + .save(output, Identifier.fromNamespaceAndPath(FarmersDelight.MODID, "iron_nugget_from_smelting_knife").toString()); SimpleCookingRecipeBuilder.smelting(Ingredient.of(ModItems.GOLDEN_KNIFE.get()), RecipeCategory.MISC, - Items.GOLD_NUGGET, 0.1F, 200) + CookingBookCategory.MISC, Items.GOLD_NUGGET, 0.1F, 200) .unlockedBy("has_golden_knife", InventoryChangeTrigger.TriggerInstance.hasItems(ModItems.GOLDEN_KNIFE.get())) - .save(output, ResourceLocation.fromNamespaceAndPath(FarmersDelight.MODID, "gold_nugget_from_smelting_knife")); + .save(output, Identifier.fromNamespaceAndPath(FarmersDelight.MODID, "gold_nugget_from_smelting_knife").toString()); SimpleCookingRecipeBuilder.blasting(Ingredient.of(ModItems.IRON_KNIFE.get()), RecipeCategory.MISC, - Items.IRON_NUGGET, 0.1F, 100) + CookingBookCategory.MISC, Items.IRON_NUGGET, 0.1F, 100) .unlockedBy("has_iron_knife", InventoryChangeTrigger.TriggerInstance.hasItems(ModItems.IRON_KNIFE.get())) - .save(output, ResourceLocation.fromNamespaceAndPath(FarmersDelight.MODID, "iron_nugget_from_blasting_knife")); + .save(output, Identifier.fromNamespaceAndPath(FarmersDelight.MODID, "iron_nugget_from_blasting_knife").toString()); SimpleCookingRecipeBuilder.blasting(Ingredient.of(ModItems.GOLDEN_KNIFE.get()), RecipeCategory.MISC, - Items.GOLD_NUGGET, 0.1F, 100) + CookingBookCategory.MISC, Items.GOLD_NUGGET, 0.1F, 100) .unlockedBy("has_golden_knife", InventoryChangeTrigger.TriggerInstance.hasItems(ModItems.GOLDEN_KNIFE.get())) - .save(output, ResourceLocation.fromNamespaceAndPath(FarmersDelight.MODID, "gold_nugget_from_blasting_knife")); + .save(output, Identifier.fromNamespaceAndPath(FarmersDelight.MODID, "gold_nugget_from_blasting_knife").toString()); } private static void foodSmeltingRecipes(String name, ItemLike ingredient, ItemLike result, float experience, RecipeOutput output) { - String namePrefix = ResourceLocation.fromNamespaceAndPath(FarmersDelight.MODID, name).toString(); - SimpleCookingRecipeBuilder.smelting(Ingredient.of(ingredient), RecipeCategory.FOOD, result, experience, 200) + String namePrefix = Identifier.fromNamespaceAndPath(FarmersDelight.MODID, name).toString(); + SimpleCookingRecipeBuilder.smelting(Ingredient.of(ingredient), RecipeCategory.FOOD, CookingBookCategory.FOOD, result, experience, 200) .unlockedBy(name, InventoryChangeTrigger.TriggerInstance.hasItems(ingredient)) .save(output); SimpleCookingRecipeBuilder.campfireCooking(Ingredient.of(ingredient), RecipeCategory.FOOD, result, experience, 600) diff --git a/src/main/java/vectorwing/farmersdelight/data/tools/StructureUpdater.java b/src/main/java/vectorwing/farmersdelight/data/tools/StructureUpdater.java index 44a65bc72..aae89a4bb 100644 --- a/src/main/java/vectorwing/farmersdelight/data/tools/StructureUpdater.java +++ b/src/main/java/vectorwing/farmersdelight/data/tools/StructureUpdater.java @@ -18,18 +18,17 @@ import net.minecraft.nbt.CompoundTag; import net.minecraft.nbt.NbtAccounter; import net.minecraft.nbt.NbtIo; -import net.minecraft.resources.ResourceLocation; -import net.minecraft.server.packs.resources.MultiPackResourceManager; +import net.minecraft.nbt.NbtUtils; +import net.minecraft.resources.Identifier; import net.minecraft.server.packs.resources.Resource; +import net.minecraft.server.packs.resources.ResourceManager; import net.minecraft.util.datafix.DataFixTypes; import net.minecraft.util.datafix.DataFixers; import net.minecraft.world.level.levelgen.structure.templatesystem.StructureTemplate; -import net.neoforged.neoforge.common.data.ExistingFileHelper; import javax.annotation.Nonnull; import java.io.ByteArrayOutputStream; import java.io.IOException; -import java.lang.reflect.Field; import java.nio.file.Path; import java.util.concurrent.CompletableFuture; @@ -38,22 +37,15 @@ public class StructureUpdater implements DataProvider private final String basePath; private final String modid; private final PackOutput output; - private final MultiPackResourceManager resources; + private final ResourceManager resources; public StructureUpdater( - String basePath, String modid, ExistingFileHelper helper, PackOutput output + String basePath, String modid, ResourceManager resources, PackOutput output ) { this.basePath = basePath; this.modid = modid; this.output = output; - try { - Field serverData = ExistingFileHelper.class.getDeclaredField("serverData"); - serverData.setAccessible(true); - resources = (MultiPackResourceManager) serverData.get(helper); - } - catch (NoSuchFieldException | IllegalAccessException e) { - throw new RuntimeException(e); - } + this.resources = resources; } @Override @@ -69,7 +61,7 @@ public CompletableFuture run(@Nonnull CachedOutput cache) { } } - private void process(ResourceLocation loc, Resource resource, CachedOutput cache) throws IOException { + private void process(Identifier loc, Resource resource, CachedOutput cache) throws IOException { CompoundTag inputNBT = NbtIo.readCompressed(resource.open(), NbtAccounter.unlimitedHeap()); CompoundTag converted = updateNBT(inputNBT); if (!converted.equals(inputNBT)) { @@ -80,7 +72,7 @@ private void process(ResourceLocation loc, Resource resource, CachedOutput cache } } - private void writeNBTTo(ResourceLocation loc, CompoundTag data, CachedOutput cache) throws IOException { + private void writeNBTTo(Identifier loc, CompoundTag data, CachedOutput cache) throws IOException { ByteArrayOutputStream bytearrayoutputstream = new ByteArrayOutputStream(); NbtIo.writeCompressed(data, bytearrayoutputstream); byte[] bytes = bytearrayoutputstream.toByteArray(); @@ -90,10 +82,10 @@ private void writeNBTTo(ResourceLocation loc, CompoundTag data, CachedOutput cac private static CompoundTag updateNBT(CompoundTag nbt) { final CompoundTag updatedNBT = DataFixTypes.STRUCTURE.updateToCurrentVersion( - DataFixers.getDataFixer(), nbt, nbt.getInt("DataVersion") + DataFixers.getDataFixer(), nbt, NbtUtils.getDataVersion(nbt) ); StructureTemplate template = new StructureTemplate(); - template.load(BuiltInRegistries.BLOCK.asLookup(), updatedNBT); + template.load(BuiltInRegistries.BLOCK, updatedNBT); return template.save(new CompoundTag()); } @@ -102,4 +94,4 @@ private static CompoundTag updateNBT(CompoundTag nbt) { public String getName() { return "Update structure files in " + basePath; } -} \ No newline at end of file +} diff --git a/src/main/java/vectorwing/farmersdelight/integration/crafttweaker/handlers/RecipeHandlerUtils.java b/src/main/java/vectorwing/farmersdelight/integration/crafttweaker/handlers/RecipeHandlerUtils.java index 2d0038b56..3be12a6a4 100644 --- a/src/main/java/vectorwing/farmersdelight/integration/crafttweaker/handlers/RecipeHandlerUtils.java +++ b/src/main/java/vectorwing/farmersdelight/integration/crafttweaker/handlers/RecipeHandlerUtils.java @@ -6,7 +6,7 @@ import com.blamejared.crafttweaker.api.recipe.component.IRecipeComponent; import com.blamejared.crafttweaker.api.recipe.component.RecipeComponentEqualityCheckers; import com.google.gson.reflect.TypeToken; -import net.minecraft.resources.ResourceLocation; +import net.minecraft.resources.Identifier; import net.minecraft.sounds.SoundEvent; import vectorwing.farmersdelight.FarmersDelight; @@ -15,13 +15,13 @@ public class RecipeHandlerUtils { public static final IRecipeComponent SOUND_COMPONENT = IRecipeComponent.simple( - ResourceLocation.fromNamespaceAndPath(FarmersDelight.MODID, "recipe_component/sound"), new TypeToken<>(){}, SoundEvent::equals); + Identifier.fromNamespaceAndPath(FarmersDelight.MODID, "recipe_component/sound"), new TypeToken<>(){}, SoundEvent::equals); public static final IRecipeComponent COOKING_TAB_COMPONENT = IRecipeComponent.simple( - ResourceLocation.fromNamespaceAndPath(FarmersDelight.MODID, "recipe_component/cooking_tab"), new TypeToken<>(){}, String::equals); + Identifier.fromNamespaceAndPath(FarmersDelight.MODID, "recipe_component/cooking_tab"), new TypeToken<>(){}, String::equals); public static final IRecipeComponent TOOL_COMPONENT = IRecipeComponent.composite( - ResourceLocation.fromNamespaceAndPath(FarmersDelight.MODID, "recipe_component/cutting_board_tool"), + Identifier.fromNamespaceAndPath(FarmersDelight.MODID, "recipe_component/cutting_board_tool"), new TypeToken<>() {}, RecipeComponentEqualityCheckers::areIngredientsEqual, ingredient -> Arrays.asList(ingredient.getItems()), @@ -31,6 +31,6 @@ public class RecipeHandlerUtils { ); public static final IRecipeComponent CONTAINER_COMPONENT = IRecipeComponent.simple( - ResourceLocation.fromNamespaceAndPath(FarmersDelight.MODID, "recipe_component/cooking_pot_container"), new TypeToken<>(){}, RecipeComponentEqualityCheckers::areStacksEqual); + Identifier.fromNamespaceAndPath(FarmersDelight.MODID, "recipe_component/cooking_pot_container"), new TypeToken<>(){}, RecipeComponentEqualityCheckers::areStacksEqual); } \ No newline at end of file diff --git a/src/main/java/vectorwing/farmersdelight/integration/crafttweaker/managers/CuttingBoardRecipeManager.java b/src/main/java/vectorwing/farmersdelight/integration/crafttweaker/managers/CuttingBoardRecipeManager.java index 3b755a6c4..2d6d0a3f4 100644 --- a/src/main/java/vectorwing/farmersdelight/integration/crafttweaker/managers/CuttingBoardRecipeManager.java +++ b/src/main/java/vectorwing/farmersdelight/integration/crafttweaker/managers/CuttingBoardRecipeManager.java @@ -11,7 +11,7 @@ import com.blamejared.crafttweaker_annotations.annotations.Document; import net.minecraft.core.NonNullList; import net.minecraft.core.registries.BuiltInRegistries; -import net.minecraft.resources.ResourceLocation; +import net.minecraft.resources.Identifier; import net.minecraft.world.item.crafting.RecipeHolder; import net.minecraft.world.item.crafting.RecipeType; import org.openzen.zencode.java.ZenCodeType; @@ -62,7 +62,7 @@ public void addRecipe(String name, ListUtils.mapArrayIndexSet(results, (stack) -> new ChanceResult(stack.getData().getInternal(), (float) stack.getPercentage()), NonNullList.withSize(results.length, ChanceResult.EMPTY)), - BuiltInRegistries.SOUND_EVENT.getOptional(ResourceLocation.parse(sound)))), + BuiltInRegistries.SOUND_EVENT.getOptional(Identifier.parse(sound)))), "")); } diff --git a/src/main/java/vectorwing/farmersdelight/integration/emi/EMIPlugin.java b/src/main/java/vectorwing/farmersdelight/integration/emi/EMIPlugin.java index 751988412..f48c822df 100644 --- a/src/main/java/vectorwing/farmersdelight/integration/emi/EMIPlugin.java +++ b/src/main/java/vectorwing/farmersdelight/integration/emi/EMIPlugin.java @@ -7,7 +7,7 @@ import dev.emi.emi.api.stack.EmiIngredient; import dev.emi.emi.api.stack.EmiStack; import net.minecraft.client.Minecraft; -import net.minecraft.resources.ResourceLocation; +import net.minecraft.resources.Identifier; import net.minecraft.world.item.Items; import net.minecraft.world.item.crafting.RecipeHolder; import vectorwing.farmersdelight.FarmersDelight; @@ -54,9 +54,9 @@ public void register(EmiRegistry registry) { } public void addSpecialRecipes(EmiRegistry registry) { - ResourceLocation doughRecipeId = RecipeUtils.FDLocation("wheat_dough_from_water"); + Identifier doughRecipeId = RecipeUtils.FDLocation("wheat_dough_from_water"); if (registry.getRecipeManager().byKey(doughRecipeId).isPresent()) { - ResourceLocation syntheticLocation = ResourceLocation.fromNamespaceAndPath(FarmersDelight.MODID, "/crafting/wheat_dough_from_water"); + Identifier syntheticLocation = Identifier.fromNamespaceAndPath(FarmersDelight.MODID, "/crafting/wheat_dough_from_water"); registry.addRecipe(new EmiCraftingRecipe(List.of(EmiStack.of(Items.WHEAT), EmiStack.of(Items.WATER_BUCKET)), EmiStack.of(ModItems.WHEAT_DOUGH.get()), syntheticLocation, true)); } } diff --git a/src/main/java/vectorwing/farmersdelight/integration/emi/FDRecipeCategories.java b/src/main/java/vectorwing/farmersdelight/integration/emi/FDRecipeCategories.java index b87cb50c8..a66c4092b 100644 --- a/src/main/java/vectorwing/farmersdelight/integration/emi/FDRecipeCategories.java +++ b/src/main/java/vectorwing/farmersdelight/integration/emi/FDRecipeCategories.java @@ -2,12 +2,12 @@ import dev.emi.emi.api.recipe.EmiRecipeCategory; import dev.emi.emi.api.render.EmiRenderable; -import net.minecraft.resources.ResourceLocation; +import net.minecraft.resources.Identifier; import vectorwing.farmersdelight.FarmersDelight; import vectorwing.farmersdelight.common.utility.RecipeUtils; public class FDRecipeCategories { - private static final ResourceLocation SIMPLIFIED_TEXTURES = RecipeUtils.FDLocation("textures/gui/emi/simplified.png"); + private static final Identifier SIMPLIFIED_TEXTURES = RecipeUtils.FDLocation("textures/gui/emi/simplified.png"); public static final EmiRecipeCategory COOKING = new EmiRecipeCategory(RecipeUtils.FDLocation("cooking"), FDRecipeWorkstations.COOKING_POT, simplifiedRenderer(0, 0)); public static final EmiRecipeCategory CUTTING = new EmiRecipeCategory(RecipeUtils.FDLocation("cutting"), FDRecipeWorkstations.CUTTING_BOARD, simplifiedRenderer(16, 0)); diff --git a/src/main/java/vectorwing/farmersdelight/integration/emi/recipe/CookingPotEmiRecipe.java b/src/main/java/vectorwing/farmersdelight/integration/emi/recipe/CookingPotEmiRecipe.java index 409e7b0b6..125be050b 100644 --- a/src/main/java/vectorwing/farmersdelight/integration/emi/recipe/CookingPotEmiRecipe.java +++ b/src/main/java/vectorwing/farmersdelight/integration/emi/recipe/CookingPotEmiRecipe.java @@ -8,7 +8,7 @@ import dev.emi.emi.api.widget.WidgetHolder; import net.minecraft.client.gui.screens.inventory.tooltip.ClientTooltipComponent; import net.minecraft.network.chat.Component; -import net.minecraft.resources.ResourceLocation; +import net.minecraft.resources.Identifier; import org.jetbrains.annotations.Nullable; import vectorwing.farmersdelight.FarmersDelight; import vectorwing.farmersdelight.common.utility.ClientRenderUtils; @@ -19,10 +19,10 @@ import java.util.List; public class CookingPotEmiRecipe implements EmiRecipe { - private static final ResourceLocation BACKGROUND = RecipeUtils.FDLocation("textures/gui/jei/cooking_pot.png"); - private static final ResourceLocation WIDGETS = RecipeUtils.FDLocation("textures/gui/cooking_pot.png"); + private static final Identifier BACKGROUND = RecipeUtils.FDLocation("textures/gui/jei/cooking_pot.png"); + private static final Identifier WIDGETS = RecipeUtils.FDLocation("textures/gui/cooking_pot.png"); - private final ResourceLocation id; + private final Identifier id; private final List inputs; private final EmiStack output; private final EmiStack container; @@ -30,7 +30,7 @@ public class CookingPotEmiRecipe implements EmiRecipe { private final float experience; private final List tooltipComponents; - public CookingPotEmiRecipe(ResourceLocation id, List inputs, EmiStack output, + public CookingPotEmiRecipe(Identifier id, List inputs, EmiStack output, EmiStack container, int cookTime, float experience) { this.id = id; this.inputs = inputs; @@ -61,7 +61,7 @@ public EmiRecipeCategory getCategory() { } @Override - public @Nullable ResourceLocation getId() { + public @Nullable Identifier getId() { return id; } diff --git a/src/main/java/vectorwing/farmersdelight/integration/emi/recipe/CuttingEmiRecipe.java b/src/main/java/vectorwing/farmersdelight/integration/emi/recipe/CuttingEmiRecipe.java index cc6cb3022..b29e8b6aa 100644 --- a/src/main/java/vectorwing/farmersdelight/integration/emi/recipe/CuttingEmiRecipe.java +++ b/src/main/java/vectorwing/farmersdelight/integration/emi/recipe/CuttingEmiRecipe.java @@ -5,7 +5,7 @@ import dev.emi.emi.api.stack.EmiIngredient; import dev.emi.emi.api.stack.EmiStack; import dev.emi.emi.api.widget.WidgetHolder; -import net.minecraft.resources.ResourceLocation; +import net.minecraft.resources.Identifier; import org.jetbrains.annotations.Nullable; import vectorwing.farmersdelight.FarmersDelight; import vectorwing.farmersdelight.common.utility.RecipeUtils; @@ -14,16 +14,16 @@ import java.util.List; public class CuttingEmiRecipe implements EmiRecipe { - private static final ResourceLocation BACKGROUND = RecipeUtils.FDLocation("textures/gui/jei/cutting_board.png"); + private static final Identifier BACKGROUND = RecipeUtils.FDLocation("textures/gui/jei/cutting_board.png"); public static final int OUTPUT_GRID_X = 69; public static final int OUTPUT_GRID_Y = 3; - private final ResourceLocation id; + private final Identifier id; private final EmiIngredient tool; private final EmiIngredient input; private final List outputs; - public CuttingEmiRecipe(ResourceLocation id, EmiIngredient tool, EmiIngredient input, List outputs) { + public CuttingEmiRecipe(Identifier id, EmiIngredient tool, EmiIngredient input, List outputs) { this.id = id; this.tool = tool; this.input = input; @@ -36,7 +36,7 @@ public EmiRecipeCategory getCategory() { } @Override - public @Nullable ResourceLocation getId() { + public @Nullable Identifier getId() { return id; } diff --git a/src/main/java/vectorwing/farmersdelight/integration/emi/recipe/DecompositionEmiRecipe.java b/src/main/java/vectorwing/farmersdelight/integration/emi/recipe/DecompositionEmiRecipe.java index 7938aa9b8..e931b1ed8 100644 --- a/src/main/java/vectorwing/farmersdelight/integration/emi/recipe/DecompositionEmiRecipe.java +++ b/src/main/java/vectorwing/farmersdelight/integration/emi/recipe/DecompositionEmiRecipe.java @@ -7,7 +7,7 @@ import dev.emi.emi.api.widget.SlotWidget; import dev.emi.emi.api.widget.WidgetHolder; import net.minecraft.client.gui.screens.inventory.tooltip.ClientTooltipComponent; -import net.minecraft.resources.ResourceLocation; +import net.minecraft.resources.Identifier; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; import vectorwing.farmersdelight.FarmersDelight; @@ -22,8 +22,8 @@ import java.util.List; public class DecompositionEmiRecipe implements EmiRecipe { - public static final ResourceLocation ID = RecipeUtils.FDLocation("/decomposition/dummy"); - private static final ResourceLocation BACKGROUND = RecipeUtils.FDLocation("textures/gui/jei/decomposition.png"); + public static final Identifier ID = RecipeUtils.FDLocation("/decomposition/dummy"); + private static final Identifier BACKGROUND = RecipeUtils.FDLocation("textures/gui/jei/decomposition.png"); private static final EmiStack RICH_SOIL = EmiStack.of(ModItems.RICH_SOIL.get()); private static final EmiIngredient ACCELERATORS = EmiIngredient.of(ModTags.Blocks.COMPOST_ACTIVATORS); @@ -38,7 +38,7 @@ public EmiRecipeCategory getCategory() { } @Override - public @Nullable ResourceLocation getId() { + public @Nullable Identifier getId() { return ID; } diff --git a/src/main/java/vectorwing/farmersdelight/integration/jei/FDRecipes.java b/src/main/java/vectorwing/farmersdelight/integration/jei/FDRecipes.java index 94dadc61c..a513a30d1 100644 --- a/src/main/java/vectorwing/farmersdelight/integration/jei/FDRecipes.java +++ b/src/main/java/vectorwing/farmersdelight/integration/jei/FDRecipes.java @@ -1,51 +1,67 @@ package vectorwing.farmersdelight.integration.jei; import com.google.common.collect.Lists; +import com.google.gson.JsonElement; +import com.google.gson.JsonParser; +import com.mojang.serialization.JsonOps; import net.minecraft.client.Minecraft; import net.minecraft.client.multiplayer.ClientLevel; -import net.minecraft.core.NonNullList; +import net.minecraft.core.HolderLookup; +import net.minecraft.core.registries.Registries; +import net.minecraft.resources.FileToIdConverter; +import net.minecraft.resources.ResourceKey; +import net.minecraft.server.packs.resources.Resource; +import net.minecraft.server.packs.resources.ResourceManager; import net.minecraft.world.item.ItemStack; +import net.minecraft.world.item.ItemStackTemplate; import net.minecraft.world.item.Items; -import net.minecraft.world.item.crafting.*; +import net.minecraft.world.item.crafting.CraftingRecipe; +import net.minecraft.world.item.crafting.CraftingRecipe.CraftingBookInfo; +import net.minecraft.world.item.crafting.CraftingBookCategory; +import net.minecraft.world.item.crafting.Ingredient; +import net.minecraft.world.item.crafting.Recipe; +import net.minecraft.world.item.crafting.RecipeHolder; +import net.minecraft.world.item.crafting.RecipeType; +import net.minecraft.world.item.crafting.ShapelessRecipe; import net.minecraft.world.level.ItemLike; +import vectorwing.farmersdelight.FarmersDelight; import vectorwing.farmersdelight.common.crafting.CookingPotRecipe; import vectorwing.farmersdelight.common.crafting.CuttingBoardRecipe; import vectorwing.farmersdelight.common.registry.ModItems; import vectorwing.farmersdelight.common.registry.ModRecipeTypes; import vectorwing.farmersdelight.common.utility.RecipeUtils; +import java.io.IOException; import java.util.List; import java.util.Optional; +import java.util.Set; public class FDRecipes { - private final RecipeManager recipeManager; + private static final FileToIdConverter RECIPE_LISTER = FileToIdConverter.registry(Registries.RECIPE); + private final ResourceManager resourceManager; + private final Optional registries; public FDRecipes() { Minecraft minecraft = Minecraft.getInstance(); ClientLevel level = minecraft.level; - - if (level != null) { - this.recipeManager = level.getRecipeManager(); - } else { - throw new NullPointerException("Minecraft level must not be null."); - } + this.resourceManager = minecraft.getResourceManager(); + this.registries = level != null ? Optional.of(level.registryAccess()) : Optional.empty(); } public List> getCookingPotRecipes() { - return recipeManager.getAllRecipesFor(ModRecipeTypes.COOKING.get()); + return getRecipes(ModRecipeTypes.COOKING.get(), CookingPotRecipe.class); } public List> getCuttingBoardRecipes() { - return recipeManager.getAllRecipesFor(ModRecipeTypes.CUTTING.get()); + return getRecipes(ModRecipeTypes.CUTTING.get(), CuttingBoardRecipe.class); } public List> getSpecialCraftingRecipes() { List> recipes = Lists.newArrayList(); addValidatedSpecialRecipe(recipes, "wheat_dough_from_water", "fd_dough", - NonNullList.of( - Ingredient.EMPTY, + List.of( Ingredient.of(Items.WHEAT), Ingredient.of(Items.WATER_BUCKET) ), @@ -55,11 +71,54 @@ public List> getSpecialCraftingRecipes() { return recipes; } - public void addValidatedSpecialRecipe(List> recipeList, String recipeId, String group, NonNullList inputs, ItemLike output) { - Optional> specialRecipe = recipeManager.byKey(RecipeUtils.FDLocation(recipeId)); + private > List> getRecipes(RecipeType recipeType, Class recipeClass) { + if (this.registries.isEmpty()) { + FarmersDelight.LOGGER.debug("Skipping JEI recipe population for {} before client registry access is available.", recipeType); + return List.of(); + } + + List> recipes = Lists.newArrayList(); + for (var entry : RECIPE_LISTER.listMatchingResourcesFromNamespace(this.resourceManager, FarmersDelight.MODID).entrySet()) { + ResourceKey> id = ResourceKey.create(Registries.RECIPE, RECIPE_LISTER.fileToId(entry.getKey())); + readRecipe(id, entry.getValue()).ifPresent(recipe -> { + if (recipeClass.isInstance(recipe) && recipe.getType() == recipeType) { + recipes.add(new RecipeHolder<>(id, recipeClass.cast(recipe))); + } + }); + } + return recipes; + } + + private Optional> readRecipe(ResourceKey> id, Resource resource) { + try (var reader = resource.openAsReader()) { + JsonElement json = JsonParser.parseReader(reader); + return Recipe.CODEC.parse(this.registries.get().createSerializationContext(JsonOps.INSTANCE), json) + .resultOrPartial(message -> FarmersDelight.LOGGER.debug("Skipping JEI recipe {}: {}", id.identifier(), message)); + } catch (IOException | RuntimeException ex) { + FarmersDelight.LOGGER.debug("Skipping JEI recipe {} from {}.", id.identifier(), resource.sourcePackId(), ex); + return Optional.empty(); + } + } - specialRecipe.ifPresent((recipe) -> { - recipeList.add(new RecipeHolder<>(specialRecipe.get().id(), new ShapelessRecipe(group, CraftingBookCategory.MISC, new ItemStack(output.asItem()), inputs))); - }); + public void addValidatedSpecialRecipe(List> recipeList, String recipeId, String group, List inputs, ItemLike output) { + ResourceKey> id = ResourceKey.create(Registries.RECIPE, RecipeUtils.FDLocation(recipeId)); + if (hasRecipe(id)) { + recipeList.add(new RecipeHolder<>(id, new ShapelessRecipe( + new Recipe.CommonInfo(true), + new CraftingBookInfo(CraftingBookCategory.MISC, group), + ItemStackTemplate.fromNonEmptyStack(new ItemStack(output.asItem())), + inputs))); + } + } + + private boolean hasRecipe(ResourceKey> id) { + if (this.registries.isEmpty()) { + return false; + } + Set>> recipeIds = RECIPE_LISTER.listMatchingResourcesFromNamespace(this.resourceManager, FarmersDelight.MODID).keySet().stream() + .map(RECIPE_LISTER::fileToId) + .map(location -> ResourceKey.create(Registries.RECIPE, location)) + .collect(java.util.stream.Collectors.toSet()); + return recipeIds.contains(id); } } diff --git a/src/main/java/vectorwing/farmersdelight/integration/jei/JEIPlugin.java b/src/main/java/vectorwing/farmersdelight/integration/jei/JEIPlugin.java index a7458df69..4cc610020 100644 --- a/src/main/java/vectorwing/farmersdelight/integration/jei/JEIPlugin.java +++ b/src/main/java/vectorwing/farmersdelight/integration/jei/JEIPlugin.java @@ -6,8 +6,7 @@ import mezz.jei.api.constants.RecipeTypes; import mezz.jei.api.constants.VanillaTypes; import mezz.jei.api.registration.*; -import net.minecraft.MethodsReturnNonnullByDefault; -import net.minecraft.resources.ResourceLocation; +import net.minecraft.resources.Identifier; import net.minecraft.world.item.ItemStack; import net.minecraft.world.item.Items; import vectorwing.farmersdelight.FarmersDelight; @@ -27,11 +26,10 @@ @JeiPlugin @ParametersAreNonnullByDefault -@MethodsReturnNonnullByDefault @SuppressWarnings("unused") public class JEIPlugin implements IModPlugin { - private static final ResourceLocation ID = ResourceLocation.fromNamespaceAndPath(FarmersDelight.MODID, "jei_plugin"); + private static final Identifier ID = Identifier.fromNamespaceAndPath(FarmersDelight.MODID, "jei_plugin"); @Override public void registerCategories(IRecipeCategoryRegistration registry) { @@ -88,7 +86,7 @@ public void registerRecipeTransferHandlers(IRecipeTransferRegistration registrat } @Override - public ResourceLocation getPluginUid() { + public Identifier getPluginUid() { return ID; } } diff --git a/src/main/java/vectorwing/farmersdelight/integration/jei/category/CookingRecipeCategory.java b/src/main/java/vectorwing/farmersdelight/integration/jei/category/CookingRecipeCategory.java index e037c4a87..70b3582fc 100644 --- a/src/main/java/vectorwing/farmersdelight/integration/jei/category/CookingRecipeCategory.java +++ b/src/main/java/vectorwing/farmersdelight/integration/jei/category/CookingRecipeCategory.java @@ -11,11 +11,10 @@ import mezz.jei.api.recipe.RecipeIngredientRole; import mezz.jei.api.recipe.RecipeType; import mezz.jei.api.recipe.category.IRecipeCategory; -import net.minecraft.MethodsReturnNonnullByDefault; -import net.minecraft.client.gui.GuiGraphics; +import net.minecraft.client.gui.GuiGraphicsExtractor; import net.minecraft.core.NonNullList; import net.minecraft.network.chat.Component; -import net.minecraft.resources.ResourceLocation; +import net.minecraft.resources.Identifier; import net.minecraft.world.item.ItemStack; import net.minecraft.world.item.crafting.Ingredient; import net.minecraft.world.item.crafting.RecipeHolder; @@ -28,10 +27,8 @@ import vectorwing.farmersdelight.integration.jei.FDRecipeTypes; import javax.annotation.ParametersAreNonnullByDefault; -import java.util.Arrays; @ParametersAreNonnullByDefault -@MethodsReturnNonnullByDefault public class CookingRecipeCategory implements IRecipeCategory> { protected final IDrawable heatIndicator; @@ -44,8 +41,8 @@ public class CookingRecipeCategory implements IRecipeCategory holder, IRecipeSlotsView recipeSlotsView, GuiGraphics guiGraphics, double mouseX, double mouseY) { + public void draw(RecipeHolder holder, IRecipeSlotsView recipeSlotsView, GuiGraphicsExtractor guiGraphics, double mouseX, double mouseY) { background.draw(guiGraphics, 0, 0); arrow.draw(guiGraphics, 60, 9); heatIndicator.draw(guiGraphics, 18, 39); diff --git a/src/main/java/vectorwing/farmersdelight/integration/jei/category/CuttingRecipeCategory.java b/src/main/java/vectorwing/farmersdelight/integration/jei/category/CuttingRecipeCategory.java index 4db1faac7..3a2ea15ac 100644 --- a/src/main/java/vectorwing/farmersdelight/integration/jei/category/CuttingRecipeCategory.java +++ b/src/main/java/vectorwing/farmersdelight/integration/jei/category/CuttingRecipeCategory.java @@ -10,11 +10,10 @@ import mezz.jei.api.recipe.RecipeType; import mezz.jei.api.recipe.category.IRecipeCategory; import net.minecraft.ChatFormatting; -import net.minecraft.MethodsReturnNonnullByDefault; -import net.minecraft.client.gui.GuiGraphics; +import net.minecraft.client.gui.GuiGraphicsExtractor; import net.minecraft.core.NonNullList; import net.minecraft.network.chat.Component; -import net.minecraft.resources.ResourceLocation; +import net.minecraft.resources.Identifier; import net.minecraft.world.item.ItemStack; import net.minecraft.world.item.crafting.RecipeHolder; import vectorwing.farmersdelight.FarmersDelight; @@ -27,7 +26,6 @@ import javax.annotation.ParametersAreNonnullByDefault; @ParametersAreNonnullByDefault -@MethodsReturnNonnullByDefault public class CuttingRecipeCategory implements IRecipeCategory> { public static final int OUTPUT_GRID_X = 76; @@ -40,7 +38,7 @@ public class CuttingRecipeCategory implements IRecipeCategory holder, IFocusGroup focusGroup) { CuttingBoardRecipe recipe = holder.value(); - builder.addSlot(RecipeIngredientRole.INPUT, 16, 8).addIngredients(recipe.getTool()); - builder.addSlot(RecipeIngredientRole.INPUT, 16, 27).addIngredients(recipe.getIngredients().get(0)); + builder.addSlot(RecipeIngredientRole.INPUT, 16, 8).add(recipe.getTool()); + builder.addSlot(RecipeIngredientRole.INPUT, 16, 27).add(recipe.getIngredients().get(0)); NonNullList recipeOutputs = recipe.getRollableResults(); @@ -95,19 +92,19 @@ public void setRecipe(IRecipeLayoutBuilder builder, RecipeHolder { + .add(recipeOutputs.get(i).stack()) + .addRichTooltipCallback((slotView, tooltip) -> { ChanceResult output = recipeOutputs.get(index); float chance = output.chance(); if (chance != 1) - tooltip.add(1, TextUtils.JEI("chance", chance < 0.01 ? "<1" : (int) (chance * 100)) + tooltip.add(TextUtils.JEI("chance", chance < 0.01 ? "<1" : (int) (chance * 100)) .withStyle(ChatFormatting.GOLD)); }); } } @Override - public void draw(RecipeHolder holder, IRecipeSlotsView recipeSlotsView, GuiGraphics guiGraphics, double mouseX, double mouseY) { + public void draw(RecipeHolder holder, IRecipeSlotsView recipeSlotsView, GuiGraphicsExtractor guiGraphics, double mouseX, double mouseY) { background.draw(guiGraphics, 0, 0); CuttingBoardRecipe recipe = holder.value(); NonNullList recipeOutputs = recipe.getRollableResults(); diff --git a/src/main/java/vectorwing/farmersdelight/integration/jei/category/DecompositionRecipeCategory.java b/src/main/java/vectorwing/farmersdelight/integration/jei/category/DecompositionRecipeCategory.java index 37bf62e30..3314cafe8 100644 --- a/src/main/java/vectorwing/farmersdelight/integration/jei/category/DecompositionRecipeCategory.java +++ b/src/main/java/vectorwing/farmersdelight/integration/jei/category/DecompositionRecipeCategory.java @@ -11,14 +11,10 @@ import mezz.jei.api.recipe.RecipeIngredientRole; import mezz.jei.api.recipe.RecipeType; import mezz.jei.api.recipe.category.IRecipeCategory; -import net.minecraft.MethodsReturnNonnullByDefault; -import net.minecraft.client.gui.GuiGraphics; -import net.minecraft.core.Holder; -import net.minecraft.core.HolderSet; -import net.minecraft.core.registries.BuiltInRegistries; +import net.minecraft.client.gui.GuiGraphicsExtractor; import net.minecraft.core.registries.BuiltInRegistries; import net.minecraft.network.chat.Component; -import net.minecraft.resources.ResourceLocation; +import net.minecraft.resources.Identifier; import net.minecraft.world.item.ItemStack; import vectorwing.farmersdelight.FarmersDelight; import vectorwing.farmersdelight.common.registry.ModBlocks; @@ -31,17 +27,12 @@ import javax.annotation.ParametersAreNonnullByDefault; import java.util.ArrayList; -import java.util.Collections; -import java.util.ArrayList; -import java.util.Collections; import java.util.List; -import java.util.stream.Collectors; @ParametersAreNonnullByDefault -@MethodsReturnNonnullByDefault public class DecompositionRecipeCategory implements IRecipeCategory { - public static final ResourceLocation UID = ResourceLocation.fromNamespaceAndPath(FarmersDelight.MODID, "decomposition"); + public static final Identifier UID = Identifier.fromNamespaceAndPath(FarmersDelight.MODID, "decomposition"); private static final int slotSize = 22; private final Component title; @@ -53,7 +44,7 @@ public class DecompositionRecipeCategory implements IRecipeCategory accelerators = new ArrayList<>(); - BuiltInRegistries.BLOCK.getTag(ModTags.Blocks.COMPOST_ACTIVATORS).ifPresent(s -> s.forEach(f -> accelerators.add(new ItemStack(f.value())))); + BuiltInRegistries.BLOCK.getTagOrEmpty(ModTags.Blocks.COMPOST_ACTIVATORS).forEach(f -> accelerators.add(new ItemStack(f.value()))); - builder.addSlot(RecipeIngredientRole.INPUT, 9, 26).addItemStack(organicCompost); - builder.addSlot(RecipeIngredientRole.OUTPUT, 93, 26).addItemStack(richSoil); + builder.addSlot(RecipeIngredientRole.INPUT, 9, 26).add(organicCompost); + builder.addSlot(RecipeIngredientRole.OUTPUT, 93, 26).add(richSoil); builder.addSlot(RecipeIngredientRole.RENDER_ONLY, 64, 54).addItemStacks(accelerators); } @Override - public void draw(DecompositionDummy recipe, IRecipeSlotsView recipeSlotsView, GuiGraphics guiGraphics, double mouseX, double mouseY) { + public void draw(DecompositionDummy recipe, IRecipeSlotsView recipeSlotsView, GuiGraphicsExtractor guiGraphics, double mouseX, double mouseY) { background.draw(guiGraphics, 0, 0); slotIcon.draw(guiGraphics, 63, 53); } diff --git a/src/main/resources/META-INF/accesstransformer.cfg b/src/main/resources/META-INF/accesstransformer.cfg index 89b9eed8f..c605d98d4 100644 --- a/src/main/resources/META-INF/accesstransformer.cfg +++ b/src/main/resources/META-INF/accesstransformer.cfg @@ -2,8 +2,6 @@ public-f net.minecraft.core.dispenser.DefaultDispenseItemBehavior dispense(Lnet/ public-f net.minecraft.world.level.levelgen.structure.pools.StructureTemplatePool rawTemplates # rawTemplates public net.minecraft.world.level.levelgen.structure.pools.StructureTemplatePool templates # templates public-f net.minecraft.world.level.block.DispenserBlock DISPENSER_REGISTRY # DISPENSER_REGISTRY -public-f net.minecraft.world.entity.npc.Villager WANTED_ITEMS # WANTED_ITEMS -public-f net.minecraft.world.entity.npc.Villager FOOD_POINTS # FOOD_POINTS public net.minecraft.client.resources.model.ModelBakery$ModelBakerImpl public net.minecraft.client.resources.model.ModelBakery$ModelBakerImpl (Lnet/minecraft/client/resources/model/ModelBakery;Ljava/util/function/BiFunction;Lnet/minecraft/resources/ResourceLocation;)V public net.minecraft.advancements.Advancement$Builder criteria # criteria @@ -11,4 +9,4 @@ public net.minecraft.world.item.enchantment.EnchantmentHelper runIterationOnItem public net.minecraft.world.item.enchantment.Enchantment modifyDamageFilteredValue(Lnet/minecraft/core/component/DataComponentType;Lnet/minecraft/server/level/ServerLevel;ILnet/minecraft/world/item/ItemStack;Lnet/minecraft/world/entity/Entity;Lnet/minecraft/world/damagesource/DamageSource;Lorg/apache/commons/lang3/mutable/MutableFloat;)V public net.minecraft.world.item.enchantment.EnchantmentHelper$EnchantmentVisitor public-f net.minecraft.world.level.levelgen.structure.templatesystem.StructureProcessorList list # list -public net.minecraft.util.datafix.fixes.ItemStackComponentizationFix$ItemStackData \ No newline at end of file +public net.minecraft.util.datafix.fixes.ItemStackComponentizationFix$ItemStackData diff --git a/src/main/resources/META-INF/enumextensions.json b/src/main/resources/META-INF/enumextensions.json index 4aa7eed99..6c6e3ed29 100644 --- a/src/main/resources/META-INF/enumextensions.json +++ b/src/main/resources/META-INF/enumextensions.json @@ -6,50 +6,14 @@ "constructor": "()V", "parameters": [] }, - { - "enum": "net/minecraft/client/RecipeBookCategories", - "name": "FARMERSDELIGHT_COOKING_SEARCH", - "constructor": "(Ljava/util/function/Supplier;)V", - "parameters": { - "class": "vectorwing/farmersdelight/common/EnumParameters", - "field": "PROXY_COOKING_SEARCH" - } - }, - { - "enum": "net/minecraft/client/RecipeBookCategories", - "name": "FARMERSDELIGHT_COOKING_MEALS", - "constructor": "(Ljava/util/function/Supplier;)V", - "parameters": { - "class": "vectorwing/farmersdelight/common/EnumParameters", - "field": "PROXY_COOKING_MEALS" - } - }, - { - "enum": "net/minecraft/client/RecipeBookCategories", - "name": "FARMERSDELIGHT_COOKING_DRINKS", - "constructor": "(Ljava/util/function/Supplier;)V", - "parameters": { - "class": "vectorwing/farmersdelight/common/EnumParameters", - "field": "PROXY_COOKING_DRINKS" - } - }, - { - "enum": "net/minecraft/client/RecipeBookCategories", - "name": "FARMERSDELIGHT_COOKING_MISC", - "constructor": "(Ljava/util/function/Supplier;)V", - "parameters": { - "class": "vectorwing/farmersdelight/common/EnumParameters", - "field": "PROXY_COOKING_MISC" - } - }, { "enum": "net/minecraft/client/model/HumanoidModel$ArmPose", "name": "FARMERSDELIGHT_SKILLET_FLIP", - "constructor": "(ZLnet/neoforged/neoforge/client/IArmPoseTransformer;)V", + "constructor": "(ZZLnet/neoforged/neoforge/client/IArmPoseTransformer;)V", "parameters": { "class": "vectorwing/farmersdelight/common/EnumParameters", "field": "PROXY_SKILLET_FLIP" } } ] -} \ No newline at end of file +} diff --git a/src/main/resources/META-INF/neoforge.mods.toml b/src/main/resources/META-INF/neoforge.mods.toml index 46a14082e..8041c1854 100644 --- a/src/main/resources/META-INF/neoforge.mods.toml +++ b/src/main/resources/META-INF/neoforge.mods.toml @@ -34,10 +34,3 @@ config = "${mod_id}.mixins.json" versionRange = "${minecraft_version_range}" ordering = "NONE" side = "BOTH" - -[[dependencies.${mod_id}]] - modId = "crafttweaker" - type = "optional" - versionRange = "[14.0.6,)" - ordering = "NONE" - side = "BOTH" diff --git a/src/main/resources/assets/farmersdelight/items/skillet.json b/src/main/resources/assets/farmersdelight/items/skillet.json new file mode 100644 index 000000000..728b07f0b --- /dev/null +++ b/src/main/resources/assets/farmersdelight/items/skillet.json @@ -0,0 +1,26 @@ +{ + "model": { + "type": "minecraft:composite", + "models": [ + { + "type": "minecraft:model", + "model": "farmersdelight:item/skillet" + }, + { + "type": "minecraft:condition", + "property": "minecraft:has_component", + "component": "farmersdelight:skillet_ingredient", + "on_true": { + "type": "minecraft:special", + "base": "farmersdelight:item/skillet", + "model": { + "type": "farmersdelight:skillet_ingredient" + } + }, + "on_false": { + "type": "minecraft:empty" + } + } + ] + } +} diff --git a/src/main/resources/assets/farmersdelight/lang/be_by.json b/src/main/resources/assets/farmersdelight/lang/be_by.json index b1cb6b6c0..45595db82 100644 --- a/src/main/resources/assets/farmersdelight/lang/be_by.json +++ b/src/main/resources/assets/farmersdelight/lang/be_by.json @@ -314,5 +314,93 @@ "jei.farmersdelight.info.wild_onions": "Цыбулю звычайна можна знайсці як дзікую расліну ў біёмах ў умераным кліматам, такіх як лясы і раўніныOnions can be commonly found as a wild plant in temperate lands, such as plains and forests.", "jei.farmersdelight.info.wild_potatoes": "Бульбу звычайна можна знайсці як дзікую расліну ў халодных біёмах, такіх як горы і тайга.", "jei.farmersdelight.info.wild_tomatoes": "Памідоры звычайна можна знайсці як дзікую расліну ў сухіх біёмах, такіх як саванны і пустыні.", - "jei.farmersdelight.info.wild_rice": "Рыс звычайна можна знайсці як дзікую расліну ў вадаёмах вільготных біёмаў, такіх як багна і джунглі." + "jei.farmersdelight.info.wild_rice": "Рыс звычайна можна знайсці як дзікую расліну ў вадаёмах вільготных біёмаў, такіх як багна і джунглі.", + + "_comment.farmersdelight.item_aliases": "Block item aliases for Minecraft 26.2 item translation keys.", + "item.farmersdelight.acacia_cabinet": "Шафка з акацыі", + "item.farmersdelight.apple_pie": "Яблычны пірог", + "item.farmersdelight.bamboo_cabinet": "Бамбукавая шафка", + "item.farmersdelight.beetroot_crate": "Скрыня буракоў", + "item.farmersdelight.birch_cabinet": "Бярозавая шафка", + "item.farmersdelight.black_canvas_sign": "Чорная палатняная шыльда", + "item.farmersdelight.black_hanging_canvas_sign": "Чорная падвесная палатняная шыльда", + "item.farmersdelight.blue_canvas_sign": "Сіняя палатняная шыльда", + "item.farmersdelight.blue_hanging_canvas_sign": "Сіняя падвесная палатняная шыльда", + "item.farmersdelight.brown_canvas_sign": "Карычневая палатняная шыльда", + "item.farmersdelight.brown_hanging_canvas_sign": "Карычневая падвесная палатняная шыльда", + "item.farmersdelight.brown_mushroom_colony": "Калонія баравікоў", + "item.farmersdelight.cabbage_crate": "Скрыня капусты", + "item.farmersdelight.canvas_rug": "Цыноўка", + "item.farmersdelight.canvas_sign": "Палатняная шыльда", + "item.farmersdelight.carrot_crate": "Скрыня морквы", + "item.farmersdelight.cherry_cabinet": "Шафка з вішнёвай драўніны", + "item.farmersdelight.chocolate_pie": "Шакаладны пірог", + "item.farmersdelight.cooking_pot": "Рондаль", + "item.farmersdelight.crimson_cabinet": "Барвовая шафка", + "item.farmersdelight.cutting_board": "Днушка", + "item.farmersdelight.cyan_canvas_sign": "Бірузовая палатняная шыльда", + "item.farmersdelight.cyan_hanging_canvas_sign": "Бірузовая падвесная палатняная шыльда", + "item.farmersdelight.dark_oak_cabinet": "Шафка з цёмнага дубу", + "item.farmersdelight.full_tatami_mat": "Поўная татамі-мата", + "item.farmersdelight.gray_canvas_sign": "Шэрая палатняная шыльда", + "item.farmersdelight.gray_hanging_canvas_sign": "Шэрая падвесная палатняная шыльда", + "item.farmersdelight.green_canvas_sign": "Зялёная палатняная шыльда", + "item.farmersdelight.green_hanging_canvas_sign": "Зялёная падвесная палатняная шыльда", + "item.farmersdelight.half_tatami_mat": "Палова татамі-маты", + "item.farmersdelight.hanging_canvas_sign": "Падвесная палатняная шыльда", + "item.farmersdelight.honey_glazed_ham_block": "Вяндліна ў мядовай глазуры", + "item.farmersdelight.jungle_cabinet": "Шафка з трапічнай драўніны", + "item.farmersdelight.light_blue_canvas_sign": "Блакітная палатняная шыльда", + "item.farmersdelight.light_blue_hanging_canvas_sign": "Блакітная падвесная палатняная шыльда", + "item.farmersdelight.light_gray_canvas_sign": "Светла-шэрая палатняная шыльда", + "item.farmersdelight.light_gray_hanging_canvas_sign": "Светла-шэрая падвесная палатняная шыльда", + "item.farmersdelight.lime_canvas_sign": "Лаймавая палатняная шыльда", + "item.farmersdelight.lime_hanging_canvas_sign": "Лаймавая падвесная палатняная шыльда", + "item.farmersdelight.magenta_canvas_sign": "Пурпурная палатняная шыльда", + "item.farmersdelight.magenta_hanging_canvas_sign": "Пурпурная падвесная палатняная шыльда", + "item.farmersdelight.mangrove_cabinet": "Шафка з мангравай драўніны", + "item.farmersdelight.oak_cabinet": "Дубовая шафка", + "item.farmersdelight.onion_crate": "Скрыня цыбулі", + "item.farmersdelight.orange_canvas_sign": "Аранжавая палатняная шыльда", + "item.farmersdelight.orange_hanging_canvas_sign": "Аранжавая падвесная палатняная шыльда", + "item.farmersdelight.organic_compost": "Арганічны кампост", + "item.farmersdelight.pink_canvas_sign": "Ружовая палатняная шыльда", + "item.farmersdelight.pink_hanging_canvas_sign": "Ружовая падвесная палатняная шыльда", + "item.farmersdelight.potato_crate": "Скрыня бульбы", + "item.farmersdelight.purple_canvas_sign": "Фіялетавая палатняная шыльда", + "item.farmersdelight.purple_hanging_canvas_sign": "Фіялетавая падвесная палатняная шыльда", + "item.farmersdelight.red_canvas_sign": "Чырвоная палатняная шыльда", + "item.farmersdelight.red_hanging_canvas_sign": "Чырвоная падвесная палатняная шыльда", + "item.farmersdelight.red_mushroom_colony": "Калонія мухамораў", + "item.farmersdelight.rice_bag": "Мяшок рысу", + "item.farmersdelight.rice_bale": "Цюк рысу", + "item.farmersdelight.rice_roll_medley_block": "Сушы асарці", + "item.farmersdelight.rich_soil": "Урадлівая глеба", + "item.farmersdelight.rich_soil_farmland": "Урадлівая ралля", + "item.farmersdelight.roast_chicken_block": "Запечаная курыца", + "item.farmersdelight.rope": "Вяроўка", + "item.farmersdelight.safety_net": "Сетка бяспекі", + "item.farmersdelight.sandy_shrub": "Пустынны куст", + "item.farmersdelight.shepherds_pie_block": "Пастухоўскі пірог", + "item.farmersdelight.skillet": "Патэльня", + "item.farmersdelight.spruce_cabinet": "Яловая шафка", + "item.farmersdelight.stove": "Пліта", + "item.farmersdelight.straw_bale": "Цюк саломы", + "item.farmersdelight.stuffed_pumpkin_block": "Фаршыраваны гарбуз", + "item.farmersdelight.sweet_berry_cheesecake": "Ягадны чызкейк", + "item.farmersdelight.tatami": "Блок татамі", + "item.farmersdelight.tomato_crate": "Скрыня памідораў", + "item.farmersdelight.warped_cabinet": "Скажоная шафка", + "item.farmersdelight.white_canvas_sign": "Белая палатняная шыльда", + "item.farmersdelight.white_hanging_canvas_sign": "Белая падвесная палатняная шыльда", + "item.farmersdelight.wild_beetroots": "Дзікі бурак", + "item.farmersdelight.wild_cabbages": "Дзікая капуста", + "item.farmersdelight.wild_carrots": "Дзікая морква", + "item.farmersdelight.wild_onions": "Дзікая цыбуля", + "item.farmersdelight.wild_potatoes": "Дзікая бульба", + "item.farmersdelight.wild_rice": "Дзікі рыс", + "item.farmersdelight.wild_tomatoes": "Памідоравы куст", + "item.farmersdelight.wooden_basket": "Кош", + "item.farmersdelight.yellow_canvas_sign": "Жоўтая палатняная шыльда", + "item.farmersdelight.yellow_hanging_canvas_sign": "Жоўтая падвесная палатняная шыльда" } diff --git a/src/main/resources/assets/farmersdelight/lang/bg_bg.json b/src/main/resources/assets/farmersdelight/lang/bg_bg.json index 0b76d977d..b39d29884 100644 --- a/src/main/resources/assets/farmersdelight/lang/bg_bg.json +++ b/src/main/resources/assets/farmersdelight/lang/bg_bg.json @@ -526,5 +526,97 @@ "farmersdelight.configuration.enableComfortHealthOverlay": "Показване на ефекта Комфорт", "farmersdelight.configuration.enableComfortHealthOverlay.tooltip": "Ако е включено, плъзгащ се фон ще се показва на Линията за здраве, когато играчът има ефекта Комфорт.", "farmersdelight.configuration.enableFoodEffectTooltip": "Подсказка за Хранителния ефект", - "farmersdelight.configuration.enableFoodEffectTooltip.tooltip": "Ако е включено, Хранителните предмети ще показват подсказка за ефекта, който предоставят при изяждане, ако имат. Прилага се за храни както от Minecraft, така и от мода." + "farmersdelight.configuration.enableFoodEffectTooltip.tooltip": "Ако е включено, Хранителните предмети ще показват подсказка за ефекта, който предоставят при изяждане, ако имат. Прилага се за храни както от Minecraft, така и от мода.", + + "_comment.farmersdelight.item_aliases": "Block item aliases for Minecraft 26.2 item translation keys.", + "item.farmersdelight.acacia_cabinet": "Акациев шкаф", + "item.farmersdelight.apple_pie": "Ябълков пай", + "item.farmersdelight.bamboo_basket": "Бамбуков кош", + "item.farmersdelight.bamboo_cabinet": "Бамбуков шкаф", + "item.farmersdelight.beetroot_crate": "Щайга с цвекло", + "item.farmersdelight.birch_cabinet": "Брезов шкаф", + "item.farmersdelight.black_canvas_sign": "Черна платнена табела", + "item.farmersdelight.black_hanging_canvas_sign": "Черна висяща платнена табела", + "item.farmersdelight.blue_canvas_sign": "Синя платнена табела", + "item.farmersdelight.blue_hanging_canvas_sign": "Синя висяща платнена табела", + "item.farmersdelight.brown_canvas_sign": "Кафява платнена табела", + "item.farmersdelight.brown_hanging_canvas_sign": "Кафява висяща платнена табела", + "item.farmersdelight.brown_mushroom_colony": "Колония от кафяви гъби", + "item.farmersdelight.cabbage_crate": "Щайга със зеле", + "item.farmersdelight.canvas_rug": "Платнен килим", + "item.farmersdelight.canvas_sign": "Платнена табела", + "item.farmersdelight.carrot_crate": "Щайга с моркови", + "item.farmersdelight.cherry_cabinet": "Черешов шкаф", + "item.farmersdelight.chocolate_pie": "Шоколадов пай", + "item.farmersdelight.cooking_pot": "Тенджера", + "item.farmersdelight.crimson_cabinet": "Пурпурен шкаф", + "item.farmersdelight.cutting_board": "Дъска за рязане", + "item.farmersdelight.cyan_canvas_sign": "Синьо-зелена платнена табела", + "item.farmersdelight.cyan_hanging_canvas_sign": "Синьо-зелена висяща платнена табела", + "item.farmersdelight.dark_oak_cabinet": "Шкаф от черен дъб", + "item.farmersdelight.full_tatami_mat": "Цяла татами постелка", + "item.farmersdelight.gleaming_salad_block": "Сияйна салата", + "item.farmersdelight.gray_canvas_sign": "Сива платнена табела", + "item.farmersdelight.gray_hanging_canvas_sign": "Сива висяща платнена табела", + "item.farmersdelight.green_canvas_sign": "Зелена платнена табела", + "item.farmersdelight.green_hanging_canvas_sign": "Зелена висяща платнена табела", + "item.farmersdelight.half_tatami_mat": "Половин татами постелка", + "item.farmersdelight.hanging_canvas_sign": "Висяща платнена табела", + "item.farmersdelight.honey_glazed_ham_block": "Шунка с медена глазура", + "item.farmersdelight.jungle_cabinet": "Джунглов шкаф", + "item.farmersdelight.light_blue_canvas_sign": "Светлосиня платнена табела", + "item.farmersdelight.light_blue_hanging_canvas_sign": "Светлосиня висяща платнена табела", + "item.farmersdelight.light_gray_canvas_sign": "Светлосива платнена табела", + "item.farmersdelight.light_gray_hanging_canvas_sign": "Светлосива висяща платнена табела", + "item.farmersdelight.lime_canvas_sign": "Жълто-зелена платнена табела", + "item.farmersdelight.lime_hanging_canvas_sign": "Жълто-зелена висяща платнена табела", + "item.farmersdelight.magenta_canvas_sign": "Пурпурна платнена табела", + "item.farmersdelight.magenta_hanging_canvas_sign": "Пурпурна висяща платнена табела", + "item.farmersdelight.mangrove_cabinet": "Мангров шкаф", + "item.farmersdelight.oak_cabinet": "Дъбов шкаф", + "item.farmersdelight.onion_crate": "Щайга с лук", + "item.farmersdelight.orange_canvas_sign": "Оранжева платнена табела", + "item.farmersdelight.orange_hanging_canvas_sign": "Оранжева висяща платнена табела", + "item.farmersdelight.organic_compost": "Органичен компост", + "item.farmersdelight.pink_canvas_sign": "Розова платнена табела", + "item.farmersdelight.pink_hanging_canvas_sign": "Розова висяща платнена табела", + "item.farmersdelight.potato_crate": "Щайга с картофи", + "item.farmersdelight.purple_canvas_sign": "Лилава платнена табела", + "item.farmersdelight.purple_hanging_canvas_sign": "Лилава висяща платнена табела", + "item.farmersdelight.red_canvas_sign": "Червена платнена табела", + "item.farmersdelight.red_hanging_canvas_sign": "Червена висяща платнена табела", + "item.farmersdelight.red_mushroom_colony": "Колония от червени гъби", + "item.farmersdelight.rice_bag": "Торба с ориз", + "item.farmersdelight.rice_bale": "Бала ориз", + "item.farmersdelight.rice_roll_medley_block": "Микс от оризови ролца", + "item.farmersdelight.rich_soil": "Богата почва", + "item.farmersdelight.rich_soil_farmland": "Богата обработваема земя", + "item.farmersdelight.roast_chicken_block": "Печено пиле", + "item.farmersdelight.rope": "Въже", + "item.farmersdelight.rope_fence": "Въжена ограда", + "item.farmersdelight.rope_fence_gate": "Порта на въжена ограда", + "item.farmersdelight.safety_net": "Предпазна мрежа", + "item.farmersdelight.sandy_shrub": "Пясъчен храст", + "item.farmersdelight.shepherds_pie_block": "Пастирски пай", + "item.farmersdelight.skillet": "Тиган", + "item.farmersdelight.spruce_cabinet": "Смърчов шкаф", + "item.farmersdelight.stove": "Фурна", + "item.farmersdelight.straw_bale": "Бала слама", + "item.farmersdelight.stuffed_pumpkin_block": "Пълнена тиква", + "item.farmersdelight.sweet_berry_cheesecake": "Чийзкейк с горски плодове", + "item.farmersdelight.tatami": "Татами блок", + "item.farmersdelight.tomato_crate": "Щайга с домати", + "item.farmersdelight.warped_cabinet": "Шантав шкаф", + "item.farmersdelight.white_canvas_sign": "Бяла платнена табела", + "item.farmersdelight.white_hanging_canvas_sign": "Бяла висяща платнена табела", + "item.farmersdelight.wild_beetroots": "Диво цвекло", + "item.farmersdelight.wild_cabbages": "Диво зеле", + "item.farmersdelight.wild_carrots": "Диви моркови", + "item.farmersdelight.wild_onions": "Див лук", + "item.farmersdelight.wild_potatoes": "Диви картофи", + "item.farmersdelight.wild_rice": "Див ориз", + "item.farmersdelight.wild_tomatoes": "Доматен храст", + "item.farmersdelight.wooden_basket": "Кош", + "item.farmersdelight.yellow_canvas_sign": "Жълта платнена табела", + "item.farmersdelight.yellow_hanging_canvas_sign": "Жълта висяща платнена табела" } diff --git a/src/main/resources/assets/farmersdelight/lang/ca_es.json b/src/main/resources/assets/farmersdelight/lang/ca_es.json index a8a08f8f3..47d4c083e 100644 --- a/src/main/resources/assets/farmersdelight/lang/ca_es.json +++ b/src/main/resources/assets/farmersdelight/lang/ca_es.json @@ -278,5 +278,72 @@ "jei.farmersdelight.decomposition.accelerators": "Accelerat per activadors propers (veure mes avall)", "jei.farmersdelight.info.straw": "Una fibra de vegetal seca utilitzada en l'artesania. S'obté tallant cultius i plantes herbàcies amb el ganivet.", "jei.farmersdelight.info.knife": "Els ganivets són armes lleugeres. Poden collir fibra de les herbes, i t'asseguren un segon botí dels animals.", - "jei.farmersdelight.info.ham": "Per tallar un bon tros de carn de porc o cama de Hoglin necessitaràs alguna cosa més lleugera que una espasa." + "jei.farmersdelight.info.ham": "Per tallar un bon tros de carn de porc o cama de Hoglin necessitaràs alguna cosa més lleugera que una espasa.", + + "_comment.farmersdelight.item_aliases": "Block item aliases for Minecraft 26.2 item translation keys.", + "item.farmersdelight.acacia_cabinet": "Armari de acàcia", + "item.farmersdelight.apple_pie": "Pastís de poma", + "item.farmersdelight.beetroot_crate": "Caixa de remolatxa", + "item.farmersdelight.birch_cabinet": "Armari de bedoll", + "item.farmersdelight.black_canvas_sign": "Senyal de tela negra", + "item.farmersdelight.blue_canvas_sign": "Senyal de tela blava", + "item.farmersdelight.brown_canvas_sign": "Senyal de tela marró", + "item.farmersdelight.brown_mushroom_colony": "Colònia de bolets marrons", + "item.farmersdelight.cabbage_crate": "Caixa de cols", + "item.farmersdelight.canvas_rug": "Lona", + "item.farmersdelight.canvas_sign": "Senyal de tela", + "item.farmersdelight.carrot_crate": "Caixa de pastanagues", + "item.farmersdelight.chocolate_pie": "Pastís de xocolata", + "item.farmersdelight.cooking_pot": "Olla", + "item.farmersdelight.crimson_cabinet": "Armari carmesina", + "item.farmersdelight.cutting_board": "Taula per tallar", + "item.farmersdelight.cyan_canvas_sign": "Senyal de tela cian", + "item.farmersdelight.dark_oak_cabinet": "Armari de pomer fosc", + "item.farmersdelight.full_tatami_mat": "Tatami", + "item.farmersdelight.gray_canvas_sign": "Senyal de tela grisa", + "item.farmersdelight.green_canvas_sign": "Senyal de tela verda", + "item.farmersdelight.half_tatami_mat": "Mig tatami", + "item.farmersdelight.honey_glazed_ham_block": "Pernil glassejat amb mel", + "item.farmersdelight.jungle_cabinet": "Armari de jungla", + "item.farmersdelight.light_blue_canvas_sign": "Senyal de tela blau cel", + "item.farmersdelight.light_gray_canvas_sign": "Senyal de tela gris clar", + "item.farmersdelight.lime_canvas_sign": "Senyal de tela llima", + "item.farmersdelight.magenta_canvas_sign": "Senyal de tela magenta", + "item.farmersdelight.oak_cabinet": "Armari de pomer", + "item.farmersdelight.onion_crate": "Caixa de cebes", + "item.farmersdelight.orange_canvas_sign": "Senyal de tela taronja", + "item.farmersdelight.organic_compost": "Compost orgànic", + "item.farmersdelight.pink_canvas_sign": "Senyal de tela rosa", + "item.farmersdelight.potato_crate": "Caixa de patates", + "item.farmersdelight.purple_canvas_sign": "Senyal de tela lila", + "item.farmersdelight.red_canvas_sign": "Senyal de tela vermella", + "item.farmersdelight.red_mushroom_colony": "Colònia de bolets vermells ", + "item.farmersdelight.rice_bag": "Bossa d\u0027arròs", + "item.farmersdelight.rice_bale": "Bala d\u0027arròs", + "item.farmersdelight.rich_soil": "Sòl ric", + "item.farmersdelight.rich_soil_farmland": "Terres de cultiu de sòl ric", + "item.farmersdelight.roast_chicken_block": "Pollastre rostit", + "item.farmersdelight.rope": "Corda", + "item.farmersdelight.safety_net": "Xarxa de seguretat", + "item.farmersdelight.sandy_shrub": "Arbust sorrenc", + "item.farmersdelight.shepherds_pie_block": "Pastís de carn", + "item.farmersdelight.skillet": "Paella", + "item.farmersdelight.spruce_cabinet": "Armari de pi", + "item.farmersdelight.stove": "Graella", + "item.farmersdelight.straw_bale": "Bala de palla", + "item.farmersdelight.stuffed_pumpkin_block": "Carbassa farcida", + "item.farmersdelight.sweet_berry_cheesecake": "Pastís de formatge amb fruites del bosc", + "item.farmersdelight.tatami": "Bloc de tatami", + "item.farmersdelight.tomato_crate": "Caixa de tomàquets", + "item.farmersdelight.warped_cabinet": "Armari guerxa", + "item.farmersdelight.white_canvas_sign": "Senyal de tela blanca", + "item.farmersdelight.wild_beetroots": "Remolatxes de mar silvestres", + "item.farmersdelight.wild_cabbages": "Cols silvestres", + "item.farmersdelight.wild_carrots": "Pastanagues silvestres", + "item.farmersdelight.wild_onions": "Cebes silvestres", + "item.farmersdelight.wild_potatoes": "Patates silvestres", + "item.farmersdelight.wild_rice": "Arròs silvestre", + "item.farmersdelight.wild_tomatoes": "Tomaqueres", + "item.farmersdelight.wooden_basket": "Cistella", + "item.farmersdelight.yellow_canvas_sign": "Senyal de tela groga" } diff --git a/src/main/resources/assets/farmersdelight/lang/da_dk.json b/src/main/resources/assets/farmersdelight/lang/da_dk.json index b10cf0f79..975913978 100644 --- a/src/main/resources/assets/farmersdelight/lang/da_dk.json +++ b/src/main/resources/assets/farmersdelight/lang/da_dk.json @@ -2,6 +2,7 @@ "block.farmersdelight.stove": "Komfur", "block.farmersdelight.cooking_pot": "Gryde", "block.farmersdelight.wooden_basket": "Kurv", + "block.farmersdelight.bamboo_basket": "Bamboo Basket", "block.farmersdelight.cutting_board": "Skærebræt", "block.farmersdelight.skillet": "Stegegryde", "block.farmersdelight.oak_cabinet": "Eget Kabinet", @@ -16,6 +17,8 @@ "block.farmersdelight.crimson_cabinet": "Crimson Kabinet", "block.farmersdelight.warped_cabinet": "Skævt Kabinet", "block.farmersdelight.rope": "Reb", + "block.farmersdelight.rope_fence": "Rope Fence", + "block.farmersdelight.rope_fence_gate": "Rope Fence Gate", "block.farmersdelight.safety_net": "Sikkerhedsnet", "block.farmersdelight.canvas_rug": "Kanvas tæppe", "block.farmersdelight.tatami": "Tatami blok", @@ -135,6 +138,7 @@ "item.farmersdelight.apple_pie_slice": "Skive æbletærte", "item.farmersdelight.sweet_berry_cheesecake_slice": "Skive af sød bærostkage", "item.farmersdelight.chocolate_pie_slice": "Skive af chokoladetærte", + "item.farmersdelight.pumpkin_pie_slice": "Slice of Pumpkin Pie", "item.farmersdelight.fruit_salad": "Frugtsalat", "item.farmersdelight.sweet_berry_cookie": "Sød bærsmåkage", "item.farmersdelight.honey_cookie": "Honningkage", @@ -175,6 +179,7 @@ "item.farmersdelight.baked_cod_stew": "Bagt torskegryderet", "item.farmersdelight.noodle_soup": "Nuddel suppe", "item.farmersdelight.bone_broth": "Bone Bouillon", + "item.farmersdelight.onion_soup": "Onion Soup", "item.farmersdelight.bacon_and_eggs": "Bacon og æg", "item.farmersdelight.pasta_with_meatballs": "Pasta med frikadeller", @@ -196,9 +201,12 @@ "block.farmersdelight.shepherds_pie_block": "Hyrdekage", "item.farmersdelight.shepherds_pie": "Tallerken med Hyrdekage", "block.farmersdelight.rice_roll_medley_block": "Risrulle-medley", + "block.farmersdelight.gleaming_salad_block": "Gleaming Salad", + "item.farmersdelight.gleaming_salad": "Bowl of Gleaming Salad", "item.farmersdelight.dog_food": "Hunde mad", "item.farmersdelight.horse_feed": "Hestefoder", + "item.farmersdelight.debug_pumpkin_pie": "Debug Pumpkin Pie", "entity.farmersdelight.rotten_tomato": "Rådne Tomater", @@ -313,5 +321,97 @@ "jei.farmersdelight.info.wild_onions": "Løg kan almindeligvis findes som en vild plante i tempererede lande, såsom sletter og skove.", "jei.farmersdelight.info.wild_potatoes": "Kartofler kan almindeligvis findes som en vild plante i kolde lande, såsom bjerge og taigaer.", "jei.farmersdelight.info.wild_tomatoes": "Tomater kan almindeligvis findes som en vild plante i tørre lande, såsom savanner og ørkener.", - "jei.farmersdelight.info.wild_rice": "Ris kan almindeligvis findes som en vild plante i damme i våde områder, såsom sumpe og jungler." + "jei.farmersdelight.info.wild_rice": "Ris kan almindeligvis findes som en vild plante i damme i våde områder, såsom sumpe og jungler.", + + "_comment.farmersdelight.item_aliases": "Block item aliases for Minecraft 26.2 item translation keys.", + "item.farmersdelight.acacia_cabinet": "Acacia Kabinet", + "item.farmersdelight.apple_pie": "Æbletærte", + "item.farmersdelight.bamboo_basket": "Bamboo Basket", + "item.farmersdelight.bamboo_cabinet": "Bambus Kabinet", + "item.farmersdelight.beetroot_crate": "Rødbedekasse", + "item.farmersdelight.birch_cabinet": "Birke Kabinet", + "item.farmersdelight.black_canvas_sign": "Sort lærredsskilt", + "item.farmersdelight.black_hanging_canvas_sign": "Sort hængende lærredsskilt", + "item.farmersdelight.blue_canvas_sign": "Blåt lærredsskilt", + "item.farmersdelight.blue_hanging_canvas_sign": "Blåt hængende lærredsskilt", + "item.farmersdelight.brown_canvas_sign": "Brunt lærredsskilt", + "item.farmersdelight.brown_hanging_canvas_sign": "Brunt hængende lærredsskilt", + "item.farmersdelight.brown_mushroom_colony": "Brun svampekoloni", + "item.farmersdelight.cabbage_crate": "Kålkasse", + "item.farmersdelight.canvas_rug": "Kanvas tæppe", + "item.farmersdelight.canvas_sign": "Lærredsskilt", + "item.farmersdelight.carrot_crate": "Gulerodskasse", + "item.farmersdelight.cherry_cabinet": "Kirsebær Kabinet", + "item.farmersdelight.chocolate_pie": "Chokolade tærte", + "item.farmersdelight.cooking_pot": "Gryde", + "item.farmersdelight.crimson_cabinet": "Crimson Kabinet", + "item.farmersdelight.cutting_board": "Skærebræt", + "item.farmersdelight.cyan_canvas_sign": "Cyan lærredsskilt", + "item.farmersdelight.cyan_hanging_canvas_sign": "Cyan hængende lærredsskilt", + "item.farmersdelight.dark_oak_cabinet": "Mørk Kabinet", + "item.farmersdelight.full_tatami_mat": "Fuld Tatami måtte", + "item.farmersdelight.gleaming_salad_block": "Gleaming Salad", + "item.farmersdelight.gray_canvas_sign": "Grå lærredsskilt", + "item.farmersdelight.gray_hanging_canvas_sign": "Grå hængende lærredsskilt", + "item.farmersdelight.green_canvas_sign": "Grønt lærredsskilt", + "item.farmersdelight.green_hanging_canvas_sign": "Grønt hængende lærredsskilt", + "item.farmersdelight.half_tatami_mat": "Halv Tatami måtte", + "item.farmersdelight.hanging_canvas_sign": "Hængende lærredsskilt", + "item.farmersdelight.honey_glazed_ham_block": "Honningglaseret skinke", + "item.farmersdelight.jungle_cabinet": "Jungleskab", + "item.farmersdelight.light_blue_canvas_sign": "Lyseblåt lærredsskilt", + "item.farmersdelight.light_blue_hanging_canvas_sign": "Lyseblåt hængende lærredsskilt", + "item.farmersdelight.light_gray_canvas_sign": "Lysegrå lærredsskilt", + "item.farmersdelight.light_gray_hanging_canvas_sign": "Lysegrå hængende lærredsskilt", + "item.farmersdelight.lime_canvas_sign": "Lime lærredsskilt", + "item.farmersdelight.lime_hanging_canvas_sign": "Lime hængende lærredsskilt", + "item.farmersdelight.magenta_canvas_sign": "Magenta lærredsskilt", + "item.farmersdelight.magenta_hanging_canvas_sign": "Magenta hængende lærredsskilt", + "item.farmersdelight.mangrove_cabinet": "Mangrove Kabinet", + "item.farmersdelight.oak_cabinet": "Eget Kabinet", + "item.farmersdelight.onion_crate": "Løgkasse", + "item.farmersdelight.orange_canvas_sign": "Orange lærredsskilt", + "item.farmersdelight.orange_hanging_canvas_sign": "Orange hængende lærredsskilt", + "item.farmersdelight.organic_compost": "Økologisk kompost", + "item.farmersdelight.pink_canvas_sign": "Lyserødt lærredsskilt", + "item.farmersdelight.pink_hanging_canvas_sign": "Pink hængende lærredsskilt", + "item.farmersdelight.potato_crate": "Kartoffelkasse", + "item.farmersdelight.purple_canvas_sign": "Lilla lærredsskilt", + "item.farmersdelight.purple_hanging_canvas_sign": "Lilla hængende lærredsskilt", + "item.farmersdelight.red_canvas_sign": "Rødt lærredsskilt", + "item.farmersdelight.red_hanging_canvas_sign": "Rødt hængende lærredsskilt", + "item.farmersdelight.red_mushroom_colony": "Rød svampekoloni", + "item.farmersdelight.rice_bag": "Pose ris", + "item.farmersdelight.rice_bale": "Risballe", + "item.farmersdelight.rice_roll_medley_block": "Risrulle-medley", + "item.farmersdelight.rich_soil": "Rig Jord", + "item.farmersdelight.rich_soil_farmland": "Rig Jord landbrugsjord", + "item.farmersdelight.roast_chicken_block": "Stegt kylling", + "item.farmersdelight.rope": "Reb", + "item.farmersdelight.rope_fence": "Rope Fence", + "item.farmersdelight.rope_fence_gate": "Rope Fence Gate", + "item.farmersdelight.safety_net": "Sikkerhedsnet", + "item.farmersdelight.sandy_shrub": "Sandet busk", + "item.farmersdelight.shepherds_pie_block": "Hyrdekage", + "item.farmersdelight.skillet": "Stegegryde", + "item.farmersdelight.spruce_cabinet": "Kabinet af gran", + "item.farmersdelight.stove": "Komfur", + "item.farmersdelight.straw_bale": "Halmballe", + "item.farmersdelight.stuffed_pumpkin_block": "Fyldt græskar", + "item.farmersdelight.sweet_berry_cheesecake": "Sød bærostkage", + "item.farmersdelight.tatami": "Tatami blok", + "item.farmersdelight.tomato_crate": "Tomatkasse", + "item.farmersdelight.warped_cabinet": "Skævt Kabinet", + "item.farmersdelight.white_canvas_sign": "Hvidt lærredsskilt", + "item.farmersdelight.white_hanging_canvas_sign": "Hvidt hængende lærredsskilt", + "item.farmersdelight.wild_beetroots": "Havroe", + "item.farmersdelight.wild_cabbages": "Vildkål", + "item.farmersdelight.wild_carrots": "Vild gulerod", + "item.farmersdelight.wild_onions": "Vilde Løg", + "item.farmersdelight.wild_potatoes": "Vild kartoffel", + "item.farmersdelight.wild_rice": "Vilde ris", + "item.farmersdelight.wild_tomatoes": "Tomatbusk", + "item.farmersdelight.wooden_basket": "Kurv", + "item.farmersdelight.yellow_canvas_sign": "Gult lærredsskilt", + "item.farmersdelight.yellow_hanging_canvas_sign": "Gult hængende lærredsskilt" } diff --git a/src/main/resources/assets/farmersdelight/lang/de_de.json b/src/main/resources/assets/farmersdelight/lang/de_de.json index d77699bbe..10773cc7e 100644 --- a/src/main/resources/assets/farmersdelight/lang/de_de.json +++ b/src/main/resources/assets/farmersdelight/lang/de_de.json @@ -314,5 +314,93 @@ "jei.farmersdelight.info.wild_onions": "Wildzwiebeln wachsen für gewöhnlich in gemäßigten Gebieten wie Ebenen und Wäldern.", "jei.farmersdelight.info.wild_potatoes": "Wildkartoffeln wachsen für gewöhnlich in kalten Gebieten wie Gebirgen und Taigas.", "jei.farmersdelight.info.wild_tomatoes": "Tomatensträucher wachsen für gewöhnlich in trockenen Gebieten wie Savannen und Wüsten.", - "jei.farmersdelight.info.wild_rice": "Wildreis wächst für gewöhnlich in Seen von feuchten Gebieten wie Dschungeln und Sümpfen." + "jei.farmersdelight.info.wild_rice": "Wildreis wächst für gewöhnlich in Seen von feuchten Gebieten wie Dschungeln und Sümpfen.", + + "_comment.farmersdelight.item_aliases": "Block item aliases for Minecraft 26.2 item translation keys.", + "item.farmersdelight.acacia_cabinet": "Akazienholzküchenschrank", + "item.farmersdelight.apple_pie": "Apfelkuchen", + "item.farmersdelight.bamboo_cabinet": "Bambusküchenschrank", + "item.farmersdelight.beetroot_crate": "Rote-Beete-Kiste", + "item.farmersdelight.birch_cabinet": "Birkenholzküchenschrank", + "item.farmersdelight.black_canvas_sign": "Schwarzes Leinen Schild", + "item.farmersdelight.black_hanging_canvas_sign": "Schwarzes Leinen Hängeschild", + "item.farmersdelight.blue_canvas_sign": "Blaues Leinen Schild", + "item.farmersdelight.blue_hanging_canvas_sign": "Blaues Leinen Hängeschild", + "item.farmersdelight.brown_canvas_sign": "Braunes Leinen Schild", + "item.farmersdelight.brown_hanging_canvas_sign": "Braunes Leinen Hängeschild", + "item.farmersdelight.brown_mushroom_colony": "Braune Pilzkolonie", + "item.farmersdelight.cabbage_crate": "Weißkohlkiste", + "item.farmersdelight.canvas_rug": "Leinen Teppich", + "item.farmersdelight.canvas_sign": "Leinen Schild", + "item.farmersdelight.carrot_crate": "Karrotenkiste", + "item.farmersdelight.cherry_cabinet": "Kirschholzküchenschrank", + "item.farmersdelight.chocolate_pie": "Schokokuchen", + "item.farmersdelight.cooking_pot": "Kochtopf", + "item.farmersdelight.crimson_cabinet": "Karmesinholzküchenschrank", + "item.farmersdelight.cutting_board": "Schneidebrett", + "item.farmersdelight.cyan_canvas_sign": "Türkises Leinen Schild", + "item.farmersdelight.cyan_hanging_canvas_sign": "Türkises Leinen Hängeschild", + "item.farmersdelight.dark_oak_cabinet": "Schwarzeichenholzküchenschrank", + "item.farmersdelight.full_tatami_mat": "Volle Tatamimatte", + "item.farmersdelight.gray_canvas_sign": "Graues Leinen Schild", + "item.farmersdelight.gray_hanging_canvas_sign": "Graues Leinen Hängeschild", + "item.farmersdelight.green_canvas_sign": "Grünes Leinen Schild", + "item.farmersdelight.green_hanging_canvas_sign": "Grünes Leinen Hängeschild", + "item.farmersdelight.half_tatami_mat": "Halbe Tatamimatte", + "item.farmersdelight.hanging_canvas_sign": "Leinen Hängeschild", + "item.farmersdelight.honey_glazed_ham_block": "Honigglasierter Schinken", + "item.farmersdelight.jungle_cabinet": "Tropenholzküchenschrank", + "item.farmersdelight.light_blue_canvas_sign": "Hellblaues Leinen Schild", + "item.farmersdelight.light_blue_hanging_canvas_sign": "Hellblaues Leinen Hängeschild", + "item.farmersdelight.light_gray_canvas_sign": "Hellgraues Leinen Schild", + "item.farmersdelight.light_gray_hanging_canvas_sign": "Hellgraues Leinen Hängeschild", + "item.farmersdelight.lime_canvas_sign": "Hellgrünes Leinen Schild", + "item.farmersdelight.lime_hanging_canvas_sign": "Hellgrünes Leinen Hängeschild", + "item.farmersdelight.magenta_canvas_sign": "Magenta Leinen Schild", + "item.farmersdelight.magenta_hanging_canvas_sign": "Magenta Leinen Hängeschild", + "item.farmersdelight.mangrove_cabinet": "Mangrovenholzküchenschrank", + "item.farmersdelight.oak_cabinet": "Eichenholzküchenschrank", + "item.farmersdelight.onion_crate": "Zwiebelkiste", + "item.farmersdelight.orange_canvas_sign": "Oranges Leinen Schild", + "item.farmersdelight.orange_hanging_canvas_sign": "Oranges Leinen Hängeschild", + "item.farmersdelight.organic_compost": "Organischer Kompost", + "item.farmersdelight.pink_canvas_sign": "Pinkes Leinen Schild", + "item.farmersdelight.pink_hanging_canvas_sign": "Pinkes Leinen Hängeschild", + "item.farmersdelight.potato_crate": "Kartoffelkiste", + "item.farmersdelight.purple_canvas_sign": "Violettes Leinen Schild", + "item.farmersdelight.purple_hanging_canvas_sign": "Violettes Leinen Hängeschild", + "item.farmersdelight.red_canvas_sign": "Rotes Leinen Schild", + "item.farmersdelight.red_hanging_canvas_sign": "Rotes Leinen Hängeschild", + "item.farmersdelight.red_mushroom_colony": "Rote Pilzkolonie", + "item.farmersdelight.rice_bag": "Reissack", + "item.farmersdelight.rice_bale": "Reisbündel", + "item.farmersdelight.rice_roll_medley_block": "Gemischte Reisrollen", + "item.farmersdelight.rich_soil": "Reichhaltige Erde", + "item.farmersdelight.rich_soil_farmland": "Reichhaltiger Ackerboden", + "item.farmersdelight.roast_chicken_block": "Backhähnchen", + "item.farmersdelight.rope": "Strohseil", + "item.farmersdelight.safety_net": "Sicherheitsnetz", + "item.farmersdelight.sandy_shrub": "Sandstrauch", + "item.farmersdelight.shepherds_pie_block": "Hirtenkuchen", + "item.farmersdelight.skillet": "Bratpfanne", + "item.farmersdelight.spruce_cabinet": "Fichtenholzküchenschrank", + "item.farmersdelight.stove": "Herd", + "item.farmersdelight.straw_bale": "Strohbündel", + "item.farmersdelight.stuffed_pumpkin_block": "Gefüllter Kürbis", + "item.farmersdelight.sweet_berry_cheesecake": "Süßbeerenkäsekuchen", + "item.farmersdelight.tatami": "Tatamiblock", + "item.farmersdelight.tomato_crate": "Tomatenkiste", + "item.farmersdelight.warped_cabinet": "Wirrholzküchenschrank", + "item.farmersdelight.white_canvas_sign": "Weißes Leinen Schild", + "item.farmersdelight.white_hanging_canvas_sign": "Weißes Leinen Hängeschild", + "item.farmersdelight.wild_beetroots": "Wildrüben", + "item.farmersdelight.wild_cabbages": "Wildweißkohl", + "item.farmersdelight.wild_carrots": "Wildkarotten", + "item.farmersdelight.wild_onions": "Wildzwiebel", + "item.farmersdelight.wild_potatoes": "Wildkartoffeln", + "item.farmersdelight.wild_rice": "Wildreis", + "item.farmersdelight.wild_tomatoes": "Tomatenstrauch", + "item.farmersdelight.wooden_basket": "Korb", + "item.farmersdelight.yellow_canvas_sign": "Gelbes Leinen Schild", + "item.farmersdelight.yellow_hanging_canvas_sign": "Gelbes Leinen Hängeschild" } diff --git a/src/main/resources/assets/farmersdelight/lang/en_gb.json b/src/main/resources/assets/farmersdelight/lang/en_gb.json index e24d916d4..0ff376c9d 100644 --- a/src/main/resources/assets/farmersdelight/lang/en_gb.json +++ b/src/main/resources/assets/farmersdelight/lang/en_gb.json @@ -3,5 +3,11 @@ "block.farmersdelight.light_gray_canvas_sign": "Light Grey Canvas Sign", "block.farmersdelight.gray_hanging_canvas_sign": "Grey Hanging Canvas Sign", - "block.farmersdelight.light_gray_hanging_canvas_sign": "Light Grey Hanging Canvas Sign" + "block.farmersdelight.light_gray_hanging_canvas_sign": "Light Grey Hanging Canvas Sign", + + "_comment.farmersdelight.item_aliases": "Block item aliases for Minecraft 26.2 item translation keys.", + "item.farmersdelight.gray_canvas_sign": "Grey Canvas Sign", + "item.farmersdelight.gray_hanging_canvas_sign": "Grey Hanging Canvas Sign", + "item.farmersdelight.light_gray_canvas_sign": "Light Grey Canvas Sign", + "item.farmersdelight.light_gray_hanging_canvas_sign": "Light Grey Hanging Canvas Sign" } diff --git a/src/main/resources/assets/farmersdelight/lang/en_nz.json b/src/main/resources/assets/farmersdelight/lang/en_nz.json index 61447122d..d32041242 100644 --- a/src/main/resources/assets/farmersdelight/lang/en_nz.json +++ b/src/main/resources/assets/farmersdelight/lang/en_nz.json @@ -9,5 +9,11 @@ "advancements.farmersdelight.root.description": "A world of flavour awaits you!", - "jei.farmersdelight.info.straw": "A dry plant fibre used in crafting. Obtained by cutting grassy crops and plants with a Knife." + "jei.farmersdelight.info.straw": "A dry plant fibre used in crafting. Obtained by cutting grassy crops and plants with a Knife.", + + "_comment.farmersdelight.item_aliases": "Block item aliases for Minecraft 26.2 item translation keys.", + "item.farmersdelight.gray_canvas_sign": "Grey Canvas Sign", + "item.farmersdelight.gray_hanging_canvas_sign": "Grey Hanging Canvas Sign", + "item.farmersdelight.light_gray_canvas_sign": "Light Grey Canvas Sign", + "item.farmersdelight.light_gray_hanging_canvas_sign": "Light Grey Hanging Canvas Sign" } diff --git a/src/main/resources/assets/farmersdelight/lang/en_pt.json b/src/main/resources/assets/farmersdelight/lang/en_pt.json index 8d03eed6d..b9ef72864 100644 --- a/src/main/resources/assets/farmersdelight/lang/en_pt.json +++ b/src/main/resources/assets/farmersdelight/lang/en_pt.json @@ -376,5 +376,97 @@ "emi.category.farmersdelight.cooking": "Cookin'", "emi.category.farmersdelight.cutting": "Choppin' Block", - "emi.category.farmersdelight.decomposition": "Garbage Rottin'" + "emi.category.farmersdelight.decomposition": "Garbage Rottin'", + + "_comment.farmersdelight.item_aliases": "Block item aliases for Minecraft 26.2 item translation keys.", + "item.farmersdelight.acacia_cabinet": "Cabinet o\u0027 acacia", + "item.farmersdelight.apple_pie": "Tart o\u0027 Apple Mash", + "item.farmersdelight.bamboo_basket": "Basket o\u0027 Bamboo", + "item.farmersdelight.bamboo_cabinet": "Cabinet o\u0027 bambarr", + "item.farmersdelight.beetroot_crate": "Crate o\u0027 Bloody Potatoes", + "item.farmersdelight.birch_cabinet": "Cabinet o\u0027 birch", + "item.farmersdelight.black_canvas_sign": "Seal o\u0027 black sails", + "item.farmersdelight.black_hanging_canvas_sign": "Danglin\u0027 seal o\u0027 black sails", + "item.farmersdelight.blue_canvas_sign": "Seal o\u0027 blue sails", + "item.farmersdelight.blue_hanging_canvas_sign": "Danglin\u0027 seal o\u0027 blue sails", + "item.farmersdelight.brown_canvas_sign": "Seal o\u0027 brown sails", + "item.farmersdelight.brown_hanging_canvas_sign": "Danglin\u0027 seal o\u0027 brown sails", + "item.farmersdelight.brown_mushroom_colony": "Infestation o\u0027 Tarnished Shrooms", + "item.farmersdelight.cabbage_crate": "Crate o\u0027 Leafers", + "item.farmersdelight.canvas_rug": "Sail Rug", + "item.farmersdelight.canvas_sign": "Seal o\u0027 sails", + "item.farmersdelight.carrot_crate": "Crate o\u0027 Orange Veggies", + "item.farmersdelight.cherry_cabinet": "Cabinet o\u0027 cherry", + "item.farmersdelight.chocolate_pie": "Tart o\u0027 Cacao", + "item.farmersdelight.cooking_pot": "Pot o\u0027 Grub", + "item.farmersdelight.crimson_cabinet": "Cabinet o\u0027 Ichor", + "item.farmersdelight.cutting_board": "Choppin\u0027 Block", + "item.farmersdelight.cyan_canvas_sign": "Seal o\u0027 cyan sails", + "item.farmersdelight.cyan_hanging_canvas_sign": "Danglin\u0027 seal o\u0027 cyan sails", + "item.farmersdelight.dark_oak_cabinet": "Cabinet o\u0027 dusky oak", + "item.farmersdelight.full_tatami_mat": "Tarp o\u0027 Padded Sails", + "item.farmersdelight.gleaming_salad_block": "Shinin\u0027 Bowl o\u0027 Veggies", + "item.farmersdelight.gray_canvas_sign": "Seal o\u0027 gray sails", + "item.farmersdelight.gray_hanging_canvas_sign": "Danglin\u0027 seal o\u0027 gray sails", + "item.farmersdelight.green_canvas_sign": "Seal o\u0027 green sails", + "item.farmersdelight.green_hanging_canvas_sign": "Danglin\u0027 seal o\u0027 green sails", + "item.farmersdelight.half_tatami_mat": "Wee Tarp o\u0027 Padded Sails", + "item.farmersdelight.hanging_canvas_sign": "Danglin\u0027 seal o\u0027 sails", + "item.farmersdelight.honey_glazed_ham_block": "Hog\u0027s Leg Roast", + "item.farmersdelight.jungle_cabinet": "Cabinet o\u0027 jungle", + "item.farmersdelight.light_blue_canvas_sign": "Seal o\u0027 light blue sails", + "item.farmersdelight.light_blue_hanging_canvas_sign": "Danglin\u0027 seal o\u0027 light blue sails", + "item.farmersdelight.light_gray_canvas_sign": "Seal o\u0027 light gray sails", + "item.farmersdelight.light_gray_hanging_canvas_sign": "Danglin\u0027 seal o\u0027 light gray sails", + "item.farmersdelight.lime_canvas_sign": "Seal o\u0027 lime sails", + "item.farmersdelight.lime_hanging_canvas_sign": "Danglin\u0027 seal o\u0027 lime sails", + "item.farmersdelight.magenta_canvas_sign": "Seal o\u0027 magenta sails", + "item.farmersdelight.magenta_hanging_canvas_sign": "Danglin\u0027 seal o\u0027 magenta sails", + "item.farmersdelight.mangrove_cabinet": "Cabinet o\u0027 mangrove", + "item.farmersdelight.oak_cabinet": "Cabinet o\u0027 oak", + "item.farmersdelight.onion_crate": "Crate o\u0027 Stink Bulbs", + "item.farmersdelight.orange_canvas_sign": "Seal o\u0027 orange sails", + "item.farmersdelight.orange_hanging_canvas_sign": "Danglin\u0027 seal o\u0027 orange sails", + "item.farmersdelight.organic_compost": "Pile o\u0027 Garbage", + "item.farmersdelight.pink_canvas_sign": "Seal o\u0027 pink sails", + "item.farmersdelight.pink_hanging_canvas_sign": "Danglin\u0027 seal o\u0027 pink sails", + "item.farmersdelight.potato_crate": "Crate o\u0027 Taters", + "item.farmersdelight.purple_canvas_sign": "Seal o\u0027 purple sails", + "item.farmersdelight.purple_hanging_canvas_sign": "Danglin\u0027 seal o\u0027 purple sails", + "item.farmersdelight.red_canvas_sign": "Seal o\u0027 red sails", + "item.farmersdelight.red_hanging_canvas_sign": "Danglin\u0027 seal o\u0027 red sails", + "item.farmersdelight.red_mushroom_colony": "Infestation o\u0027 Scarlet Shrooms", + "item.farmersdelight.rice_bag": "Sack o\u0027 Rice", + "item.farmersdelight.rice_bale": "Bale o\u0027 Rice", + "item.farmersdelight.rice_roll_medley_block": "All Kinds o\u0027 Ricey Rolls", + "item.farmersdelight.rich_soil": "Rich Filth", + "item.farmersdelight.rich_soil_farmland": "Rich Trodden Filth", + "item.farmersdelight.roast_chicken_block": "Stuff\u0027d Fowl Roast", + "item.farmersdelight.rope": "Sail Rope", + "item.farmersdelight.rope_fence": "Riggin\u0027 Mast", + "item.farmersdelight.rope_fence_gate": "Riggin\u0027 Hitch", + "item.farmersdelight.safety_net": "Rigging", + "item.farmersdelight.sandy_shrub": "Shrub o\u0027 the Beach", + "item.farmersdelight.shepherds_pie_block": "Sheep Herder\u0027s Specialty", + "item.farmersdelight.skillet": "Skillet", + "item.farmersdelight.spruce_cabinet": "Cabinet o\u0027 spruce", + "item.farmersdelight.stove": "Grille", + "item.farmersdelight.straw_bale": "Bale o\u0027 Fiber", + "item.farmersdelight.stuffed_pumpkin_block": "Stuff\u0027d Gourd", + "item.farmersdelight.sweet_berry_cheesecake": "Cheesy Tart o\u0027 Land Capers", + "item.farmersdelight.tatami": "Block o\u0027 Padded Sails", + "item.farmersdelight.tomato_crate": "Crate o\u0027 Tomatoes", + "item.farmersdelight.warped_cabinet": "Cabinet o\u0027 Sorrow", + "item.farmersdelight.white_canvas_sign": "Seal o\u0027 white sails", + "item.farmersdelight.white_hanging_canvas_sign": "Danglin\u0027 seal o\u0027 white sails", + "item.farmersdelight.wild_beetroots": "Buried Bloody Potato", + "item.farmersdelight.wild_cabbages": "Bush o\u0027 Green Leafs", + "item.farmersdelight.wild_carrots": "Bush o\u0027 Orange Weed", + "item.farmersdelight.wild_onions": "Bush o\u0027 Pink Stinkers", + "item.farmersdelight.wild_potatoes": "Bush o\u0027 Flowering Tater", + "item.farmersdelight.wild_rice": "Soggy Weed o\u0027 Rice", + "item.farmersdelight.wild_tomatoes": "Tomato Bramble", + "item.farmersdelight.wooden_basket": "Basket", + "item.farmersdelight.yellow_canvas_sign": "Seal o\u0027 yellow sails", + "item.farmersdelight.yellow_hanging_canvas_sign": "Danglin\u0027 seal o\u0027 yellow sails" } diff --git a/src/main/resources/assets/farmersdelight/lang/en_us.json b/src/main/resources/assets/farmersdelight/lang/en_us.json index fe81214ba..84b90c513 100644 --- a/src/main/resources/assets/farmersdelight/lang/en_us.json +++ b/src/main/resources/assets/farmersdelight/lang/en_us.json @@ -354,6 +354,8 @@ "death.attack.farmersdelight.stove": "%1$s was grilled to perfection", "death.attack.farmersdelight.stove.player": "%1$s was thrown on the grill by Chef %2$s", + "item.farmersdelight.debug_pumpkin_pie": "Debug Pumpkin Pie", + "jei.farmersdelight.cooking": "Cooking", "jei.farmersdelight.cutting": "Cutting Board", "jei.farmersdelight.chance": "%1$s%% chance", @@ -525,5 +527,97 @@ "farmersdelight.configuration.enableComfortHealthOverlay": "Comfort Health Overlay", "farmersdelight.configuration.enableComfortHealthOverlay.tooltip": "If enabled, a scrolling overlay will be shown over the health meter when the player has the Comfort effect.", "farmersdelight.configuration.enableFoodEffectTooltip": "Food Effect Tooltip", - "farmersdelight.configuration.enableFoodEffectTooltip.tooltip": "If enabled, food items will display tooltips showing which effects they grant when eaten, if any. Applies to foods from both Minecraft and this mod." + "farmersdelight.configuration.enableFoodEffectTooltip.tooltip": "If enabled, food items will display tooltips showing which effects they grant when eaten, if any. Applies to foods from both Minecraft and this mod.", + + "_comment.farmersdelight.item_aliases": "Block item aliases for Minecraft 26.2 item translation keys.", + "item.farmersdelight.acacia_cabinet": "Acacia Cabinet", + "item.farmersdelight.apple_pie": "Apple Pie", + "item.farmersdelight.bamboo_basket": "Bamboo Basket", + "item.farmersdelight.bamboo_cabinet": "Bamboo Cabinet", + "item.farmersdelight.beetroot_crate": "Beetroot Crate", + "item.farmersdelight.birch_cabinet": "Birch Cabinet", + "item.farmersdelight.black_canvas_sign": "Black Canvas Sign", + "item.farmersdelight.black_hanging_canvas_sign": "Black Hanging Canvas Sign", + "item.farmersdelight.blue_canvas_sign": "Blue Canvas Sign", + "item.farmersdelight.blue_hanging_canvas_sign": "Blue Hanging Canvas Sign", + "item.farmersdelight.brown_canvas_sign": "Brown Canvas Sign", + "item.farmersdelight.brown_hanging_canvas_sign": "Brown Hanging Canvas Sign", + "item.farmersdelight.brown_mushroom_colony": "Brown Mushroom Colony", + "item.farmersdelight.cabbage_crate": "Cabbage Crate", + "item.farmersdelight.canvas_rug": "Canvas Rug", + "item.farmersdelight.canvas_sign": "Canvas Sign", + "item.farmersdelight.carrot_crate": "Carrot Crate", + "item.farmersdelight.cherry_cabinet": "Cherry Cabinet", + "item.farmersdelight.chocolate_pie": "Chocolate Pie", + "item.farmersdelight.cooking_pot": "Cooking Pot", + "item.farmersdelight.crimson_cabinet": "Crimson Cabinet", + "item.farmersdelight.cutting_board": "Cutting Board", + "item.farmersdelight.cyan_canvas_sign": "Cyan Canvas Sign", + "item.farmersdelight.cyan_hanging_canvas_sign": "Cyan Hanging Canvas Sign", + "item.farmersdelight.dark_oak_cabinet": "Dark Oak Cabinet", + "item.farmersdelight.full_tatami_mat": "Full Tatami Mat", + "item.farmersdelight.gleaming_salad_block": "Gleaming Salad", + "item.farmersdelight.gray_canvas_sign": "Gray Canvas Sign", + "item.farmersdelight.gray_hanging_canvas_sign": "Gray Hanging Canvas Sign", + "item.farmersdelight.green_canvas_sign": "Green Canvas Sign", + "item.farmersdelight.green_hanging_canvas_sign": "Green Hanging Canvas Sign", + "item.farmersdelight.half_tatami_mat": "Half Tatami Mat", + "item.farmersdelight.hanging_canvas_sign": "Hanging Canvas Sign", + "item.farmersdelight.honey_glazed_ham_block": "Honey Glazed Ham", + "item.farmersdelight.jungle_cabinet": "Jungle Cabinet", + "item.farmersdelight.light_blue_canvas_sign": "Light Blue Canvas Sign", + "item.farmersdelight.light_blue_hanging_canvas_sign": "Light Blue Hanging Canvas Sign", + "item.farmersdelight.light_gray_canvas_sign": "Light Gray Canvas Sign", + "item.farmersdelight.light_gray_hanging_canvas_sign": "Light Gray Hanging Canvas Sign", + "item.farmersdelight.lime_canvas_sign": "Lime Canvas Sign", + "item.farmersdelight.lime_hanging_canvas_sign": "Lime Hanging Canvas Sign", + "item.farmersdelight.magenta_canvas_sign": "Magenta Canvas Sign", + "item.farmersdelight.magenta_hanging_canvas_sign": "Magenta Hanging Canvas Sign", + "item.farmersdelight.mangrove_cabinet": "Mangrove Cabinet", + "item.farmersdelight.oak_cabinet": "Oak Cabinet", + "item.farmersdelight.onion_crate": "Onion Crate", + "item.farmersdelight.orange_canvas_sign": "Orange Canvas Sign", + "item.farmersdelight.orange_hanging_canvas_sign": "Orange Hanging Canvas Sign", + "item.farmersdelight.organic_compost": "Organic Compost", + "item.farmersdelight.pink_canvas_sign": "Pink Canvas Sign", + "item.farmersdelight.pink_hanging_canvas_sign": "Pink Hanging Canvas Sign", + "item.farmersdelight.potato_crate": "Potato Crate", + "item.farmersdelight.purple_canvas_sign": "Purple Canvas Sign", + "item.farmersdelight.purple_hanging_canvas_sign": "Purple Hanging Canvas Sign", + "item.farmersdelight.red_canvas_sign": "Red Canvas Sign", + "item.farmersdelight.red_hanging_canvas_sign": "Red Hanging Canvas Sign", + "item.farmersdelight.red_mushroom_colony": "Red Mushroom Colony", + "item.farmersdelight.rice_bag": "Bag of Rice", + "item.farmersdelight.rice_bale": "Rice Bale", + "item.farmersdelight.rice_roll_medley_block": "Rice Roll Medley", + "item.farmersdelight.rich_soil": "Rich Soil", + "item.farmersdelight.rich_soil_farmland": "Rich Soil Farmland", + "item.farmersdelight.roast_chicken_block": "Roast Chicken", + "item.farmersdelight.rope": "Rope", + "item.farmersdelight.rope_fence": "Rope Fence", + "item.farmersdelight.rope_fence_gate": "Rope Fence Gate", + "item.farmersdelight.safety_net": "Safety Net", + "item.farmersdelight.sandy_shrub": "Sandy Shrub", + "item.farmersdelight.shepherds_pie_block": "Shepherd\u0027s Pie", + "item.farmersdelight.skillet": "Skillet", + "item.farmersdelight.spruce_cabinet": "Spruce Cabinet", + "item.farmersdelight.stove": "Stove", + "item.farmersdelight.straw_bale": "Straw Bale", + "item.farmersdelight.stuffed_pumpkin_block": "Stuffed Pumpkin", + "item.farmersdelight.sweet_berry_cheesecake": "Sweet Berry Cheesecake", + "item.farmersdelight.tatami": "Tatami Block", + "item.farmersdelight.tomato_crate": "Tomato Crate", + "item.farmersdelight.warped_cabinet": "Warped Cabinet", + "item.farmersdelight.white_canvas_sign": "White Canvas Sign", + "item.farmersdelight.white_hanging_canvas_sign": "White Hanging Canvas Sign", + "item.farmersdelight.wild_beetroots": "Sea Beet", + "item.farmersdelight.wild_cabbages": "Wild Cabbage", + "item.farmersdelight.wild_carrots": "Wild Carrot", + "item.farmersdelight.wild_onions": "Wild Onion", + "item.farmersdelight.wild_potatoes": "Wild Potato", + "item.farmersdelight.wild_rice": "Wild Rice", + "item.farmersdelight.wild_tomatoes": "Tomato Shrub", + "item.farmersdelight.wooden_basket": "Basket", + "item.farmersdelight.yellow_canvas_sign": "Yellow Canvas Sign", + "item.farmersdelight.yellow_hanging_canvas_sign": "Yellow Hanging Canvas Sign" } diff --git a/src/main/resources/assets/farmersdelight/lang/es_ar.json b/src/main/resources/assets/farmersdelight/lang/es_ar.json index 36d42e246..7293b7df4 100644 --- a/src/main/resources/assets/farmersdelight/lang/es_ar.json +++ b/src/main/resources/assets/farmersdelight/lang/es_ar.json @@ -525,5 +525,97 @@ "farmersdelight.configuration.enableComfortHealthOverlay": "Interfaz de Comodidad", "farmersdelight.configuration.enableComfortHealthOverlay.tooltip": "Si está habilitado, una interfaz deslizante aparecerá en la barra de vida del jugador cuando tenga el efecto de Comodidad.", "farmersdelight.configuration.enableFoodEffectTooltip": "Descripción de efectos de comida", - "farmersdelight.configuration.enableFoodEffectTooltip.tooltip": "Si está habilitado, los objetos de comida tendrán descripciones mostrando que efectos otorgan al comerlos, si es que poseen alguno. Aplica tanto a comidas del juego base como a las de este mod." + "farmersdelight.configuration.enableFoodEffectTooltip.tooltip": "Si está habilitado, los objetos de comida tendrán descripciones mostrando que efectos otorgan al comerlos, si es que poseen alguno. Aplica tanto a comidas del juego base como a las de este mod.", + + "_comment.farmersdelight.item_aliases": "Block item aliases for Minecraft 26.2 item translation keys.", + "item.farmersdelight.acacia_cabinet": "Alacena de acacia", + "item.farmersdelight.apple_pie": "Tarta de manzana", + "item.farmersdelight.bamboo_basket": "Canasta de bambú", + "item.farmersdelight.bamboo_cabinet": "Alacena de bambú", + "item.farmersdelight.beetroot_crate": "Cajón de remolachas", + "item.farmersdelight.birch_cabinet": "Alacena de abedul", + "item.farmersdelight.black_canvas_sign": "Cartel de lienzo negro", + "item.farmersdelight.black_hanging_canvas_sign": "Cartel colgante de lienzo negro", + "item.farmersdelight.blue_canvas_sign": "Cartel de lienzo azul", + "item.farmersdelight.blue_hanging_canvas_sign": "Cartel colgante de lienzo azul", + "item.farmersdelight.brown_canvas_sign": "Cartel de lienzo marron", + "item.farmersdelight.brown_hanging_canvas_sign": "Cartel colgante de lienzo marron", + "item.farmersdelight.brown_mushroom_colony": "Colonia de hongos marrones", + "item.farmersdelight.cabbage_crate": "Cajón de repollos", + "item.farmersdelight.canvas_rug": "Alfombra de lienzo", + "item.farmersdelight.canvas_sign": "Cartel de lienzo", + "item.farmersdelight.carrot_crate": "Cajón de zanahorias", + "item.farmersdelight.cherry_cabinet": "Alacena de cerezo", + "item.farmersdelight.chocolate_pie": "Tarta de chocolate", + "item.farmersdelight.cooking_pot": "Olla", + "item.farmersdelight.crimson_cabinet": "Alacena carmesí", + "item.farmersdelight.cutting_board": "Tabla de picar", + "item.farmersdelight.cyan_canvas_sign": "Cartel de lienzo cian", + "item.farmersdelight.cyan_hanging_canvas_sign": "Cartel colgante de lienzo cian", + "item.farmersdelight.dark_oak_cabinet": "Alacena de roble oscuro", + "item.farmersdelight.full_tatami_mat": "Esterilla de tatami completa", + "item.farmersdelight.gleaming_salad_block": "Ensalada brillante", + "item.farmersdelight.gray_canvas_sign": "Cartel de lienzo gris", + "item.farmersdelight.gray_hanging_canvas_sign": "Cartel colgante de lienzo gris", + "item.farmersdelight.green_canvas_sign": "Cartel de lienzo verde", + "item.farmersdelight.green_hanging_canvas_sign": "Cartel colgante de lienzo verde", + "item.farmersdelight.half_tatami_mat": "Esterilla de tatami mediana", + "item.farmersdelight.hanging_canvas_sign": "Cartel colgante de lienzo", + "item.farmersdelight.honey_glazed_ham_block": "Jamón glaseado en miel", + "item.farmersdelight.jungle_cabinet": "Alacena de jungla", + "item.farmersdelight.light_blue_canvas_sign": "Cartel de lienzo celeste", + "item.farmersdelight.light_blue_hanging_canvas_sign": "Cartel colgante de lienzo celeste", + "item.farmersdelight.light_gray_canvas_sign": "Cartel de lienzo gris claro", + "item.farmersdelight.light_gray_hanging_canvas_sign": "Cartel colgante de lienzo gris claro", + "item.farmersdelight.lime_canvas_sign": "Cartel de lienzo lima", + "item.farmersdelight.lime_hanging_canvas_sign": "Cartel colgante de lienzo lima", + "item.farmersdelight.magenta_canvas_sign": "Cartel de lienzo magenta", + "item.farmersdelight.magenta_hanging_canvas_sign": "Cartel colgante de lienzo magenta", + "item.farmersdelight.mangrove_cabinet": "Alacena de mangle", + "item.farmersdelight.oak_cabinet": "Alacena de roble", + "item.farmersdelight.onion_crate": "Cajón de cebollas", + "item.farmersdelight.orange_canvas_sign": "Cartel de lienzo naranja", + "item.farmersdelight.orange_hanging_canvas_sign": "Cartel colgante de lienzo naranja", + "item.farmersdelight.organic_compost": "Abono orgánico", + "item.farmersdelight.pink_canvas_sign": "Cartel de lienzo rosa", + "item.farmersdelight.pink_hanging_canvas_sign": "Cartel colgante de lienzo rosa", + "item.farmersdelight.potato_crate": "Cajón de papas", + "item.farmersdelight.purple_canvas_sign": "Cartel de lienzo purpura", + "item.farmersdelight.purple_hanging_canvas_sign": "Cartel colgante de lienzo morado", + "item.farmersdelight.red_canvas_sign": "Cartel de lienzo rojo", + "item.farmersdelight.red_hanging_canvas_sign": "Cartel colgante de lienzo rojo", + "item.farmersdelight.red_mushroom_colony": "Colonia de hongos rojos", + "item.farmersdelight.rice_bag": "Bolsa de arroz", + "item.farmersdelight.rice_bale": "Fardo de arroz", + "item.farmersdelight.rice_roll_medley_block": "Bandeja de rollos de arroz", + "item.farmersdelight.rich_soil": "Suelo fértil", + "item.farmersdelight.rich_soil_farmland": "Tierra de suelo fértil", + "item.farmersdelight.roast_chicken_block": "Pollo asado", + "item.farmersdelight.rope": "Cuerda", + "item.farmersdelight.rope_fence": "Valla de cuerda", + "item.farmersdelight.rope_fence_gate": "Puerta de valla de cuerda", + "item.farmersdelight.safety_net": "Red de seguridad", + "item.farmersdelight.sandy_shrub": "Arbusto arenoso", + "item.farmersdelight.shepherds_pie_block": "Pastel de papa", + "item.farmersdelight.skillet": "Sartén", + "item.farmersdelight.spruce_cabinet": "Alacena de abeto", + "item.farmersdelight.stove": "Parrilla", + "item.farmersdelight.straw_bale": "Fardo de paja", + "item.farmersdelight.stuffed_pumpkin_block": "Zapallo relleno", + "item.farmersdelight.sweet_berry_cheesecake": "Cheesecake de bayas dulces", + "item.farmersdelight.tatami": "Bloque de tatami", + "item.farmersdelight.tomato_crate": "Cajón de tomates", + "item.farmersdelight.warped_cabinet": "Alacena distorcionada", + "item.farmersdelight.white_canvas_sign": "Cartel de lienzo blanco", + "item.farmersdelight.white_hanging_canvas_sign": "Cartel colgante de lienzo blanco", + "item.farmersdelight.wild_beetroots": "Remolacha marina", + "item.farmersdelight.wild_cabbages": "Repollo silvestre", + "item.farmersdelight.wild_carrots": "Zanahoria silvestre", + "item.farmersdelight.wild_onions": "Cebolla Silvestre", + "item.farmersdelight.wild_potatoes": "Papa silvestre", + "item.farmersdelight.wild_rice": "Arroz silvestre", + "item.farmersdelight.wild_tomatoes": "Arbusto de tomate", + "item.farmersdelight.wooden_basket": "Canasta", + "item.farmersdelight.yellow_canvas_sign": "Cartel de lienzo amarillo", + "item.farmersdelight.yellow_hanging_canvas_sign": "Cartel colgante de lienzo amarillo" } diff --git a/src/main/resources/assets/farmersdelight/lang/es_cl.json b/src/main/resources/assets/farmersdelight/lang/es_cl.json index 434fe0b8b..24417546a 100644 --- a/src/main/resources/assets/farmersdelight/lang/es_cl.json +++ b/src/main/resources/assets/farmersdelight/lang/es_cl.json @@ -314,5 +314,93 @@ "jei.farmersdelight.info.wild_onions": "Las cebollas pueden econtrarse de forma más común como una planta salvaje en climas templados, como llanuras y bosques.", "jei.farmersdelight.info.wild_potatoes": "Las papas pueden econtrarse de forma más común como una planta salvaje en climas fríos, como montañas y taiga.", "jei.farmersdelight.info.wild_tomatoes": "Los tomates pueden econtrarse de forma más común como una planta salvaje en climas áridos, como sabanas y desiertos.", - "jei.farmersdelight.info.wild_rice": "El arroz puede econtrarse de forma más común como una planta salvaje en en los estanques de tierras humedas, como pantanos y selvas." + "jei.farmersdelight.info.wild_rice": "El arroz puede econtrarse de forma más común como una planta salvaje en en los estanques de tierras humedas, como pantanos y selvas.", + + "_comment.farmersdelight.item_aliases": "Block item aliases for Minecraft 26.2 item translation keys.", + "item.farmersdelight.acacia_cabinet": "Despensa de acacia", + "item.farmersdelight.apple_pie": "Kuchen de manzana", + "item.farmersdelight.bamboo_cabinet": "Despensa de bambú", + "item.farmersdelight.beetroot_crate": "Cajón de betarraga", + "item.farmersdelight.birch_cabinet": "Despensa de abedul", + "item.farmersdelight.black_canvas_sign": "Letrero de lienzo negro", + "item.farmersdelight.black_hanging_canvas_sign": "Letrero colgante de lienzo negro", + "item.farmersdelight.blue_canvas_sign": "Letrero de lienzo azul", + "item.farmersdelight.blue_hanging_canvas_sign": "Letrero colgante de lienzo azul", + "item.farmersdelight.brown_canvas_sign": "Letrero de lienzo café", + "item.farmersdelight.brown_hanging_canvas_sign": "Letrero colgante de lienzo café", + "item.farmersdelight.brown_mushroom_colony": "Colonia de callampas cafés", + "item.farmersdelight.cabbage_crate": "Cajón de repollos", + "item.farmersdelight.canvas_rug": "Alfombra de lienzo", + "item.farmersdelight.canvas_sign": "Letrero de lienzo", + "item.farmersdelight.carrot_crate": "Cajón de zanahorias", + "item.farmersdelight.cherry_cabinet": "Despensa de cerezo", + "item.farmersdelight.chocolate_pie": "Torta de chocolate", + "item.farmersdelight.cooking_pot": "Olla", + "item.farmersdelight.crimson_cabinet": "Despensa carmesí", + "item.farmersdelight.cutting_board": "Tabla de picar", + "item.farmersdelight.cyan_canvas_sign": "Letrero de lienzo cian", + "item.farmersdelight.cyan_hanging_canvas_sign": "Letrero colgante de lienzo cian", + "item.farmersdelight.dark_oak_cabinet": "Despensa de roble oscuro", + "item.farmersdelight.full_tatami_mat": "Tatami completo", + "item.farmersdelight.gray_canvas_sign": "Letrero de lienzo gris", + "item.farmersdelight.gray_hanging_canvas_sign": "Letrero colgante de lienzo gris", + "item.farmersdelight.green_canvas_sign": "Letrero de lienzo verde", + "item.farmersdelight.green_hanging_canvas_sign": "Letrero colgante de lienzo verde", + "item.farmersdelight.half_tatami_mat": "Medio tatami", + "item.farmersdelight.hanging_canvas_sign": "Letrero colgante de lienzo", + "item.farmersdelight.honey_glazed_ham_block": "Jamón glaseado con miel", + "item.farmersdelight.jungle_cabinet": "Despensa de jungla", + "item.farmersdelight.light_blue_canvas_sign": "Letrero de lienzo celeste", + "item.farmersdelight.light_blue_hanging_canvas_sign": "Letrero colgante de lienzo celeste", + "item.farmersdelight.light_gray_canvas_sign": "Letrero de lienzo gris claro", + "item.farmersdelight.light_gray_hanging_canvas_sign": "Letrero colgante de lienzo gris claro", + "item.farmersdelight.lime_canvas_sign": "Letrero de lienzo verde lima", + "item.farmersdelight.lime_hanging_canvas_sign": "Letrero colgante de lienzo verde lima", + "item.farmersdelight.magenta_canvas_sign": "Letrero de lienzo magenta", + "item.farmersdelight.magenta_hanging_canvas_sign": "Letrero colgante de lienzo magenta", + "item.farmersdelight.mangrove_cabinet": "Despensa de mangle", + "item.farmersdelight.oak_cabinet": "Despensa de roble", + "item.farmersdelight.onion_crate": "Cajón de cebollas", + "item.farmersdelight.orange_canvas_sign": "Letrero de lienzo naranja", + "item.farmersdelight.orange_hanging_canvas_sign": "Letrero colgante de lienzo naranja", + "item.farmersdelight.organic_compost": "Abono orgánico", + "item.farmersdelight.pink_canvas_sign": "Letrero de lienzo rosa", + "item.farmersdelight.pink_hanging_canvas_sign": "Letrero colgante de lienzo rosa", + "item.farmersdelight.potato_crate": "Cajón de papas", + "item.farmersdelight.purple_canvas_sign": "Letrero de lienzo morado", + "item.farmersdelight.purple_hanging_canvas_sign": "Letrero colgante de lienzo morado", + "item.farmersdelight.red_canvas_sign": "Letrero de lienzo rojo", + "item.farmersdelight.red_hanging_canvas_sign": "Letrero colgante de lienzo rojo", + "item.farmersdelight.red_mushroom_colony": "Colonia de callampas rojos", + "item.farmersdelight.rice_bag": "Bolsa de arroz", + "item.farmersdelight.rice_bale": "Paca de arroz", + "item.farmersdelight.rice_roll_medley_block": "Mezcla de rollos de arroz", + "item.farmersdelight.rich_soil": "Suelo rico", + "item.farmersdelight.rich_soil_farmland": "Tierras de cultivo de suelo rico", + "item.farmersdelight.roast_chicken_block": "Pollo asado", + "item.farmersdelight.rope": "Cuerda", + "item.farmersdelight.safety_net": "Red de seguridad", + "item.farmersdelight.sandy_shrub": "Arbusto arenoso", + "item.farmersdelight.shepherds_pie_block": "Pastel de papa", + "item.farmersdelight.skillet": "Sartén", + "item.farmersdelight.spruce_cabinet": "Despensa de abeto", + "item.farmersdelight.stove": "Parrilla", + "item.farmersdelight.straw_bale": "Paca de paja", + "item.farmersdelight.stuffed_pumpkin_block": "Zapallo relleno", + "item.farmersdelight.sweet_berry_cheesecake": "Cheesecake de bayas dulces", + "item.farmersdelight.tatami": "Tatami", + "item.farmersdelight.tomato_crate": "Cajón de tomates", + "item.farmersdelight.warped_cabinet": "Despensa distorsionada", + "item.farmersdelight.white_canvas_sign": "Letrero de lienzo blanco", + "item.farmersdelight.white_hanging_canvas_sign": "Letrero colgante de lienzo blanco", + "item.farmersdelight.wild_beetroots": "Betarraga silvestre", + "item.farmersdelight.wild_cabbages": "Repollo silvestre", + "item.farmersdelight.wild_carrots": "Zanahoria silvestre", + "item.farmersdelight.wild_onions": "Cebolla silvestre", + "item.farmersdelight.wild_potatoes": "Papa silvestre", + "item.farmersdelight.wild_rice": "Arroz silvestre", + "item.farmersdelight.wild_tomatoes": "Planta de tomate silvestre", + "item.farmersdelight.wooden_basket": "Cesta", + "item.farmersdelight.yellow_canvas_sign": "Letrero de lienzo amarillo", + "item.farmersdelight.yellow_hanging_canvas_sign": "Letrero colgante de lienzo amarillo" } diff --git a/src/main/resources/assets/farmersdelight/lang/es_ec.json b/src/main/resources/assets/farmersdelight/lang/es_ec.json index adc69bcb1..ff3cd5d88 100644 --- a/src/main/resources/assets/farmersdelight/lang/es_ec.json +++ b/src/main/resources/assets/farmersdelight/lang/es_ec.json @@ -216,5 +216,52 @@ "jei.farmersdelight.decomposition.light": "Acelerado por la luz del sol", "jei.farmersdelight.decomposition.fluid": "Acelerado por el agua adyacente", "jei.farmersdelight.decomposition.accelerators": "Acelerado por activadores adyacentes (ver más abajo)", - "jei.farmersdelight.info.straw": "Una fibra vegetal seca utilizada en la artesanía. Se obtiene cortando cultivos y plantas herbáceas con un Cuchillo." + "jei.farmersdelight.info.straw": "Una fibra vegetal seca utilizada en la artesanía. Se obtiene cortando cultivos y plantas herbáceas con un Cuchillo.", + + "_comment.farmersdelight.item_aliases": "Block item aliases for Minecraft 26.2 item translation keys.", + "item.farmersdelight.acacia_cabinet": "Despensa de acacia", + "item.farmersdelight.apple_pie": "Tarta de manzana", + "item.farmersdelight.beetroot_crate": "Cajón de remolacha", + "item.farmersdelight.birch_cabinet": "Despensa de abedul", + "item.farmersdelight.brown_mushroom_colony": "Colonia de hongos marrones", + "item.farmersdelight.cabbage_crate": "Cajón de coles", + "item.farmersdelight.carrot_crate": "Cajón de zanahorias", + "item.farmersdelight.chocolate_pie": "Pastel de chocolate", + "item.farmersdelight.cooking_pot": "Olla", + "item.farmersdelight.crimson_cabinet": "Despensa carmesí", + "item.farmersdelight.cutting_board": "Tabla de picar", + "item.farmersdelight.dark_oak_cabinet": "Despensa de roble oscuro", + "item.farmersdelight.full_tatami_mat": "Tatami completo", + "item.farmersdelight.half_tatami_mat": "Medio tatami", + "item.farmersdelight.honey_glazed_ham_block": "Jamón glaseado con miel", + "item.farmersdelight.jungle_cabinet": "Despensa de jungla", + "item.farmersdelight.oak_cabinet": "Despensa de roble", + "item.farmersdelight.onion_crate": "Cajón de cebollas", + "item.farmersdelight.organic_compost": "Abono orgánico", + "item.farmersdelight.potato_crate": "Cajón de patatas", + "item.farmersdelight.red_mushroom_colony": "Colonia de hongos rojos", + "item.farmersdelight.rice_bag": "Bolsa de arroz", + "item.farmersdelight.rice_bale": "Paca de arroz", + "item.farmersdelight.rich_soil": "Suelo rico", + "item.farmersdelight.rich_soil_farmland": "Tierras de cultivo de suelo rico", + "item.farmersdelight.roast_chicken_block": "Pollo asado", + "item.farmersdelight.rope": "Cuerda", + "item.farmersdelight.safety_net": "Red de seguridad", + "item.farmersdelight.shepherds_pie_block": "Pastel de pastor", + "item.farmersdelight.spruce_cabinet": "Despensa de abeto", + "item.farmersdelight.stove": "Parrilla", + "item.farmersdelight.straw_bale": "Paca de paja", + "item.farmersdelight.stuffed_pumpkin_block": "Calabaza rellena", + "item.farmersdelight.sweet_berry_cheesecake": "Cheesecake con bayas dulces", + "item.farmersdelight.tatami": "Tatami", + "item.farmersdelight.tomato_crate": "Cajón de tomates", + "item.farmersdelight.warped_cabinet": "Despensa deformada", + "item.farmersdelight.wild_beetroots": "Remolacha de mar silvestre", + "item.farmersdelight.wild_cabbages": "Col silvestre", + "item.farmersdelight.wild_carrots": "Zanahoria silvestre", + "item.farmersdelight.wild_onions": "Cebolla silvestre", + "item.farmersdelight.wild_potatoes": "Patata silvestre", + "item.farmersdelight.wild_rice": "Arroz silvestre", + "item.farmersdelight.wild_tomatoes": "Vides de tomate silvestre", + "item.farmersdelight.wooden_basket": "Cesta" } diff --git a/src/main/resources/assets/farmersdelight/lang/es_es.json b/src/main/resources/assets/farmersdelight/lang/es_es.json index 2223065ac..20fb2fd2e 100644 --- a/src/main/resources/assets/farmersdelight/lang/es_es.json +++ b/src/main/resources/assets/farmersdelight/lang/es_es.json @@ -316,5 +316,93 @@ "jei.farmersdelight.info.wild_onions": "Las cebollas se pueden encontrar comúnmente como planta silvestre en tierras templadas, como llanuras y bosques.", "jei.farmersdelight.info.wild_potatoes": "Las patatas se pueden encontrar comúnmente como planta silvestre en tierras frías, como montañas y taigas.", "jei.farmersdelight.info.wild_tomatoes": "Los tomates se pueden encontrar comúnmente como planta silvestre en tierras áridas, como sabanas y desiertos.", - "jei.farmersdelight.info.wild_rice": "El arroz se puede encontrar comúnmente como planta silvestre en los estanques de tierras húmedas, como pantanos y selvas." + "jei.farmersdelight.info.wild_rice": "El arroz se puede encontrar comúnmente como planta silvestre en los estanques de tierras húmedas, como pantanos y selvas.", + + "_comment.farmersdelight.item_aliases": "Block item aliases for Minecraft 26.2 item translation keys.", + "item.farmersdelight.acacia_cabinet": "Despensa de acacia", + "item.farmersdelight.apple_pie": "Tarta de manzana", + "item.farmersdelight.bamboo_cabinet": "Despensa de bambú", + "item.farmersdelight.beetroot_crate": "Cajón de remolacha", + "item.farmersdelight.birch_cabinet": "Despensa de abedul", + "item.farmersdelight.black_canvas_sign": "Cartel de tela negra", + "item.farmersdelight.black_hanging_canvas_sign": "Cartel colgante de tela negra", + "item.farmersdelight.blue_canvas_sign": "Cartel de tela azul", + "item.farmersdelight.blue_hanging_canvas_sign": "Cartel colgante de tela azul", + "item.farmersdelight.brown_canvas_sign": "Cartel de tela marrón", + "item.farmersdelight.brown_hanging_canvas_sign": "Cartel colgante de tela marrón", + "item.farmersdelight.brown_mushroom_colony": "Colonia de champiñones marrones", + "item.farmersdelight.cabbage_crate": "Cajón de coles", + "item.farmersdelight.canvas_rug": "Alfombra de tela", + "item.farmersdelight.canvas_sign": "Cartel de tela", + "item.farmersdelight.carrot_crate": "Cajón de zanahorias", + "item.farmersdelight.cherry_cabinet": "Despensa de cerezo", + "item.farmersdelight.chocolate_pie": "Pastel de chocolate", + "item.farmersdelight.cooking_pot": "Olla", + "item.farmersdelight.crimson_cabinet": "Despensa carmesí", + "item.farmersdelight.cutting_board": "Tabla de picar", + "item.farmersdelight.cyan_canvas_sign": "Cartel de tela cian", + "item.farmersdelight.cyan_hanging_canvas_sign": "Cartel colgante de tela cian", + "item.farmersdelight.dark_oak_cabinet": "Despensa de roble oscuro", + "item.farmersdelight.full_tatami_mat": "Tatami completo", + "item.farmersdelight.gray_canvas_sign": "Cartel de tela gris", + "item.farmersdelight.gray_hanging_canvas_sign": "Cartel colgante de tela gris", + "item.farmersdelight.green_canvas_sign": "Cartel de tela verde", + "item.farmersdelight.green_hanging_canvas_sign": "Cartel colgante de tela verde", + "item.farmersdelight.half_tatami_mat": "Medio tatami", + "item.farmersdelight.hanging_canvas_sign": "Cartel colgante de tela", + "item.farmersdelight.honey_glazed_ham_block": "Jamón glaseado con miel", + "item.farmersdelight.jungle_cabinet": "Despensa de jungla", + "item.farmersdelight.light_blue_canvas_sign": "Cartel de tela azul claro", + "item.farmersdelight.light_blue_hanging_canvas_sign": "Cartel colgante de tela azul claro", + "item.farmersdelight.light_gray_canvas_sign": "Cartel de tela gris claro", + "item.farmersdelight.light_gray_hanging_canvas_sign": "Cartel colgante de tela gris claro", + "item.farmersdelight.lime_canvas_sign": "Cartel de tela verde lima", + "item.farmersdelight.lime_hanging_canvas_sign": "Cartel colgante de tela verde lima", + "item.farmersdelight.magenta_canvas_sign": "Cartel de tela magenta", + "item.farmersdelight.magenta_hanging_canvas_sign": "Cartel colgante de tela magenta", + "item.farmersdelight.mangrove_cabinet": "Despensa de mangle", + "item.farmersdelight.oak_cabinet": "Despensa de roble", + "item.farmersdelight.onion_crate": "Cajón de cebollas", + "item.farmersdelight.orange_canvas_sign": "Cartel de tela naranja", + "item.farmersdelight.orange_hanging_canvas_sign": "Cartel colgante de tela naranja", + "item.farmersdelight.organic_compost": "Abono orgánico", + "item.farmersdelight.pink_canvas_sign": "Cartel de tela rosa", + "item.farmersdelight.pink_hanging_canvas_sign": "Cartel colgante de tela rosa", + "item.farmersdelight.potato_crate": "Cajón de patatas", + "item.farmersdelight.purple_canvas_sign": "Cartel de tela morada", + "item.farmersdelight.purple_hanging_canvas_sign": "Cartel colgante de tela morada", + "item.farmersdelight.red_canvas_sign": "Cartel de tela roja", + "item.farmersdelight.red_hanging_canvas_sign": "Cartel colgante de tela roja", + "item.farmersdelight.red_mushroom_colony": "Colonia de champiñones rojos", + "item.farmersdelight.rice_bag": "Saco de arroz", + "item.farmersdelight.rice_bale": "Paca de arroz", + "item.farmersdelight.rice_roll_medley_block": "Rollos de arroz", + "item.farmersdelight.rich_soil": "Suelo rico", + "item.farmersdelight.rich_soil_farmland": "Tierras de cultivo de suelo rico", + "item.farmersdelight.roast_chicken_block": "Pollo asado", + "item.farmersdelight.rope": "Cuerda", + "item.farmersdelight.safety_net": "Red de seguridad", + "item.farmersdelight.sandy_shrub": "Arbusto arenoso", + "item.farmersdelight.shepherds_pie_block": "Pastel de pastor", + "item.farmersdelight.skillet": "Sartén", + "item.farmersdelight.spruce_cabinet": "Despensa de abeto", + "item.farmersdelight.stove": "Parrilla", + "item.farmersdelight.straw_bale": "Paca de paja", + "item.farmersdelight.stuffed_pumpkin_block": "Calabaza rellena", + "item.farmersdelight.sweet_berry_cheesecake": "Tarta de bayas dulces", + "item.farmersdelight.tatami": "Tatami", + "item.farmersdelight.tomato_crate": "Cajón de tomates", + "item.farmersdelight.warped_cabinet": "Despensa distorsionada", + "item.farmersdelight.white_canvas_sign": "Cartel de tela blanca", + "item.farmersdelight.white_hanging_canvas_sign": "Cartel colgante de tela blanca", + "item.farmersdelight.wild_beetroots": "Remolacha de mar silvestre", + "item.farmersdelight.wild_cabbages": "Col silvestre", + "item.farmersdelight.wild_carrots": "Zanahoria silvestre", + "item.farmersdelight.wild_onions": "Cebolla silvestre", + "item.farmersdelight.wild_potatoes": "Patata silvestre", + "item.farmersdelight.wild_rice": "Arroz silvestre", + "item.farmersdelight.wild_tomatoes": "Vides de tomate silvestre", + "item.farmersdelight.wooden_basket": "Cesta", + "item.farmersdelight.yellow_canvas_sign": "Cartel de tela amarilla", + "item.farmersdelight.yellow_hanging_canvas_sign": "Cartel colgante de tela amarilla" } diff --git a/src/main/resources/assets/farmersdelight/lang/es_mx.json b/src/main/resources/assets/farmersdelight/lang/es_mx.json index 941f12659..f0f110cbf 100644 --- a/src/main/resources/assets/farmersdelight/lang/es_mx.json +++ b/src/main/resources/assets/farmersdelight/lang/es_mx.json @@ -316,5 +316,93 @@ "jei.farmersdelight.info.wild_onions": "Las cebollas pueden econtrarse de forma más común como una planta salvaje en climas templados, como llanuras y bosques.", "jei.farmersdelight.info.wild_potatoes": "Las papas pueden econtrarse de forma más común como una planta salvaje en climas fríos, como montañas y taiga.", "jei.farmersdelight.info.wild_tomatoes": "Los tomates pueden econtrarse de forma más común como una planta salvaje en climas áridos, como sabanas y desiertos.", - "jei.farmersdelight.info.wild_rice": "El arroz puede econtrarse de forma más común como una planta salvaje en en los estanques de tierras humedas, como pantanos y selvas." + "jei.farmersdelight.info.wild_rice": "El arroz puede econtrarse de forma más común como una planta salvaje en en los estanques de tierras humedas, como pantanos y selvas.", + + "_comment.farmersdelight.item_aliases": "Block item aliases for Minecraft 26.2 item translation keys.", + "item.farmersdelight.acacia_cabinet": "Gabinete de acacia", + "item.farmersdelight.apple_pie": "Pastel de manzana", + "item.farmersdelight.bamboo_cabinet": "Gabinete de bambú", + "item.farmersdelight.beetroot_crate": "Caja de betabeles", + "item.farmersdelight.birch_cabinet": "Gabinete de abedul", + "item.farmersdelight.black_canvas_sign": "Letrero de lienzo negro", + "item.farmersdelight.black_hanging_canvas_sign": "Letrero colgante de lienzo negro", + "item.farmersdelight.blue_canvas_sign": "Letrero de lienzo azul", + "item.farmersdelight.blue_hanging_canvas_sign": "Letrero colgante de lienzo azul", + "item.farmersdelight.brown_canvas_sign": "Letrero de lienzo café", + "item.farmersdelight.brown_hanging_canvas_sign": "Letrero colgante de lienzo café", + "item.farmersdelight.brown_mushroom_colony": "Colonia de hongos cafés", + "item.farmersdelight.cabbage_crate": "Caja de repollos", + "item.farmersdelight.canvas_rug": "Alfombra de lienzo", + "item.farmersdelight.canvas_sign": "Letrero de lienzo", + "item.farmersdelight.carrot_crate": "Caja de zanahorias", + "item.farmersdelight.cherry_cabinet": "Gabinete de cerezo", + "item.farmersdelight.chocolate_pie": "Pastel de chocolate", + "item.farmersdelight.cooking_pot": "Olla para cocer", + "item.farmersdelight.crimson_cabinet": "Gabinete carmesí", + "item.farmersdelight.cutting_board": "Tabla para cortar", + "item.farmersdelight.cyan_canvas_sign": "Letrero de lienzo cian", + "item.farmersdelight.cyan_hanging_canvas_sign": "Letrero colgante de lienzo cian", + "item.farmersdelight.dark_oak_cabinet": "Gabinete de roble oscuro", + "item.farmersdelight.full_tatami_mat": "Tatami completo", + "item.farmersdelight.gray_canvas_sign": "Letrero de lienzo gris", + "item.farmersdelight.gray_hanging_canvas_sign": "Letrero colgante de lienzo gris", + "item.farmersdelight.green_canvas_sign": "Letrero de lienzo verde", + "item.farmersdelight.green_hanging_canvas_sign": "Letrero colgante de lienzo verde", + "item.farmersdelight.half_tatami_mat": "Medio tatami", + "item.farmersdelight.hanging_canvas_sign": "Letrero colgante de lienzo", + "item.farmersdelight.honey_glazed_ham_block": "Jamón ahumado con miel", + "item.farmersdelight.jungle_cabinet": "Gabinete de jungla", + "item.farmersdelight.light_blue_canvas_sign": "Letrero de lienzo azul claro", + "item.farmersdelight.light_blue_hanging_canvas_sign": "Letrero colgante de lienzo azul claro", + "item.farmersdelight.light_gray_canvas_sign": "Letrero de lienzo gris claro", + "item.farmersdelight.light_gray_hanging_canvas_sign": "Letrero colgante de lienzo gris claro", + "item.farmersdelight.lime_canvas_sign": "Letrero de lienzo verde lima", + "item.farmersdelight.lime_hanging_canvas_sign": "Letrero colgante de lienzo verde lima", + "item.farmersdelight.magenta_canvas_sign": "Letrero de lienzo magenta", + "item.farmersdelight.magenta_hanging_canvas_sign": "Letrero colgante de lienzo magenta", + "item.farmersdelight.mangrove_cabinet": "Gabinete de mangle", + "item.farmersdelight.oak_cabinet": "Gabinete de roble", + "item.farmersdelight.onion_crate": "Caja de cebollas", + "item.farmersdelight.orange_canvas_sign": "Letrero de lienzo naranja", + "item.farmersdelight.orange_hanging_canvas_sign": "Letrero colgante de lienzo naranja", + "item.farmersdelight.organic_compost": "Abono orgánico", + "item.farmersdelight.pink_canvas_sign": "Letrero de lienzo rosa", + "item.farmersdelight.pink_hanging_canvas_sign": "Letrero colgante de lienzo rosa", + "item.farmersdelight.potato_crate": "Caja de papas", + "item.farmersdelight.purple_canvas_sign": "Letrero de lienzo morado", + "item.farmersdelight.purple_hanging_canvas_sign": "Letrero colgante de lienzo morado", + "item.farmersdelight.red_canvas_sign": "Letrero de lienzo rojo", + "item.farmersdelight.red_hanging_canvas_sign": "Letrero colgante de lienzo rojo", + "item.farmersdelight.red_mushroom_colony": "Colonia de hongos rojos", + "item.farmersdelight.rice_bag": "Bolsa de arroz", + "item.farmersdelight.rice_bale": "Paca de arroz", + "item.farmersdelight.rice_roll_medley_block": "Mezcla de rollos de arroz", + "item.farmersdelight.rich_soil": "Tierra enriquecida", + "item.farmersdelight.rich_soil_farmland": "Tierra para sembrar enriquecida", + "item.farmersdelight.roast_chicken_block": "Pollo asado", + "item.farmersdelight.rope": "Cuerda", + "item.farmersdelight.safety_net": "Red de seguridad", + "item.farmersdelight.sandy_shrub": "Arbusto arenoso", + "item.farmersdelight.shepherds_pie_block": "Pastel al pastor", + "item.farmersdelight.skillet": "Sartén", + "item.farmersdelight.spruce_cabinet": "Gabinete de abeto", + "item.farmersdelight.stove": "Parrilla", + "item.farmersdelight.straw_bale": "Paca de paja", + "item.farmersdelight.stuffed_pumpkin_block": "Calabaza rellena", + "item.farmersdelight.sweet_berry_cheesecake": "Pastel de bayas dulces", + "item.farmersdelight.tatami": "Bloque tatami", + "item.farmersdelight.tomato_crate": "Caja de tomates", + "item.farmersdelight.warped_cabinet": "Gabinete retorcido", + "item.farmersdelight.white_canvas_sign": "Letrero de lienzo blanco", + "item.farmersdelight.white_hanging_canvas_sign": "Letrero colgante de lienzo blanco", + "item.farmersdelight.wild_beetroots": "Betabel silvestre", + "item.farmersdelight.wild_cabbages": "Repollo silvestre", + "item.farmersdelight.wild_carrots": "Zanahoria silvestre", + "item.farmersdelight.wild_onions": "Cebolla silvestre", + "item.farmersdelight.wild_potatoes": "Papa silvestre", + "item.farmersdelight.wild_rice": "Arroz silvestre", + "item.farmersdelight.wild_tomatoes": "Planta de tomate silvestre", + "item.farmersdelight.wooden_basket": "Canasta", + "item.farmersdelight.yellow_canvas_sign": "Letrero de lienzo amarillo", + "item.farmersdelight.yellow_hanging_canvas_sign": "Letrero colgante de lienzo amarillo" } diff --git a/src/main/resources/assets/farmersdelight/lang/es_uy.json b/src/main/resources/assets/farmersdelight/lang/es_uy.json index adc69bcb1..ff3cd5d88 100644 --- a/src/main/resources/assets/farmersdelight/lang/es_uy.json +++ b/src/main/resources/assets/farmersdelight/lang/es_uy.json @@ -216,5 +216,52 @@ "jei.farmersdelight.decomposition.light": "Acelerado por la luz del sol", "jei.farmersdelight.decomposition.fluid": "Acelerado por el agua adyacente", "jei.farmersdelight.decomposition.accelerators": "Acelerado por activadores adyacentes (ver más abajo)", - "jei.farmersdelight.info.straw": "Una fibra vegetal seca utilizada en la artesanía. Se obtiene cortando cultivos y plantas herbáceas con un Cuchillo." + "jei.farmersdelight.info.straw": "Una fibra vegetal seca utilizada en la artesanía. Se obtiene cortando cultivos y plantas herbáceas con un Cuchillo.", + + "_comment.farmersdelight.item_aliases": "Block item aliases for Minecraft 26.2 item translation keys.", + "item.farmersdelight.acacia_cabinet": "Despensa de acacia", + "item.farmersdelight.apple_pie": "Tarta de manzana", + "item.farmersdelight.beetroot_crate": "Cajón de remolacha", + "item.farmersdelight.birch_cabinet": "Despensa de abedul", + "item.farmersdelight.brown_mushroom_colony": "Colonia de hongos marrones", + "item.farmersdelight.cabbage_crate": "Cajón de coles", + "item.farmersdelight.carrot_crate": "Cajón de zanahorias", + "item.farmersdelight.chocolate_pie": "Pastel de chocolate", + "item.farmersdelight.cooking_pot": "Olla", + "item.farmersdelight.crimson_cabinet": "Despensa carmesí", + "item.farmersdelight.cutting_board": "Tabla de picar", + "item.farmersdelight.dark_oak_cabinet": "Despensa de roble oscuro", + "item.farmersdelight.full_tatami_mat": "Tatami completo", + "item.farmersdelight.half_tatami_mat": "Medio tatami", + "item.farmersdelight.honey_glazed_ham_block": "Jamón glaseado con miel", + "item.farmersdelight.jungle_cabinet": "Despensa de jungla", + "item.farmersdelight.oak_cabinet": "Despensa de roble", + "item.farmersdelight.onion_crate": "Cajón de cebollas", + "item.farmersdelight.organic_compost": "Abono orgánico", + "item.farmersdelight.potato_crate": "Cajón de patatas", + "item.farmersdelight.red_mushroom_colony": "Colonia de hongos rojos", + "item.farmersdelight.rice_bag": "Bolsa de arroz", + "item.farmersdelight.rice_bale": "Paca de arroz", + "item.farmersdelight.rich_soil": "Suelo rico", + "item.farmersdelight.rich_soil_farmland": "Tierras de cultivo de suelo rico", + "item.farmersdelight.roast_chicken_block": "Pollo asado", + "item.farmersdelight.rope": "Cuerda", + "item.farmersdelight.safety_net": "Red de seguridad", + "item.farmersdelight.shepherds_pie_block": "Pastel de pastor", + "item.farmersdelight.spruce_cabinet": "Despensa de abeto", + "item.farmersdelight.stove": "Parrilla", + "item.farmersdelight.straw_bale": "Paca de paja", + "item.farmersdelight.stuffed_pumpkin_block": "Calabaza rellena", + "item.farmersdelight.sweet_berry_cheesecake": "Cheesecake con bayas dulces", + "item.farmersdelight.tatami": "Tatami", + "item.farmersdelight.tomato_crate": "Cajón de tomates", + "item.farmersdelight.warped_cabinet": "Despensa deformada", + "item.farmersdelight.wild_beetroots": "Remolacha de mar silvestre", + "item.farmersdelight.wild_cabbages": "Col silvestre", + "item.farmersdelight.wild_carrots": "Zanahoria silvestre", + "item.farmersdelight.wild_onions": "Cebolla silvestre", + "item.farmersdelight.wild_potatoes": "Patata silvestre", + "item.farmersdelight.wild_rice": "Arroz silvestre", + "item.farmersdelight.wild_tomatoes": "Vides de tomate silvestre", + "item.farmersdelight.wooden_basket": "Cesta" } diff --git a/src/main/resources/assets/farmersdelight/lang/es_ve.json b/src/main/resources/assets/farmersdelight/lang/es_ve.json index 04400eb8f..d08ff87b9 100644 --- a/src/main/resources/assets/farmersdelight/lang/es_ve.json +++ b/src/main/resources/assets/farmersdelight/lang/es_ve.json @@ -217,5 +217,52 @@ "jei.farmersdelight.decomposition.light": "Acelerado por la luz del sol", "jei.farmersdelight.decomposition.fluid": "Acelerado por el agua adyacente", "jei.farmersdelight.decomposition.accelerators": "Acelerado por activadores adyacentes (ver más abajo)", - "jei.farmersdelight.info.straw": "Una fibra vegetal seca utilizada en la artesanía. Se obtiene cortando cultivos y plantas herbáceas con un Cuchillo." + "jei.farmersdelight.info.straw": "Una fibra vegetal seca utilizada en la artesanía. Se obtiene cortando cultivos y plantas herbáceas con un Cuchillo.", + + "_comment.farmersdelight.item_aliases": "Block item aliases for Minecraft 26.2 item translation keys.", + "item.farmersdelight.acacia_cabinet": "Despensa de acacia", + "item.farmersdelight.apple_pie": "Tarta de manzana", + "item.farmersdelight.beetroot_crate": "Cajón de remolacha", + "item.farmersdelight.birch_cabinet": "Despensa de abedul", + "item.farmersdelight.brown_mushroom_colony": "Colonia de hongos marrones", + "item.farmersdelight.cabbage_crate": "Cajón de coles", + "item.farmersdelight.carrot_crate": "Cajón de zanahorias", + "item.farmersdelight.chocolate_pie": "Pastel de chocolate", + "item.farmersdelight.cooking_pot": "Olla", + "item.farmersdelight.crimson_cabinet": "Despensa carmesí", + "item.farmersdelight.cutting_board": "Tabla de picar", + "item.farmersdelight.dark_oak_cabinet": "Despensa de roble oscuro", + "item.farmersdelight.full_tatami_mat": "Tatami completo", + "item.farmersdelight.half_tatami_mat": "Medio tatami", + "item.farmersdelight.honey_glazed_ham_block": "Jamón glaseado con miel", + "item.farmersdelight.jungle_cabinet": "Despensa de jungla", + "item.farmersdelight.oak_cabinet": "Despensa de roble", + "item.farmersdelight.onion_crate": "Cajón de cebollas", + "item.farmersdelight.organic_compost": "Abono orgánico", + "item.farmersdelight.potato_crate": "Cajón de patatas", + "item.farmersdelight.red_mushroom_colony": "Colonia de hongos rojos", + "item.farmersdelight.rice_bag": "Bolsa de arroz", + "item.farmersdelight.rice_bale": "Paca de arroz", + "item.farmersdelight.rich_soil": "Suelo rico", + "item.farmersdelight.rich_soil_farmland": "Tierras de cultivo de suelo rico", + "item.farmersdelight.roast_chicken_block": "Pollo asado", + "item.farmersdelight.rope": "Cuerda", + "item.farmersdelight.safety_net": "Red de seguridad", + "item.farmersdelight.shepherds_pie_block": "Pastel de pastor", + "item.farmersdelight.spruce_cabinet": "Despensa de abeto", + "item.farmersdelight.stove": "Parrilla", + "item.farmersdelight.straw_bale": "Paca de paja", + "item.farmersdelight.stuffed_pumpkin_block": "Calabaza rellena", + "item.farmersdelight.sweet_berry_cheesecake": "Cheesecake con bayas dulces", + "item.farmersdelight.tatami": "Tatami", + "item.farmersdelight.tomato_crate": "Cajón de tomates", + "item.farmersdelight.warped_cabinet": "Despensa deformada", + "item.farmersdelight.wild_beetroots": "Remolacha de mar silvestre", + "item.farmersdelight.wild_cabbages": "Col silvestre", + "item.farmersdelight.wild_carrots": "Zanahoria silvestre", + "item.farmersdelight.wild_onions": "Cebolla silvestre", + "item.farmersdelight.wild_potatoes": "Patata silvestre", + "item.farmersdelight.wild_rice": "Arroz silvestre", + "item.farmersdelight.wild_tomatoes": "Vides de tomate silvestre", + "item.farmersdelight.wooden_basket": "Cesta" } diff --git a/src/main/resources/assets/farmersdelight/lang/fi_fi.json b/src/main/resources/assets/farmersdelight/lang/fi_fi.json index f5c80845a..4960b123c 100644 --- a/src/main/resources/assets/farmersdelight/lang/fi_fi.json +++ b/src/main/resources/assets/farmersdelight/lang/fi_fi.json @@ -254,5 +254,71 @@ "jei.farmersdelight.decomposition.accelerators": "Vieressä olevat tehostajat nopeuttavat hajoamista (ks. jäljempänä)", "jei.farmersdelight.info.straw": "Kuiva korsi, jota käytetään muiden esineiden valmistamiseen. Niitä saa leikkaamalla ruohomaisia kasveja veitsellä.", "jei.farmersdelight.info.knife": "Veitset ovat kevyitä lähitaisteluaseita. Niiden avulla ruohoista saa olkia ja eläimistä taattua lisäsaalista.", - "jei.farmersdelight.info.ham": "Sian tai hoglinin jalasta saatu suuri lihapala. Saadaksesi yhden tarvitset jotain miekkaa kevyempää..." + "jei.farmersdelight.info.ham": "Sian tai hoglinin jalasta saatu suuri lihapala. Saadaksesi yhden tarvitset jotain miekkaa kevyempää...", + + "_comment.farmersdelight.item_aliases": "Block item aliases for Minecraft 26.2 item translation keys.", + "item.farmersdelight.acacia_cabinet": "Akaasiakaappi", + "item.farmersdelight.apple_pie": "Omenapiirakka", + "item.farmersdelight.beetroot_crate": "Laatikko punajuuria", + "item.farmersdelight.birch_cabinet": "Koivukaappi", + "item.farmersdelight.black_canvas_sign": "Musta kangaskyltti", + "item.farmersdelight.blue_canvas_sign": "Sininen kangaskyltti", + "item.farmersdelight.brown_canvas_sign": "Ruskea kangaskyltti", + "item.farmersdelight.brown_mushroom_colony": "Ruskea sienirykelmä", + "item.farmersdelight.cabbage_crate": "Laatikko keräkaalia", + "item.farmersdelight.canvas_rug": "Kangasmatto", + "item.farmersdelight.canvas_sign": "Kangaskyltti", + "item.farmersdelight.carrot_crate": "Laatikko porkkanoita", + "item.farmersdelight.chocolate_pie": "Suklaapiirakka", + "item.farmersdelight.cooking_pot": "Kattila", + "item.farmersdelight.crimson_cabinet": "Karmiinikaappi", + "item.farmersdelight.cutting_board": "Leikkuulauta", + "item.farmersdelight.cyan_canvas_sign": "Syaani kangaskyltti", + "item.farmersdelight.dark_oak_cabinet": "Tumma tammikaappi", + "item.farmersdelight.full_tatami_mat": "Kokonainen tatamimatto", + "item.farmersdelight.gray_canvas_sign": "Harmaa kangaskyltti", + "item.farmersdelight.green_canvas_sign": "Vihreä kangaskyltti", + "item.farmersdelight.half_tatami_mat": "Puolikas tatamimatto", + "item.farmersdelight.honey_glazed_ham_block": "Hunajakuorrutettu kinkku", + "item.farmersdelight.jungle_cabinet": "Viidakkopuukaappi", + "item.farmersdelight.light_blue_canvas_sign": "Vaaleansininen kangaskyltti", + "item.farmersdelight.light_gray_canvas_sign": "Vaaleanharmaa kangaskyltti", + "item.farmersdelight.lime_canvas_sign": "Limetinvihreä kangaskyltti", + "item.farmersdelight.magenta_canvas_sign": "Purppura kangaskyltti", + "item.farmersdelight.oak_cabinet": "Tammikaappi", + "item.farmersdelight.onion_crate": "Laatikko sipuleita", + "item.farmersdelight.orange_canvas_sign": "Oranssi kangaskyltti", + "item.farmersdelight.organic_compost": "Orgaaninen komposti", + "item.farmersdelight.pink_canvas_sign": "Vaaleanpunainen kangaskyltti", + "item.farmersdelight.potato_crate": "Laatikko perunoita", + "item.farmersdelight.purple_canvas_sign": "Violetti kangaskyltti", + "item.farmersdelight.red_canvas_sign": "Punainen kangaskyltti", + "item.farmersdelight.red_mushroom_colony": "Kärpässienirykelmä", + "item.farmersdelight.rice_bag": "Pussi riisiä", + "item.farmersdelight.rice_bale": "Riisipaali", + "item.farmersdelight.rich_soil": "Ravinteikas multa", + "item.farmersdelight.rich_soil_farmland": "Ravinteikas viljelysmaa", + "item.farmersdelight.roast_chicken_block": "Paahdettu kana", + "item.farmersdelight.rope": "Köysi", + "item.farmersdelight.safety_net": "Turvaverkko", + "item.farmersdelight.shepherds_pie_block": "Lammaspaimenen piiras", + "item.farmersdelight.skillet": "Paistinpannu", + "item.farmersdelight.spruce_cabinet": "Kuusikaappi", + "item.farmersdelight.stove": "Liesi", + "item.farmersdelight.straw_bale": "Olkipaali", + "item.farmersdelight.stuffed_pumpkin_block": "Täytetty kurpitsa", + "item.farmersdelight.sweet_berry_cheesecake": "Makea marjajuustokakku", + "item.farmersdelight.tatami": "Tatamikuutio", + "item.farmersdelight.tomato_crate": "Laatikko tomaatteja", + "item.farmersdelight.warped_cabinet": "Kummakaappi", + "item.farmersdelight.white_canvas_sign": "Valkoinen kangaskyltti", + "item.farmersdelight.wild_beetroots": "Merijuurikas", + "item.farmersdelight.wild_cabbages": "Villikaali", + "item.farmersdelight.wild_carrots": "Villiporkkana", + "item.farmersdelight.wild_onions": "Villisipuli", + "item.farmersdelight.wild_potatoes": "Villiperuna", + "item.farmersdelight.wild_rice": "Villiriisi", + "item.farmersdelight.wild_tomatoes": "Tomaattiköynnös", + "item.farmersdelight.wooden_basket": "Kori", + "item.farmersdelight.yellow_canvas_sign": "Keltainen kangaskyltti" } diff --git a/src/main/resources/assets/farmersdelight/lang/fr_ca.json b/src/main/resources/assets/farmersdelight/lang/fr_ca.json index 135fa3c8e..fd644ac87 100644 --- a/src/main/resources/assets/farmersdelight/lang/fr_ca.json +++ b/src/main/resources/assets/farmersdelight/lang/fr_ca.json @@ -306,5 +306,93 @@ "jei.farmersdelight.decomposition.accelerators": "Accéléré par les activateurs adjacents (voir ci-dessous)", "jei.farmersdelight.info.straw": "Une fibre végétale sèche utilisée pour le crafting. Obtenue en coupant des cultures et des plantes herbacées avec un couteau.", "jei.farmersdelight.info.knife": "Les couteaux sont des armes de mêlée légères. Ils peuvent récolter de la paille sur les herbes et garantir des pièces secondaires sur les animaux.", - "jei.farmersdelight.info.ham": "Une grosse pièce de viande provenant d'un cochon ou d'une patte de Hoglin. Vous aurez besoin d'un objet plus léger qu'une épée pour en couper une..." + "jei.farmersdelight.info.ham": "Une grosse pièce de viande provenant d'un cochon ou d'une patte de Hoglin. Vous aurez besoin d'un objet plus léger qu'une épée pour en couper une...", + + "_comment.farmersdelight.item_aliases": "Block item aliases for Minecraft 26.2 item translation keys.", + "item.farmersdelight.acacia_cabinet": "Armoire en acacia", + "item.farmersdelight.apple_pie": "Tarte aux pommes", + "item.farmersdelight.bamboo_cabinet": "Armoire en bambou", + "item.farmersdelight.beetroot_crate": "Caisse de betteraves", + "item.farmersdelight.birch_cabinet": "Armoire en bouleau", + "item.farmersdelight.black_canvas_sign": "Pancarte en toile noire", + "item.farmersdelight.black_hanging_canvas_sign": "Pancarte suspendue en toile noire", + "item.farmersdelight.blue_canvas_sign": "Pancarte en toile bleue", + "item.farmersdelight.blue_hanging_canvas_sign": "Pancarte suspendue en toile bleue", + "item.farmersdelight.brown_canvas_sign": "Pancarte en toile brune", + "item.farmersdelight.brown_hanging_canvas_sign": "Pancarte suspendue en toile brune", + "item.farmersdelight.brown_mushroom_colony": "Colonie de champignons bruns", + "item.farmersdelight.cabbage_crate": "Caisse de choux", + "item.farmersdelight.canvas_rug": "Tapis en toile", + "item.farmersdelight.canvas_sign": "Pancarte en toile", + "item.farmersdelight.carrot_crate": "Caisse de carottes", + "item.farmersdelight.cherry_cabinet": "Armoire en cerisier", + "item.farmersdelight.chocolate_pie": "Tarte au chocolat", + "item.farmersdelight.cooking_pot": "Marmite", + "item.farmersdelight.crimson_cabinet": "Armoire cramoisie", + "item.farmersdelight.cutting_board": "Planche à découper", + "item.farmersdelight.cyan_canvas_sign": "Pancarte en toile cyan", + "item.farmersdelight.cyan_hanging_canvas_sign": "Pancarte suspendue en toile cyan", + "item.farmersdelight.dark_oak_cabinet": "Armoire en chêne noir", + "item.farmersdelight.full_tatami_mat": "Tatami", + "item.farmersdelight.gray_canvas_sign": "Pancarte en toile grise", + "item.farmersdelight.gray_hanging_canvas_sign": "Pancarte suspendue en toile grise", + "item.farmersdelight.green_canvas_sign": "Pancarte en toile verte", + "item.farmersdelight.green_hanging_canvas_sign": "Pancarte suspendue en toile verte", + "item.farmersdelight.half_tatami_mat": "Demi Tatami", + "item.farmersdelight.hanging_canvas_sign": "Pancarte suspendue en toile", + "item.farmersdelight.honey_glazed_ham_block": "Jambon laqué au miel", + "item.farmersdelight.jungle_cabinet": "Armoire en acajou", + "item.farmersdelight.light_blue_canvas_sign": "Pancarte en toile bleu pâle", + "item.farmersdelight.light_blue_hanging_canvas_sign": "Pancarte suspendue en toile bleu pâle", + "item.farmersdelight.light_gray_canvas_sign": "Pancarte en toile gris pâle", + "item.farmersdelight.light_gray_hanging_canvas_sign": "Pancarte suspendue en toile gris pâle", + "item.farmersdelight.lime_canvas_sign": "Pancarte en toile vert lime", + "item.farmersdelight.lime_hanging_canvas_sign": "Pancarte suspendue en toile vert lime", + "item.farmersdelight.magenta_canvas_sign": "Pancarte en toile magenta", + "item.farmersdelight.magenta_hanging_canvas_sign": "Pancarte suspendue en toile magenta", + "item.farmersdelight.mangrove_cabinet": "Armoire en palétuvier", + "item.farmersdelight.oak_cabinet": "Armoire en chêne", + "item.farmersdelight.onion_crate": "Caisse d\u0027oignons", + "item.farmersdelight.orange_canvas_sign": "Pancarte en toile orange", + "item.farmersdelight.orange_hanging_canvas_sign": "Pancarte suspendue en toile orange", + "item.farmersdelight.organic_compost": "Composte organique", + "item.farmersdelight.pink_canvas_sign": "Pancarte en toile rose", + "item.farmersdelight.pink_hanging_canvas_sign": "Pancarte suspendue en toile rose", + "item.farmersdelight.potato_crate": "Caisse de patates", + "item.farmersdelight.purple_canvas_sign": "Pancarte en toile mauve", + "item.farmersdelight.purple_hanging_canvas_sign": "Pancarte suspendue en toile mauve", + "item.farmersdelight.red_canvas_sign": "Pancarte en toile rouge", + "item.farmersdelight.red_hanging_canvas_sign": "Pancarte suspendue en toile rouge", + "item.farmersdelight.red_mushroom_colony": "Colonie de champignons rouges", + "item.farmersdelight.rice_bag": "Sac de riz", + "item.farmersdelight.rice_bale": "Ballot de riz", + "item.farmersdelight.rice_roll_medley_block": "Assortiment de rouleaux de riz", + "item.farmersdelight.rich_soil": "Terre fertile", + "item.farmersdelight.rich_soil_farmland": "Terre fertile labourée", + "item.farmersdelight.roast_chicken_block": "Poulet rôti", + "item.farmersdelight.rope": "Corde", + "item.farmersdelight.safety_net": "Filet", + "item.farmersdelight.sandy_shrub": "Arbuste sableux", + "item.farmersdelight.shepherds_pie_block": "Pâté chinois", + "item.farmersdelight.skillet": "Poêle à frire", + "item.farmersdelight.spruce_cabinet": "Armoire en épinette", + "item.farmersdelight.stove": "Four", + "item.farmersdelight.straw_bale": "Botte de paille sèche", + "item.farmersdelight.stuffed_pumpkin_block": "Citrouille farcie", + "item.farmersdelight.sweet_berry_cheesecake": "Cheesecake aux fruits rouges", + "item.farmersdelight.tatami": "Block de tatami", + "item.farmersdelight.tomato_crate": "Caisse de tomates", + "item.farmersdelight.warped_cabinet": "Armoire tordue", + "item.farmersdelight.white_canvas_sign": "Pancarte en toile blanche", + "item.farmersdelight.white_hanging_canvas_sign": "Pancarte suspendue en toile blanche", + "item.farmersdelight.wild_beetroots": "Betteraves sauvages", + "item.farmersdelight.wild_cabbages": "Choux sauvages", + "item.farmersdelight.wild_carrots": "Carottes sauvages", + "item.farmersdelight.wild_onions": "Oignons sauvages", + "item.farmersdelight.wild_potatoes": "Patates sauvages", + "item.farmersdelight.wild_rice": "Riz sauvage", + "item.farmersdelight.wild_tomatoes": "Tomates sauvages", + "item.farmersdelight.wooden_basket": "Panier", + "item.farmersdelight.yellow_canvas_sign": "Pancarte en toile jaune", + "item.farmersdelight.yellow_hanging_canvas_sign": "Pancarte suspendue en toile jaune" } diff --git a/src/main/resources/assets/farmersdelight/lang/fr_fr.json b/src/main/resources/assets/farmersdelight/lang/fr_fr.json index 643005287..73a2072c0 100644 --- a/src/main/resources/assets/farmersdelight/lang/fr_fr.json +++ b/src/main/resources/assets/farmersdelight/lang/fr_fr.json @@ -477,5 +477,97 @@ "farmersdelight.configuration.enableComfortHealthOverlay": "Comfort Health Overlay", "farmersdelight.configuration.enableComfortHealthOverlay.tooltip": "If enabled, a scrolling overlay will be shown over the health meter when the player has the Comfort effect.", "farmersdelight.configuration.enableFoodEffectTooltip": "Food Effect Tooltip", - "farmersdelight.configuration.enableFoodEffectTooltip.tooltip": "If enabled, food items will display tooltips showing which effects they grant when eaten, if any. Applies to foods from both Minecraft and this mod." + "farmersdelight.configuration.enableFoodEffectTooltip.tooltip": "If enabled, food items will display tooltips showing which effects they grant when eaten, if any. Applies to foods from both Minecraft and this mod.", + + "_comment.farmersdelight.item_aliases": "Block item aliases for Minecraft 26.2 item translation keys.", + "item.farmersdelight.acacia_cabinet": "Armoire en acacia", + "item.farmersdelight.apple_pie": "Tarte aux pommes", + "item.farmersdelight.bamboo_basket": "Panier de bambou", + "item.farmersdelight.bamboo_cabinet": "Armoire en bambou", + "item.farmersdelight.beetroot_crate": "Caisse de betteraves", + "item.farmersdelight.birch_cabinet": "Armoire en boulot", + "item.farmersdelight.black_canvas_sign": "Panneau en toile noire", + "item.farmersdelight.black_hanging_canvas_sign": "Panneau suspendu en toile noire", + "item.farmersdelight.blue_canvas_sign": "Panneau en toile bleue", + "item.farmersdelight.blue_hanging_canvas_sign": "Panneau suspendu en toile bleue", + "item.farmersdelight.brown_canvas_sign": "Panneau en toile marron", + "item.farmersdelight.brown_hanging_canvas_sign": "Panneau suspendu en toile marron", + "item.farmersdelight.brown_mushroom_colony": "Colonie de champignons bruns", + "item.farmersdelight.cabbage_crate": "Caisse de choux", + "item.farmersdelight.canvas_rug": "Tapis en toile", + "item.farmersdelight.canvas_sign": "Panneau en toile", + "item.farmersdelight.carrot_crate": "Caisse de carottes", + "item.farmersdelight.cherry_cabinet": "Armoire en cerisier", + "item.farmersdelight.chocolate_pie": "Tarte au chocolat", + "item.farmersdelight.cooking_pot": "Marmite", + "item.farmersdelight.crimson_cabinet": "Armoire en carmin", + "item.farmersdelight.cutting_board": "Planche à découper", + "item.farmersdelight.cyan_canvas_sign": "Panneau en toile cyan", + "item.farmersdelight.cyan_hanging_canvas_sign": "Panneau suspendu en toile cyan", + "item.farmersdelight.dark_oak_cabinet": "Armoire en chêne noir", + "item.farmersdelight.full_tatami_mat": "Tatami", + "item.farmersdelight.gleaming_salad_block": "Salade luisante", + "item.farmersdelight.gray_canvas_sign": "Panneau en toile grise", + "item.farmersdelight.gray_hanging_canvas_sign": "Panneau suspendu en toile grise", + "item.farmersdelight.green_canvas_sign": "Panneau en toile verte", + "item.farmersdelight.green_hanging_canvas_sign": "Panneau suspendu en toile verte", + "item.farmersdelight.half_tatami_mat": "Demi Tatami", + "item.farmersdelight.hanging_canvas_sign": "Panneau suspendu en toile", + "item.farmersdelight.honey_glazed_ham_block": "Jambon laqué au miel", + "item.farmersdelight.jungle_cabinet": "Armoire en acajou", + "item.farmersdelight.light_blue_canvas_sign": "Panneau en toile bleu clair", + "item.farmersdelight.light_blue_hanging_canvas_sign": "Panneau suspendu en toile bleue clair", + "item.farmersdelight.light_gray_canvas_sign": "Panneau en toile gris clair", + "item.farmersdelight.light_gray_hanging_canvas_sign": "Panneau suspendu en toile gris clair", + "item.farmersdelight.lime_canvas_sign": "Panneau en toile vert clair", + "item.farmersdelight.lime_hanging_canvas_sign": "Panneau suspendu en toile vert clair", + "item.farmersdelight.magenta_canvas_sign": "Panneau en toile magenta", + "item.farmersdelight.magenta_hanging_canvas_sign": "Panneau suspendu en toile magenta", + "item.farmersdelight.mangrove_cabinet": "Armoire en palétuvier", + "item.farmersdelight.oak_cabinet": "Armoire en chêne", + "item.farmersdelight.onion_crate": "Caisse d\u0027oignons", + "item.farmersdelight.orange_canvas_sign": "Panneau en toile orange", + "item.farmersdelight.orange_hanging_canvas_sign": "Panneau suspendu en toile orange", + "item.farmersdelight.organic_compost": "Composte organique", + "item.farmersdelight.pink_canvas_sign": "Panneau en toile rose", + "item.farmersdelight.pink_hanging_canvas_sign": "Panneau suspendu en toile rose", + "item.farmersdelight.potato_crate": "Caisse de pommes de terre", + "item.farmersdelight.purple_canvas_sign": "Panneau en toile violette", + "item.farmersdelight.purple_hanging_canvas_sign": "Panneau suspendu en toile violette", + "item.farmersdelight.red_canvas_sign": "Panneau en toile rouge", + "item.farmersdelight.red_hanging_canvas_sign": "Panneau suspendu en toile rouge", + "item.farmersdelight.red_mushroom_colony": "Colonie de champignons rouges", + "item.farmersdelight.rice_bag": "Sac de riz", + "item.farmersdelight.rice_bale": "Ballot de riz", + "item.farmersdelight.rice_roll_medley_block": "Assortiment de rouleaux de riz", + "item.farmersdelight.rich_soil": "Terre fertile", + "item.farmersdelight.rich_soil_farmland": "Terre fertile labourée", + "item.farmersdelight.roast_chicken_block": "Poulet rôti", + "item.farmersdelight.rope": "Corde", + "item.farmersdelight.rope_fence": "Barrière de corde", + "item.farmersdelight.rope_fence_gate": "Portillon de corde", + "item.farmersdelight.safety_net": "Filet", + "item.farmersdelight.sandy_shrub": "Arbuste sablonneux", + "item.farmersdelight.shepherds_pie_block": "Pâté chinois", + "item.farmersdelight.skillet": "Poêle à frire", + "item.farmersdelight.spruce_cabinet": "Armoire en sapin", + "item.farmersdelight.stove": "Four", + "item.farmersdelight.straw_bale": "Botte de paille", + "item.farmersdelight.stuffed_pumpkin_block": "Citrouille farcie", + "item.farmersdelight.sweet_berry_cheesecake": "Cheesecake aux fruits rouges", + "item.farmersdelight.tatami": "Bloc de tatami", + "item.farmersdelight.tomato_crate": "Caisse de tomates", + "item.farmersdelight.warped_cabinet": "Armoire en biscornu", + "item.farmersdelight.white_canvas_sign": "Panneau en toile blanche", + "item.farmersdelight.white_hanging_canvas_sign": "Panneau suspendu en toile blanche", + "item.farmersdelight.wild_beetroots": "Betterave sauvage", + "item.farmersdelight.wild_cabbages": "Chou sauvage", + "item.farmersdelight.wild_carrots": "Carotte sauvage", + "item.farmersdelight.wild_onions": "Oignon sauvage", + "item.farmersdelight.wild_potatoes": "Pomme de terre sauvage", + "item.farmersdelight.wild_rice": "Riz sauvage", + "item.farmersdelight.wild_tomatoes": "Tomate sauvage", + "item.farmersdelight.wooden_basket": "Panier", + "item.farmersdelight.yellow_canvas_sign": "Panneau en toile jaune", + "item.farmersdelight.yellow_hanging_canvas_sign": "Panneau suspendu en toile jaune" } diff --git a/src/main/resources/assets/farmersdelight/lang/hu_hu.json b/src/main/resources/assets/farmersdelight/lang/hu_hu.json index 4f6f50905..c13fe8139 100644 --- a/src/main/resources/assets/farmersdelight/lang/hu_hu.json +++ b/src/main/resources/assets/farmersdelight/lang/hu_hu.json @@ -353,5 +353,93 @@ "jei.farmersdelight.info.wild_onions": "A hagyma vadon nő a mérsékelt területeken, mint például a síkságok és erdők.", "jei.farmersdelight.info.wild_potatoes": "A burgonya vadon nő a hideg területeken, mint például a hegyek és tajgák.", "jei.farmersdelight.info.wild_tomatoes": "A paradicsom vadon nő a meleg területeken, mint például a sivatagok és szavannák.", - "jei.farmersdelight.info.wild_rice": "A rizs vadon nő a vizes területeken, mint például a mocsarak és dzsungelek." + "jei.farmersdelight.info.wild_rice": "A rizs vadon nő a vizes területeken, mint például a mocsarak és dzsungelek.", + + "_comment.farmersdelight.item_aliases": "Block item aliases for Minecraft 26.2 item translation keys.", + "item.farmersdelight.acacia_cabinet": "Akáciafa szekrény", + "item.farmersdelight.apple_pie": "Almás pite", + "item.farmersdelight.bamboo_cabinet": "Bambusz szekrény", + "item.farmersdelight.beetroot_crate": "Céklás láda", + "item.farmersdelight.birch_cabinet": "Nyírfa szekrény", + "item.farmersdelight.black_canvas_sign": "Fekete vászontábla", + "item.farmersdelight.black_hanging_canvas_sign": "Fekete vászon függőtábla", + "item.farmersdelight.blue_canvas_sign": "Kék vászontábla", + "item.farmersdelight.blue_hanging_canvas_sign": "Kék vászon függőtábla", + "item.farmersdelight.brown_canvas_sign": "Barna vászontábla", + "item.farmersdelight.brown_hanging_canvas_sign": "Barna vászon függőtábla", + "item.farmersdelight.brown_mushroom_colony": "Barna gombatelep", + "item.farmersdelight.cabbage_crate": "Káposztás láda", + "item.farmersdelight.canvas_rug": "Vászon szőnyeg", + "item.farmersdelight.canvas_sign": "Vászontábla", + "item.farmersdelight.carrot_crate": "Sárgarépás láda", + "item.farmersdelight.cherry_cabinet": "Cseresznyefa szekrény", + "item.farmersdelight.chocolate_pie": "Csokis pite", + "item.farmersdelight.cooking_pot": "Kondér", + "item.farmersdelight.crimson_cabinet": "Karmazsin szekrény", + "item.farmersdelight.cutting_board": "Vágódeszka", + "item.farmersdelight.cyan_canvas_sign": "Türkizkék vászontábla", + "item.farmersdelight.cyan_hanging_canvas_sign": "Türkizkék vászon függőtábla", + "item.farmersdelight.dark_oak_cabinet": "Sötéttölgy szekrény", + "item.farmersdelight.full_tatami_mat": "Teljes tatami matrac", + "item.farmersdelight.gray_canvas_sign": "Szürke vászontábla", + "item.farmersdelight.gray_hanging_canvas_sign": "Szürke vászon függőtábla", + "item.farmersdelight.green_canvas_sign": "Zöld vászontábla", + "item.farmersdelight.green_hanging_canvas_sign": "Zöld vászon függőtábla", + "item.farmersdelight.half_tatami_mat": "Fél tatami matrac", + "item.farmersdelight.hanging_canvas_sign": "Vászon függőtábla", + "item.farmersdelight.honey_glazed_ham_block": "Mézes sonka", + "item.farmersdelight.jungle_cabinet": "Dzsungelfa szekrény", + "item.farmersdelight.light_blue_canvas_sign": "Világoskék vászontábla", + "item.farmersdelight.light_blue_hanging_canvas_sign": "Világoskék vászon függőtábla", + "item.farmersdelight.light_gray_canvas_sign": "Világosszürke vászontábla", + "item.farmersdelight.light_gray_hanging_canvas_sign": "Világosszürke vászon függőtábla", + "item.farmersdelight.lime_canvas_sign": "Világoszöld vászontábla", + "item.farmersdelight.lime_hanging_canvas_sign": "Világoszöld vászon függőtábla", + "item.farmersdelight.magenta_canvas_sign": "Bíbor vászontábla", + "item.farmersdelight.magenta_hanging_canvas_sign": "Bíbor vászon függőtábla", + "item.farmersdelight.mangrove_cabinet": "Mangrovefa szekrény", + "item.farmersdelight.oak_cabinet": "Tölgyfa szekrény", + "item.farmersdelight.onion_crate": "Hagymás láda", + "item.farmersdelight.orange_canvas_sign": "Narancssárga vászontábla", + "item.farmersdelight.orange_hanging_canvas_sign": "Narancssárga vászon függőtábla", + "item.farmersdelight.organic_compost": "Szerves komposzt", + "item.farmersdelight.pink_canvas_sign": "Rózsaszín vászontábla", + "item.farmersdelight.pink_hanging_canvas_sign": "Rózsaszín vászon függőtábla", + "item.farmersdelight.potato_crate": "Burgonyás láda", + "item.farmersdelight.purple_canvas_sign": "Lila vászontábla", + "item.farmersdelight.purple_hanging_canvas_sign": "Lila vászon függőtábla", + "item.farmersdelight.red_canvas_sign": "Vörös vászontábla", + "item.farmersdelight.red_hanging_canvas_sign": "Vörös vászon függőtábla", + "item.farmersdelight.red_mushroom_colony": "Vörös gombatelep", + "item.farmersdelight.rice_bag": "Rízses zsák", + "item.farmersdelight.rice_bale": "Rízsbála", + "item.farmersdelight.rice_roll_medley_block": "Vegyes rízstekercs", + "item.farmersdelight.rich_soil": "Gazdag talaj", + "item.farmersdelight.rich_soil_farmland": "Gazdag talajú termőföld", + "item.farmersdelight.roast_chicken_block": "Sült csirke-tál", + "item.farmersdelight.rope": "Kötél", + "item.farmersdelight.safety_net": "Biztonsági háló", + "item.farmersdelight.sandy_shrub": "Homokos cserje", + "item.farmersdelight.shepherds_pie_block": "Pásztor pite", + "item.farmersdelight.skillet": "Serpenyő", + "item.farmersdelight.spruce_cabinet": "Fenyőfa szekrény", + "item.farmersdelight.stove": "Tűzhely", + "item.farmersdelight.straw_bale": "Szalmabála", + "item.farmersdelight.stuffed_pumpkin_block": "Töltött tök", + "item.farmersdelight.sweet_berry_cheesecake": "Édes bogyós sajttorta", + "item.farmersdelight.tatami": "Tatami blokk", + "item.farmersdelight.tomato_crate": "Paradicsomos láda", + "item.farmersdelight.warped_cabinet": "Torz szekrény", + "item.farmersdelight.white_canvas_sign": "Fehér vászontábla", + "item.farmersdelight.white_hanging_canvas_sign": "Fehér vászon függőtábla", + "item.farmersdelight.wild_beetroots": "Tengeri cékla", + "item.farmersdelight.wild_cabbages": "Vadkáposzta", + "item.farmersdelight.wild_carrots": "Vad sárgarépa", + "item.farmersdelight.wild_onions": "Medvehagyma", + "item.farmersdelight.wild_potatoes": "Vadburgonya", + "item.farmersdelight.wild_rice": "Vadrízs", + "item.farmersdelight.wild_tomatoes": "Paradicsom cserje", + "item.farmersdelight.wooden_basket": "Kosár", + "item.farmersdelight.yellow_canvas_sign": "Sárga vászontábla", + "item.farmersdelight.yellow_hanging_canvas_sign": "Sárga vászon függőtábla" } diff --git a/src/main/resources/assets/farmersdelight/lang/id_id.json b/src/main/resources/assets/farmersdelight/lang/id_id.json index d9cd0311e..1ca1b06bf 100644 --- a/src/main/resources/assets/farmersdelight/lang/id_id.json +++ b/src/main/resources/assets/farmersdelight/lang/id_id.json @@ -335,5 +335,93 @@ "jei.farmersdelight.info.wild_onions": "Bawang umumnya ditemukan sebagai tanaman liar di daerah beriklim sedang, seperti dataran dan hutan.", "jei.farmersdelight.info.wild_potatoes": "Kentang banyak ditemukan sebagai tanaman liar di daerah dingin, seperti pegunungan dan taiga.", "jei.farmersdelight.info.wild_tomatoes": "Tomat banyak ditemukan sebagai tanaman liar di lahan gersang, seperti sabana dan gurun.", - "jei.farmersdelight.info.wild_rice": "Beras umumnya ditemukan sebagai tanaman liar di kolam-kolam lahan basah, seperti rawa dan hutan." + "jei.farmersdelight.info.wild_rice": "Beras umumnya ditemukan sebagai tanaman liar di kolam-kolam lahan basah, seperti rawa dan hutan.", + + "_comment.farmersdelight.item_aliases": "Block item aliases for Minecraft 26.2 item translation keys.", + "item.farmersdelight.acacia_cabinet": "Kabinet Akasia", + "item.farmersdelight.apple_pie": "Pai Apel", + "item.farmersdelight.bamboo_cabinet": "Kabinet Bambu", + "item.farmersdelight.beetroot_crate": "Peti Bit", + "item.farmersdelight.birch_cabinet": "Kabinet Betula", + "item.farmersdelight.black_canvas_sign": "Papan Tanda Kanvas Hitam", + "item.farmersdelight.black_hanging_canvas_sign": "Papan Tanda Gantung Kanvas Hitam", + "item.farmersdelight.blue_canvas_sign": "Papan Tanda Kanvas Biru", + "item.farmersdelight.blue_hanging_canvas_sign": "Papan Tanda Gantung Kanvas Biru", + "item.farmersdelight.brown_canvas_sign": "Papan Tanda Kanvas Cokelat", + "item.farmersdelight.brown_hanging_canvas_sign": "Papan Tanda Gantung Kanvas Cokelat", + "item.farmersdelight.brown_mushroom_colony": "Koloni Jamur Coklat", + "item.farmersdelight.cabbage_crate": "Peti Kubis", + "item.farmersdelight.canvas_rug": "Karpet Kanvas", + "item.farmersdelight.canvas_sign": "Papan Tanda Kanvas", + "item.farmersdelight.carrot_crate": "Peti Wortel", + "item.farmersdelight.cherry_cabinet": "Kabinet Ceri", + "item.farmersdelight.chocolate_pie": "Pai Coklat", + "item.farmersdelight.cooking_pot": "Panci Memasak", + "item.farmersdelight.crimson_cabinet": "Kabinet Kirmizi", + "item.farmersdelight.cutting_board": "Talenan", + "item.farmersdelight.cyan_canvas_sign": "Papan Tanda Kanvas Sian", + "item.farmersdelight.cyan_hanging_canvas_sign": "Papan Tanda Gantung Kanvas Sian", + "item.farmersdelight.dark_oak_cabinet": "Kabinet Ek Gelap", + "item.farmersdelight.full_tatami_mat": "Tikar Tatami Penuh", + "item.farmersdelight.gray_canvas_sign": "Papan Tanda Kanvas Kelabu", + "item.farmersdelight.gray_hanging_canvas_sign": "Papan Tanda Gantung Kanvas Kelabu", + "item.farmersdelight.green_canvas_sign": "Papan Tanda Kanvas Hijau", + "item.farmersdelight.green_hanging_canvas_sign": "Papan Tanda Gantung Kanvas Hijau", + "item.farmersdelight.half_tatami_mat": "Tikar Tatami Setengah", + "item.farmersdelight.hanging_canvas_sign": "Papan Tanda Gantung Kanvas", + "item.farmersdelight.honey_glazed_ham_block": "Daging Berlapis Madu", + "item.farmersdelight.jungle_cabinet": "Kabinet Rimba", + "item.farmersdelight.light_blue_canvas_sign": "Papan Tanda Kanvas Biru Muda", + "item.farmersdelight.light_blue_hanging_canvas_sign": "Papan Tanda Gantung Kanvas Biru Muda", + "item.farmersdelight.light_gray_canvas_sign": "Papan Tanda Kanvas Kelabu Muda", + "item.farmersdelight.light_gray_hanging_canvas_sign": "Papan Tanda Gantung Kanvas Kelabu Muda", + "item.farmersdelight.lime_canvas_sign": "Papan Tanda Kanvas Hijau Muda", + "item.farmersdelight.lime_hanging_canvas_sign": "Papan Tanda Gantung Kanvas Hijau Muda", + "item.farmersdelight.magenta_canvas_sign": "Papan Tanda Kanvas Magenta", + "item.farmersdelight.magenta_hanging_canvas_sign": "Papan Tanda Gantung Kanvas Magenta", + "item.farmersdelight.mangrove_cabinet": "Kabinet Bakau", + "item.farmersdelight.oak_cabinet": "Kabinet Ek", + "item.farmersdelight.onion_crate": "Peti Bawang", + "item.farmersdelight.orange_canvas_sign": "Papan Tanda Kanvas Jingga", + "item.farmersdelight.orange_hanging_canvas_sign": "Papan Tanda Gantung Kanvas Jingga", + "item.farmersdelight.organic_compost": "Kompos Organik", + "item.farmersdelight.pink_canvas_sign": "Papan Tanda Kanvas Merah Jambu", + "item.farmersdelight.pink_hanging_canvas_sign": "Papan Tanda Gantung Kanvas Merah Jambu", + "item.farmersdelight.potato_crate": "Peti Kentang", + "item.farmersdelight.purple_canvas_sign": "Papan Tanda Kanvas Ungu", + "item.farmersdelight.purple_hanging_canvas_sign": "Papan Tanda Gantung Kanvas Ungu", + "item.farmersdelight.red_canvas_sign": "Papan Tanda Kanvas Merah", + "item.farmersdelight.red_hanging_canvas_sign": "Papan Tanda Gantung Kanvas Merah", + "item.farmersdelight.red_mushroom_colony": "Koloni Jamur Merah", + "item.farmersdelight.rice_bag": "Sekarung Beras", + "item.farmersdelight.rice_bale": "Karung Beras", + "item.farmersdelight.rice_roll_medley_block": "Medley Nasi Gulung", + "item.farmersdelight.rich_soil": "Tanah Subur", + "item.farmersdelight.rich_soil_farmland": "Tanah Garapan Subur", + "item.farmersdelight.roast_chicken_block": "Ayam Panggang", + "item.farmersdelight.rope": "Tali", + "item.farmersdelight.safety_net": "Jaring Aman", + "item.farmersdelight.sandy_shrub": "Semak Belukar Berpasir", + "item.farmersdelight.shepherds_pie_block": "Pai Gembala", + "item.farmersdelight.skillet": "Wajan", + "item.farmersdelight.spruce_cabinet": "Kabinet Cemara", + "item.farmersdelight.stove": "Kompor", + "item.farmersdelight.straw_bale": "Bal Jerami", + "item.farmersdelight.stuffed_pumpkin_block": "Labu Isi", + "item.farmersdelight.sweet_berry_cheesecake": "Kue Keju Berry Manis", + "item.farmersdelight.tatami": "Balok Tatami", + "item.farmersdelight.tomato_crate": "Peti Tomat", + "item.farmersdelight.warped_cabinet": "Kabinet Kerukut", + "item.farmersdelight.white_canvas_sign": "Papan Tanda Kanvas Putih", + "item.farmersdelight.white_hanging_canvas_sign": "Papan Tanda Gantung Kanvas Putih", + "item.farmersdelight.wild_beetroots": "Bit Laut", + "item.farmersdelight.wild_cabbages": "Kubis Liar", + "item.farmersdelight.wild_carrots": "Wortel Liar", + "item.farmersdelight.wild_onions": "Bawang Liar", + "item.farmersdelight.wild_potatoes": "Kentang Liar", + "item.farmersdelight.wild_rice": "Beras Liar", + "item.farmersdelight.wild_tomatoes": "Tomat Liar", + "item.farmersdelight.wooden_basket": "Keranjang", + "item.farmersdelight.yellow_canvas_sign": "Papan Tanda Kanvas Kuning", + "item.farmersdelight.yellow_hanging_canvas_sign": "Papan Tanda Gantung Kanvas Kuning" } diff --git a/src/main/resources/assets/farmersdelight/lang/it_it.json b/src/main/resources/assets/farmersdelight/lang/it_it.json index a2e2bb9cd..6271a23cc 100644 --- a/src/main/resources/assets/farmersdelight/lang/it_it.json +++ b/src/main/resources/assets/farmersdelight/lang/it_it.json @@ -317,5 +317,93 @@ "jei.farmersdelight.info.wild_onions": "Le cipolle possono essere trovate come selvatiche in terre miti, come le pianure e le foreste.", "jei.farmersdelight.info.wild_potatoes": "Le patate possono essere trovate come selvatiche nelle zone fredde, come montagne e taiga.", "jei.farmersdelight.info.wild_tomatoes": "I pomodori possono essere trovati come selvatici nelle zone aride, come savana e deserti.", - "jei.farmersdelight.info.wild_rice": "Il riso può essere trovato come selvatico nelle pozzanghere delle terre umide, come paludi e giungle." + "jei.farmersdelight.info.wild_rice": "Il riso può essere trovato come selvatico nelle pozzanghere delle terre umide, come paludi e giungle.", + + "_comment.farmersdelight.item_aliases": "Block item aliases for Minecraft 26.2 item translation keys.", + "item.farmersdelight.acacia_cabinet": "Dispensa di acacia", + "item.farmersdelight.apple_pie": "Torta di mele", + "item.farmersdelight.bamboo_cabinet": "Dispensa di bambù", + "item.farmersdelight.beetroot_crate": "Cassa di barbabietole", + "item.farmersdelight.birch_cabinet": "Dispensa di betulla", + "item.farmersdelight.black_canvas_sign": "Cartello di tela nero", + "item.farmersdelight.black_hanging_canvas_sign": "Cartello di tela nero pensile", + "item.farmersdelight.blue_canvas_sign": "Cartello di tela blu", + "item.farmersdelight.blue_hanging_canvas_sign": "Cartello di tela blu pensile", + "item.farmersdelight.brown_canvas_sign": "Cartello di tela marrone", + "item.farmersdelight.brown_hanging_canvas_sign": "Cartello di tela marrone pensile", + "item.farmersdelight.brown_mushroom_colony": "Colonia di funghi marroni", + "item.farmersdelight.cabbage_crate": "Cassa di cavoli", + "item.farmersdelight.canvas_rug": "Tappeto di tela", + "item.farmersdelight.canvas_sign": "Cartello di tela", + "item.farmersdelight.carrot_crate": "Cassa di carote", + "item.farmersdelight.cherry_cabinet": "Dispensa di ciliegio", + "item.farmersdelight.chocolate_pie": "Torta di cioccolato", + "item.farmersdelight.cooking_pot": "Pentola", + "item.farmersdelight.crimson_cabinet": "Dispensa cremisi", + "item.farmersdelight.cutting_board": "Tagliere", + "item.farmersdelight.cyan_canvas_sign": "Cartello di tela ciano", + "item.farmersdelight.cyan_hanging_canvas_sign": "Cartello di tela ciano pensile", + "item.farmersdelight.dark_oak_cabinet": "Dispensa di quercia scura", + "item.farmersdelight.full_tatami_mat": "Tappeto tatami intero", + "item.farmersdelight.gray_canvas_sign": "Cartello di tela grigio", + "item.farmersdelight.gray_hanging_canvas_sign": "Cartello di tela grigio pensile", + "item.farmersdelight.green_canvas_sign": "Cartello di tela verde", + "item.farmersdelight.green_hanging_canvas_sign": "Cartello di tela verde pensile", + "item.farmersdelight.half_tatami_mat": "Tappeto tatami a metà", + "item.farmersdelight.hanging_canvas_sign": "Cartello di tela pensile", + "item.farmersdelight.honey_glazed_ham_block": "Prosciutto glassato al miele", + "item.farmersdelight.jungle_cabinet": "Dispensa della giungla", + "item.farmersdelight.light_blue_canvas_sign": "Cartello di tela azzurro", + "item.farmersdelight.light_blue_hanging_canvas_sign": "Cartello di tela azzurro pensile", + "item.farmersdelight.light_gray_canvas_sign": "Cartello di tela grigio chiaro", + "item.farmersdelight.light_gray_hanging_canvas_sign": "Cartello di tela grigio chiaro pensile", + "item.farmersdelight.lime_canvas_sign": "Cartello di tela lime", + "item.farmersdelight.lime_hanging_canvas_sign": "Cartello di tela lime pensile", + "item.farmersdelight.magenta_canvas_sign": "Cartello di tela magenta", + "item.farmersdelight.magenta_hanging_canvas_sign": "Cartello di tela magenta pensile", + "item.farmersdelight.mangrove_cabinet": "Dispensa di mangrovie", + "item.farmersdelight.oak_cabinet": "Dispensa di quercia", + "item.farmersdelight.onion_crate": "Cassa di cipolle", + "item.farmersdelight.orange_canvas_sign": "Cartello di tela arancione", + "item.farmersdelight.orange_hanging_canvas_sign": "Cartello di tela arancione", + "item.farmersdelight.organic_compost": "Composto organico", + "item.farmersdelight.pink_canvas_sign": "Cartello di tela rosa", + "item.farmersdelight.pink_hanging_canvas_sign": "Cartello di tela rosa pensile", + "item.farmersdelight.potato_crate": "Cassa di patate", + "item.farmersdelight.purple_canvas_sign": "Cartello di tela viola", + "item.farmersdelight.purple_hanging_canvas_sign": "Cartello di tela viola pensile", + "item.farmersdelight.red_canvas_sign": "Cartello di tela rosso", + "item.farmersdelight.red_hanging_canvas_sign": "Cartello di tela rosso pensile", + "item.farmersdelight.red_mushroom_colony": "Colonia di funghi rossi", + "item.farmersdelight.rice_bag": "Sacco di riso", + "item.farmersdelight.rice_bale": "Balla di riso", + "item.farmersdelight.rice_roll_medley_block": "Rotoli di riso misti", + "item.farmersdelight.rich_soil": "Terra fertile", + "item.farmersdelight.rich_soil_farmland": "Terra fertile zappata", + "item.farmersdelight.roast_chicken_block": "Pollo arrosto", + "item.farmersdelight.rope": "Corda", + "item.farmersdelight.safety_net": "Rete di sicurezza", + "item.farmersdelight.sandy_shrub": "Arbusto sabbioso", + "item.farmersdelight.shepherds_pie_block": "Pasticcio di patate", + "item.farmersdelight.skillet": "Padella", + "item.farmersdelight.spruce_cabinet": "Dispensa di abete", + "item.farmersdelight.stove": "Fornello", + "item.farmersdelight.straw_bale": "Balla di paglia", + "item.farmersdelight.stuffed_pumpkin_block": "Zucca ripiena", + "item.farmersdelight.sweet_berry_cheesecake": "Cheesecake di bacche dolci", + "item.farmersdelight.tatami": "Blocco di tatami", + "item.farmersdelight.tomato_crate": "Cassa di pomodori", + "item.farmersdelight.warped_cabinet": "Dispensa distorta", + "item.farmersdelight.white_canvas_sign": "Cartello di tela bianco", + "item.farmersdelight.white_hanging_canvas_sign": "Cartello di tela bianco pensile", + "item.farmersdelight.wild_beetroots": "Barbabietola di mare", + "item.farmersdelight.wild_cabbages": "Cavolo selvatico", + "item.farmersdelight.wild_carrots": "Carote selvatiche", + "item.farmersdelight.wild_onions": "Cipolle selvatiche", + "item.farmersdelight.wild_potatoes": "Patate selvatiche", + "item.farmersdelight.wild_rice": "Riso selvatico", + "item.farmersdelight.wild_tomatoes": "Arbusto di pomodoro", + "item.farmersdelight.wooden_basket": "Cesto", + "item.farmersdelight.yellow_canvas_sign": "Cartello di tela giallo", + "item.farmersdelight.yellow_hanging_canvas_sign": "Cartello di tela giallo pensile" } diff --git a/src/main/resources/assets/farmersdelight/lang/ja_jp.json b/src/main/resources/assets/farmersdelight/lang/ja_jp.json index 776cbe51d..fe1d54ec0 100644 --- a/src/main/resources/assets/farmersdelight/lang/ja_jp.json +++ b/src/main/resources/assets/farmersdelight/lang/ja_jp.json @@ -525,5 +525,97 @@ "farmersdelight.configuration.enableComfortHealthOverlay": "健康の体力ゲージオーバーレイ", "farmersdelight.configuration.enableComfortHealthOverlay.tooltip": "有効にすると、プレイヤーが健康の効果を得ているとき、体力ゲージにスクロールするオーバーレイが表示されるようになります。", "farmersdelight.configuration.enableFoodEffectTooltip": "料理の効果ツールチップ", - "farmersdelight.configuration.enableFoodEffectTooltip.tooltip": "有効にすると、料理アイテムを食べたときに得られる効果がツールチップに表示されるようになります。これはMinecraftの既存の料理と、このMODで追加される料理の両方に適用されます。" + "farmersdelight.configuration.enableFoodEffectTooltip.tooltip": "有効にすると、料理アイテムを食べたときに得られる効果がツールチップに表示されるようになります。これはMinecraftの既存の料理と、このMODで追加される料理の両方に適用されます。", + + "_comment.farmersdelight.item_aliases": "Block item aliases for Minecraft 26.2 item translation keys.", + "item.farmersdelight.acacia_cabinet": "アカシアの戸棚", + "item.farmersdelight.apple_pie": "アップルパイ", + "item.farmersdelight.bamboo_basket": "竹のかご", + "item.farmersdelight.bamboo_cabinet": "竹の戸棚", + "item.farmersdelight.beetroot_crate": "ビートルート入り木箱", + "item.farmersdelight.birch_cabinet": "シラカバの戸棚", + "item.farmersdelight.black_canvas_sign": "黒色のキャンバスの看板", + "item.farmersdelight.black_hanging_canvas_sign": "黒色のキャンバスの吊り看板", + "item.farmersdelight.blue_canvas_sign": "青色のキャンバスの看板", + "item.farmersdelight.blue_hanging_canvas_sign": "青色のキャンバスの吊り看板", + "item.farmersdelight.brown_canvas_sign": "茶色のキャンバスの看板", + "item.farmersdelight.brown_hanging_canvas_sign": "茶色のキャンバスの吊り看板", + "item.farmersdelight.brown_mushroom_colony": "群生した茶色のキノコ", + "item.farmersdelight.cabbage_crate": "キャベツ入り木箱", + "item.farmersdelight.canvas_rug": "キャンバスのカーペット", + "item.farmersdelight.canvas_sign": "キャンバスの看板", + "item.farmersdelight.carrot_crate": "ニンジン入り木箱", + "item.farmersdelight.cherry_cabinet": "サクラの戸棚", + "item.farmersdelight.chocolate_pie": "チョコレートパイ", + "item.farmersdelight.cooking_pot": "鍋", + "item.farmersdelight.crimson_cabinet": "真紅の戸棚", + "item.farmersdelight.cutting_board": "まな板", + "item.farmersdelight.cyan_canvas_sign": "青緑色のキャンバスの看板", + "item.farmersdelight.cyan_hanging_canvas_sign": "青緑色のキャンバスの吊り看板", + "item.farmersdelight.dark_oak_cabinet": "ダークオークの戸棚", + "item.farmersdelight.full_tatami_mat": "畳", + "item.farmersdelight.gleaming_salad_block": "キラキラサラダ", + "item.farmersdelight.gray_canvas_sign": "灰色のキャンバスの看板", + "item.farmersdelight.gray_hanging_canvas_sign": "灰色のキャンバスの吊り看板", + "item.farmersdelight.green_canvas_sign": "緑色のキャンバスの看板", + "item.farmersdelight.green_hanging_canvas_sign": "緑色のキャンバスの吊り看板", + "item.farmersdelight.half_tatami_mat": "半畳", + "item.farmersdelight.hanging_canvas_sign": "キャンバスの吊り看板", + "item.farmersdelight.honey_glazed_ham_block": "ハニーグレイズドハム", + "item.farmersdelight.jungle_cabinet": "ジャングルの戸棚", + "item.farmersdelight.light_blue_canvas_sign": "空色のキャンバスの看板", + "item.farmersdelight.light_blue_hanging_canvas_sign": "空色のキャンバスの吊り看板", + "item.farmersdelight.light_gray_canvas_sign": "薄灰色のキャンバスの看板", + "item.farmersdelight.light_gray_hanging_canvas_sign": "薄灰色のキャンバスの吊り看板", + "item.farmersdelight.lime_canvas_sign": "黄緑色のキャンバスの看板", + "item.farmersdelight.lime_hanging_canvas_sign": "黄緑色のキャンバスの吊り看板", + "item.farmersdelight.magenta_canvas_sign": "赤紫色のキャンバスの看板", + "item.farmersdelight.magenta_hanging_canvas_sign": "赤紫色のキャンバスの吊り看板", + "item.farmersdelight.mangrove_cabinet": "マングローブの戸棚", + "item.farmersdelight.oak_cabinet": "オークの戸棚", + "item.farmersdelight.onion_crate": "タマネギ入り木箱", + "item.farmersdelight.orange_canvas_sign": "橙色のキャンバスの看板", + "item.farmersdelight.orange_hanging_canvas_sign": "橙色のキャンバスの吊り看板", + "item.farmersdelight.organic_compost": "有機コンポスト", + "item.farmersdelight.pink_canvas_sign": "桃色のキャンバスの看板", + "item.farmersdelight.pink_hanging_canvas_sign": "桃色のキャンバスの吊り看板", + "item.farmersdelight.potato_crate": "ジャガイモ入り木箱", + "item.farmersdelight.purple_canvas_sign": "紫色のキャンバスの看板", + "item.farmersdelight.purple_hanging_canvas_sign": "紫色のキャンバスの吊り看板", + "item.farmersdelight.red_canvas_sign": "赤色のキャンバスの看板", + "item.farmersdelight.red_hanging_canvas_sign": "赤色のキャンバスの吊り看板", + "item.farmersdelight.red_mushroom_colony": "群生した赤色のキノコ", + "item.farmersdelight.rice_bag": "米袋", + "item.farmersdelight.rice_bale": "稲の俵", + "item.farmersdelight.rice_roll_medley_block": "寿司の盛り合わせ", + "item.farmersdelight.rich_soil": "肥沃な土", + "item.farmersdelight.rich_soil_farmland": "肥沃な耕地", + "item.farmersdelight.roast_chicken_block": "ローストチキン", + "item.farmersdelight.rope": "ロープ", + "item.farmersdelight.rope_fence": "ロープのフェンス", + "item.farmersdelight.rope_fence_gate": "ロープのフェンスゲート", + "item.farmersdelight.safety_net": "安全ネット", + "item.farmersdelight.sandy_shrub": "砂地の草", + "item.farmersdelight.shepherds_pie_block": "シェパーズパイ", + "item.farmersdelight.skillet": "フライパン", + "item.farmersdelight.spruce_cabinet": "トウヒの戸棚", + "item.farmersdelight.stove": "コンロ", + "item.farmersdelight.straw_bale": "藁の俵", + "item.farmersdelight.stuffed_pumpkin_block": "スタッフドパンプキン", + "item.farmersdelight.sweet_berry_cheesecake": "スイートベリーチーズケーキ", + "item.farmersdelight.tatami": "畳ブロック", + "item.farmersdelight.tomato_crate": "トマト入り木箱", + "item.farmersdelight.warped_cabinet": "歪んだ戸棚", + "item.farmersdelight.white_canvas_sign": "白色のキャンバスの看板", + "item.farmersdelight.white_hanging_canvas_sign": "白色のキャンバスの吊り看板", + "item.farmersdelight.wild_beetroots": "シービート", + "item.farmersdelight.wild_cabbages": "野生のキャベツ", + "item.farmersdelight.wild_carrots": "野生のニンジン", + "item.farmersdelight.wild_onions": "野生のタマネギ", + "item.farmersdelight.wild_potatoes": "野生のジャガイモ", + "item.farmersdelight.wild_rice": "野生の稲", + "item.farmersdelight.wild_tomatoes": "トマトの低木", + "item.farmersdelight.wooden_basket": "かご", + "item.farmersdelight.yellow_canvas_sign": "黄色のキャンバスの看板", + "item.farmersdelight.yellow_hanging_canvas_sign": "黄色のキャンバスの吊り看板" } diff --git a/src/main/resources/assets/farmersdelight/lang/kk_kz.json b/src/main/resources/assets/farmersdelight/lang/kk_kz.json index ee3209f34..3c1b84440 100644 --- a/src/main/resources/assets/farmersdelight/lang/kk_kz.json +++ b/src/main/resources/assets/farmersdelight/lang/kk_kz.json @@ -353,5 +353,93 @@ "jei.farmersdelight.info.wild_onions": "Пиязды қоңыржай жерлерде, мысалы жазықтар мен орманда жабайы өсімдік түрінде жиі табуға болады.", "jei.farmersdelight.info.wild_potatoes": "Картопты суық жерлерде, мысалы таулар мен тайгада жабайы өсімдік түрінде жиі табуға болады.", "jei.farmersdelight.info.wild_tomatoes": "Қызанақты құрғақ жерлерде, мысалы шөлдер мен саваннада жабайы өсімдік түрінде жиі табуға болады.", - "jei.farmersdelight.info.wild_rice": "Күрішті ылғалғы жерлердегі тоғанда, мысалы батпақтар мен джунглиде жабайы өсімдік түрінде жиі табуға болады." + "jei.farmersdelight.info.wild_rice": "Күрішті ылғалғы жерлердегі тоғанда, мысалы батпақтар мен джунглиде жабайы өсімдік түрінде жиі табуға болады.", + + "_comment.farmersdelight.item_aliases": "Block item aliases for Minecraft 26.2 item translation keys.", + "item.farmersdelight.acacia_cabinet": "Акация acaдал", + "item.farmersdelight.apple_pie": "Алма қаусырмасы", + "item.farmersdelight.bamboo_cabinet": "Бамбук acaдал", + "item.farmersdelight.beetroot_crate": "Қызылша жәшігі", + "item.farmersdelight.birch_cabinet": "Қайың acaдал", + "item.farmersdelight.black_canvas_sign": "Қара кенеп маңдайша", + "item.farmersdelight.black_hanging_canvas_sign": "Қара аспалы кенеп маңдайша", + "item.farmersdelight.blue_canvas_sign": "Көк кенеп маңдайша", + "item.farmersdelight.blue_hanging_canvas_sign": "Көк аспалы кенеп маңдайша", + "item.farmersdelight.brown_canvas_sign": "Қоңыр кенеп маңдайша", + "item.farmersdelight.brown_hanging_canvas_sign": "Қоңыр аспалы кенеп маңдайша", + "item.farmersdelight.brown_mushroom_colony": "Қоңыр саңырауқұлақ колониясы", + "item.farmersdelight.cabbage_crate": "Қырыққабат жәшігі", + "item.farmersdelight.canvas_rug": "Кенеп кілем", + "item.farmersdelight.canvas_sign": "Кенеп маңдайша", + "item.farmersdelight.carrot_crate": "Сәбіз жәшігі", + "item.farmersdelight.cherry_cabinet": "Шие acaдал", + "item.farmersdelight.chocolate_pie": "Шоколад қаусырмасы", + "item.farmersdelight.cooking_pot": "Қазан", + "item.farmersdelight.crimson_cabinet": "Қырмызы acaдал", + "item.farmersdelight.cutting_board": "Тақтайша", + "item.farmersdelight.cyan_canvas_sign": "Көгілдір кенеп маңдайша", + "item.farmersdelight.cyan_hanging_canvas_sign": "Көгілдір аспалы кенеп маңдайша", + "item.farmersdelight.dark_oak_cabinet": "Қара емен acaдал", + "item.farmersdelight.full_tatami_mat": "Толық татами төсеніші", + "item.farmersdelight.gray_canvas_sign": "Сұр кенеп маңдайша", + "item.farmersdelight.gray_hanging_canvas_sign": "Сұр аспалы кенеп маңдайша", + "item.farmersdelight.green_canvas_sign": "Жасыл кенеп маңдайша", + "item.farmersdelight.green_hanging_canvas_sign": "Жасыл аспалы кенеп маңдайша", + "item.farmersdelight.half_tatami_mat": "Жарты татами төсеніші", + "item.farmersdelight.hanging_canvas_sign": "Аспалы кенеп маңдайша", + "item.farmersdelight.honey_glazed_ham_block": "Балмен сүрленген шошқа еті", + "item.farmersdelight.jungle_cabinet": "Джунгли acaдал", + "item.farmersdelight.light_blue_canvas_sign": "Ашық көк кенеп маңдайша", + "item.farmersdelight.light_blue_hanging_canvas_sign": "Ашық көк аспалы кенеп маңдайша", + "item.farmersdelight.light_gray_canvas_sign": "Ашық сұр кенеп маңдайша", + "item.farmersdelight.light_gray_hanging_canvas_sign": "Ашық сұр аспалы кенеп маңдайша", + "item.farmersdelight.lime_canvas_sign": "Ашық жасыл кенеп маңдайша", + "item.farmersdelight.lime_hanging_canvas_sign": "Ашық жасыл аспалы кенеп маңдайша", + "item.farmersdelight.magenta_canvas_sign": "Қызылкүрең кенеп маңдайша", + "item.farmersdelight.magenta_hanging_canvas_sign": "Қызылкүрең аспалы кенеп маңдайша", + "item.farmersdelight.mangrove_cabinet": "Мангр acaдал", + "item.farmersdelight.oak_cabinet": "Емен acaдал", + "item.farmersdelight.onion_crate": "Пияз жәшігі", + "item.farmersdelight.orange_canvas_sign": "Сарғыш кенеп маңдайша", + "item.farmersdelight.orange_hanging_canvas_sign": "Сарғыш аспалы кенеп маңдайша", + "item.farmersdelight.organic_compost": "Органик қорда", + "item.farmersdelight.pink_canvas_sign": "Қызғылт кенеп маңдайша", + "item.farmersdelight.pink_hanging_canvas_sign": "Қызғылт аспалы кенеп маңдайша", + "item.farmersdelight.potato_crate": "Картоп жәшігі", + "item.farmersdelight.purple_canvas_sign": "Күлгін кенеп маңдайша", + "item.farmersdelight.purple_hanging_canvas_sign": "Күлгін аспалы кенеп маңдайша", + "item.farmersdelight.red_canvas_sign": "Қызыл кенеп маңдайша", + "item.farmersdelight.red_hanging_canvas_sign": "Қызыл аспалы кенеп маңдайша", + "item.farmersdelight.red_mushroom_colony": "Қызыл саңырауқұлақ колониясы", + "item.farmersdelight.rice_bag": "Күріш қабы", + "item.farmersdelight.rice_bale": "Күріш бамасы", + "item.farmersdelight.rice_roll_medley_block": "Түрлі күріш орамалары", + "item.farmersdelight.rich_soil": "Құнарлы топырақ", + "item.farmersdelight.rich_soil_farmland": "Қопсытылған құнарлы топырақ", + "item.farmersdelight.roast_chicken_block": "Қуырылған тауық", + "item.farmersdelight.rope": "Арқан", + "item.farmersdelight.safety_net": "Сақтандыру торы", + "item.farmersdelight.sandy_shrub": "Құмды бұта", + "item.farmersdelight.shepherds_pie_block": "Ет қаусырмасы", + "item.farmersdelight.skillet": "Таба", + "item.farmersdelight.spruce_cabinet": "Шырша acaдал", + "item.farmersdelight.stove": "Қазандық пеш", + "item.farmersdelight.straw_bale": "Сабан бумасы", + "item.farmersdelight.stuffed_pumpkin_block": "Асқабақ пісірмесі", + "item.farmersdelight.sweet_berry_cheesecake": "Тәтті жидек чизкейгі", + "item.farmersdelight.tatami": "Татами блок", + "item.farmersdelight.tomato_crate": "Қызанақ жәшігі", + "item.farmersdelight.warped_cabinet": "Теріс acaдал", + "item.farmersdelight.white_canvas_sign": "Ақ кенеп маңдайша", + "item.farmersdelight.white_hanging_canvas_sign": "Ақ аспалы кенеп маңдайша", + "item.farmersdelight.wild_beetroots": "Теңіз қызылшасы", + "item.farmersdelight.wild_cabbages": "Жабайы қырыққабат", + "item.farmersdelight.wild_carrots": "Жабайы сәбіз", + "item.farmersdelight.wild_onions": "Жабайы пияз", + "item.farmersdelight.wild_potatoes": "Жабайы картоп", + "item.farmersdelight.wild_rice": "Жабайы күріш", + "item.farmersdelight.wild_tomatoes": "Қызанақ бұтасы", + "item.farmersdelight.wooden_basket": "Себет", + "item.farmersdelight.yellow_canvas_sign": "Сары кенеп маңдайша", + "item.farmersdelight.yellow_hanging_canvas_sign": "Сары аспалы кенеп маңдайша" } diff --git a/src/main/resources/assets/farmersdelight/lang/ko_kr.json b/src/main/resources/assets/farmersdelight/lang/ko_kr.json index 3a4d16694..cd5e397e2 100644 --- a/src/main/resources/assets/farmersdelight/lang/ko_kr.json +++ b/src/main/resources/assets/farmersdelight/lang/ko_kr.json @@ -525,5 +525,97 @@ "farmersdelight.configuration.enableComfortHealthOverlay": "편안함 효과 오버레이", "farmersdelight.configuration.enableComfortHealthOverlay.tooltip": "활성화되었을 때, 편안함 효과가 있는 동안 체력 게이지 위에 스크롤 오버레이가 표시됩니다.", "farmersdelight.configuration.enableFoodEffectTooltip": "음식 효과 툴팁", - "farmersdelight.configuration.enableFoodEffectTooltip.tooltip": "활성화되었을 때, 음식 아이템 툴팁에 섭취시 획득하는 효과를 표시합니다. 마인크래프트와 이 모드의 음식 모두에 적용됩니다." + "farmersdelight.configuration.enableFoodEffectTooltip.tooltip": "활성화되었을 때, 음식 아이템 툴팁에 섭취시 획득하는 효과를 표시합니다. 마인크래프트와 이 모드의 음식 모두에 적용됩니다.", + + "_comment.farmersdelight.item_aliases": "Block item aliases for Minecraft 26.2 item translation keys.", + "item.farmersdelight.acacia_cabinet": "아카시아나무 식료품 선반", + "item.farmersdelight.apple_pie": "사과 파이", + "item.farmersdelight.bamboo_basket": "대나무 바구니", + "item.farmersdelight.bamboo_cabinet": "대나무 식료품 선반", + "item.farmersdelight.beetroot_crate": "비트 상자", + "item.farmersdelight.birch_cabinet": "자작나무 식료품 선반", + "item.farmersdelight.black_canvas_sign": "검은색 천 표지판", + "item.farmersdelight.black_hanging_canvas_sign": "검은색 매다는 천 표지판", + "item.farmersdelight.blue_canvas_sign": "파란색 천 표지판", + "item.farmersdelight.blue_hanging_canvas_sign": "파란색 매다는 천 표지판", + "item.farmersdelight.brown_canvas_sign": "갈색 천 표지판", + "item.farmersdelight.brown_hanging_canvas_sign": "갈색 매다는 천 표지판", + "item.farmersdelight.brown_mushroom_colony": "갈색 버섯 군집", + "item.farmersdelight.cabbage_crate": "양배추 상자", + "item.farmersdelight.canvas_rug": "천 깔개", + "item.farmersdelight.canvas_sign": "천 표지판", + "item.farmersdelight.carrot_crate": "당근 상자", + "item.farmersdelight.cherry_cabinet": "벚나무 식료품 선반", + "item.farmersdelight.chocolate_pie": "초콜릿 파이", + "item.farmersdelight.cooking_pot": "조리용 냄비", + "item.farmersdelight.crimson_cabinet": "진홍빛 식료품 선반", + "item.farmersdelight.cutting_board": "도마", + "item.farmersdelight.cyan_canvas_sign": "청록색 천 표지판", + "item.farmersdelight.cyan_hanging_canvas_sign": "청록색 매다는 천 표지판", + "item.farmersdelight.dark_oak_cabinet": "짙은 참나무 식료품 선반", + "item.farmersdelight.full_tatami_mat": "다다미 매트", + "item.farmersdelight.gleaming_salad_block": "빛나는 샐러드", + "item.farmersdelight.gray_canvas_sign": "회색 천 표지판", + "item.farmersdelight.gray_hanging_canvas_sign": "회색 매다는 천 표지판", + "item.farmersdelight.green_canvas_sign": "초록색 천 표지판", + "item.farmersdelight.green_hanging_canvas_sign": "초록색 매다는 천 표지판", + "item.farmersdelight.half_tatami_mat": "다다미 반 매트", + "item.farmersdelight.hanging_canvas_sign": "매다는 천 표지판", + "item.farmersdelight.honey_glazed_ham_block": "꿀 바른 햄", + "item.farmersdelight.jungle_cabinet": "정글나무 식료품 선반", + "item.farmersdelight.light_blue_canvas_sign": "하늘색 천 표지판", + "item.farmersdelight.light_blue_hanging_canvas_sign": "하늘색 매다는 천 표지판", + "item.farmersdelight.light_gray_canvas_sign": "회백색 천 표지판", + "item.farmersdelight.light_gray_hanging_canvas_sign": "회백색 매다는 천 표지판", + "item.farmersdelight.lime_canvas_sign": "연두색 천 표지판", + "item.farmersdelight.lime_hanging_canvas_sign": "연두색 매다는 천 표지판", + "item.farmersdelight.magenta_canvas_sign": "자홍색 천 표지판", + "item.farmersdelight.magenta_hanging_canvas_sign": "자홍색 매다는 천 표지판", + "item.farmersdelight.mangrove_cabinet": "맹그로브나무 식료품 선반", + "item.farmersdelight.oak_cabinet": "참나무 식료품 선반", + "item.farmersdelight.onion_crate": "양파 상자", + "item.farmersdelight.orange_canvas_sign": "주황색 천 표지판", + "item.farmersdelight.orange_hanging_canvas_sign": "주황색 매다는 천 표지판", + "item.farmersdelight.organic_compost": "유기농 퇴비", + "item.farmersdelight.pink_canvas_sign": "분홍색 천 표지판", + "item.farmersdelight.pink_hanging_canvas_sign": "분홍색 매다는 천 표지판", + "item.farmersdelight.potato_crate": "감자 상자", + "item.farmersdelight.purple_canvas_sign": "보라색 천 표지판", + "item.farmersdelight.purple_hanging_canvas_sign": "보라색 매다는 천 표지판", + "item.farmersdelight.red_canvas_sign": "빨간색 천 표지판", + "item.farmersdelight.red_hanging_canvas_sign": "빨간색 매다는 천 표지판", + "item.farmersdelight.red_mushroom_colony": "빨간색 버섯 군집", + "item.farmersdelight.rice_bag": "쌀 자루", + "item.farmersdelight.rice_bale": "볏짚 더미", + "item.farmersdelight.rice_roll_medley_block": "모듬 초밥", + "item.farmersdelight.rich_soil": "기름진 흙", + "item.farmersdelight.rich_soil_farmland": "기름진 경작지", + "item.farmersdelight.roast_chicken_block": "로스트 치킨", + "item.farmersdelight.rope": "밧줄", + "item.farmersdelight.rope_fence": "밧줄 울타리", + "item.farmersdelight.rope_fence_gate": "밧줄 울타리 문", + "item.farmersdelight.safety_net": "안전 망", + "item.farmersdelight.sandy_shrub": "거친 관목", + "item.farmersdelight.shepherds_pie_block": "셰퍼드 파이", + "item.farmersdelight.skillet": "프라이팬", + "item.farmersdelight.spruce_cabinet": "가문비나무 식료품 선반", + "item.farmersdelight.stove": "난로", + "item.farmersdelight.straw_bale": "지푸라기 묶음", + "item.farmersdelight.stuffed_pumpkin_block": "속 채운 호박", + "item.farmersdelight.sweet_berry_cheesecake": "달콤한 열매 치즈케이크", + "item.farmersdelight.tatami": "다다미 블록", + "item.farmersdelight.tomato_crate": "토마토 상자", + "item.farmersdelight.warped_cabinet": "뒤틀린 식료품 선반", + "item.farmersdelight.white_canvas_sign": "하얀색 천 표지판", + "item.farmersdelight.white_hanging_canvas_sign": "하얀색 매다는 천 표지판", + "item.farmersdelight.wild_beetroots": "야생 비트", + "item.farmersdelight.wild_cabbages": "야생 양배추", + "item.farmersdelight.wild_carrots": "야생 당근", + "item.farmersdelight.wild_onions": "야생 양파", + "item.farmersdelight.wild_potatoes": "야생 감자", + "item.farmersdelight.wild_rice": "야생 벼", + "item.farmersdelight.wild_tomatoes": "야생 토마토", + "item.farmersdelight.wooden_basket": "바구니", + "item.farmersdelight.yellow_canvas_sign": "노란색 천 표지판", + "item.farmersdelight.yellow_hanging_canvas_sign": "노란색 매다는 천 표지판" } diff --git a/src/main/resources/assets/farmersdelight/lang/lol_us.json b/src/main/resources/assets/farmersdelight/lang/lol_us.json index fe82a3123..b0a6dd248 100644 --- a/src/main/resources/assets/farmersdelight/lang/lol_us.json +++ b/src/main/resources/assets/farmersdelight/lang/lol_us.json @@ -141,5 +141,46 @@ "itemGroup.farmersdelight": "Yum Yum Mod", "death.attack.farmersdelight.stove": "%1$s got toasted!", - "death.attack.farmersdelight.stove.player": "%1$s wuz cooked by Chef %2$s!" -} \ No newline at end of file + "death.attack.farmersdelight.stove.player": "%1$s wuz cooked by Chef %2$s!", + + "_comment.farmersdelight.item_aliases": "Block item aliases for Minecraft 26.2 item translation keys.", + "item.farmersdelight.acacia_cabinet": "Acacy Stuff Hole", + "item.farmersdelight.bamboo_cabinet": "Bamboo Stuff Hole", + "item.farmersdelight.beetroot_crate": "Betrut Box", + "item.farmersdelight.birch_cabinet": "Birchy Stuff Hole", + "item.farmersdelight.cabbage_crate": "Leafy Stash", + "item.farmersdelight.canvas_rug": "Fancy Paw Mat", + "item.farmersdelight.carrot_crate": "Rebbit Teetz Box", + "item.farmersdelight.cherry_cabinet": "cherry stuff hole", + "item.farmersdelight.cooking_pot": "Soups Brewin Pot", + "item.farmersdelight.crimson_cabinet": "Scary Stuff Hole", + "item.farmersdelight.cutting_board": "CHOPPIN BORD", + "item.farmersdelight.dark_oak_cabinet": "Darky Stuff Hole", + "item.farmersdelight.full_tatami_mat": "Big Squishy Floor", + "item.farmersdelight.half_tatami_mat": "Tiny Squishy Floor", + "item.farmersdelight.honey_glazed_ham_block": "Glazed Pig Leg", + "item.farmersdelight.jungle_cabinet": "Jungly Stuff Hole", + "item.farmersdelight.mangrove_cabinet": "Mangrovy Stuff Hole", + "item.farmersdelight.oak_cabinet": "Oaky Stuff Hole", + "item.farmersdelight.onion_crate": "Cry Box", + "item.farmersdelight.organic_compost": "Garbage Soup", + "item.farmersdelight.potato_crate": "Pootato Stash", + "item.farmersdelight.rice_bag": "rice sack", + "item.farmersdelight.rice_bale": "Rice Pile", + "item.farmersdelight.rice_roll_medley_block": "Rice Party", + "item.farmersdelight.rich_soil": "YUM DIRT", + "item.farmersdelight.rich_soil_farmland": "Yum Dirt Farm", + "item.farmersdelight.roast_chicken_block": "Whole Clucker", + "item.farmersdelight.rope": "Hangin String", + "item.farmersdelight.safety_net": "no fallz net", + "item.farmersdelight.shepherds_pie_block": "Mashy Pie", + "item.farmersdelight.skillet": "sizzle pan", + "item.farmersdelight.spruce_cabinet": "Sprucy Stuff Hole", + "item.farmersdelight.stove": "hottin furnaz", + "item.farmersdelight.straw_bale": "Hay Pile", + "item.farmersdelight.stuffed_pumpkin_block": "Pumpkin Surprise", + "item.farmersdelight.tatami": "Squishy Floor", + "item.farmersdelight.tomato_crate": "Red Balls Box", + "item.farmersdelight.warped_cabinet": "Weird Stuff Hole", + "item.farmersdelight.wooden_basket": "Quantum Container" +} diff --git a/src/main/resources/assets/farmersdelight/lang/lzh.json b/src/main/resources/assets/farmersdelight/lang/lzh.json index ba4aab13c..44ff254e0 100644 --- a/src/main/resources/assets/farmersdelight/lang/lzh.json +++ b/src/main/resources/assets/farmersdelight/lang/lzh.json @@ -525,5 +525,97 @@ "farmersdelight.configuration.enableComfortHealthOverlay": "養怡命條疊層", "farmersdelight.configuration.enableComfortHealthOverlay.tooltip": "啟則玩家有養怡效時,命條上加疊滾效。", "farmersdelight.configuration.enableFoodEffectTooltip": "食效提示框", - "farmersdelight.configuration.enableFoodEffectTooltip.tooltip": "啟則食物物於提示框顯其食後授之效(若有)。此同施於Minecraft與本模之食。" + "farmersdelight.configuration.enableFoodEffectTooltip.tooltip": "啟則食物物於提示框顯其食後授之效(若有)。此同施於Minecraft與本模之食。", + + "_comment.farmersdelight.item_aliases": "Block item aliases for Minecraft 26.2 item translation keys.", + "item.farmersdelight.acacia_cabinet": "㭜櫃", + "item.farmersdelight.apple_pie": "林檎餡餠", + "item.farmersdelight.bamboo_basket": "竹籃", + "item.farmersdelight.bamboo_cabinet": "竹櫃", + "item.farmersdelight.beetroot_crate": "甘藜根箱", + "item.farmersdelight.birch_cabinet": "樺櫃", + "item.farmersdelight.black_canvas_sign": "玄粗布牌", + "item.farmersdelight.black_hanging_canvas_sign": "玄粗布懸牌", + "item.farmersdelight.blue_canvas_sign": "靛粗布牌", + "item.farmersdelight.blue_hanging_canvas_sign": "靛粗布懸牌", + "item.farmersdelight.brown_canvas_sign": "褐粗布牌", + "item.farmersdelight.brown_hanging_canvas_sign": "褐粗布懸牌", + "item.farmersdelight.brown_mushroom_colony": "褐蕈群", + "item.farmersdelight.cabbage_crate": "包菜箱", + "item.farmersdelight.canvas_rug": "綌氍毹", + "item.farmersdelight.canvas_sign": "粗布牌", + "item.farmersdelight.carrot_crate": "胡蘆菔箱", + "item.farmersdelight.cherry_cabinet": "櫻櫃", + "item.farmersdelight.chocolate_pie": "可可膠餡餠", + "item.farmersdelight.cooking_pot": "鑊", + "item.farmersdelight.crimson_cabinet": "緋蕈木櫃", + "item.farmersdelight.cutting_board": "俎", + "item.farmersdelight.cyan_canvas_sign": "黛粗布牌", + "item.farmersdelight.cyan_hanging_canvas_sign": "黛粗布懸牌", + "item.farmersdelight.dark_oak_cabinet": "黯柞櫃", + "item.farmersdelight.full_tatami_mat": "長畳氍毹", + "item.farmersdelight.gleaming_salad_block": "爍拌", + "item.farmersdelight.gray_canvas_sign": "灰粗布牌", + "item.farmersdelight.gray_hanging_canvas_sign": "灰粗布懸牌", + "item.farmersdelight.green_canvas_sign": "綠粗布牌", + "item.farmersdelight.green_hanging_canvas_sign": "綠粗布懸牌", + "item.farmersdelight.half_tatami_mat": "短畳氍毹", + "item.farmersdelight.hanging_canvas_sign": "粗布懸牌", + "item.farmersdelight.honey_glazed_ham_block": "蜜汁火腿", + "item.farmersdelight.jungle_cabinet": "叢莽櫃", + "item.farmersdelight.light_blue_canvas_sign": "縹粗布牌", + "item.farmersdelight.light_blue_hanging_canvas_sign": "縹粗布懸牌", + "item.farmersdelight.light_gray_canvas_sign": "蒼粗布牌", + "item.farmersdelight.light_gray_hanging_canvas_sign": "蒼粗布懸牌", + "item.farmersdelight.lime_canvas_sign": "翠粗布牌", + "item.farmersdelight.lime_hanging_canvas_sign": "翠粗布懸牌", + "item.farmersdelight.magenta_canvas_sign": "赬粗布牌", + "item.farmersdelight.magenta_hanging_canvas_sign": "赬粗布懸牌", + "item.farmersdelight.mangrove_cabinet": "沒潮木櫃", + "item.farmersdelight.oak_cabinet": "柞櫃", + "item.farmersdelight.onion_crate": "胡蔥箱", + "item.farmersdelight.orange_canvas_sign": "橙粗布牌", + "item.farmersdelight.orange_hanging_canvas_sign": "橙粗布懸牌", + "item.farmersdelight.organic_compost": "生肥", + "item.farmersdelight.pink_canvas_sign": "紅粗布牌", + "item.farmersdelight.pink_hanging_canvas_sign": "紅粗布懸牌", + "item.farmersdelight.potato_crate": "洋芋箱", + "item.farmersdelight.purple_canvas_sign": "紫粗布牌", + "item.farmersdelight.purple_hanging_canvas_sign": "紫粗布懸牌", + "item.farmersdelight.red_canvas_sign": "赤粗布牌", + "item.farmersdelight.red_hanging_canvas_sign": "赤粗布懸牌", + "item.farmersdelight.red_mushroom_colony": "赤蕈群", + "item.farmersdelight.rice_bag": "米囊", + "item.farmersdelight.rice_bale": "稻束", + "item.farmersdelight.rice_roll_medley_block": "握鮨碟", + "item.farmersdelight.rich_soil": "沃土", + "item.farmersdelight.rich_soil_farmland": "沃土疇", + "item.farmersdelight.roast_chicken_block": "雞炙", + "item.farmersdelight.rope": "繩", + "item.farmersdelight.rope_fence": "繩檻", + "item.farmersdelight.rope_fence_gate": "繩扉", + "item.farmersdelight.safety_net": "護網", + "item.farmersdelight.sandy_shrub": "沙叢", + "item.farmersdelight.shepherds_pie_block": "牧者餡餠", + "item.farmersdelight.skillet": "鏊", + "item.farmersdelight.spruce_cabinet": "樅櫃", + "item.farmersdelight.stove": "竈", + "item.farmersdelight.straw_bale": "艸稈", + "item.farmersdelight.stuffed_pumpkin_block": "豐餡南瓜", + "item.farmersdelight.sweet_berry_cheesecake": "甜莓乳酪餡餠", + "item.farmersdelight.tatami": "畳", + "item.farmersdelight.tomato_crate": "番茄箱", + "item.farmersdelight.warped_cabinet": "譎蕈木櫃", + "item.farmersdelight.white_canvas_sign": "素粗布牌", + "item.farmersdelight.white_hanging_canvas_sign": "素粗布懸牌", + "item.farmersdelight.wild_beetroots": "海甘藜", + "item.farmersdelight.wild_cabbages": "野包菜", + "item.farmersdelight.wild_carrots": "野胡蘆菔", + "item.farmersdelight.wild_onions": "野胡蔥", + "item.farmersdelight.wild_potatoes": "野洋芋", + "item.farmersdelight.wild_rice": "野稻", + "item.farmersdelight.wild_tomatoes": "番茄叢", + "item.farmersdelight.wooden_basket": "木籃", + "item.farmersdelight.yellow_canvas_sign": "黃粗布牌", + "item.farmersdelight.yellow_hanging_canvas_sign": "黃粗布懸牌" } diff --git a/src/main/resources/assets/farmersdelight/lang/nl_be.json b/src/main/resources/assets/farmersdelight/lang/nl_be.json index 7ad2b538b..dc8d1ed62 100644 --- a/src/main/resources/assets/farmersdelight/lang/nl_be.json +++ b/src/main/resources/assets/farmersdelight/lang/nl_be.json @@ -270,5 +270,71 @@ "jei.farmersdelight.decomposition.accelerators": "Versneld door aangrenzende activatoren (zie hieronder)", "jei.farmersdelight.info.straw": "Een droge plantaardige vezel die wordt gebruikt bij dingen te maken. Verkregen door grasachtige gewassen en planten te snijden met een mes.", "jei.farmersdelight.info.knife": "Messen zijn lichtgewicht slagwapens. Ze kunnen stro van grassen oogsten en secundaire materialen van dieren garanderen.", - "jei.farmersdelight.info.ham": "Een grote snee vlees van een Varkens- of Hoglin's been. Je hebt iets lichters dan een Zwaard nodig om er een te snijden..." + "jei.farmersdelight.info.ham": "Een grote snee vlees van een Varkens- of Hoglin's been. Je hebt iets lichters dan een Zwaard nodig om er een te snijden...", + + "_comment.farmersdelight.item_aliases": "Block item aliases for Minecraft 26.2 item translation keys.", + "item.farmersdelight.acacia_cabinet": "Acacia Kastje", + "item.farmersdelight.apple_pie": "Appeltaart", + "item.farmersdelight.beetroot_crate": "Bietenkrat", + "item.farmersdelight.birch_cabinet": "Berken Kastje", + "item.farmersdelight.black_canvas_sign": "Zwart Canvas Bord", + "item.farmersdelight.blue_canvas_sign": "Blauw Canvas Bord", + "item.farmersdelight.brown_canvas_sign": "Bruin Canvas Bord", + "item.farmersdelight.brown_mushroom_colony": "Bruine Paddenstoelenkolonie", + "item.farmersdelight.cabbage_crate": "Kolenkrat", + "item.farmersdelight.canvas_rug": "Canvas Tapijt", + "item.farmersdelight.canvas_sign": "Canvas Bord", + "item.farmersdelight.carrot_crate": "Wortelenkrat", + "item.farmersdelight.chocolate_pie": "Chocoladetaart", + "item.farmersdelight.cooking_pot": "Kookpot", + "item.farmersdelight.crimson_cabinet": "Karmijnrode Kastje", + "item.farmersdelight.cutting_board": "Snijplank", + "item.farmersdelight.cyan_canvas_sign": "Turquoise Canvas Bord", + "item.farmersdelight.dark_oak_cabinet": "Donkereiken Kastje", + "item.farmersdelight.full_tatami_mat": "Volledige Tatami Mat", + "item.farmersdelight.gray_canvas_sign": "Grijs Canvas Bord", + "item.farmersdelight.green_canvas_sign": "Groen Canvas Bord", + "item.farmersdelight.half_tatami_mat": "Halve Tatami Mat", + "item.farmersdelight.honey_glazed_ham_block": "Honing Geglazuurde Ham", + "item.farmersdelight.jungle_cabinet": "Junglehouten Kastje", + "item.farmersdelight.light_blue_canvas_sign": "Lichtblauw Canvas Bord", + "item.farmersdelight.light_gray_canvas_sign": "Lichtgrijs Canvas Bord", + "item.farmersdelight.lime_canvas_sign": "Lichtgroen Canvas Bord", + "item.farmersdelight.magenta_canvas_sign": "Magenta Canvas Bord", + "item.farmersdelight.oak_cabinet": "Eiken Kastje", + "item.farmersdelight.onion_crate": "Ajuinenkrat", + "item.farmersdelight.orange_canvas_sign": "Oranje Canvas Bord", + "item.farmersdelight.organic_compost": "Organisch Compost", + "item.farmersdelight.pink_canvas_sign": "Roze Canvas Bord", + "item.farmersdelight.potato_crate": "Aardappelenkrat", + "item.farmersdelight.purple_canvas_sign": "Paars Canvas Bord", + "item.farmersdelight.red_canvas_sign": "Rood Canvas Bord", + "item.farmersdelight.red_mushroom_colony": "Rode Paddenstoelenkolonie", + "item.farmersdelight.rice_bag": "Zak Rijst", + "item.farmersdelight.rice_bale": "Rijstbaal", + "item.farmersdelight.rich_soil": "Rijke Bodem", + "item.farmersdelight.rich_soil_farmland": "Rijke Bodem Landbouwgrond", + "item.farmersdelight.roast_chicken_block": "Gebraden Kip", + "item.farmersdelight.rope": "Touw", + "item.farmersdelight.safety_net": "Veiligheidsnet", + "item.farmersdelight.shepherds_pie_block": "Gehakt met Puree", + "item.farmersdelight.skillet": "Koekenpan", + "item.farmersdelight.spruce_cabinet": "Sparren Kastje", + "item.farmersdelight.stove": "Fornuis", + "item.farmersdelight.straw_bale": "Strobaal", + "item.farmersdelight.stuffed_pumpkin_block": "Gevulde Pompoen", + "item.farmersdelight.sweet_berry_cheesecake": "Zoetbes Cheesecake", + "item.farmersdelight.tatami": "Tatami Blok", + "item.farmersdelight.tomato_crate": "Tomatenkrat", + "item.farmersdelight.warped_cabinet": "Warblauwe Kastje", + "item.farmersdelight.white_canvas_sign": "Wit Canvas Bord", + "item.farmersdelight.wild_beetroots": "Strandbiet", + "item.farmersdelight.wild_cabbages": "Wilde Kolen", + "item.farmersdelight.wild_carrots": "Wilde Wortels", + "item.farmersdelight.wild_onions": "Wilde Ajuinen", + "item.farmersdelight.wild_potatoes": "Wilde Aardappelen", + "item.farmersdelight.wild_rice": "Wilde Rijst", + "item.farmersdelight.wild_tomatoes": "Tomaten Wijnstok", + "item.farmersdelight.wooden_basket": "Mand", + "item.farmersdelight.yellow_canvas_sign": "Geel Canvas Bord" } diff --git a/src/main/resources/assets/farmersdelight/lang/nl_nl.json b/src/main/resources/assets/farmersdelight/lang/nl_nl.json index 0d4ed4585..87b055ac5 100644 --- a/src/main/resources/assets/farmersdelight/lang/nl_nl.json +++ b/src/main/resources/assets/farmersdelight/lang/nl_nl.json @@ -270,5 +270,71 @@ "jei.farmersdelight.decomposition.accelerators": "Versneld door aangrenzende activatoren (zie hieronder)", "jei.farmersdelight.info.straw": "Een droge plantaardige vezel die wordt gebruikt bij dingen te maken. Verkregen door grasachtige gewassen en planten te snijden met een mes.", "jei.farmersdelight.info.knife": "Messen zijn lichtgewicht slagwapens. Ze kunnen stro van grassen oogsten en secundaire materialen van dieren garanderen.", - "jei.farmersdelight.info.ham": "Een grote snee vlees van een Varkens- of Hoglin's been. Je hebt iets lichters dan een Zwaard nodig om er een te snijden..." + "jei.farmersdelight.info.ham": "Een grote snee vlees van een Varkens- of Hoglin's been. Je hebt iets lichters dan een Zwaard nodig om er een te snijden...", + + "_comment.farmersdelight.item_aliases": "Block item aliases for Minecraft 26.2 item translation keys.", + "item.farmersdelight.acacia_cabinet": "Acacia Kastje", + "item.farmersdelight.apple_pie": "Appeltaart", + "item.farmersdelight.beetroot_crate": "Bietenkrat", + "item.farmersdelight.birch_cabinet": "Berken Kastje", + "item.farmersdelight.black_canvas_sign": "Zwart Canvas Bord", + "item.farmersdelight.blue_canvas_sign": "Blauw Canvas Bord", + "item.farmersdelight.brown_canvas_sign": "Bruin Canvas Bord", + "item.farmersdelight.brown_mushroom_colony": "Bruine Paddenstoelenkolonie", + "item.farmersdelight.cabbage_crate": "Kolenkrat", + "item.farmersdelight.canvas_rug": "Canvas Tapijt", + "item.farmersdelight.canvas_sign": "Canvas Bord", + "item.farmersdelight.carrot_crate": "Wortelenkrat", + "item.farmersdelight.chocolate_pie": "Chocoladetaart", + "item.farmersdelight.cooking_pot": "Kookpot", + "item.farmersdelight.crimson_cabinet": "Karmijnrode Kastje", + "item.farmersdelight.cutting_board": "Snijplank", + "item.farmersdelight.cyan_canvas_sign": "Turquoise Canvas Bord", + "item.farmersdelight.dark_oak_cabinet": "Donkereiken Kastje", + "item.farmersdelight.full_tatami_mat": "Volledige Tatami Mat", + "item.farmersdelight.gray_canvas_sign": "Grijs Canvas Bord", + "item.farmersdelight.green_canvas_sign": "Groen Canvas Bord", + "item.farmersdelight.half_tatami_mat": "Halve Tatami Mat", + "item.farmersdelight.honey_glazed_ham_block": "Honing Geglazuurde Ham", + "item.farmersdelight.jungle_cabinet": "Junglehouten Kastje", + "item.farmersdelight.light_blue_canvas_sign": "Lichtblauw Canvas Bord", + "item.farmersdelight.light_gray_canvas_sign": "Lichtgrijs Canvas Bord", + "item.farmersdelight.lime_canvas_sign": "Lichtgroen Canvas Bord", + "item.farmersdelight.magenta_canvas_sign": "Magenta Canvas Bord", + "item.farmersdelight.oak_cabinet": "Eiken Kastje", + "item.farmersdelight.onion_crate": "Uienkrat", + "item.farmersdelight.orange_canvas_sign": "Oranje Canvas Bord", + "item.farmersdelight.organic_compost": "Organisch Compost", + "item.farmersdelight.pink_canvas_sign": "Roze Canvas Bord", + "item.farmersdelight.potato_crate": "Aardappelenkrat", + "item.farmersdelight.purple_canvas_sign": "Paars Canvas Bord", + "item.farmersdelight.red_canvas_sign": "Rood Canvas Bord", + "item.farmersdelight.red_mushroom_colony": "Rode Paddenstoelenkolonie", + "item.farmersdelight.rice_bag": "Zak Rijst", + "item.farmersdelight.rice_bale": "Rijstbaal", + "item.farmersdelight.rich_soil": "Rijke Bodem", + "item.farmersdelight.rich_soil_farmland": "Rijke Bodem Landbouwgrond", + "item.farmersdelight.roast_chicken_block": "Gebraden Kip", + "item.farmersdelight.rope": "Touw", + "item.farmersdelight.safety_net": "Veiligheidsnet", + "item.farmersdelight.shepherds_pie_block": "Gehakt met Puree", + "item.farmersdelight.skillet": "Koekenpan", + "item.farmersdelight.spruce_cabinet": "Sparren Kastje", + "item.farmersdelight.stove": "Fornuis", + "item.farmersdelight.straw_bale": "Strobaal", + "item.farmersdelight.stuffed_pumpkin_block": "Gevulde Pompoen", + "item.farmersdelight.sweet_berry_cheesecake": "Zoetbes Cheesecake", + "item.farmersdelight.tatami": "Tatami Blok", + "item.farmersdelight.tomato_crate": "Tomatenkrat", + "item.farmersdelight.warped_cabinet": "Warblauwe Kastje", + "item.farmersdelight.white_canvas_sign": "Wit Canvas Bord", + "item.farmersdelight.wild_beetroots": "Strandbiet", + "item.farmersdelight.wild_cabbages": "Wilde Kolen", + "item.farmersdelight.wild_carrots": "Wilde Wortels", + "item.farmersdelight.wild_onions": "Wilde Uien", + "item.farmersdelight.wild_potatoes": "Wilde Aardappelen", + "item.farmersdelight.wild_rice": "Wilde Rijst", + "item.farmersdelight.wild_tomatoes": "Tomaten Wijnstok", + "item.farmersdelight.wooden_basket": "Mand", + "item.farmersdelight.yellow_canvas_sign": "Geel Canvas Bord" } diff --git a/src/main/resources/assets/farmersdelight/lang/no_no.json b/src/main/resources/assets/farmersdelight/lang/no_no.json index fdee9e3ed..c7e4c3d5f 100644 --- a/src/main/resources/assets/farmersdelight/lang/no_no.json +++ b/src/main/resources/assets/farmersdelight/lang/no_no.json @@ -254,5 +254,71 @@ "jei.farmersdelight.decomposition.accelerators": "Fremskyndet av nærliggende aktivatorer (se nedenfor)", "jei.farmersdelight.info.straw": "En tørr plantefiber som brukes i håndverk. Skaffes ved å kutte gresskledde avlinger og planter med en kniv.", "jei.farmersdelight.info.knife": "Kniver er lette nærkampvåpen. De kan høste halm fra gress, og garantere sekundærgjenstander fra dyr.", - "jei.farmersdelight.info.ham": "Et stort kjøttstykke fra en gris eller Hoglins ben. Du trenger noe lettere enn et sverd for å kutte det..." + "jei.farmersdelight.info.ham": "Et stort kjøttstykke fra en gris eller Hoglins ben. Du trenger noe lettere enn et sverd for å kutte det...", + + "_comment.farmersdelight.item_aliases": "Block item aliases for Minecraft 26.2 item translation keys.", + "item.farmersdelight.acacia_cabinet": "Akasiekabinett", + "item.farmersdelight.apple_pie": "Eplepai", + "item.farmersdelight.beetroot_crate": "Rødbetkasse", + "item.farmersdelight.birch_cabinet": "Bjørkekabinett", + "item.farmersdelight.black_canvas_sign": "Svart Vevd Skilt", + "item.farmersdelight.blue_canvas_sign": "Blått Vevd Skilt", + "item.farmersdelight.brown_canvas_sign": "Brunt Vevd Skilt", + "item.farmersdelight.brown_mushroom_colony": "Brun Soppkoloni", + "item.farmersdelight.cabbage_crate": "Kålkasse", + "item.farmersdelight.canvas_rug": "Vevd Matte", + "item.farmersdelight.canvas_sign": "Vevd Skilt", + "item.farmersdelight.carrot_crate": "Gulrotkasse", + "item.farmersdelight.chocolate_pie": "Sjokkoladepai", + "item.farmersdelight.cooking_pot": "Kjele", + "item.farmersdelight.crimson_cabinet": "Karmosinkabinett", + "item.farmersdelight.cutting_board": "Skjærebrett", + "item.farmersdelight.cyan_canvas_sign": "Turkist Vevd Skilt", + "item.farmersdelight.dark_oak_cabinet": "Mørkeikkabinett", + "item.farmersdelight.full_tatami_mat": "Hel Tatamimatte", + "item.farmersdelight.gray_canvas_sign": "Grått Vevd Skilt", + "item.farmersdelight.green_canvas_sign": "Grønt Vevd Skilt", + "item.farmersdelight.half_tatami_mat": "Halv Tatamimatte", + "item.farmersdelight.honey_glazed_ham_block": "Honningglasert Skinke", + "item.farmersdelight.jungle_cabinet": "Jungeltrekabinett", + "item.farmersdelight.light_blue_canvas_sign": "Lyseblått Vevd Skilt", + "item.farmersdelight.light_gray_canvas_sign": "Lysegrått Vevd Skilt", + "item.farmersdelight.lime_canvas_sign": "Limegrønt Vevd Skilt ", + "item.farmersdelight.magenta_canvas_sign": "Lyselilla Vevd Skilt", + "item.farmersdelight.oak_cabinet": "Eikekabinett", + "item.farmersdelight.onion_crate": "Løkkasse", + "item.farmersdelight.orange_canvas_sign": "Oransje Vevd Skilt", + "item.farmersdelight.organic_compost": "Organisk kompost", + "item.farmersdelight.pink_canvas_sign": "Rosa Vevd Skilt", + "item.farmersdelight.potato_crate": "Potetkasse", + "item.farmersdelight.purple_canvas_sign": "Lilla Vevd Skilt", + "item.farmersdelight.red_canvas_sign": "Rødt Vevd Skilt", + "item.farmersdelight.red_mushroom_colony": "Rød Soppkoloni", + "item.farmersdelight.rice_bag": "Sekk med ris", + "item.farmersdelight.rice_bale": "Risball", + "item.farmersdelight.rich_soil": "Rik jord", + "item.farmersdelight.rich_soil_farmland": "Rikt Åkerland", + "item.farmersdelight.roast_chicken_block": "Grillet Kylling", + "item.farmersdelight.rope": "Tau", + "item.farmersdelight.safety_net": "Sikkerhetsnett", + "item.farmersdelight.shepherds_pie_block": "Gjeterpai", + "item.farmersdelight.skillet": "Stekepanne", + "item.farmersdelight.spruce_cabinet": "Grankabinett", + "item.farmersdelight.stove": "Komfyr", + "item.farmersdelight.straw_bale": "Stråball", + "item.farmersdelight.stuffed_pumpkin_block": "Fylt Gresskar", + "item.farmersdelight.sweet_berry_cheesecake": "Søtbærostekake", + "item.farmersdelight.tatami": "Tatami Blokk", + "item.farmersdelight.tomato_crate": "Tomatkasse", + "item.farmersdelight.warped_cabinet": "Forvridd Kabinett", + "item.farmersdelight.white_canvas_sign": "Hvitt Vevd Skilt", + "item.farmersdelight.wild_beetroots": "Sjøbete ", + "item.farmersdelight.wild_cabbages": "Villkål", + "item.farmersdelight.wild_carrots": "Ville Gulrøtter", + "item.farmersdelight.wild_onions": "Villøk", + "item.farmersdelight.wild_potatoes": "Ville poteter", + "item.farmersdelight.wild_rice": "Villris", + "item.farmersdelight.wild_tomatoes": "Ville Tomater", + "item.farmersdelight.wooden_basket": "Kurv", + "item.farmersdelight.yellow_canvas_sign": "Gult Vevd Skilt" } diff --git a/src/main/resources/assets/farmersdelight/lang/pl_pl.json b/src/main/resources/assets/farmersdelight/lang/pl_pl.json index 999d5b241..0a6c316b4 100644 --- a/src/main/resources/assets/farmersdelight/lang/pl_pl.json +++ b/src/main/resources/assets/farmersdelight/lang/pl_pl.json @@ -306,5 +306,93 @@ "jei.farmersdelight.decomposition.accelerators": "Przyspieszony przez przyległe aktywatory (patrz poniżej)", "jei.farmersdelight.info.straw": "Suche włókno roślinne używane w konstruowaniu. Otrzymywana przez ścinanie traw i roślin nożem", "jei.farmersdelight.info.knife": "Noże są lekką bronią białą. Mogą zbierać słomę z traw, oraz gwarantują drugorzędne łupy ze zwierząt.", - "jei.farmersdelight.info.ham": "Duży kawałek mięsa z uda świni lub hoglina. Będziesz potrzebował czegoś lżejszego niż miecz by to uciąć..." -} \ No newline at end of file + "jei.farmersdelight.info.ham": "Duży kawałek mięsa z uda świni lub hoglina. Będziesz potrzebował czegoś lżejszego niż miecz by to uciąć...", + + "_comment.farmersdelight.item_aliases": "Block item aliases for Minecraft 26.2 item translation keys.", + "item.farmersdelight.acacia_cabinet": "Akacjowa szafka", + "item.farmersdelight.apple_pie": "Szarlotka", + "item.farmersdelight.bamboo_cabinet": "Bambusowa szafka", + "item.farmersdelight.beetroot_crate": "Skrzynka buraków", + "item.farmersdelight.birch_cabinet": "Brzozowa szafka", + "item.farmersdelight.black_canvas_sign": "Czarna płócienna tabliczka", + "item.farmersdelight.black_hanging_canvas_sign": "Czarna podwieszana płócienna tabliczka", + "item.farmersdelight.blue_canvas_sign": "Niebieska płócienna tabliczka", + "item.farmersdelight.blue_hanging_canvas_sign": "Niebieska podwieszana płócienna tabliczka", + "item.farmersdelight.brown_canvas_sign": "Brązowa płócienna tabliczka", + "item.farmersdelight.brown_hanging_canvas_sign": "Brązowa podwieszana płócienna tabliczka", + "item.farmersdelight.brown_mushroom_colony": "Kolonia borowików", + "item.farmersdelight.cabbage_crate": "Skrzynka kapusty", + "item.farmersdelight.canvas_rug": "Słomiana wykładzina", + "item.farmersdelight.canvas_sign": "Płócienna tabliczka", + "item.farmersdelight.carrot_crate": "Skrzynka marchewek", + "item.farmersdelight.cherry_cabinet": "Wiśniowa szafka", + "item.farmersdelight.chocolate_pie": "Placek czekoladowy", + "item.farmersdelight.cooking_pot": "Garnek", + "item.farmersdelight.crimson_cabinet": "Szkarłatna szafka", + "item.farmersdelight.cutting_board": "Deska do krojenia", + "item.farmersdelight.cyan_canvas_sign": "Błękitna płócienna tabliczka", + "item.farmersdelight.cyan_hanging_canvas_sign": "Błękitna podwieszana płócienna tabliczka", + "item.farmersdelight.dark_oak_cabinet": "Ciemnodębowa szafka", + "item.farmersdelight.full_tatami_mat": "Mata tatami", + "item.farmersdelight.gray_canvas_sign": "Szara płócienna tabliczka", + "item.farmersdelight.gray_hanging_canvas_sign": "Szara podwieszana płócienna tabliczka", + "item.farmersdelight.green_canvas_sign": "Zielona płócienna tabliczka", + "item.farmersdelight.green_hanging_canvas_sign": "Zielona podwieszana płócienna tabliczka", + "item.farmersdelight.half_tatami_mat": "Połowa maty tatami", + "item.farmersdelight.hanging_canvas_sign": "Podwieszana płócienna tabliczka", + "item.farmersdelight.honey_glazed_ham_block": "Szynka w miodzie", + "item.farmersdelight.jungle_cabinet": "Tropikalna szafka", + "item.farmersdelight.light_blue_canvas_sign": "Jasnoniebieska płócienna tabliczka", + "item.farmersdelight.light_blue_hanging_canvas_sign": "Jasnoniebieska podwieszana płócienna tabliczka", + "item.farmersdelight.light_gray_canvas_sign": "Jasnoszara płócienna tabliczka", + "item.farmersdelight.light_gray_hanging_canvas_sign": "Jasnoszara podwieszana płócienna tabliczka", + "item.farmersdelight.lime_canvas_sign": "Jasnozielona płócienna tabliczka", + "item.farmersdelight.lime_hanging_canvas_sign": "Jasnozielona podwieszana płócienna tabliczka", + "item.farmersdelight.magenta_canvas_sign": "Karmazynowa płócienna tabliczka", + "item.farmersdelight.magenta_hanging_canvas_sign": "Karmazynowa podwieszana płócienna tabliczka", + "item.farmersdelight.mangrove_cabinet": "Namorzynowa szafka", + "item.farmersdelight.oak_cabinet": "Dębowa szafka", + "item.farmersdelight.onion_crate": "Skrzynka cebuli", + "item.farmersdelight.orange_canvas_sign": "Pomarańczowa płócienna tabliczka", + "item.farmersdelight.orange_hanging_canvas_sign": "Pomarańczowa podwieszana płócienna tabliczka", + "item.farmersdelight.organic_compost": "Kompost", + "item.farmersdelight.pink_canvas_sign": "Różowa płócienna tabliczka", + "item.farmersdelight.pink_hanging_canvas_sign": "Różowa podwieszana płócienna tabliczka", + "item.farmersdelight.potato_crate": "Skrzynka ziemniaków", + "item.farmersdelight.purple_canvas_sign": "Fioletowa płócienna tabliczka", + "item.farmersdelight.purple_hanging_canvas_sign": "Fioletowa podwieszana płócienna tabliczka", + "item.farmersdelight.red_canvas_sign": "Czerwona płócienna tabliczka", + "item.farmersdelight.red_hanging_canvas_sign": "Czerwona podwieszana płócienna tabliczka", + "item.farmersdelight.red_mushroom_colony": "Kolonia muchomorów", + "item.farmersdelight.rice_bag": "Torba ryżu", + "item.farmersdelight.rice_bale": "Bela ryżu", + "item.farmersdelight.rice_roll_medley_block": "Mieszanka rolek ryżowych", + "item.farmersdelight.rich_soil": "Żyzna gleba", + "item.farmersdelight.rich_soil_farmland": "Żyzne pole uprawne", + "item.farmersdelight.roast_chicken_block": "Pieczony kurczak z warzywami", + "item.farmersdelight.rope": "Lina", + "item.farmersdelight.safety_net": "Siatka bezpieczeństwa", + "item.farmersdelight.sandy_shrub": "Piaszczysty krzew", + "item.farmersdelight.shepherds_pie_block": "Zapiekanka pasterska", + "item.farmersdelight.skillet": "Patelnia", + "item.farmersdelight.spruce_cabinet": "Świerkowa szafka", + "item.farmersdelight.stove": "Kuchenka", + "item.farmersdelight.straw_bale": "Bela słomy", + "item.farmersdelight.stuffed_pumpkin_block": "Nadziewana dynia", + "item.farmersdelight.sweet_berry_cheesecake": "Sernik ze słodkimi jagodami", + "item.farmersdelight.tatami": "Blok tatami", + "item.farmersdelight.tomato_crate": "Skrzynka pomidorów", + "item.farmersdelight.warped_cabinet": "Spaczona szafka", + "item.farmersdelight.white_canvas_sign": "Biała płócienna tabliczka", + "item.farmersdelight.white_hanging_canvas_sign": "Biała podwieszana płócienna tabliczka", + "item.farmersdelight.wild_beetroots": "Dzikie buraki", + "item.farmersdelight.wild_cabbages": "Dzika kapusta", + "item.farmersdelight.wild_carrots": "Dzika marchew", + "item.farmersdelight.wild_onions": "Dzika cebula", + "item.farmersdelight.wild_potatoes": "Dzikie ziemniaki", + "item.farmersdelight.wild_rice": "Dziki ryż", + "item.farmersdelight.wild_tomatoes": "Dziki pomidor", + "item.farmersdelight.wooden_basket": "Koszyk", + "item.farmersdelight.yellow_canvas_sign": "Żółta płócienna tabliczka", + "item.farmersdelight.yellow_hanging_canvas_sign": "Żółta podwieszana płócienna tabliczka" +} diff --git a/src/main/resources/assets/farmersdelight/lang/pt_br.json b/src/main/resources/assets/farmersdelight/lang/pt_br.json index c85eb8cef..c0232950f 100644 --- a/src/main/resources/assets/farmersdelight/lang/pt_br.json +++ b/src/main/resources/assets/farmersdelight/lang/pt_br.json @@ -524,5 +524,97 @@ "farmersdelight.configuration.enableComfortHealthOverlay": "Indicador de Conforto", "farmersdelight.configuration.enableComfortHealthOverlay.tooltip": "Ao habilitar, o medidor de vida será exibido com um brilho corrente quando o jogador estiver sob o efeito Conforto.", "farmersdelight.configuration.enableFoodEffectTooltip": "Dica de efeitos em itens comestíveis", - "farmersdelight.configuration.enableFoodEffectTooltip.tooltip": "Ao habilitar, itens de comida exibirão em suas descrições os efeitos que concedem quando consumidos. Se aplica a comidas tanto do Minecraft quanto deste mod." + "farmersdelight.configuration.enableFoodEffectTooltip.tooltip": "Ao habilitar, itens de comida exibirão em suas descrições os efeitos que concedem quando consumidos. Se aplica a comidas tanto do Minecraft quanto deste mod.", + + "_comment.farmersdelight.item_aliases": "Block item aliases for Minecraft 26.2 item translation keys.", + "item.farmersdelight.acacia_cabinet": "Armário de acácia", + "item.farmersdelight.apple_pie": "Torta de maçã", + "item.farmersdelight.bamboo_basket": "Cesto de bambu", + "item.farmersdelight.bamboo_cabinet": "Armário de bambu", + "item.farmersdelight.beetroot_crate": "Caixote de beterrabas", + "item.farmersdelight.birch_cabinet": "Armário de bétula", + "item.farmersdelight.black_canvas_sign": "Placa de lona preta", + "item.farmersdelight.black_hanging_canvas_sign": "Placa suspensa de lona preta", + "item.farmersdelight.blue_canvas_sign": "Placa de lona azul", + "item.farmersdelight.blue_hanging_canvas_sign": "Placa suspensa de lona azul", + "item.farmersdelight.brown_canvas_sign": "Placa de lona marrom", + "item.farmersdelight.brown_hanging_canvas_sign": "Placa suspensa de lona marrom", + "item.farmersdelight.brown_mushroom_colony": "Colônia de cogumelos marrons", + "item.farmersdelight.cabbage_crate": "Caixote de repolhos", + "item.farmersdelight.canvas_rug": "Tapete de lona", + "item.farmersdelight.canvas_sign": "Placa de lona", + "item.farmersdelight.carrot_crate": "Caixote de cenouras", + "item.farmersdelight.cherry_cabinet": "Armário de cerejeira", + "item.farmersdelight.chocolate_pie": "Torta de chocolate", + "item.farmersdelight.cooking_pot": "Panela", + "item.farmersdelight.crimson_cabinet": "Armário carmesim", + "item.farmersdelight.cutting_board": "Tábua de corte", + "item.farmersdelight.cyan_canvas_sign": "Placa de lona ciano", + "item.farmersdelight.cyan_hanging_canvas_sign": "Placa suspensa de lona ciano", + "item.farmersdelight.dark_oak_cabinet": "Armário de carvalho escuro", + "item.farmersdelight.full_tatami_mat": "Esteira de tatame", + "item.farmersdelight.gleaming_salad_block": "Salada brilhante", + "item.farmersdelight.gray_canvas_sign": "Placa de lona cinza", + "item.farmersdelight.gray_hanging_canvas_sign": "Placa suspensa de lona cinza", + "item.farmersdelight.green_canvas_sign": "Placa de lona verde", + "item.farmersdelight.green_hanging_canvas_sign": "Placa suspensa de lona verde", + "item.farmersdelight.half_tatami_mat": "Meia esteira de tatame", + "item.farmersdelight.hanging_canvas_sign": "Placa suspensa de lona", + "item.farmersdelight.honey_glazed_ham_block": "Presunto caramelado", + "item.farmersdelight.jungle_cabinet": "Armário de madeira da selva", + "item.farmersdelight.light_blue_canvas_sign": "Placa de lona azul-clara", + "item.farmersdelight.light_blue_hanging_canvas_sign": "Placa suspensa de lona azul-clara", + "item.farmersdelight.light_gray_canvas_sign": "Placa de lona cinza-clara", + "item.farmersdelight.light_gray_hanging_canvas_sign": "Placa suspensa de lona cinza-clara", + "item.farmersdelight.lime_canvas_sign": "Placa de lona verde-limão", + "item.farmersdelight.lime_hanging_canvas_sign": "Placa suspensa de lona verde-limão", + "item.farmersdelight.magenta_canvas_sign": "Placa de lona magenta", + "item.farmersdelight.magenta_hanging_canvas_sign": "Placa suspensa de lona magenta", + "item.farmersdelight.mangrove_cabinet": "Armário de mangue", + "item.farmersdelight.oak_cabinet": "Armário de carvalho", + "item.farmersdelight.onion_crate": "Caixote de cebolas", + "item.farmersdelight.orange_canvas_sign": "Placa de lona laranja", + "item.farmersdelight.orange_hanging_canvas_sign": "Placa suspensa de lona laranja", + "item.farmersdelight.organic_compost": "Composto orgânico", + "item.farmersdelight.pink_canvas_sign": "Placa de lona rosa", + "item.farmersdelight.pink_hanging_canvas_sign": "Placa suspensa de lona rosa", + "item.farmersdelight.potato_crate": "Caixote de batatas", + "item.farmersdelight.purple_canvas_sign": "Placa de lona roxa", + "item.farmersdelight.purple_hanging_canvas_sign": "Placa suspensa de lona roxa", + "item.farmersdelight.red_canvas_sign": "Placa de lona vermelha", + "item.farmersdelight.red_hanging_canvas_sign": "Placa suspensa de lona vermelha", + "item.farmersdelight.red_mushroom_colony": "Colônia de cogumelos vermelhos", + "item.farmersdelight.rice_bag": "Saco de arroz", + "item.farmersdelight.rice_bale": "Fardo de arroz", + "item.farmersdelight.rice_roll_medley_block": "Seleção de rolinhos de arroz", + "item.farmersdelight.rich_soil": "Solo rico", + "item.farmersdelight.rich_soil_farmland": "Solo rico arado", + "item.farmersdelight.roast_chicken_block": "Frango recheado", + "item.farmersdelight.rope": "Corda", + "item.farmersdelight.rope_fence": "Cerca de corda", + "item.farmersdelight.rope_fence_gate": "Portão de corda", + "item.farmersdelight.safety_net": "Rede de segurança", + "item.farmersdelight.sandy_shrub": "Arbusto arenoso", + "item.farmersdelight.shepherds_pie_block": "Escondidinho de cordeiro", + "item.farmersdelight.skillet": "Frigideira", + "item.farmersdelight.spruce_cabinet": "Armário de pinheiro", + "item.farmersdelight.stove": "Fogão", + "item.farmersdelight.straw_bale": "Fardo de palha", + "item.farmersdelight.stuffed_pumpkin_block": "Abóbora recheada", + "item.farmersdelight.sweet_berry_cheesecake": "Cheesecake de bagas doces", + "item.farmersdelight.tatami": "Bloco de tatame", + "item.farmersdelight.tomato_crate": "Caixote de tomates", + "item.farmersdelight.warped_cabinet": "Armário distorcida", + "item.farmersdelight.white_canvas_sign": "Placa de lona branca", + "item.farmersdelight.white_hanging_canvas_sign": "Placa suspensa de lona branca", + "item.farmersdelight.wild_beetroots": "Beterraba marítima", + "item.farmersdelight.wild_cabbages": "Couve silvestre", + "item.farmersdelight.wild_carrots": "Cenoura silvestre", + "item.farmersdelight.wild_onions": "Cebola silvestre", + "item.farmersdelight.wild_potatoes": "Batata silvestre", + "item.farmersdelight.wild_rice": "Arroz silvestre", + "item.farmersdelight.wild_tomatoes": "Tomates rasteiros", + "item.farmersdelight.wooden_basket": "Cesto", + "item.farmersdelight.yellow_canvas_sign": "Placa de lona amarela", + "item.farmersdelight.yellow_hanging_canvas_sign": "Placa suspensa de lona amarela" } diff --git a/src/main/resources/assets/farmersdelight/lang/pt_pt.json b/src/main/resources/assets/farmersdelight/lang/pt_pt.json index 95b74bb68..5c5bee16b 100644 --- a/src/main/resources/assets/farmersdelight/lang/pt_pt.json +++ b/src/main/resources/assets/farmersdelight/lang/pt_pt.json @@ -219,5 +219,52 @@ "jei.farmersdelight.decomposition.light": "Acelerado pela luz do sol", "jei.farmersdelight.decomposition.fluid": "Acelerado pela água próxima", "jei.farmersdelight.decomposition.accelerators": "Acelerado por ativadores próximos (ver abaixo)", - "jei.farmersdelight.info.straw": "Uma fibra vegetal usada em construção. Obtida ao cortar herbáceas e outras plantas com uma Faca." + "jei.farmersdelight.info.straw": "Uma fibra vegetal usada em construção. Obtida ao cortar herbáceas e outras plantas com uma Faca.", + + "_comment.farmersdelight.item_aliases": "Block item aliases for Minecraft 26.2 item translation keys.", + "item.farmersdelight.acacia_cabinet": "Armário de acácia", + "item.farmersdelight.apple_pie": "Tarte de maçã", + "item.farmersdelight.beetroot_crate": "Caixote de beterrabas", + "item.farmersdelight.birch_cabinet": "Armário de bétula", + "item.farmersdelight.brown_mushroom_colony": "Colónia de cogumelos castanhos", + "item.farmersdelight.cabbage_crate": "Caixote de couves", + "item.farmersdelight.carrot_crate": "Caixote de cenouras", + "item.farmersdelight.chocolate_pie": "Tarte de chocolate", + "item.farmersdelight.cooking_pot": "Panela", + "item.farmersdelight.crimson_cabinet": "Armário carmesim", + "item.farmersdelight.cutting_board": "Tábua de corte", + "item.farmersdelight.dark_oak_cabinet": "Armário de carvalho escuro", + "item.farmersdelight.full_tatami_mat": "Tapete de tatami", + "item.farmersdelight.half_tatami_mat": "Meio tapete de tatami", + "item.farmersdelight.honey_glazed_ham_block": "Presunto glaceado", + "item.farmersdelight.jungle_cabinet": "Armário de madeira da selva", + "item.farmersdelight.oak_cabinet": "Armário de carvalho", + "item.farmersdelight.onion_crate": "Caixote de cebolas", + "item.farmersdelight.organic_compost": "Composto orgânico", + "item.farmersdelight.potato_crate": "Caixote de batatas", + "item.farmersdelight.red_mushroom_colony": "Colónia de cogumelos vermelhos", + "item.farmersdelight.rice_bag": "Saco de arroz", + "item.farmersdelight.rice_bale": "Fardo de arroz", + "item.farmersdelight.rich_soil": "Solo rico", + "item.farmersdelight.rich_soil_farmland": "Solo rico arado", + "item.farmersdelight.roast_chicken_block": "Frango recheado", + "item.farmersdelight.rope": "Corda", + "item.farmersdelight.safety_net": "Rede de segurança", + "item.farmersdelight.shepherds_pie_block": "Torta do pastor", + "item.farmersdelight.spruce_cabinet": "Armário de abeto", + "item.farmersdelight.stove": "Fogão", + "item.farmersdelight.straw_bale": "Fardo de palha", + "item.farmersdelight.stuffed_pumpkin_block": "Abóbora recheada", + "item.farmersdelight.sweet_berry_cheesecake": "Cheesecake de bagas doces", + "item.farmersdelight.tatami": "Bloco de tatami", + "item.farmersdelight.tomato_crate": "Caixote de tomates", + "item.farmersdelight.warped_cabinet": "Armário deformado", + "item.farmersdelight.wild_beetroots": "Beterrabas-marítimas", + "item.farmersdelight.wild_cabbages": "Couves selvagens", + "item.farmersdelight.wild_carrots": "Cenouras selvagens", + "item.farmersdelight.wild_onions": "Cebolas selvagens", + "item.farmersdelight.wild_potatoes": "Batatas selvagens", + "item.farmersdelight.wild_rice": "Arroz selvagem", + "item.farmersdelight.wild_tomatoes": "Tomates selvagens", + "item.farmersdelight.wooden_basket": "Cesto" } diff --git a/src/main/resources/assets/farmersdelight/lang/ru_ru.json b/src/main/resources/assets/farmersdelight/lang/ru_ru.json index 8ef982f56..d77f65836 100644 --- a/src/main/resources/assets/farmersdelight/lang/ru_ru.json +++ b/src/main/resources/assets/farmersdelight/lang/ru_ru.json @@ -526,5 +526,97 @@ "farmersdelight.configuration.enableComfortHealthOverlay": "Наложение эффекта комфорта на шкалу здоровья", "farmersdelight.configuration.enableComfortHealthOverlay.tooltip": "Если включено, при наличии у игрока эффекта комфорта поверх шкалы здоровья будет отображаться анимированное наложение.", "farmersdelight.configuration.enableFoodEffectTooltip": "Подсказка об эффектах еды", - "farmersdelight.configuration.enableFoodEffectTooltip.tooltip": "Если включено, продукты питания будут отображать подсказки с эффектами, которые они дают при употреблении (если таковые имеются). Применяется к продуктам как из Minecraft, так и из этого мода." + "farmersdelight.configuration.enableFoodEffectTooltip.tooltip": "Если включено, продукты питания будут отображать подсказки с эффектами, которые они дают при употреблении (если таковые имеются). Применяется к продуктам как из Minecraft, так и из этого мода.", + + "_comment.farmersdelight.item_aliases": "Block item aliases for Minecraft 26.2 item translation keys.", + "item.farmersdelight.acacia_cabinet": "Акациевая кладовая", + "item.farmersdelight.apple_pie": "Яблочный пирог", + "item.farmersdelight.bamboo_basket": "Бамбуковая корзина", + "item.farmersdelight.bamboo_cabinet": "Бамбуковая кладовая", + "item.farmersdelight.beetroot_crate": "Ящик со свёклой", + "item.farmersdelight.birch_cabinet": "Берёзовая кладовая", + "item.farmersdelight.black_canvas_sign": "Чёрная холщовая табличка", + "item.farmersdelight.black_hanging_canvas_sign": "Чёрная подвесная холщовая табличка", + "item.farmersdelight.blue_canvas_sign": "Синяя холщовая табличка", + "item.farmersdelight.blue_hanging_canvas_sign": "Синяя подвесная холщовая табличка", + "item.farmersdelight.brown_canvas_sign": "Коричневая холщовая табличка", + "item.farmersdelight.brown_hanging_canvas_sign": "Коричневая подвесная холщовая табличка", + "item.farmersdelight.brown_mushroom_colony": "Колония коричневых грибов", + "item.farmersdelight.cabbage_crate": "Ящик с капустой", + "item.farmersdelight.canvas_rug": "Холщовый коврик", + "item.farmersdelight.canvas_sign": "Холщовая табличка", + "item.farmersdelight.carrot_crate": "Ящик с морковью", + "item.farmersdelight.cherry_cabinet": "Вишнёвая кладовая", + "item.farmersdelight.chocolate_pie": "Шоколадный пирог", + "item.farmersdelight.cooking_pot": "Кухонный котёл", + "item.farmersdelight.crimson_cabinet": "Багровая кладовая", + "item.farmersdelight.cutting_board": "Разделочная доска", + "item.farmersdelight.cyan_canvas_sign": "Бирюзовая холщовая табличка", + "item.farmersdelight.cyan_hanging_canvas_sign": "Бирюзовая подвесная холщовая табличка", + "item.farmersdelight.dark_oak_cabinet": "Кладовая из тёмного дуба", + "item.farmersdelight.full_tatami_mat": "Целый мат татами", + "item.farmersdelight.gleaming_salad_block": "Блестящий салат", + "item.farmersdelight.gray_canvas_sign": "Серая холщовая табличка", + "item.farmersdelight.gray_hanging_canvas_sign": "Серая подвесная холщовая табличка", + "item.farmersdelight.green_canvas_sign": "Зелёная холщовая табличка", + "item.farmersdelight.green_hanging_canvas_sign": "Зелёная подвесная холщовая табличка", + "item.farmersdelight.half_tatami_mat": "Половина мата татами", + "item.farmersdelight.hanging_canvas_sign": "Подвесная холщовая табличка", + "item.farmersdelight.honey_glazed_ham_block": "Ветчина в медовой глазури", + "item.farmersdelight.jungle_cabinet": "Кладовая из тропического дерева", + "item.farmersdelight.light_blue_canvas_sign": "Голубая холщовая табличка", + "item.farmersdelight.light_blue_hanging_canvas_sign": "Голубая подвесная холщовая табличка", + "item.farmersdelight.light_gray_canvas_sign": "Светло-серая холщовая табличка", + "item.farmersdelight.light_gray_hanging_canvas_sign": "Светло-серая подвесная холщовая табличка", + "item.farmersdelight.lime_canvas_sign": "Лаймовая холщовая табличка", + "item.farmersdelight.lime_hanging_canvas_sign": "Лаймовая подвесная холщовая табличка", + "item.farmersdelight.magenta_canvas_sign": "Пурпурная холщовая табличка", + "item.farmersdelight.magenta_hanging_canvas_sign": "Пурпурная подвесная холщовая табличка", + "item.farmersdelight.mangrove_cabinet": "Мангровая кладовая", + "item.farmersdelight.oak_cabinet": "Дубовая кладовая", + "item.farmersdelight.onion_crate": "Ящик с луком", + "item.farmersdelight.orange_canvas_sign": "Оранжевая холщовая табличка", + "item.farmersdelight.orange_hanging_canvas_sign": "Оранжевая подвесная холщовая табличка", + "item.farmersdelight.organic_compost": "Органический компост", + "item.farmersdelight.pink_canvas_sign": "Розовая холщовая табличка", + "item.farmersdelight.pink_hanging_canvas_sign": "Розовая подвесная холщовая табличка", + "item.farmersdelight.potato_crate": "Ящик с картофелем", + "item.farmersdelight.purple_canvas_sign": "Фиолетовая холщовая табличка", + "item.farmersdelight.purple_hanging_canvas_sign": "Фиолетовая подвесная холщовая табличка", + "item.farmersdelight.red_canvas_sign": "Красная холщовая табличка", + "item.farmersdelight.red_hanging_canvas_sign": "Красная подвесная холщовая табличка", + "item.farmersdelight.red_mushroom_colony": "Колония красных грибов", + "item.farmersdelight.rice_bag": "Мешок риса", + "item.farmersdelight.rice_bale": "Рисовый тюк", + "item.farmersdelight.rice_roll_medley_block": "Ассорти из роллов", + "item.farmersdelight.rich_soil": "Плодородная почва", + "item.farmersdelight.rich_soil_farmland": "Плодородная пашня", + "item.farmersdelight.roast_chicken_block": "Обжареная курица", + "item.farmersdelight.rope": "Верёвка", + "item.farmersdelight.rope_fence": "Верёвочный забор", + "item.farmersdelight.rope_fence_gate": "Верёвочная калитка", + "item.farmersdelight.safety_net": "Страховочная сеть", + "item.farmersdelight.sandy_shrub": "Песчаный куст", + "item.farmersdelight.shepherds_pie_block": "Пастуший пирог", + "item.farmersdelight.skillet": "Сковорода", + "item.farmersdelight.spruce_cabinet": "Еловая кладовая", + "item.farmersdelight.stove": "Кухонная плита", + "item.farmersdelight.straw_bale": "Тюк соломы", + "item.farmersdelight.stuffed_pumpkin_block": "Фаршированная тыква", + "item.farmersdelight.sweet_berry_cheesecake": "Чизкейк со сладкими ягодами", + "item.farmersdelight.tatami": "Блок татами", + "item.farmersdelight.tomato_crate": "Ящик с томатами", + "item.farmersdelight.warped_cabinet": "Искажённая кладовая", + "item.farmersdelight.white_canvas_sign": "Белая холщовая табличка", + "item.farmersdelight.white_hanging_canvas_sign": "Белая подвесная холщовая табличка", + "item.farmersdelight.wild_beetroots": "Морская свёкла", + "item.farmersdelight.wild_cabbages": "Дикая капуста", + "item.farmersdelight.wild_carrots": "Дикая морковь", + "item.farmersdelight.wild_onions": "Дикий лук", + "item.farmersdelight.wild_potatoes": "Дикий картофель", + "item.farmersdelight.wild_rice": "Дикий рис", + "item.farmersdelight.wild_tomatoes": "Томатный куст", + "item.farmersdelight.wooden_basket": "Корзина", + "item.farmersdelight.yellow_canvas_sign": "Жёлтая холщовая табличка", + "item.farmersdelight.yellow_hanging_canvas_sign": "Жёлтая подвесная холщовая табличка" } diff --git a/src/main/resources/assets/farmersdelight/lang/sk_sk.json b/src/main/resources/assets/farmersdelight/lang/sk_sk.json index 456349585..b7f020a04 100644 --- a/src/main/resources/assets/farmersdelight/lang/sk_sk.json +++ b/src/main/resources/assets/farmersdelight/lang/sk_sk.json @@ -285,6 +285,74 @@ "jei.farmersdelight.decomposition.accelerators": "Zrýchlené susednými aktivátormi (pozri nižšie)", "jei.farmersdelight.info.straw": "Suché rastlinné vlákno používané pri výrobe. Získané rezaním trávnatých plodín a rastlín nožom.", "jei.farmersdelight.info.knife": "Nože sú ľahké zbrane na blízko. Dokážu zbierať slamu z tráv a zaručujú nejaké veci zo zvierat.", - "jei.farmersdelight.info.ham": "Veľký kus mäsa z prasaťa alebo Hoglinovho stehna. Na rozsekanie budete potrebovať niečo ľahšie ako meč..." + "jei.farmersdelight.info.ham": "Veľký kus mäsa z prasaťa alebo Hoglinovho stehna. Na rozsekanie budete potrebovať niečo ľahšie ako meč...", + + "_comment.farmersdelight.item_aliases": "Block item aliases for Minecraft 26.2 item translation keys.", + "item.farmersdelight.acacia_cabinet": "Akáciový kabinet", + "item.farmersdelight.apple_pie": "Jablkový koláč", + "item.farmersdelight.beetroot_crate": "Prepravka repy", + "item.farmersdelight.birch_cabinet": "Brezový kabinet", + "item.farmersdelight.black_canvas_sign": "Ceduľa s čiernym plátnom", + "item.farmersdelight.blue_canvas_sign": "Ceduľa s modrým plátnom", + "item.farmersdelight.brown_canvas_sign": "Ceduľa s hnedým plátnom", + "item.farmersdelight.brown_mushroom_colony": "Hríbová kolónia", + "item.farmersdelight.cabbage_crate": "Prepravka kapusty", + "item.farmersdelight.canvas_rug": "Plátený koberec", + "item.farmersdelight.canvas_sign": "Ceduľa s plátnom", + "item.farmersdelight.carrot_crate": "Prepravka mrkvi", + "item.farmersdelight.chocolate_pie": "Čokoládový koláč", + "item.farmersdelight.cooking_pot": "Hrniec", + "item.farmersdelight.crimson_cabinet": "Karmínový kabinet", + "item.farmersdelight.cutting_board": "Denko", + "item.farmersdelight.cyan_canvas_sign": "Ceduľa s tyrkysovým plátnom", + "item.farmersdelight.dark_oak_cabinet": "Kabinet z tmavého dubu", + "item.farmersdelight.full_tatami_mat": "Celá Tatami žinienka", + "item.farmersdelight.gray_canvas_sign": "Ceduľa so sivým plátnom", + "item.farmersdelight.green_canvas_sign": "Ceduľa so zeleným plátnom", + "item.farmersdelight.half_tatami_mat": "Polovičná Tatami žinienka", + "item.farmersdelight.honey_glazed_ham_block": "Šunka s nádychom medu", + "item.farmersdelight.jungle_cabinet": "Džungľový kabinet", + "item.farmersdelight.light_blue_canvas_sign": "Ceduľa so svetlomodrým plátnom", + "item.farmersdelight.light_gray_canvas_sign": "Ceduľa so svetlosivým plátnom", + "item.farmersdelight.lime_canvas_sign": "Ceduľa so svetlozeleným plátnom", + "item.farmersdelight.magenta_canvas_sign": "Ceduľa s purpurovým plátnom", + "item.farmersdelight.oak_cabinet": "Oak Cabinet", + "item.farmersdelight.onion_crate": "Prepravka cibule", + "item.farmersdelight.orange_canvas_sign": "Ceduľa s oranžovým plátnom", + "item.farmersdelight.organic_compost": "Organický kompost", + "item.farmersdelight.pink_canvas_sign": "Ceduľa s ružovým plátnom", + "item.farmersdelight.potato_crate": "Prepravka zemiakov", + "item.farmersdelight.purple_canvas_sign": "Ceduľa s fialovým plátnom", + "item.farmersdelight.red_canvas_sign": "Ceduľa s červeným plátnom", + "item.farmersdelight.red_mushroom_colony": "Muchotrávková kolónia", + "item.farmersdelight.rice_bag": "Vreco ryže", + "item.farmersdelight.rice_bale": "Zväzok ryže", + "item.farmersdelight.rice_roll_medley_block": "Mix rýžových roliek", + "item.farmersdelight.rich_soil": "Úrodná pôda", + "item.farmersdelight.rich_soil_farmland": "Zoraná úrodná pôda", + "item.farmersdelight.roast_chicken_block": "Zapečené kurča", + "item.farmersdelight.rope": "Lano", + "item.farmersdelight.safety_net": "Záchranná sieť", + "item.farmersdelight.sandy_shrub": "Piesčitý krík", + "item.farmersdelight.shepherds_pie_block": "Shepherdov koláč", + "item.farmersdelight.skillet": "Panvica", + "item.farmersdelight.spruce_cabinet": "Smrekový kabinet", + "item.farmersdelight.stove": "Sporák", + "item.farmersdelight.straw_bale": "Zväzok slamy", + "item.farmersdelight.stuffed_pumpkin_block": "Plnená tekvica", + "item.farmersdelight.sweet_berry_cheesecake": "Cheesecake zo sladkých bobulí", + "item.farmersdelight.tatami": "Tatami kocka", + "item.farmersdelight.tomato_crate": "Prepravka paradajok", + "item.farmersdelight.warped_cabinet": "Prízračný kabinet", + "item.farmersdelight.white_canvas_sign": "Ceduľa s bielym plátnom", + "item.farmersdelight.wild_beetroots": "Morská repa", + "item.farmersdelight.wild_cabbages": "Divoká kapusta", + "item.farmersdelight.wild_carrots": "Divoká mrkva", + "item.farmersdelight.wild_onions": "Divoká cibuľa", + "item.farmersdelight.wild_potatoes": "Divoký zemiak", + "item.farmersdelight.wild_rice": "Divoká ryža", + "item.farmersdelight.wild_tomatoes": "Paradajkový krík", + "item.farmersdelight.wooden_basket": "Košík", + "item.farmersdelight.yellow_canvas_sign": "Ceduľa so žltým plátnom" } - \ No newline at end of file + diff --git a/src/main/resources/assets/farmersdelight/lang/sr_sp.json b/src/main/resources/assets/farmersdelight/lang/sr_sp.json index 748096381..b4a0ff3c5 100644 --- a/src/main/resources/assets/farmersdelight/lang/sr_sp.json +++ b/src/main/resources/assets/farmersdelight/lang/sr_sp.json @@ -270,5 +270,72 @@ "jei.farmersdelight.decomposition.accelerators": "Убрзано суседним активаторима (види испод)", "jei.farmersdelight.info.straw": "Суво биљно влакно кориштено за производњу. Добијена кошењем травкастих усева и биљака ножем.", "jei.farmersdelight.info.knife": "Ножеви су лака оружја за борбу прса у прса. Они могу да сакупљају Сено из трава, и да гарантују споредне ствари од животиња.", - "jei.farmersdelight.info.ham": "Велики одрезак меса од ноге Свиње или Хоглина. Биће ти потребно нешто лакше од мача како би исекао један..." + "jei.farmersdelight.info.ham": "Велики одрезак меса од ноге Свиње или Хоглина. Биће ти потребно нешто лакше од мача како би исекао један...", + + "_comment.farmersdelight.item_aliases": "Block item aliases for Minecraft 26.2 item translation keys.", + "item.farmersdelight.acacia_cabinet": "Ормарић од багрема", + "item.farmersdelight.apple_pie": "Пита од јабука", + "item.farmersdelight.beetroot_crate": "Гајба цвекле", + "item.farmersdelight.birch_cabinet": "Ормарић од брезе", + "item.farmersdelight.black_canvas_sign": "Црни знак од платна", + "item.farmersdelight.blue_canvas_sign": "Плави знак од платна", + "item.farmersdelight.brown_canvas_sign": "Браон знак од платна", + "item.farmersdelight.brown_mushroom_colony": "Колонија браон печурака", + "item.farmersdelight.cabbage_crate": "Гајба купуса", + "item.farmersdelight.canvas_rug": "Простирач од платна", + "item.farmersdelight.canvas_sign": "Знак од платна", + "item.farmersdelight.carrot_crate": "Гајба шаргарепе", + "item.farmersdelight.chocolate_pie": "Пита од чоколаде", + "item.farmersdelight.cooking_pot": "Лонац", + "item.farmersdelight.crimson_cabinet": "Гримизни ормарић", + "item.farmersdelight.cutting_board": "Даска за сечење", + "item.farmersdelight.cyan_canvas_sign": "Тиркизни знак од платна", + "item.farmersdelight.dark_oak_cabinet": "Ормарић од тамног храста", + "item.farmersdelight.full_tatami_mat": "Читава татами простирка", + "item.farmersdelight.gray_canvas_sign": "Сиви знак од платна", + "item.farmersdelight.green_canvas_sign": "Зелени знак од платна", + "item.farmersdelight.half_tatami_mat": "Половина татами простирке", + "item.farmersdelight.honey_glazed_ham_block": "Глазирана медена шунка", + "item.farmersdelight.jungle_cabinet": "Ормарић од дрвета џунгле", + "item.farmersdelight.light_blue_canvas_sign": "Светло плави знак од платна", + "item.farmersdelight.light_gray_canvas_sign": "Светло сиви знак од платна", + "item.farmersdelight.lime_canvas_sign": "Светло зелени знак од платна", + "item.farmersdelight.magenta_canvas_sign": "Пурпурноцрвени знак од платна", + "item.farmersdelight.oak_cabinet": "Ормарић од храста", + "item.farmersdelight.onion_crate": "Гајба лука", + "item.farmersdelight.orange_canvas_sign": "Наранџасти знак од платна", + "item.farmersdelight.organic_compost": "Органско ђубриво", + "item.farmersdelight.pink_canvas_sign": "Розе знак од платна", + "item.farmersdelight.potato_crate": "Гајба кромпира", + "item.farmersdelight.purple_canvas_sign": "Љубичасти знак од платна", + "item.farmersdelight.red_canvas_sign": "Црвени знак од платна", + "item.farmersdelight.red_mushroom_colony": "Колонија црвених печурака", + "item.farmersdelight.rice_bag": "Џак пиринча", + "item.farmersdelight.rice_bale": "Бала пиринча", + "item.farmersdelight.rich_soil": "Плодна земља", + "item.farmersdelight.rich_soil_farmland": "Ораница плодне земље", + "item.farmersdelight.roast_chicken_block": "Печено пиле", + "item.farmersdelight.rope": "Конопац", + "item.farmersdelight.safety_net": "Сигурносна мрежа", + "item.farmersdelight.shepherds_pie_block": "Пастирска пита", + "item.farmersdelight.skillet": "Тигањ", + "item.farmersdelight.spruce_cabinet": "Ормарић од смреке", + "item.farmersdelight.stove": "Шпорет", + "item.farmersdelight.straw_bale": "Бала сламе", + "item.farmersdelight.stuffed_pumpkin_block": "Пуњена бундева", + "item.farmersdelight.sweet_berry_cheesecake": "Чизкејк од слатких бобица", + "item.farmersdelight.tatami": "Татами блок", + "item.farmersdelight.tomato_crate": "Гајба парадајза", + "item.farmersdelight.warped_cabinet": "Изопачени ормарић", + "item.farmersdelight.white_canvas_sign": "Бели знак од платна", + "item.farmersdelight.wild_beetroots": "Морска репа", + "item.farmersdelight.wild_cabbages": "Дивљи купус", + "item.farmersdelight.wild_carrots": "Дивља шаргарепа", + "item.farmersdelight.wild_onions": "Дивљи лук", + "item.farmersdelight.wild_potatoes": "Дивљи кромпир", + "item.farmersdelight.wild_rice": "Дивљи пиринач", + "item.farmersdelight.wild_tomatoes": "Лоза парадајза", + "item.farmersdelight.wooden_basket": "Корпа", + "item.farmersdelight.yellow_canvas_sign": "Жути знак од платна" } + diff --git a/src/main/resources/assets/farmersdelight/lang/sv_se.json b/src/main/resources/assets/farmersdelight/lang/sv_se.json index 40f7ad640..2b122bf5f 100644 --- a/src/main/resources/assets/farmersdelight/lang/sv_se.json +++ b/src/main/resources/assets/farmersdelight/lang/sv_se.json @@ -286,5 +286,75 @@ "jei.farmersdelight.decomposition.accelerators": "Snabbas upp av intilliggande aktivatorer (se nedan)", "jei.farmersdelight.info.straw": "En torr växtfiber som används i hantverk. Erhålls genom att skära gräsbevuxna grödor och växter med en kniv.", "jei.farmersdelight.info.knife": "Knivar är lätta närstridsvapen. De kan skörda halm från gräs och garantera sekundära droppar från djur.", - "jei.farmersdelight.info.ham": "En stor köttbit från en gris eller Hoglins ben. Du behöver något lättare än ett svärd för att skära ett..." + "jei.farmersdelight.info.ham": "En stor köttbit från en gris eller Hoglins ben. Du behöver något lättare än ett svärd för att skära ett...", + + "_comment.farmersdelight.item_aliases": "Block item aliases for Minecraft 26.2 item translation keys.", + "item.farmersdelight.acacia_cabinet": "Akaciaskåp", + "item.farmersdelight.apple_pie": "Äppelpaj", + "item.farmersdelight.beetroot_crate": "Rödbet Spjällåda", + "item.farmersdelight.birch_cabinet": "Björkskåp", + "item.farmersdelight.black_canvas_sign": "Svart Dukskylt", + "item.farmersdelight.blue_canvas_sign": "Blå Dukskylt", + "item.farmersdelight.brown_canvas_sign": "Brun Dukskylt", + "item.farmersdelight.brown_mushroom_colony": "Brun svampkoloni", + "item.farmersdelight.cabbage_crate": "Kål Spjällåda", + "item.farmersdelight.canvas_rug": "Dukmatta", + "item.farmersdelight.canvas_sign": "Dukskylt", + "item.farmersdelight.carrot_crate": "Morot Spjällåda", + "item.farmersdelight.chocolate_pie": "Chokladpaj", + "item.farmersdelight.cooking_pot": "Matlagningsgryta", + "item.farmersdelight.crimson_cabinet": "Karmosin", + "item.farmersdelight.cutting_board": "Skärbräda", + "item.farmersdelight.cyan_canvas_sign": "Turkos Dukskylt", + "item.farmersdelight.dark_oak_cabinet": "Mörk ekskåp", + "item.farmersdelight.full_tatami_mat": "Hel Tatamimatta", + "item.farmersdelight.gray_canvas_sign": "Grå Dukskylt", + "item.farmersdelight.green_canvas_sign": "Grön Dukskylt", + "item.farmersdelight.half_tatami_mat": "Halv Tatamimatta", + "item.farmersdelight.honey_glazed_ham_block": "Honungsglaserad skinka", + "item.farmersdelight.jungle_cabinet": "Jungelskåp", + "item.farmersdelight.light_blue_canvas_sign": "Ljusblå Dukskylt", + "item.farmersdelight.light_gray_canvas_sign": "Ljusgrå Dukskylt", + "item.farmersdelight.lime_canvas_sign": "Limegrön Dukskylt", + "item.farmersdelight.magenta_canvas_sign": "Ljuslila Dukskylt", + "item.farmersdelight.mangrove_cabinet": "Mangroveskåp", + "item.farmersdelight.oak_cabinet": "Ekskåp", + "item.farmersdelight.onion_crate": "Lök Spjällåda", + "item.farmersdelight.orange_canvas_sign": "Orange Dukskylt", + "item.farmersdelight.organic_compost": "Organisk kompost", + "item.farmersdelight.pink_canvas_sign": "Rosa Dukskylt", + "item.farmersdelight.potato_crate": "Potatis Spjällåda", + "item.farmersdelight.purple_canvas_sign": "Lila Dukskylt", + "item.farmersdelight.red_canvas_sign": "Röd Dukskylt", + "item.farmersdelight.red_mushroom_colony": "Röd svampkoloni", + "item.farmersdelight.rice_bag": "Påse med ris", + "item.farmersdelight.rice_bale": "Risbal", + "item.farmersdelight.rice_roll_medley_block": "Risrullemedley", + "item.farmersdelight.rich_soil": "Bördig mark", + "item.farmersdelight.rich_soil_farmland": "Bördig åkerjord", + "item.farmersdelight.roast_chicken_block": "Rostad kyckling", + "item.farmersdelight.rope": "Rep", + "item.farmersdelight.safety_net": "Skyddsnät", + "item.farmersdelight.sandy_shrub": "Sandig buske", + "item.farmersdelight.shepherds_pie_block": "Fåraherdens paj", + "item.farmersdelight.skillet": "Stekpanna", + "item.farmersdelight.spruce_cabinet": "Granskåp", + "item.farmersdelight.stove": "Spis", + "item.farmersdelight.straw_bale": "Halmbal", + "item.farmersdelight.stuffed_pumpkin_block": "Fylld pumpa", + "item.farmersdelight.sweet_berry_cheesecake": "Söt bärostkaka", + "item.farmersdelight.tatami": "Tatamimatta", + "item.farmersdelight.tomato_crate": "Tomat Spjällåda", + "item.farmersdelight.warped_cabinet": "Förvrängtskåp", + "item.farmersdelight.white_canvas_sign": "Vit Dukskylt", + "item.farmersdelight.wild_beetroots": "Havsbetor", + "item.farmersdelight.wild_cabbages": "Vildkål", + "item.farmersdelight.wild_carrots": "Vildmorot", + "item.farmersdelight.wild_onions": "Vildlök", + "item.farmersdelight.wild_potatoes": "Vildpotatis", + "item.farmersdelight.wild_rice": "Vildris", + "item.farmersdelight.wild_tomatoes": "Tomat buske", + "item.farmersdelight.wooden_basket": "Korg", + "item.farmersdelight.yellow_canvas_sign": "Gul Dukskylt" } + diff --git a/src/main/resources/assets/farmersdelight/lang/tok.json b/src/main/resources/assets/farmersdelight/lang/tok.json index 16981d648..4844d3ec8 100644 --- a/src/main/resources/assets/farmersdelight/lang/tok.json +++ b/src/main/resources/assets/farmersdelight/lang/tok.json @@ -312,5 +312,94 @@ "jei.farmersdelight.info.wild_onions": "tenpo mute la, kili sike lipu pi tomo ala li lon ma pi seli meso, sama supa pi kasi lili anu ma kasi.", "jei.farmersdelight.info.wild_potatoes": "tenpo mute la, kili ma pi tomo ala li lon ma lete, sama nena suli anu ma pi kasi lete.", "jei.farmersdelight.info.wild_tomatoes": "tenpo mute la, kili linja pi tomo ala li lon ma pi telo lili, sama ma seli anu ma pi kasi seli.", - "jei.farmersdelight.info.wild_rice": "tenpo mute la, kasi telo kon pi tomo ala li lon telo lon ma pi telo mute sama ma pi telo jaki anu ma pi kasi suli." + "jei.farmersdelight.info.wild_rice": "tenpo mute la, kasi telo kon pi tomo ala li lon telo lon ma pi telo mute sama ma pi telo jaki anu ma pi kasi suli.", + + "_comment.farmersdelight.item_aliases": "Block item aliases for Minecraft 26.2 item translation keys.", + "item.farmersdelight.acacia_cabinet": "poki lupa pi kasi seli", + "item.farmersdelight.apple_pie": "pan pi kili loje", + "item.farmersdelight.bamboo_cabinet": "poki lupa pi kasi pimeja", + "item.farmersdelight.beetroot_crate": "kulupu pi kili ma loje", + "item.farmersdelight.birch_cabinet": "poki lupa pi kasi walo", + "item.farmersdelight.black_canvas_sign": "lipu sitelen len pimeja", + "item.farmersdelight.black_hanging_canvas_sign": "lipu sitelen sewi len pimeja", + "item.farmersdelight.blue_canvas_sign": "lipu sitelen len pi laso telo", + "item.farmersdelight.blue_hanging_canvas_sign": "lipu sitelen sewi len pi laso kasi", + "item.farmersdelight.brown_canvas_sign": "lipu sitelen len pi kule ma", + "item.farmersdelight.brown_hanging_canvas_sign": "lipu sitelen sewi len pi kule ma", + "item.farmersdelight.brown_mushroom_colony": "soko kulupu pi kule ma", + "item.farmersdelight.cabbage_crate": "kulupu pi kasi lipu", + "item.farmersdelight.canvas_rug": "len anpa awen", + "item.farmersdelight.canvas_sign": "lipu sitelen len", + "item.farmersdelight.carrot_crate": "kulupu pi kili palisa", + "item.farmersdelight.cherry_cabinet": "poki lupa pi kasi suwi", + "item.farmersdelight.chocolate_pie": "pan suwi pi kule ma", + "item.farmersdelight.cooking_pot": "poki seli telo", + "item.farmersdelight.crimson_cabinet": "poki lupa pi soko loje", + "item.farmersdelight.cutting_board": "supa kipisi", + "item.farmersdelight.cyan_canvas_sign": "lipu sitelen len laso", + "item.farmersdelight.cyan_hanging_canvas_sign": "lipu sitelen sewi len laso", + "item.farmersdelight.dark_oak_cabinet": "poki lupa pi kasi pimeja", + "item.farmersdelight.full_tatami_mat": "len anpa pi kasi palisa", + "item.farmersdelight.gray_canvas_sign": "lipu sitelen len pi pimeja walo", + "item.farmersdelight.gray_hanging_canvas_sign": "lipu sitelen sewi len pi pimeja walo", + "item.farmersdelight.green_canvas_sign": "lipu sitelen len pi laso kasi", + "item.farmersdelight.green_hanging_canvas_sign": "lipu sitelen sewi len pi laso kasi", + "item.farmersdelight.half_tatami_mat": "len anpa kipisi pi kasi palisa", + "item.farmersdelight.hanging_canvas_sign": "lipu sitelen sewi len", + "item.farmersdelight.honey_glazed_ham_block": "moku noka lon suwi", + "item.farmersdelight.jungle_cabinet": "poki lupa pi kasi suli", + "item.farmersdelight.light_blue_canvas_sign": "lipu sitelen len pi laso sewi", + "item.farmersdelight.light_blue_hanging_canvas_sign": "lipu sitelen sewi len pi laso kasi", + "item.farmersdelight.light_gray_canvas_sign": "lipu sitelen len pi walo pimeja", + "item.farmersdelight.light_gray_hanging_canvas_sign": "lipu sitelen sewi len pi pimeja walo", + "item.farmersdelight.lime_canvas_sign": "lipu sitelen len pi laso jelo", + "item.farmersdelight.lime_hanging_canvas_sign": "lipu sitelen sewi len pi laso jelo", + "item.farmersdelight.magenta_canvas_sign": "lipu sitelen len pi loje laso", + "item.farmersdelight.magenta_hanging_canvas_sign": "lipu sitelen sewi len pi loje laso", + "item.farmersdelight.mangrove_cabinet": "poki lupa pi kasi telo", + "item.farmersdelight.oak_cabinet": "poki lupa pi kasi kili", + "item.farmersdelight.onion_crate": "kulupu pi kili sike lipu", + "item.farmersdelight.orange_canvas_sign": "lipu sitelen len pi loje jelo", + "item.farmersdelight.orange_hanging_canvas_sign": "lipu sitelen sewi len pi loje jelo", + "item.farmersdelight.organic_compost": "ma jaki", + "item.farmersdelight.pink_canvas_sign": "lipu sitelen len pi loje walo", + "item.farmersdelight.pink_hanging_canvas_sign": "lipu sitelen sewi len pi loje walo", + "item.farmersdelight.potato_crate": "kulupu pi kili ma", + "item.farmersdelight.purple_canvas_sign": "lipu sitelen len pi laso loje", + "item.farmersdelight.purple_hanging_canvas_sign": "lipu sitelen sewi len pi laso loje", + "item.farmersdelight.red_canvas_sign": "lipu sitelen len loje", + "item.farmersdelight.red_hanging_canvas_sign": "lipu sitelen sewi len loje", + "item.farmersdelight.red_mushroom_colony": "soko kulupu loje walo", + "item.farmersdelight.rice_bag": "kulupu pi sike mama moku", + "item.farmersdelight.rice_bale": "kulupu pi kasi telo kon", + "item.farmersdelight.rice_roll_medley_block": "moku mute pi sike mama moku", + "item.farmersdelight.rich_soil": "ma moku", + "item.farmersdelight.rich_soil_farmland": "ma moku mama", + "item.farmersdelight.roast_chicken_block": "moku waso seli pona", + "item.farmersdelight.rope": "linja suli", + "item.farmersdelight.safety_net": "linja pi anpa pona", + "item.farmersdelight.sandy_shrub": "kasi ko", + "item.farmersdelight.shepherds_pie_block": "pan soweli suli", + "item.farmersdelight.skillet": "ilo luka pi seli moku", + "item.farmersdelight.spruce_cabinet": "poki lupa pi kasi lete", + "item.farmersdelight.stove": "supa pi seli moku", + "item.farmersdelight.straw_bale": "kulupu pi palisa pan", + "item.farmersdelight.stuffed_pumpkin_block": "moku mute lon kili suli loje", + "item.farmersdelight.sweet_berry_cheesecake": "pan suwi pi kili suwi", + "item.farmersdelight.tatami": "len pi kasi palisa", + "item.farmersdelight.tomato_crate": "kulupu pi kili linja", + "item.farmersdelight.warped_cabinet": "poki lupa pi soko laso", + "item.farmersdelight.white_canvas_sign": "lipu sitelen len walo", + "item.farmersdelight.white_hanging_canvas_sign": "lipu sitelen sewi len walo", + "item.farmersdelight.wild_beetroots": "kili ma loje lon poka telo", + "item.farmersdelight.wild_cabbages": "kasi lipu lon ala tomo", + "item.farmersdelight.wild_carrots": "kili palisa lon ala tomo", + "item.farmersdelight.wild_onions": "kili sike lipu lon ala tomo", + "item.farmersdelight.wild_potatoes": "kili ma lon ala tomo", + "item.farmersdelight.wild_rice": "kasi telo kon lon ala tomo", + "item.farmersdelight.wild_tomatoes": "kasi pi kili kinja lon ala tomo", + "item.farmersdelight.wooden_basket": "poki palisa", + "item.farmersdelight.yellow_canvas_sign": "lipu sitelen len jelo", + "item.farmersdelight.yellow_hanging_canvas_sign": "lipu sitelen sewi len jelo" } + diff --git a/src/main/resources/assets/farmersdelight/lang/tr_tr.json b/src/main/resources/assets/farmersdelight/lang/tr_tr.json index d6b20fe31..ca1601200 100644 --- a/src/main/resources/assets/farmersdelight/lang/tr_tr.json +++ b/src/main/resources/assets/farmersdelight/lang/tr_tr.json @@ -285,5 +285,74 @@ "jei.farmersdelight.decomposition.accelerators": "Bitişiğindeki etkinleştiriciler tarafından hızlanır (aşağıya bakın)", "jei.farmersdelight.info.straw": "Üretimde kullanılabilen kuru bir bitki lifi. Çimenli bitkileri ve bitkileri Bıçak ile keserek elde edilir.", "jei.farmersdelight.info.knife": "Bıçaklar hafif yakın dövüş silahlarıdır. Otlardan Saman toplayabilirler ve hayvanlardan düşen ikincil şeyleri garanti edebilirler.", - "jei.farmersdelight.info.ham": "Domuz veya Hoglin'in bacağından kesilmiş büyük bir et parçası. Birini kesmek için Kılıçtan daha hafif bir şeye ihtiyacın olacak..." + "jei.farmersdelight.info.ham": "Domuz veya Hoglin'in bacağından kesilmiş büyük bir et parçası. Birini kesmek için Kılıçtan daha hafif bir şeye ihtiyacın olacak...", + + "_comment.farmersdelight.item_aliases": "Block item aliases for Minecraft 26.2 item translation keys.", + "item.farmersdelight.acacia_cabinet": "Akasya Kiler", + "item.farmersdelight.apple_pie": "Elmalı Turta", + "item.farmersdelight.beetroot_crate": "Pancar Kasası", + "item.farmersdelight.birch_cabinet": "Huş Kiler", + "item.farmersdelight.black_canvas_sign": "Siyah Kanvas Tabela", + "item.farmersdelight.blue_canvas_sign": "Mavi Kanvas Tabela", + "item.farmersdelight.brown_canvas_sign": "Kahverengi Kanvas Tabela", + "item.farmersdelight.brown_mushroom_colony": "Kahverengi Mantar Kolonisi", + "item.farmersdelight.cabbage_crate": "Lahana Kasası", + "item.farmersdelight.canvas_rug": "Kanvas Kilim", + "item.farmersdelight.canvas_sign": "Kanvas Tabela", + "item.farmersdelight.carrot_crate": "Havuç Kasası", + "item.farmersdelight.chocolate_pie": "Çikolatalı Turta", + "item.farmersdelight.cooking_pot": "Tencere", + "item.farmersdelight.crimson_cabinet": "Kızıl Kiler", + "item.farmersdelight.cutting_board": "Kesme Tahtası", + "item.farmersdelight.cyan_canvas_sign": "Camgöbeği Kanvas Tabela", + "item.farmersdelight.dark_oak_cabinet": "Koyu Meşe Kiler", + "item.farmersdelight.full_tatami_mat": "Tam Tatami Paspası", + "item.farmersdelight.gray_canvas_sign": "Gri Kanvas Tabela", + "item.farmersdelight.green_canvas_sign": "Yeşil Kanvas Tabela", + "item.farmersdelight.half_tatami_mat": "Yarım Tatami Paspası", + "item.farmersdelight.honey_glazed_ham_block": "Bal Kaplı Jambon", + "item.farmersdelight.jungle_cabinet": "Orman Ağacı Kiler", + "item.farmersdelight.light_blue_canvas_sign": "Açık Mavi Kanvas Tabela", + "item.farmersdelight.light_gray_canvas_sign": "Açık Gri Kanvas Tabela", + "item.farmersdelight.lime_canvas_sign": "Açık Yeşil Kanvas Tabela", + "item.farmersdelight.magenta_canvas_sign": "Eflatun Kanvas Tabela", + "item.farmersdelight.oak_cabinet": "Meşe Kiler", + "item.farmersdelight.onion_crate": "Soğan Kasası", + "item.farmersdelight.orange_canvas_sign": "Turuncu Kanvas Tabela", + "item.farmersdelight.organic_compost": "Organik Gübre", + "item.farmersdelight.pink_canvas_sign": "Pembe Kanvas Tabela", + "item.farmersdelight.potato_crate": "Patates Kasası", + "item.farmersdelight.purple_canvas_sign": "Mor Kanvas Tabela", + "item.farmersdelight.red_canvas_sign": "Kırmızı Kanvas Tabela", + "item.farmersdelight.red_mushroom_colony": "Kırmızı Mantar Kolonisi", + "item.farmersdelight.rice_bag": "Pirinç Çuvalı", + "item.farmersdelight.rice_bale": "Pirinç Balyası", + "item.farmersdelight.rice_roll_medley_block": "Karışık Pirinç Sarmaları", + "item.farmersdelight.rich_soil": "Zengin Toprak", + "item.farmersdelight.rich_soil_farmland": "Zengin Toprak Tarım Arazisi", + "item.farmersdelight.roast_chicken_block": "Kızarmış Tavuk", + "item.farmersdelight.rope": "Halat", + "item.farmersdelight.safety_net": "Emniyet Halatı", + "item.farmersdelight.sandy_shrub": "Kumlu Çalı", + "item.farmersdelight.shepherds_pie_block": "Çoban Turtası", + "item.farmersdelight.skillet": "Tava", + "item.farmersdelight.spruce_cabinet": "Ladin Kiler", + "item.farmersdelight.stove": "Ocak", + "item.farmersdelight.straw_bale": "Hasır Balyası", + "item.farmersdelight.stuffed_pumpkin_block": "Balkabağı Dolması", + "item.farmersdelight.sweet_berry_cheesecake": "Tatlı Orman Meyveli Çizkek", + "item.farmersdelight.tatami": "Tatami Bloğu", + "item.farmersdelight.tomato_crate": "Domates Kasası", + "item.farmersdelight.warped_cabinet": "Çarpık Kiler", + "item.farmersdelight.white_canvas_sign": "Beyaz Kanvas Tabela", + "item.farmersdelight.wild_beetroots": "Deniz Pancarı", + "item.farmersdelight.wild_cabbages": "Yabani Lahana", + "item.farmersdelight.wild_carrots": "Yabani Havuç", + "item.farmersdelight.wild_onions": "Yabani Soğan", + "item.farmersdelight.wild_potatoes": "Yabani Patates", + "item.farmersdelight.wild_rice": "Yabani Pirinç", + "item.farmersdelight.wild_tomatoes": "Domates Çalısı", + "item.farmersdelight.wooden_basket": "Sepet", + "item.farmersdelight.yellow_canvas_sign": "Sarı Kanvas Tabela" } + diff --git a/src/main/resources/assets/farmersdelight/lang/uk_ua.json b/src/main/resources/assets/farmersdelight/lang/uk_ua.json index c95d90aa2..53d119e95 100644 --- a/src/main/resources/assets/farmersdelight/lang/uk_ua.json +++ b/src/main/resources/assets/farmersdelight/lang/uk_ua.json @@ -524,5 +524,98 @@ "farmersdelight.configuration.enableComfortHealthOverlay": "Накладення затишку на індикатор здоров'я", "farmersdelight.configuration.enableComfortHealthOverlay.tooltip": "Якщо увімкнено, на індикаторі здоров'я відображатиметься прокручуване накладення, коли гравець має ефект затишку.", "farmersdelight.configuration.enableFoodEffectTooltip": "Підказка ефектів їжі", - "farmersdelight.configuration.enableFoodEffectTooltip.tooltip": "Якщо увімкнено, харчові предмети відображатимуть підказки з переліком ефектів, які вони надають при поїданні, якщо такі є. Застосовується до продуктів харчування як з Minecraft, так і з цього мода." + "farmersdelight.configuration.enableFoodEffectTooltip.tooltip": "Якщо увімкнено, харчові предмети відображатимуть підказки з переліком ефектів, які вони надають при поїданні, якщо такі є. Застосовується до продуктів харчування як з Minecraft, так і з цього мода.", + + "_comment.farmersdelight.item_aliases": "Block item aliases for Minecraft 26.2 item translation keys.", + "item.farmersdelight.acacia_cabinet": "Акацієва шафка", + "item.farmersdelight.apple_pie": "Яблучний пиріг", + "item.farmersdelight.bamboo_basket": "Бамбуковий кошик", + "item.farmersdelight.bamboo_cabinet": "Бамбукова шафка", + "item.farmersdelight.beetroot_crate": "Ящик буряка", + "item.farmersdelight.birch_cabinet": "Березова шафка", + "item.farmersdelight.black_canvas_sign": "Чорна брезентова табличка", + "item.farmersdelight.black_hanging_canvas_sign": "Чорна брезентова вивіска", + "item.farmersdelight.blue_canvas_sign": "Синя брезентова табличка", + "item.farmersdelight.blue_hanging_canvas_sign": "Синя брезентова вивіска", + "item.farmersdelight.brown_canvas_sign": "Коричнева брезентова табличка", + "item.farmersdelight.brown_hanging_canvas_sign": "Коричнева брезентова вивіска", + "item.farmersdelight.brown_mushroom_colony": "Колонія коричневих грибів", + "item.farmersdelight.cabbage_crate": "Ящик капусти", + "item.farmersdelight.canvas_rug": "Брезентовий килим", + "item.farmersdelight.canvas_sign": "Брезентова табличка", + "item.farmersdelight.carrot_crate": "Ящик моркви", + "item.farmersdelight.cherry_cabinet": "Вишнева шафка", + "item.farmersdelight.chocolate_pie": "Шоколадний пиріг", + "item.farmersdelight.cooking_pot": "Каструля", + "item.farmersdelight.crimson_cabinet": "Багряна шафка", + "item.farmersdelight.cutting_board": "Нарізна дошка", + "item.farmersdelight.cyan_canvas_sign": "Бірюзова брезентова табличка", + "item.farmersdelight.cyan_hanging_canvas_sign": "Бірюзова брезентова вивіска", + "item.farmersdelight.dark_oak_cabinet": "Темно-дубова шафка", + "item.farmersdelight.full_tatami_mat": "Цілий мат татамі", + "item.farmersdelight.gleaming_salad_block": "Блискучий салат", + "item.farmersdelight.gray_canvas_sign": "Сіра брезентова табличка", + "item.farmersdelight.gray_hanging_canvas_sign": "Сіра брезентова вивіска", + "item.farmersdelight.green_canvas_sign": "Зелена брезентова табличка", + "item.farmersdelight.green_hanging_canvas_sign": "Зелена брезентова вивіска", + "item.farmersdelight.half_tatami_mat": "Половина мату татамі", + "item.farmersdelight.hanging_canvas_sign": "Брезентова вивіска", + "item.farmersdelight.honey_glazed_ham_block": "Шинка в медовій глазурі", + "item.farmersdelight.jungle_cabinet": "Тропічна шафка", + "item.farmersdelight.light_blue_canvas_sign": "Блакитна брезентова табличка", + "item.farmersdelight.light_blue_hanging_canvas_sign": "Блакитна брезентова вивіска", + "item.farmersdelight.light_gray_canvas_sign": "Світло-сіра брезентова табличка", + "item.farmersdelight.light_gray_hanging_canvas_sign": "Світло-сіра брезентова вивіска", + "item.farmersdelight.lime_canvas_sign": "Лаймова брезентова табличка", + "item.farmersdelight.lime_hanging_canvas_sign": "Лаймова брезентова вивіска", + "item.farmersdelight.magenta_canvas_sign": "Пурпурова брезентова табличка", + "item.farmersdelight.magenta_hanging_canvas_sign": "Пурпурова брезентова вивіска", + "item.farmersdelight.mangrove_cabinet": "Мангрова шафка", + "item.farmersdelight.oak_cabinet": "Дубова шафка", + "item.farmersdelight.onion_crate": "Ящик цибулі", + "item.farmersdelight.orange_canvas_sign": "Помаранчева брезентова табличка", + "item.farmersdelight.orange_hanging_canvas_sign": "Помаранчева брезентова вивіска", + "item.farmersdelight.organic_compost": "Органічний компост", + "item.farmersdelight.pink_canvas_sign": "Рожева брезентова табличка", + "item.farmersdelight.pink_hanging_canvas_sign": "Рожева брезентова вивіска", + "item.farmersdelight.potato_crate": "Ящик картоплі", + "item.farmersdelight.purple_canvas_sign": "Фіолетова брезентова табличка", + "item.farmersdelight.purple_hanging_canvas_sign": "Фіолетова брезентова вивіска", + "item.farmersdelight.red_canvas_sign": "Червона брезентова табличка", + "item.farmersdelight.red_hanging_canvas_sign": "Червона брезентова вивіска", + "item.farmersdelight.red_mushroom_colony": "Колонія червоних грибів", + "item.farmersdelight.rice_bag": "Мішок рису", + "item.farmersdelight.rice_bale": "Копиця рису", + "item.farmersdelight.rice_roll_medley_block": "Мішанка рисових ролів", + "item.farmersdelight.rich_soil": "Родючий ґрунт", + "item.farmersdelight.rich_soil_farmland": "Родюча рілля", + "item.farmersdelight.roast_chicken_block": "Запечена курятина", + "item.farmersdelight.rope": "Мотузка", + "item.farmersdelight.rope_fence": "Мотузковий паркан", + "item.farmersdelight.rope_fence_gate": "Мотузкова хвіртка", + "item.farmersdelight.safety_net": "Страхова сітка", + "item.farmersdelight.sandy_shrub": "Піщаний кущ", + "item.farmersdelight.shepherds_pie_block": "Пастуший пиріг", + "item.farmersdelight.skillet": "Сковорода", + "item.farmersdelight.spruce_cabinet": "Смерекова шафка", + "item.farmersdelight.stove": "Кухонна плита", + "item.farmersdelight.straw_bale": "Копиця сіна", + "item.farmersdelight.stuffed_pumpkin_block": "Фарширований гарбуз", + "item.farmersdelight.sweet_berry_cheesecake": "Солодко-ягідний чизкейк", + "item.farmersdelight.tatami": "Блок татамі", + "item.farmersdelight.tomato_crate": "Ящик помідорів", + "item.farmersdelight.warped_cabinet": "Химерна шафка", + "item.farmersdelight.white_canvas_sign": "Біла брезентова табличка", + "item.farmersdelight.white_hanging_canvas_sign": "Біла брезентова вивіска", + "item.farmersdelight.wild_beetroots": "Морський буряк", + "item.farmersdelight.wild_cabbages": "Дика капуста", + "item.farmersdelight.wild_carrots": "Дика морква", + "item.farmersdelight.wild_onions": "Дика цибуля", + "item.farmersdelight.wild_potatoes": "Дика картопля", + "item.farmersdelight.wild_rice": "Дикий рис", + "item.farmersdelight.wild_tomatoes": "Томатний кущ", + "item.farmersdelight.wooden_basket": "Кошик", + "item.farmersdelight.yellow_canvas_sign": "Жовта брезентова табличка", + "item.farmersdelight.yellow_hanging_canvas_sign": "Жовта брезентова вивіска" } + diff --git a/src/main/resources/assets/farmersdelight/lang/vi_vn.json b/src/main/resources/assets/farmersdelight/lang/vi_vn.json index a47b2e425..c4ebf9dcd 100644 --- a/src/main/resources/assets/farmersdelight/lang/vi_vn.json +++ b/src/main/resources/assets/farmersdelight/lang/vi_vn.json @@ -314,5 +314,94 @@ "jei.farmersdelight.info.wild_onions": "Hành tây thường được tìm thấy dưới dạng cây dại ở các vùng đất ôn đới, như đồng bằng và rừng.", "jei.farmersdelight.info.wild_potatoes": "Khoai tây thường được tìm thấy dưới dạng cây dại ở các vùng đất lạnh, như núi và rừng taiga.", "jei.farmersdelight.info.wild_tomatoes": "Cà chua thường được tìm thấy dưới dạng cây dại ở các vùng đất khô cằn, như savan và sa mạc.", - "jei.farmersdelight.info.wild_rice": "Lúa thường được tìm thấy dưới dạng cây dại trong các ao của vùng đất ẩm ướt, như đầm lầy và rừng rậm." + "jei.farmersdelight.info.wild_rice": "Lúa thường được tìm thấy dưới dạng cây dại trong các ao của vùng đất ẩm ướt, như đầm lầy và rừng rậm.", + + "_comment.farmersdelight.item_aliases": "Block item aliases for Minecraft 26.2 item translation keys.", + "item.farmersdelight.acacia_cabinet": "Tủ gỗ xiêm gai", + "item.farmersdelight.apple_pie": "Bánh táo", + "item.farmersdelight.bamboo_cabinet": "Tủ gỗ tre", + "item.farmersdelight.beetroot_crate": "Giỏ củ dền", + "item.farmersdelight.birch_cabinet": "Tủ gỗ bạch dương", + "item.farmersdelight.black_canvas_sign": "Tấm biển vải đen", + "item.farmersdelight.black_hanging_canvas_sign": "Bảng hiệu vải treo màu đen", + "item.farmersdelight.blue_canvas_sign": "Tấm biển vải xanh dương", + "item.farmersdelight.blue_hanging_canvas_sign": "Bảng hiệu vải treo màu xanh", + "item.farmersdelight.brown_canvas_sign": "Tấm biển vải nâu", + "item.farmersdelight.brown_hanging_canvas_sign": "Bảng hiệu vải treo màu nâu", + "item.farmersdelight.brown_mushroom_colony": "Nhúm nấm nâu", + "item.farmersdelight.cabbage_crate": "Giỏ bắp cải", + "item.farmersdelight.canvas_rug": "Thảm vải", + "item.farmersdelight.canvas_sign": "Tấm biển vải", + "item.farmersdelight.carrot_crate": "Giỏ cà rốt", + "item.farmersdelight.cherry_cabinet": "Tủ gỗ anh đào", + "item.farmersdelight.chocolate_pie": "Bánh Sô cô la", + "item.farmersdelight.cooking_pot": "Nồi nấu ăn", + "item.farmersdelight.crimson_cabinet": "Tủ gỗ đỏ thẫm", + "item.farmersdelight.cutting_board": "Thớt", + "item.farmersdelight.cyan_canvas_sign": "Tấm biển vải lục lam", + "item.farmersdelight.cyan_hanging_canvas_sign": "Bảng hiệu vải treo màu lục lam", + "item.farmersdelight.dark_oak_cabinet": "Tủ gỗ sồi sẫm", + "item.farmersdelight.full_tatami_mat": "Chiếu Tatami đầy đủ", + "item.farmersdelight.gray_canvas_sign": "Tấm biển vải xám", + "item.farmersdelight.gray_hanging_canvas_sign": "Bảng hiệu vải treo màu xám", + "item.farmersdelight.green_canvas_sign": "Tấm biển vải xanh lá", + "item.farmersdelight.green_hanging_canvas_sign": "Bảng hiệu vải treo màu xanh lá cây", + "item.farmersdelight.half_tatami_mat": "Một nửa tấm chiếu Tatami", + "item.farmersdelight.hanging_canvas_sign": "Bảng hiệu vải treo", + "item.farmersdelight.honey_glazed_ham_block": "Đùi heo tẩm mật ong", + "item.farmersdelight.jungle_cabinet": "Tủ gỗ rừng", + "item.farmersdelight.light_blue_canvas_sign": "Tấm biển vải xanh dương nhạt", + "item.farmersdelight.light_blue_hanging_canvas_sign": "Bảng hiệu vải treo màu xanh nhạt", + "item.farmersdelight.light_gray_canvas_sign": "Tấm biển vải xám nhạt", + "item.farmersdelight.light_gray_hanging_canvas_sign": "Bảng hiệu vải treo màu xám nhạt", + "item.farmersdelight.lime_canvas_sign": "Tấm biển vải xanh lá mạ", + "item.farmersdelight.lime_hanging_canvas_sign": "Bảng hiệu vải treo vôi", + "item.farmersdelight.magenta_canvas_sign": "Tấm biển vải đỏ sậm", + "item.farmersdelight.magenta_hanging_canvas_sign": "Bảng hiệu canvas treo màu đỏ tươi", + "item.farmersdelight.mangrove_cabinet": "Tủ gỗ đước", + "item.farmersdelight.oak_cabinet": "Tủ gỗ sồi", + "item.farmersdelight.onion_crate": "Giỏ hành tây", + "item.farmersdelight.orange_canvas_sign": "Tấm biển vải cam", + "item.farmersdelight.orange_hanging_canvas_sign": "Bảng hiệu vải treo màu cam", + "item.farmersdelight.organic_compost": "Phân hữu cơ", + "item.farmersdelight.pink_canvas_sign": "Tấm biển vải hồng", + "item.farmersdelight.pink_hanging_canvas_sign": "Bảng hiệu vải treo màu hồng", + "item.farmersdelight.potato_crate": "Giỏ khoai tây", + "item.farmersdelight.purple_canvas_sign": "Tấm biển vải tím", + "item.farmersdelight.purple_hanging_canvas_sign": "Bảng hiệu vải treo màu tím", + "item.farmersdelight.red_canvas_sign": "Tấm biển vải đỏ", + "item.farmersdelight.red_hanging_canvas_sign": "Bảng hiệu vải treo màu đỏ", + "item.farmersdelight.red_mushroom_colony": "Nhúm nấm đỏ", + "item.farmersdelight.rice_bag": "Bao gạo", + "item.farmersdelight.rice_bale": "Kiện bông lúa", + "item.farmersdelight.rice_roll_medley_block": "Đĩa cơm cuộn", + "item.farmersdelight.rich_soil": "Đất màu mỡ", + "item.farmersdelight.rich_soil_farmland": "Đất ruộng giàu dinh dưỡng", + "item.farmersdelight.roast_chicken_block": "Thịt gà nướng", + "item.farmersdelight.rope": "Dây thừng", + "item.farmersdelight.safety_net": "Lưới an toàn", + "item.farmersdelight.sandy_shrub": "Cây bụi cát", + "item.farmersdelight.shepherds_pie_block": "Bánh Pie bò Shepherd", + "item.farmersdelight.skillet": "Chảo", + "item.farmersdelight.spruce_cabinet": "Tủ gỗ vân sam", + "item.farmersdelight.stove": "Bếp lò", + "item.farmersdelight.straw_bale": "Kiện rơm", + "item.farmersdelight.stuffed_pumpkin_block": "Bí ngô nhồi", + "item.farmersdelight.sweet_berry_cheesecake": "Bánh phô mai quả mọng", + "item.farmersdelight.tatami": "Khối Tatami", + "item.farmersdelight.tomato_crate": "Giỏ cà chua", + "item.farmersdelight.warped_cabinet": "Tủ gỗ kì dị", + "item.farmersdelight.white_canvas_sign": "Tấm biển vải trắng", + "item.farmersdelight.white_hanging_canvas_sign": "Bảng hiệu vải treo màu trắng", + "item.farmersdelight.wild_beetroots": "Củ dền dại", + "item.farmersdelight.wild_cabbages": "Bắp cải dại", + "item.farmersdelight.wild_carrots": "Cà rốt hoang", + "item.farmersdelight.wild_onions": "Hành tây dại", + "item.farmersdelight.wild_potatoes": "Khoai tây dại", + "item.farmersdelight.wild_rice": "Lúa hoang dã", + "item.farmersdelight.wild_tomatoes": "Cà chua dại", + "item.farmersdelight.wooden_basket": "Giỏ", + "item.farmersdelight.yellow_canvas_sign": "Tấm biển vải vàng", + "item.farmersdelight.yellow_hanging_canvas_sign": "Bảng hiệu vải treo màu vàng" } + diff --git a/src/main/resources/assets/farmersdelight/lang/vp_vl.json b/src/main/resources/assets/farmersdelight/lang/vp_vl.json index dd2c40dc3..0e47ccc62 100644 --- a/src/main/resources/assets/farmersdelight/lang/vp_vl.json +++ b/src/main/resources/assets/farmersdelight/lang/vp_vl.json @@ -316,5 +316,94 @@ "jei.farmersdelight.info.wild_onions": "Du deki finna dasos oishifraut ine dasos au munauki.", "jei.farmersdelight.info.wild_potatoes": "Du deki finna dasos kartofel ine berg au taiga.", "jei.farmersdelight.info.wild_tomatoes": "Du deki finna dasos pomodoro ine sandai au vapapol.", - "jei.farmersdelight.info.wild_rice": "Du deki finna dasos mi ine satter au pluidasos." + "jei.farmersdelight.info.wild_rice": "Du deki finna dasos mi ine satter au pluidasos.", + + "_comment.farmersdelight.item_aliases": "Block item aliases for Minecraft 26.2 item translation keys.", + "item.farmersdelight.acacia_cabinet": "Akasja Tingbaksu", + "item.farmersdelight.apple_pie": "Ringotorta", + "item.farmersdelight.bamboo_cabinet": "Sembaum Tingbaksu", + "item.farmersdelight.beetroot_crate": "Roranjabaksu", + "item.farmersdelight.birch_cabinet": "Volkodja Tingbaksu", + "item.farmersdelight.black_canvas_sign": "Kuro Kototumam", + "item.farmersdelight.black_hanging_canvas_sign": "Kuro Shankototumam", + "item.farmersdelight.blue_canvas_sign": "Blau Kototumam", + "item.farmersdelight.blue_hanging_canvas_sign": "Blau Shankototumam", + "item.farmersdelight.brown_canvas_sign": "Brun Kototumam", + "item.farmersdelight.brown_hanging_canvas_sign": "Brun Shankototumam", + "item.farmersdelight.brown_mushroom_colony": "Brunmanitariklani", + "item.farmersdelight.cabbage_crate": "Erbabaksu", + "item.farmersdelight.canvas_rug": "Djotrimun Lammaspol", + "item.farmersdelight.canvas_sign": "Djotrimun Kototumam", + "item.farmersdelight.carrot_crate": "Karotenbaksu", + "item.farmersdelight.cherry_cabinet": "Sakura Tingbaksu", + "item.farmersdelight.chocolate_pie": "Chokitorta", + "item.farmersdelight.cooking_pot": "Kunjastakline", + "item.farmersdelight.crimson_cabinet": "Rodai Tingbaksu", + "item.farmersdelight.cutting_board": "Tserpol", + "item.farmersdelight.cyan_canvas_sign": "Tsulus Kototumam", + "item.farmersdelight.cyan_hanging_canvas_sign": "Tsulus Shankototumam", + "item.farmersdelight.dark_oak_cabinet": "Kurairus Tingbaksu", + "item.farmersdelight.full_tatami_mat": "Hel Djotrimun Lammaspol", + "item.farmersdelight.gray_canvas_sign": "Gris Kototumam", + "item.farmersdelight.gray_hanging_canvas_sign": "Gris Shankototumam", + "item.farmersdelight.green_canvas_sign": "Midori Kototumam", + "item.farmersdelight.green_hanging_canvas_sign": "Midori Shankototumam", + "item.farmersdelight.half_tatami_mat": "Han Djotrimun Lammaspol", + "item.farmersdelight.hanging_canvas_sign": "Djotrimun Shankototumam", + "item.farmersdelight.honey_glazed_ham_block": "Mjaltpjelitena Shiosjotdado", + "item.farmersdelight.jungle_cabinet": "Pluidasos Tingbaksu", + "item.farmersdelight.light_blue_canvas_sign": "Sini Kototumam", + "item.farmersdelight.light_blue_hanging_canvas_sign": "Sini Shankototumam", + "item.farmersdelight.light_gray_canvas_sign": "Shirogris Kototumam", + "item.farmersdelight.light_gray_hanging_canvas_sign": "Shirogris Shankototumam", + "item.farmersdelight.lime_canvas_sign": "Limonfarge Kototumam", + "item.farmersdelight.lime_hanging_canvas_sign": "Limonfarge Shankototumam", + "item.farmersdelight.magenta_canvas_sign": "Romura Kototumam", + "item.farmersdelight.magenta_hanging_canvas_sign": "Romura Shankototumam", + "item.farmersdelight.mangrove_cabinet": "Mangerbaum Tingbaksu", + "item.farmersdelight.oak_cabinet": "Rus Tingbaksu", + "item.farmersdelight.onion_crate": "Oishifrautbaksu", + "item.farmersdelight.orange_canvas_sign": "Portokali Kototumam", + "item.farmersdelight.orange_hanging_canvas_sign": "Portokali Shankototumam", + "item.farmersdelight.organic_compost": "Namtingmyl", + "item.farmersdelight.pink_canvas_sign": "Roza Kototumam", + "item.farmersdelight.pink_hanging_canvas_sign": "Roza Shankototumam", + "item.farmersdelight.potato_crate": "Kartofelbaksu", + "item.farmersdelight.purple_canvas_sign": "Murasaki Kototumam", + "item.farmersdelight.purple_hanging_canvas_sign": "Murasaki Shankototumam", + "item.farmersdelight.red_canvas_sign": "Ros Kototumam", + "item.farmersdelight.red_hanging_canvas_sign": "Ros Shankototumam", + "item.farmersdelight.red_mushroom_colony": "Rosmanitariklani", + "item.farmersdelight.rice_bag": "Mikaban", + "item.farmersdelight.rice_bale": "Midado", + "item.farmersdelight.rice_roll_medley_block": "Nampol fu Mikroll", + "item.farmersdelight.rich_soil": "Namtingmylter", + "item.farmersdelight.rich_soil_farmland": "Namtingmylternunchang", + "item.farmersdelight.roast_chicken_block": "Honojena Toridado", + "item.farmersdelight.rope": "Sjen", + "item.farmersdelight.safety_net": "Ziharjet", + "item.farmersdelight.sandy_shrub": "Sanmjahruti", + "item.farmersdelight.shepherds_pie_block": "Tserena Sjot mit Bambajena Kartofel Dado", + "item.farmersdelight.skillet": "Kunjapol", + "item.farmersdelight.spruce_cabinet": "Jul Tingbaksu", + "item.farmersdelight.stove": "Honopol", + "item.farmersdelight.straw_bale": "Djotrimundado", + "item.farmersdelight.stuffed_pumpkin_block": "Stofena Achorfrautdado", + "item.farmersdelight.sweet_berry_cheesecake": "Sotfrautnen Uscitorta", + "item.farmersdelight.tatami": "Djotrimun Dado", + "item.farmersdelight.tomato_crate": "Pomodorobaksu", + "item.farmersdelight.warped_cabinet": "Erstrani Tingbaksu", + "item.farmersdelight.white_canvas_sign": "Shiro Kototumam", + "item.farmersdelight.white_hanging_canvas_sign": "Shiro Shankototumam", + "item.farmersdelight.wild_beetroots": "Dasos Roranja", + "item.farmersdelight.wild_cabbages": "Dasos Erba", + "item.farmersdelight.wild_carrots": "Dasos Karoten", + "item.farmersdelight.wild_onions": "Dasos Oishifraut", + "item.farmersdelight.wild_potatoes": "Dasos Kartofel", + "item.farmersdelight.wild_rice": "Dasos Mi", + "item.farmersdelight.wild_tomatoes": "Pomodoro Mjahruti", + "item.farmersdelight.wooden_basket": "Lanz", + "item.farmersdelight.yellow_canvas_sign": "Kiro Kototumam", + "item.farmersdelight.yellow_hanging_canvas_sign": "Kiro Shankototumam" } + diff --git a/src/main/resources/assets/farmersdelight/lang/zh_cn.json b/src/main/resources/assets/farmersdelight/lang/zh_cn.json index 0e6c5cd3c..5e32e1885 100644 --- a/src/main/resources/assets/farmersdelight/lang/zh_cn.json +++ b/src/main/resources/assets/farmersdelight/lang/zh_cn.json @@ -525,5 +525,98 @@ "farmersdelight.configuration.enableComfortHealthOverlay": "舒适生命条叠加层", "farmersdelight.configuration.enableComfortHealthOverlay.tooltip": "若启用,当玩家拥有舒适状态效果时,生命值条上方将叠加显示一层滚动效果。", "farmersdelight.configuration.enableFoodEffectTooltip": "食物状态效果提示框", - "farmersdelight.configuration.enableFoodEffectTooltip.tooltip": "若启用,食物物品将在提示框中显示它们食用后授予的状态效果(若有)。此项同时应用于Minecraft与本模组中的食物。" + "farmersdelight.configuration.enableFoodEffectTooltip.tooltip": "若启用,食物物品将在提示框中显示它们食用后授予的状态效果(若有)。此项同时应用于Minecraft与本模组中的食物。", + + "_comment.farmersdelight.item_aliases": "Block item aliases for Minecraft 26.2 item translation keys.", + "item.farmersdelight.acacia_cabinet": "金合欢木橱柜", + "item.farmersdelight.apple_pie": "苹果派", + "item.farmersdelight.bamboo_basket": "竹篮", + "item.farmersdelight.bamboo_cabinet": "竹橱柜", + "item.farmersdelight.beetroot_crate": "箱装甜菜根", + "item.farmersdelight.birch_cabinet": "白桦木橱柜", + "item.farmersdelight.black_canvas_sign": "黑色粗布告示牌", + "item.farmersdelight.black_hanging_canvas_sign": "悬挂式黑色粗布告示牌", + "item.farmersdelight.blue_canvas_sign": "蓝色粗布告示牌", + "item.farmersdelight.blue_hanging_canvas_sign": "悬挂式蓝色粗布告示牌", + "item.farmersdelight.brown_canvas_sign": "棕色粗布告示牌", + "item.farmersdelight.brown_hanging_canvas_sign": "悬挂式棕色粗布告示牌", + "item.farmersdelight.brown_mushroom_colony": "棕色蘑菇菌落", + "item.farmersdelight.cabbage_crate": "箱装卷心菜", + "item.farmersdelight.canvas_rug": "粗布毯", + "item.farmersdelight.canvas_sign": "粗布告示牌", + "item.farmersdelight.carrot_crate": "箱装胡萝卜", + "item.farmersdelight.cherry_cabinet": "樱花木橱柜", + "item.farmersdelight.chocolate_pie": "巧克力派", + "item.farmersdelight.cooking_pot": "厨锅", + "item.farmersdelight.crimson_cabinet": "绯红木橱柜", + "item.farmersdelight.cutting_board": "砧板", + "item.farmersdelight.cyan_canvas_sign": "青色粗布告示牌", + "item.farmersdelight.cyan_hanging_canvas_sign": "悬挂式青色粗布告示牌", + "item.farmersdelight.dark_oak_cabinet": "深色橡木橱柜", + "item.farmersdelight.full_tatami_mat": "长榻榻米垫", + "item.farmersdelight.gleaming_salad_block": "闪亮沙拉", + "item.farmersdelight.gray_canvas_sign": "灰色粗布告示牌", + "item.farmersdelight.gray_hanging_canvas_sign": "悬挂式灰色粗布告示牌", + "item.farmersdelight.green_canvas_sign": "绿色粗布告示牌", + "item.farmersdelight.green_hanging_canvas_sign": "悬挂式绿色粗布告示牌", + "item.farmersdelight.half_tatami_mat": "短榻榻米垫", + "item.farmersdelight.hanging_canvas_sign": "悬挂式粗布告示牌", + "item.farmersdelight.honey_glazed_ham_block": "蜜汁火腿", + "item.farmersdelight.jungle_cabinet": "丛林木橱柜", + "item.farmersdelight.light_blue_canvas_sign": "淡蓝色粗布告示牌", + "item.farmersdelight.light_blue_hanging_canvas_sign": "悬挂式淡蓝色粗布告示牌", + "item.farmersdelight.light_gray_canvas_sign": "淡灰色粗布告示牌", + "item.farmersdelight.light_gray_hanging_canvas_sign": "悬挂式淡灰色粗布告示牌", + "item.farmersdelight.lime_canvas_sign": "黄绿色粗布告示牌", + "item.farmersdelight.lime_hanging_canvas_sign": "悬挂式黄绿色粗布告示牌", + "item.farmersdelight.magenta_canvas_sign": "品红色粗布告示牌", + "item.farmersdelight.magenta_hanging_canvas_sign": "悬挂式品红色粗布告示牌", + "item.farmersdelight.mangrove_cabinet": "红树木橱柜", + "item.farmersdelight.oak_cabinet": "橡木橱柜", + "item.farmersdelight.onion_crate": "箱装洋葱", + "item.farmersdelight.orange_canvas_sign": "橙色粗布告示牌", + "item.farmersdelight.orange_hanging_canvas_sign": "悬挂式橙色粗布告示牌", + "item.farmersdelight.organic_compost": "有机堆肥", + "item.farmersdelight.pink_canvas_sign": "粉红色粗布告示牌", + "item.farmersdelight.pink_hanging_canvas_sign": "悬挂式粉红色粗布告示牌", + "item.farmersdelight.potato_crate": "箱装马铃薯", + "item.farmersdelight.purple_canvas_sign": "紫色粗布告示牌", + "item.farmersdelight.purple_hanging_canvas_sign": "悬挂式紫色粗布告示牌", + "item.farmersdelight.red_canvas_sign": "红色粗布告示牌", + "item.farmersdelight.red_hanging_canvas_sign": "悬挂式红色粗布告示牌", + "item.farmersdelight.red_mushroom_colony": "红色蘑菇菌落", + "item.farmersdelight.rice_bag": "袋装稻米", + "item.farmersdelight.rice_bale": "稻穗捆", + "item.farmersdelight.rice_roll_medley_block": "寿司拼盘", + "item.farmersdelight.rich_soil": "沃土", + "item.farmersdelight.rich_soil_farmland": "沃土耕地", + "item.farmersdelight.roast_chicken_block": "烤鸡", + "item.farmersdelight.rope": "绳子", + "item.farmersdelight.rope_fence": "绳栅栏", + "item.farmersdelight.rope_fence_gate": "绳栅栏门", + "item.farmersdelight.safety_net": "安全网", + "item.farmersdelight.sandy_shrub": "沙生灌木", + "item.farmersdelight.shepherds_pie_block": "牧羊人派", + "item.farmersdelight.skillet": "煎锅", + "item.farmersdelight.spruce_cabinet": "云杉木橱柜", + "item.farmersdelight.stove": "炉灶", + "item.farmersdelight.straw_bale": "草捆", + "item.farmersdelight.stuffed_pumpkin_block": "填馅南瓜", + "item.farmersdelight.sweet_berry_cheesecake": "甜浆果芝士派", + "item.farmersdelight.tatami": "榻榻米方块", + "item.farmersdelight.tomato_crate": "箱装番茄", + "item.farmersdelight.warped_cabinet": "诡异木橱柜", + "item.farmersdelight.white_canvas_sign": "白色粗布告示牌", + "item.farmersdelight.white_hanging_canvas_sign": "悬挂式白色粗布告示牌", + "item.farmersdelight.wild_beetroots": "海甜菜", + "item.farmersdelight.wild_cabbages": "野生卷心菜", + "item.farmersdelight.wild_carrots": "野生胡萝卜", + "item.farmersdelight.wild_onions": "野生洋葱", + "item.farmersdelight.wild_potatoes": "野生马铃薯", + "item.farmersdelight.wild_rice": "野生稻米", + "item.farmersdelight.wild_tomatoes": "番茄灌木", + "item.farmersdelight.wooden_basket": "木篮", + "item.farmersdelight.yellow_canvas_sign": "黄色粗布告示牌", + "item.farmersdelight.yellow_hanging_canvas_sign": "悬挂式黄色粗布告示牌" } + diff --git a/src/main/resources/assets/farmersdelight/lang/zh_hk.json b/src/main/resources/assets/farmersdelight/lang/zh_hk.json index c83ea842f..f7d45536e 100644 --- a/src/main/resources/assets/farmersdelight/lang/zh_hk.json +++ b/src/main/resources/assets/farmersdelight/lang/zh_hk.json @@ -526,5 +526,98 @@ "farmersdelight.configuration.enableComfortHealthOverlay": "療癒生命條疊加層", "farmersdelight.configuration.enableComfortHealthOverlay.tooltip": "若啟用,當玩家擁有療癒狀態效果時,生命值條上方將疊加顯示一層滾動效果。", "farmersdelight.configuration.enableFoodEffectTooltip": "食物狀態效果提示框", - "farmersdelight.configuration.enableFoodEffectTooltip.tooltip": "若啟用,食物物品將在提示框中顯示它們食用後授予的狀態效果(若有)。此項同時應用於 Minecraft 與本模組中的食物。" + "farmersdelight.configuration.enableFoodEffectTooltip.tooltip": "若啟用,食物物品將在提示框中顯示它們食用後授予的狀態效果(若有)。此項同時應用於 Minecraft 與本模組中的食物。", + + "_comment.farmersdelight.item_aliases": "Block item aliases for Minecraft 26.2 item translation keys.", + "item.farmersdelight.acacia_cabinet": "相思木儲物櫃", + "item.farmersdelight.apple_pie": "蘋果批", + "item.farmersdelight.bamboo_basket": "竹籃", + "item.farmersdelight.bamboo_cabinet": "竹儲物櫃", + "item.farmersdelight.beetroot_crate": "紅菜頭箱", + "item.farmersdelight.birch_cabinet": "樺木儲物櫃", + "item.farmersdelight.black_canvas_sign": "黑色帆布指示牌", + "item.farmersdelight.black_hanging_canvas_sign": "黑色帆布吊牌", + "item.farmersdelight.blue_canvas_sign": "藍色帆布指示牌", + "item.farmersdelight.blue_hanging_canvas_sign": "藍色帆布吊牌", + "item.farmersdelight.brown_canvas_sign": "啡色帆布指示牌", + "item.farmersdelight.brown_hanging_canvas_sign": "啡色帆布吊牌", + "item.farmersdelight.brown_mushroom_colony": "啡色蘑菇菌落", + "item.farmersdelight.cabbage_crate": "椰菜箱", + "item.farmersdelight.canvas_rug": "帆布地毯", + "item.farmersdelight.canvas_sign": "帆布指示牌", + "item.farmersdelight.carrot_crate": "紅蘿蔔箱", + "item.farmersdelight.cherry_cabinet": "櫻花木儲物櫃", + "item.farmersdelight.chocolate_pie": "朱古力批", + "item.farmersdelight.cooking_pot": "湯煲", + "item.farmersdelight.crimson_cabinet": "猩紅菌木儲物櫃", + "item.farmersdelight.cutting_board": "砧板", + "item.farmersdelight.cyan_canvas_sign": "青藍色帆布指示牌", + "item.farmersdelight.cyan_hanging_canvas_sign": "青藍色帆布吊牌", + "item.farmersdelight.dark_oak_cabinet": "黑橡木儲物櫃", + "item.farmersdelight.full_tatami_mat": "榻榻米地墊", + "item.farmersdelight.gleaming_salad_block": "閃亮沙律", + "item.farmersdelight.gray_canvas_sign": "灰色帆布指示牌", + "item.farmersdelight.gray_hanging_canvas_sign": "灰色帆布吊牌", + "item.farmersdelight.green_canvas_sign": "綠色帆布指示牌", + "item.farmersdelight.green_hanging_canvas_sign": "綠色帆布吊牌", + "item.farmersdelight.half_tatami_mat": "榻榻米地毯", + "item.farmersdelight.hanging_canvas_sign": "帆布吊牌", + "item.farmersdelight.honey_glazed_ham_block": "蜜汁火腿", + "item.farmersdelight.jungle_cabinet": "叢林木儲物櫃", + "item.farmersdelight.light_blue_canvas_sign": "淺藍色帆布指示牌", + "item.farmersdelight.light_blue_hanging_canvas_sign": "淺藍色帆布吊牌", + "item.farmersdelight.light_gray_canvas_sign": "淺灰色帆布指示牌", + "item.farmersdelight.light_gray_hanging_canvas_sign": "淺灰色帆布吊牌", + "item.farmersdelight.lime_canvas_sign": "淺綠色帆布指示牌", + "item.farmersdelight.lime_hanging_canvas_sign": "淺綠色帆布吊牌", + "item.farmersdelight.magenta_canvas_sign": "紫紅色帆布指示牌", + "item.farmersdelight.magenta_hanging_canvas_sign": "紫紅色帆布吊牌", + "item.farmersdelight.mangrove_cabinet": "紅樹木儲物櫃", + "item.farmersdelight.oak_cabinet": "橡木儲物櫃", + "item.farmersdelight.onion_crate": "洋葱箱", + "item.farmersdelight.orange_canvas_sign": "橙色帆布指示牌", + "item.farmersdelight.orange_hanging_canvas_sign": "橙色帆布吊牌", + "item.farmersdelight.organic_compost": "有機堆肥", + "item.farmersdelight.pink_canvas_sign": "粉紅色帆布指示牌", + "item.farmersdelight.pink_hanging_canvas_sign": "粉紅色帆布吊牌", + "item.farmersdelight.potato_crate": "薯仔箱", + "item.farmersdelight.purple_canvas_sign": "紫色帆布指示牌", + "item.farmersdelight.purple_hanging_canvas_sign": "紫色帆布吊牌", + "item.farmersdelight.red_canvas_sign": "紅色帆布指示牌", + "item.farmersdelight.red_hanging_canvas_sign": "紅色帆布吊牌", + "item.farmersdelight.red_mushroom_colony": "紅色蘑菇菌落", + "item.farmersdelight.rice_bag": "米袋", + "item.farmersdelight.rice_bale": "稻米捆", + "item.farmersdelight.rice_roll_medley_block": "壽司拼盤", + "item.farmersdelight.rich_soil": "沃土", + "item.farmersdelight.rich_soil_farmland": "沃土耕地", + "item.farmersdelight.roast_chicken_block": "烤全雞", + "item.farmersdelight.rope": "繩索", + "item.farmersdelight.rope_fence": "繩索欄杆", + "item.farmersdelight.rope_fence_gate": "繩索閘門", + "item.farmersdelight.safety_net": "安全網", + "item.farmersdelight.sandy_shrub": "沙化灌木", + "item.farmersdelight.shepherds_pie_block": "牧羊人批", + "item.farmersdelight.skillet": "平底鑊", + "item.farmersdelight.spruce_cabinet": "杉木儲物櫃", + "item.farmersdelight.stove": "爐灶", + "item.farmersdelight.straw_bale": "禾稈草捆", + "item.farmersdelight.stuffed_pumpkin_block": "南瓜餡", + "item.farmersdelight.sweet_berry_cheesecake": "甜莓芝士蛋糕", + "item.farmersdelight.tatami": "榻榻米方塊", + "item.farmersdelight.tomato_crate": "蕃茄箱", + "item.farmersdelight.warped_cabinet": "迷離菌木儲物櫃", + "item.farmersdelight.white_canvas_sign": "白色帆布指示牌", + "item.farmersdelight.white_hanging_canvas_sign": "白色帆布吊牌", + "item.farmersdelight.wild_beetroots": "野生紅菜頭", + "item.farmersdelight.wild_cabbages": "野生椰菜", + "item.farmersdelight.wild_carrots": "野生紅蘿蔔", + "item.farmersdelight.wild_onions": "野生洋葱", + "item.farmersdelight.wild_potatoes": "野生薯仔", + "item.farmersdelight.wild_rice": "野生水稻", + "item.farmersdelight.wild_tomatoes": "野生蕃茄藤", + "item.farmersdelight.wooden_basket": "木籃", + "item.farmersdelight.yellow_canvas_sign": "黃色帆布指示牌", + "item.farmersdelight.yellow_hanging_canvas_sign": "黃色帆布吊牌" } + diff --git a/src/main/resources/assets/farmersdelight/lang/zh_tw.json b/src/main/resources/assets/farmersdelight/lang/zh_tw.json index 053633f1b..2530acd7a 100644 --- a/src/main/resources/assets/farmersdelight/lang/zh_tw.json +++ b/src/main/resources/assets/farmersdelight/lang/zh_tw.json @@ -523,5 +523,97 @@ "farmersdelight.configuration.enableComfortHealthOverlay": "療癒生命值疊加層", "farmersdelight.configuration.enableComfortHealthOverlay.tooltip": "若啟用,當玩家擁有療癒狀態效果時,生命值條上方將疊加顯示一層滾動效果。", "farmersdelight.configuration.enableFoodEffectTooltip": "食物狀態效果提示", - "farmersdelight.configuration.enableFoodEffectTooltip.tooltip": "若啟用,食物物品將在提示中顯示它們食用後授予的狀態效果(若有)。此項同時應用於 Minecraft 與本模組中的食物。" + "farmersdelight.configuration.enableFoodEffectTooltip.tooltip": "若啟用,食物物品將在提示中顯示它們食用後授予的狀態效果(若有)。此項同時應用於 Minecraft 與本模組中的食物。", + + "_comment.farmersdelight.item_aliases": "Block item aliases for Minecraft 26.2 item translation keys.", + "item.farmersdelight.acacia_cabinet": "相思木儲藏櫃", + "item.farmersdelight.apple_pie": "蘋果派", + "item.farmersdelight.bamboo_basket": "竹籃", + "item.farmersdelight.bamboo_cabinet": "竹儲藏櫃", + "item.farmersdelight.beetroot_crate": "甜菜根箱", + "item.farmersdelight.birch_cabinet": "樺木儲藏櫃", + "item.farmersdelight.black_canvas_sign": "黑色帆布牌", + "item.farmersdelight.black_hanging_canvas_sign": "懸掛式黑色帆布牌", + "item.farmersdelight.blue_canvas_sign": "藍色帆布牌", + "item.farmersdelight.blue_hanging_canvas_sign": "懸掛式藍色帆布牌", + "item.farmersdelight.brown_canvas_sign": "棕色帆布牌", + "item.farmersdelight.brown_hanging_canvas_sign": "懸掛式棕色帆布牌", + "item.farmersdelight.brown_mushroom_colony": "棕色蘑菇菌落", + "item.farmersdelight.cabbage_crate": "高麗菜箱", + "item.farmersdelight.canvas_rug": "帆布地毯", + "item.farmersdelight.canvas_sign": "帆布牌", + "item.farmersdelight.carrot_crate": "胡蘿蔔箱", + "item.farmersdelight.cherry_cabinet": "櫻花木儲藏櫃", + "item.farmersdelight.chocolate_pie": "巧克力派", + "item.farmersdelight.cooking_pot": "烹飪鍋", + "item.farmersdelight.crimson_cabinet": "緋紅蕈木儲藏櫃", + "item.farmersdelight.cutting_board": "砧板", + "item.farmersdelight.cyan_canvas_sign": "青色帆布牌", + "item.farmersdelight.cyan_hanging_canvas_sign": "懸掛式青色帆布牌", + "item.farmersdelight.dark_oak_cabinet": "黑橡木儲藏櫃", + "item.farmersdelight.full_tatami_mat": "榻榻米地墊", + "item.farmersdelight.gray_canvas_sign": "灰色帆布牌", + "item.farmersdelight.gray_hanging_canvas_sign": "懸掛式灰色帆布牌", + "item.farmersdelight.green_canvas_sign": "綠色帆布牌", + "item.farmersdelight.green_hanging_canvas_sign": "懸掛式綠色帆布牌", + "item.farmersdelight.half_tatami_mat": "榻榻米地毯", + "item.farmersdelight.hanging_canvas_sign": "懸掛式帆布牌", + "item.farmersdelight.honey_glazed_ham_block": "蜜汁火腿", + "item.farmersdelight.jungle_cabinet": "叢林木儲藏櫃", + "item.farmersdelight.light_blue_canvas_sign": "淺藍色帆布牌", + "item.farmersdelight.light_blue_hanging_canvas_sign": "懸掛式淺藍色帆布牌", + "item.farmersdelight.light_gray_canvas_sign": "淺灰色帆布牌", + "item.farmersdelight.light_gray_hanging_canvas_sign": "懸掛式淺灰色帆布牌", + "item.farmersdelight.lime_canvas_sign": "淺綠色帆布牌", + "item.farmersdelight.lime_hanging_canvas_sign": "懸掛式淺綠色帆布牌", + "item.farmersdelight.magenta_canvas_sign": "洋紅色帆布牌", + "item.farmersdelight.magenta_hanging_canvas_sign": "懸掛式洋紅色帆布牌", + "item.farmersdelight.mangrove_cabinet": "紅樹林木儲藏櫃", + "item.farmersdelight.oak_cabinet": "橡木儲藏櫃", + "item.farmersdelight.onion_crate": "洋蔥箱", + "item.farmersdelight.orange_canvas_sign": "橙色帆布牌", + "item.farmersdelight.orange_hanging_canvas_sign": "懸掛式橙色帆布牌", + "item.farmersdelight.organic_compost": "有機堆肥", + "item.farmersdelight.pink_canvas_sign": "粉紅色帆布牌", + "item.farmersdelight.pink_hanging_canvas_sign": "懸掛式粉紅色帆布牌", + "item.farmersdelight.potato_crate": "馬鈴薯箱", + "item.farmersdelight.purple_canvas_sign": "紫色帆布牌", + "item.farmersdelight.purple_hanging_canvas_sign": "懸掛式紫色帆布牌", + "item.farmersdelight.red_canvas_sign": "紅色帆布牌", + "item.farmersdelight.red_hanging_canvas_sign": "懸掛式紅色帆布牌", + "item.farmersdelight.red_mushroom_colony": "紅色蘑菇菌落", + "item.farmersdelight.rice_bag": "稻米袋", + "item.farmersdelight.rice_bale": "稻穗捆", + "item.farmersdelight.rice_roll_medley_block": "壽司拼盤", + "item.farmersdelight.rich_soil": "沃土", + "item.farmersdelight.rich_soil_farmland": "沃土耕地", + "item.farmersdelight.roast_chicken_block": "烤全雞", + "item.farmersdelight.rope": "繩索", + "item.farmersdelight.rope_fence": "繩索柵欄", + "item.farmersdelight.rope_fence_gate": "繩索柵欄門", + "item.farmersdelight.safety_net": "安全網", + "item.farmersdelight.sandy_shrub": "沙化灌木", + "item.farmersdelight.shepherds_pie_block": "牧羊人派", + "item.farmersdelight.skillet": "平底鍋", + "item.farmersdelight.spruce_cabinet": "杉木儲藏櫃", + "item.farmersdelight.stove": "爐灶", + "item.farmersdelight.straw_bale": "稻梗捆", + "item.farmersdelight.stuffed_pumpkin_block": "南瓜餡", + "item.farmersdelight.sweet_berry_cheesecake": "甜莓起司蛋糕", + "item.farmersdelight.tatami": "榻榻米方塊", + "item.farmersdelight.tomato_crate": "番茄箱", + "item.farmersdelight.warped_cabinet": "扭曲蕈木儲藏櫃", + "item.farmersdelight.white_canvas_sign": "白色帆布牌", + "item.farmersdelight.white_hanging_canvas_sign": "懸掛式白色帆布牌", + "item.farmersdelight.wild_beetroots": "野生甜菜根", + "item.farmersdelight.wild_cabbages": "野生高麗菜", + "item.farmersdelight.wild_carrots": "野生胡蘿蔔", + "item.farmersdelight.wild_onions": "野生洋蔥", + "item.farmersdelight.wild_potatoes": "野生馬鈴薯", + "item.farmersdelight.wild_rice": "野生水稻", + "item.farmersdelight.wild_tomatoes": "野生番茄藤", + "item.farmersdelight.wooden_basket": "木籃", + "item.farmersdelight.yellow_canvas_sign": "黃色帆布牌", + "item.farmersdelight.yellow_hanging_canvas_sign": "懸掛式黃色帆布牌" } + diff --git a/src/main/resources/assets/farmersdelight/textures/block/black_canvas_sign.png b/src/main/resources/assets/farmersdelight/textures/block/black_canvas_sign.png new file mode 100644 index 000000000..8fa30e3d1 Binary files /dev/null and b/src/main/resources/assets/farmersdelight/textures/block/black_canvas_sign.png differ diff --git a/src/main/resources/assets/farmersdelight/textures/block/black_hanging_canvas_sign.png b/src/main/resources/assets/farmersdelight/textures/block/black_hanging_canvas_sign.png new file mode 100644 index 000000000..471201a52 Binary files /dev/null and b/src/main/resources/assets/farmersdelight/textures/block/black_hanging_canvas_sign.png differ diff --git a/src/main/resources/assets/farmersdelight/textures/block/blue_canvas_sign.png b/src/main/resources/assets/farmersdelight/textures/block/blue_canvas_sign.png new file mode 100644 index 000000000..1620bcedd Binary files /dev/null and b/src/main/resources/assets/farmersdelight/textures/block/blue_canvas_sign.png differ diff --git a/src/main/resources/assets/farmersdelight/textures/block/blue_hanging_canvas_sign.png b/src/main/resources/assets/farmersdelight/textures/block/blue_hanging_canvas_sign.png new file mode 100644 index 000000000..8f239161b Binary files /dev/null and b/src/main/resources/assets/farmersdelight/textures/block/blue_hanging_canvas_sign.png differ diff --git a/src/main/resources/assets/farmersdelight/textures/block/brown_canvas_sign.png b/src/main/resources/assets/farmersdelight/textures/block/brown_canvas_sign.png new file mode 100644 index 000000000..fea94a3f0 Binary files /dev/null and b/src/main/resources/assets/farmersdelight/textures/block/brown_canvas_sign.png differ diff --git a/src/main/resources/assets/farmersdelight/textures/block/brown_hanging_canvas_sign.png b/src/main/resources/assets/farmersdelight/textures/block/brown_hanging_canvas_sign.png new file mode 100644 index 000000000..7861020fd Binary files /dev/null and b/src/main/resources/assets/farmersdelight/textures/block/brown_hanging_canvas_sign.png differ diff --git a/src/main/resources/assets/farmersdelight/textures/block/canvas_sign.png b/src/main/resources/assets/farmersdelight/textures/block/canvas_sign.png new file mode 100644 index 000000000..4123f93bd Binary files /dev/null and b/src/main/resources/assets/farmersdelight/textures/block/canvas_sign.png differ diff --git a/src/main/resources/assets/farmersdelight/textures/block/cyan_canvas_sign.png b/src/main/resources/assets/farmersdelight/textures/block/cyan_canvas_sign.png new file mode 100644 index 000000000..e1a587846 Binary files /dev/null and b/src/main/resources/assets/farmersdelight/textures/block/cyan_canvas_sign.png differ diff --git a/src/main/resources/assets/farmersdelight/textures/block/cyan_hanging_canvas_sign.png b/src/main/resources/assets/farmersdelight/textures/block/cyan_hanging_canvas_sign.png new file mode 100644 index 000000000..9bde7723e Binary files /dev/null and b/src/main/resources/assets/farmersdelight/textures/block/cyan_hanging_canvas_sign.png differ diff --git a/src/main/resources/assets/farmersdelight/textures/block/gray_canvas_sign.png b/src/main/resources/assets/farmersdelight/textures/block/gray_canvas_sign.png new file mode 100644 index 000000000..db49d1b72 Binary files /dev/null and b/src/main/resources/assets/farmersdelight/textures/block/gray_canvas_sign.png differ diff --git a/src/main/resources/assets/farmersdelight/textures/block/gray_hanging_canvas_sign.png b/src/main/resources/assets/farmersdelight/textures/block/gray_hanging_canvas_sign.png new file mode 100644 index 000000000..eeb99fd59 Binary files /dev/null and b/src/main/resources/assets/farmersdelight/textures/block/gray_hanging_canvas_sign.png differ diff --git a/src/main/resources/assets/farmersdelight/textures/block/green_canvas_sign.png b/src/main/resources/assets/farmersdelight/textures/block/green_canvas_sign.png new file mode 100644 index 000000000..c18fb0515 Binary files /dev/null and b/src/main/resources/assets/farmersdelight/textures/block/green_canvas_sign.png differ diff --git a/src/main/resources/assets/farmersdelight/textures/block/green_hanging_canvas_sign.png b/src/main/resources/assets/farmersdelight/textures/block/green_hanging_canvas_sign.png new file mode 100644 index 000000000..69bb1ad1e Binary files /dev/null and b/src/main/resources/assets/farmersdelight/textures/block/green_hanging_canvas_sign.png differ diff --git a/src/main/resources/assets/farmersdelight/textures/block/hanging_canvas_sign.png b/src/main/resources/assets/farmersdelight/textures/block/hanging_canvas_sign.png new file mode 100644 index 000000000..5236c255d Binary files /dev/null and b/src/main/resources/assets/farmersdelight/textures/block/hanging_canvas_sign.png differ diff --git a/src/main/resources/assets/farmersdelight/textures/block/light_blue_canvas_sign.png b/src/main/resources/assets/farmersdelight/textures/block/light_blue_canvas_sign.png new file mode 100644 index 000000000..d27146af8 Binary files /dev/null and b/src/main/resources/assets/farmersdelight/textures/block/light_blue_canvas_sign.png differ diff --git a/src/main/resources/assets/farmersdelight/textures/block/light_blue_hanging_canvas_sign.png b/src/main/resources/assets/farmersdelight/textures/block/light_blue_hanging_canvas_sign.png new file mode 100644 index 000000000..4f5062343 Binary files /dev/null and b/src/main/resources/assets/farmersdelight/textures/block/light_blue_hanging_canvas_sign.png differ diff --git a/src/main/resources/assets/farmersdelight/textures/block/light_gray_canvas_sign.png b/src/main/resources/assets/farmersdelight/textures/block/light_gray_canvas_sign.png new file mode 100644 index 000000000..0147014c6 Binary files /dev/null and b/src/main/resources/assets/farmersdelight/textures/block/light_gray_canvas_sign.png differ diff --git a/src/main/resources/assets/farmersdelight/textures/block/light_gray_hanging_canvas_sign.png b/src/main/resources/assets/farmersdelight/textures/block/light_gray_hanging_canvas_sign.png new file mode 100644 index 000000000..8b68cdcf0 Binary files /dev/null and b/src/main/resources/assets/farmersdelight/textures/block/light_gray_hanging_canvas_sign.png differ diff --git a/src/main/resources/assets/farmersdelight/textures/block/lime_canvas_sign.png b/src/main/resources/assets/farmersdelight/textures/block/lime_canvas_sign.png new file mode 100644 index 000000000..5f37be448 Binary files /dev/null and b/src/main/resources/assets/farmersdelight/textures/block/lime_canvas_sign.png differ diff --git a/src/main/resources/assets/farmersdelight/textures/block/lime_hanging_canvas_sign.png b/src/main/resources/assets/farmersdelight/textures/block/lime_hanging_canvas_sign.png new file mode 100644 index 000000000..76e46a14b Binary files /dev/null and b/src/main/resources/assets/farmersdelight/textures/block/lime_hanging_canvas_sign.png differ diff --git a/src/main/resources/assets/farmersdelight/textures/block/magenta_canvas_sign.png b/src/main/resources/assets/farmersdelight/textures/block/magenta_canvas_sign.png new file mode 100644 index 000000000..e00ba887d Binary files /dev/null and b/src/main/resources/assets/farmersdelight/textures/block/magenta_canvas_sign.png differ diff --git a/src/main/resources/assets/farmersdelight/textures/block/magenta_hanging_canvas_sign.png b/src/main/resources/assets/farmersdelight/textures/block/magenta_hanging_canvas_sign.png new file mode 100644 index 000000000..8b20f2470 Binary files /dev/null and b/src/main/resources/assets/farmersdelight/textures/block/magenta_hanging_canvas_sign.png differ diff --git a/src/main/resources/assets/farmersdelight/textures/block/orange_canvas_sign.png b/src/main/resources/assets/farmersdelight/textures/block/orange_canvas_sign.png new file mode 100644 index 000000000..3c5fb98a7 Binary files /dev/null and b/src/main/resources/assets/farmersdelight/textures/block/orange_canvas_sign.png differ diff --git a/src/main/resources/assets/farmersdelight/textures/block/orange_hanging_canvas_sign.png b/src/main/resources/assets/farmersdelight/textures/block/orange_hanging_canvas_sign.png new file mode 100644 index 000000000..941a96458 Binary files /dev/null and b/src/main/resources/assets/farmersdelight/textures/block/orange_hanging_canvas_sign.png differ diff --git a/src/main/resources/assets/farmersdelight/textures/block/pink_canvas_sign.png b/src/main/resources/assets/farmersdelight/textures/block/pink_canvas_sign.png new file mode 100644 index 000000000..68e398acf Binary files /dev/null and b/src/main/resources/assets/farmersdelight/textures/block/pink_canvas_sign.png differ diff --git a/src/main/resources/assets/farmersdelight/textures/block/pink_hanging_canvas_sign.png b/src/main/resources/assets/farmersdelight/textures/block/pink_hanging_canvas_sign.png new file mode 100644 index 000000000..9d05e00ab Binary files /dev/null and b/src/main/resources/assets/farmersdelight/textures/block/pink_hanging_canvas_sign.png differ diff --git a/src/main/resources/assets/farmersdelight/textures/block/purple_canvas_sign.png b/src/main/resources/assets/farmersdelight/textures/block/purple_canvas_sign.png new file mode 100644 index 000000000..89f98befe Binary files /dev/null and b/src/main/resources/assets/farmersdelight/textures/block/purple_canvas_sign.png differ diff --git a/src/main/resources/assets/farmersdelight/textures/block/purple_hanging_canvas_sign.png b/src/main/resources/assets/farmersdelight/textures/block/purple_hanging_canvas_sign.png new file mode 100644 index 000000000..8196faf8e Binary files /dev/null and b/src/main/resources/assets/farmersdelight/textures/block/purple_hanging_canvas_sign.png differ diff --git a/src/main/resources/assets/farmersdelight/textures/block/red_canvas_sign.png b/src/main/resources/assets/farmersdelight/textures/block/red_canvas_sign.png new file mode 100644 index 000000000..fd1c6fc25 Binary files /dev/null and b/src/main/resources/assets/farmersdelight/textures/block/red_canvas_sign.png differ diff --git a/src/main/resources/assets/farmersdelight/textures/block/red_hanging_canvas_sign.png b/src/main/resources/assets/farmersdelight/textures/block/red_hanging_canvas_sign.png new file mode 100644 index 000000000..0abb330c7 Binary files /dev/null and b/src/main/resources/assets/farmersdelight/textures/block/red_hanging_canvas_sign.png differ diff --git a/src/main/resources/assets/farmersdelight/textures/block/white_canvas_sign.png b/src/main/resources/assets/farmersdelight/textures/block/white_canvas_sign.png new file mode 100644 index 000000000..6fe63ef3a Binary files /dev/null and b/src/main/resources/assets/farmersdelight/textures/block/white_canvas_sign.png differ diff --git a/src/main/resources/assets/farmersdelight/textures/block/white_hanging_canvas_sign.png b/src/main/resources/assets/farmersdelight/textures/block/white_hanging_canvas_sign.png new file mode 100644 index 000000000..424b279ff Binary files /dev/null and b/src/main/resources/assets/farmersdelight/textures/block/white_hanging_canvas_sign.png differ diff --git a/src/main/resources/assets/farmersdelight/textures/block/yellow_canvas_sign.png b/src/main/resources/assets/farmersdelight/textures/block/yellow_canvas_sign.png new file mode 100644 index 000000000..fe2ee2dec Binary files /dev/null and b/src/main/resources/assets/farmersdelight/textures/block/yellow_canvas_sign.png differ diff --git a/src/main/resources/assets/farmersdelight/textures/block/yellow_hanging_canvas_sign.png b/src/main/resources/assets/farmersdelight/textures/block/yellow_hanging_canvas_sign.png new file mode 100644 index 000000000..aa6af7d03 Binary files /dev/null and b/src/main/resources/assets/farmersdelight/textures/block/yellow_hanging_canvas_sign.png differ diff --git a/src/main/resources/assets/farmersdelight/textures/entity/signs/canvas.png b/src/main/resources/assets/farmersdelight/textures/entity/signs/canvas.png deleted file mode 100644 index b11a3ba7f..000000000 Binary files a/src/main/resources/assets/farmersdelight/textures/entity/signs/canvas.png and /dev/null differ diff --git a/src/main/resources/assets/farmersdelight/textures/entity/signs/canvas_sign.png b/src/main/resources/assets/farmersdelight/textures/entity/signs/canvas_sign.png new file mode 100644 index 000000000..57e264c0d Binary files /dev/null and b/src/main/resources/assets/farmersdelight/textures/entity/signs/canvas_sign.png differ diff --git a/src/main/resources/assets/minecraft/atlases/blocks.json b/src/main/resources/assets/minecraft/atlases/blocks.json new file mode 100644 index 000000000..8d0037082 --- /dev/null +++ b/src/main/resources/assets/minecraft/atlases/blocks.json @@ -0,0 +1,16 @@ +{ + "sources": [ + { + "type": "neoforge:namespaced_directory", + "namespace": "farmersdelight", + "source": "entity/signs", + "prefix": "entity/signs/" + }, + { + "type": "neoforge:namespaced_directory", + "namespace": "farmersdelight", + "source": "entity/signs/hanging", + "prefix": "entity/signs/hanging/" + } + ] +} diff --git a/src/main/resources/data/farmersdelight/villager_trade/farmer/1/onion_emerald.json b/src/main/resources/data/farmersdelight/villager_trade/farmer/1/onion_emerald.json new file mode 100644 index 000000000..58488f05a --- /dev/null +++ b/src/main/resources/data/farmersdelight/villager_trade/farmer/1/onion_emerald.json @@ -0,0 +1,12 @@ +{ + "gives": { + "id": "minecraft:emerald" + }, + "max_uses": 16.0, + "reputation_discount": 0.05, + "wants": { + "count": 26.0, + "id": "farmersdelight:onion" + }, + "xp": 2.0 +} diff --git a/src/main/resources/data/farmersdelight/villager_trade/farmer/1/tomato_emerald.json b/src/main/resources/data/farmersdelight/villager_trade/farmer/1/tomato_emerald.json new file mode 100644 index 000000000..9f4ff7cb7 --- /dev/null +++ b/src/main/resources/data/farmersdelight/villager_trade/farmer/1/tomato_emerald.json @@ -0,0 +1,12 @@ +{ + "gives": { + "id": "minecraft:emerald" + }, + "max_uses": 16.0, + "reputation_discount": 0.05, + "wants": { + "count": 26.0, + "id": "farmersdelight:tomato" + }, + "xp": 2.0 +} diff --git a/src/main/resources/data/farmersdelight/villager_trade/farmer/2/cabbage_emerald.json b/src/main/resources/data/farmersdelight/villager_trade/farmer/2/cabbage_emerald.json new file mode 100644 index 000000000..ca2d49e35 --- /dev/null +++ b/src/main/resources/data/farmersdelight/villager_trade/farmer/2/cabbage_emerald.json @@ -0,0 +1,12 @@ +{ + "gives": { + "id": "minecraft:emerald" + }, + "max_uses": 16.0, + "reputation_discount": 0.05, + "wants": { + "count": 16.0, + "id": "farmersdelight:cabbage" + }, + "xp": 5.0 +} diff --git a/src/main/resources/data/farmersdelight/villager_trade/farmer/2/rice_emerald.json b/src/main/resources/data/farmersdelight/villager_trade/farmer/2/rice_emerald.json new file mode 100644 index 000000000..517b3ab59 --- /dev/null +++ b/src/main/resources/data/farmersdelight/villager_trade/farmer/2/rice_emerald.json @@ -0,0 +1,12 @@ +{ + "gives": { + "id": "minecraft:emerald" + }, + "max_uses": 16.0, + "reputation_discount": 0.05, + "wants": { + "count": 20.0, + "id": "farmersdelight:rice" + }, + "xp": 5.0 +} diff --git a/src/main/resources/data/farmersdelight/villager_trade/wandering_trader/emerald_cabbage_seeds.json b/src/main/resources/data/farmersdelight/villager_trade/wandering_trader/emerald_cabbage_seeds.json new file mode 100644 index 000000000..650ea986a --- /dev/null +++ b/src/main/resources/data/farmersdelight/villager_trade/wandering_trader/emerald_cabbage_seeds.json @@ -0,0 +1,11 @@ +{ + "gives": { + "id": "farmersdelight:cabbage_seeds" + }, + "max_uses": 1.0, + "reputation_discount": 0.05, + "wants": { + "id": "minecraft:emerald" + }, + "xp": 12.0 +} diff --git a/src/main/resources/data/farmersdelight/villager_trade/wandering_trader/emerald_onion.json b/src/main/resources/data/farmersdelight/villager_trade/wandering_trader/emerald_onion.json new file mode 100644 index 000000000..ba3d3cf2b --- /dev/null +++ b/src/main/resources/data/farmersdelight/villager_trade/wandering_trader/emerald_onion.json @@ -0,0 +1,11 @@ +{ + "gives": { + "id": "farmersdelight:onion" + }, + "max_uses": 1.0, + "reputation_discount": 0.05, + "wants": { + "id": "minecraft:emerald" + }, + "xp": 12.0 +} diff --git a/src/main/resources/data/farmersdelight/villager_trade/wandering_trader/emerald_rice.json b/src/main/resources/data/farmersdelight/villager_trade/wandering_trader/emerald_rice.json new file mode 100644 index 000000000..6679e8160 --- /dev/null +++ b/src/main/resources/data/farmersdelight/villager_trade/wandering_trader/emerald_rice.json @@ -0,0 +1,11 @@ +{ + "gives": { + "id": "farmersdelight:rice" + }, + "max_uses": 1.0, + "reputation_discount": 0.05, + "wants": { + "id": "minecraft:emerald" + }, + "xp": 12.0 +} diff --git a/src/main/resources/data/farmersdelight/villager_trade/wandering_trader/emerald_tomato_seeds.json b/src/main/resources/data/farmersdelight/villager_trade/wandering_trader/emerald_tomato_seeds.json new file mode 100644 index 000000000..8b7780f2b --- /dev/null +++ b/src/main/resources/data/farmersdelight/villager_trade/wandering_trader/emerald_tomato_seeds.json @@ -0,0 +1,11 @@ +{ + "gives": { + "id": "farmersdelight:tomato_seeds" + }, + "max_uses": 1.0, + "reputation_discount": 0.05, + "wants": { + "id": "minecraft:emerald" + }, + "xp": 12.0 +} diff --git a/src/main/resources/data/minecraft/tags/villager_trade/farmer/level_1.json b/src/main/resources/data/minecraft/tags/villager_trade/farmer/level_1.json new file mode 100644 index 000000000..892d93df7 --- /dev/null +++ b/src/main/resources/data/minecraft/tags/villager_trade/farmer/level_1.json @@ -0,0 +1,6 @@ +{ + "values": [ + "farmersdelight:farmer/1/onion_emerald", + "farmersdelight:farmer/1/tomato_emerald" + ] +} diff --git a/src/main/resources/data/minecraft/tags/villager_trade/farmer/level_2.json b/src/main/resources/data/minecraft/tags/villager_trade/farmer/level_2.json new file mode 100644 index 000000000..b3b73ac03 --- /dev/null +++ b/src/main/resources/data/minecraft/tags/villager_trade/farmer/level_2.json @@ -0,0 +1,6 @@ +{ + "values": [ + "farmersdelight:farmer/2/cabbage_emerald", + "farmersdelight:farmer/2/rice_emerald" + ] +} diff --git a/src/main/resources/data/minecraft/tags/villager_trade/wandering_trader/common.json b/src/main/resources/data/minecraft/tags/villager_trade/wandering_trader/common.json new file mode 100644 index 000000000..be0e2e5eb --- /dev/null +++ b/src/main/resources/data/minecraft/tags/villager_trade/wandering_trader/common.json @@ -0,0 +1,8 @@ +{ + "values": [ + "farmersdelight:wandering_trader/emerald_cabbage_seeds", + "farmersdelight:wandering_trader/emerald_tomato_seeds", + "farmersdelight:wandering_trader/emerald_rice", + "farmersdelight:wandering_trader/emerald_onion" + ] +} diff --git a/src/main/resources/farmersdelight.mixins.json b/src/main/resources/farmersdelight.mixins.json index 63ddd0a02..d14a3eef7 100644 --- a/src/main/resources/farmersdelight.mixins.json +++ b/src/main/resources/farmersdelight.mixins.json @@ -8,7 +8,6 @@ "datafix.V3818_3Mixin", "CampfireBaleMixin", "CuttingBoardDispenserMixin", - "KeepRichSoilGiantTreeMixin", "KeepRichSoilTreeMixin", "KeepRichSoilUntrampledMixin", "NourishmentAlwaysEatMixin",